青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181, 文章 - 2, 評論 - 85, 引用 - 0
數(shù)據(jù)加載中……

在企業(yè)級 SOA 中使用 Web 服務(wù),第 7 部分: 使用 XML 二進(jìn)制優(yōu)化打包規(guī)范加速 Web 服務(wù)應(yīng)用程序

您是否希望了解如何使用 XML 二進(jìn)制優(yōu)化打包 (XOP) 規(guī)范來優(yōu)化 Web 服務(wù)應(yīng)用程序?Judith M. Myerson 將向您展示在處理 Web 服務(wù)時,XOP 包比 XML 解析器更有效的原因。她將討論在多 SOA 中 Web 服務(wù)變得過于龐大的兩個場景。為了解決此問題,她討論了 XOP 包可以如何比 XML 解析器更為有效地處理二進(jìn)制(而非文本)格式的大型文件。她給出了 XOP 處理前后的代碼示例,以幫助開發(fā)人員了解需要更改哪些元素。

引言

在本系列的第 2 部分中,我討論了可以如何實現(xiàn)原始應(yīng)用程序 Web 服務(wù)的業(yè)務(wù)流程并確定系統(tǒng)可以承載的可互操作 SOA 的最大個數(shù),以避免 SOA 過載。在本系列的第 5 部分中,我強(qiáng)調(diào)了將業(yè)務(wù)流程規(guī)則作為優(yōu)化 Web 服務(wù)的首要事項的重要性,并給出了一些示例,以說明可以如何減少 Web 請求的數(shù)量和執(zhí)行時間。

在這一部分中,我將討論基于 XML 的 Web 服務(wù)應(yīng)用程序是如何變得過于龐大的。當(dāng)大量使用 Web 服務(wù)時,這些 Web 服務(wù)將阻塞網(wǎng)絡(luò)通信,從而導(dǎo)致系統(tǒng)過載。為了解決此問題,我將討論可以如何應(yīng)用 XML 二進(jìn)制優(yōu)化打包 (XOP) 規(guī)范(請參閱參考資料)來加速 Web 服務(wù)。

此標(biāo)準(zhǔn)草案旨在比當(dāng)前 XML 解析器更有效地處理 Web 服務(wù)。解析器的行為更像解釋器,而不是編譯器。當(dāng)解析器讀寫大型文件(特別是文本格式的大型文件)時,并不能達(dá)到其讀取較小的文件或計算簡單函數(shù)時的性能。甚至加密也可能使 Web 服務(wù)陷于停頓,因為必須執(zhí)行復(fù)雜的計算才能獲得希望的結(jié)果。







兩個場景

我在第 2 部分中提到,從企業(yè)應(yīng)用程序提取組件,然后將其重新構(gòu)造為外部 Web 服務(wù),這種做法更為恰當(dāng)。如果這樣,您就可以更改 Web 服務(wù)中的代碼,而不用重新設(shè)計并編譯長時間運行的大型復(fù)雜應(yīng)用程序。

第一個 SOA 中經(jīng)過重新設(shè)計而顯得更加緊湊的應(yīng)用程序(請參見圖 1)可以通過發(fā)送 Web 請求來與第二個 SOA 中的外部企業(yè) MRP(托管資源原型)Web 服務(wù)進(jìn)行動態(tài)鏈接。而 MRP Web 服務(wù)又指向第三個 SOA 中的外部企業(yè) CRM Web 服務(wù)。客戶關(guān)系管理 (CRM) Web 服務(wù)隨后將請求和信息發(fā)送到該應(yīng)用程序以進(jìn)行進(jìn)一步處理。


圖 1. 動態(tài)鏈接到 Web 服務(wù)
與 Web 服務(wù)動態(tài)鏈接

讓我們假定在任何給定時間都可能出現(xiàn)對多個基于 XML 的 Web 服務(wù)的多個 Web 請求。鏈接到其他遺留系統(tǒng)或大型企業(yè)系統(tǒng)的企業(yè)應(yīng)用程序未在上圖中顯示,而這些系統(tǒng)又與接收多個 Web 請求的多個 Web 服務(wù)鏈接。當(dāng)大量使用時,Web 服務(wù)會變得過于龐大,從而阻塞網(wǎng)絡(luò)通信。

一個解決方案就是向基于 XML 的 MRP 和 CRM Web 服務(wù)應(yīng)用 XOP 包(請參見圖 2),從而以二進(jìn)制格式進(jìn)行處理。


圖 2. 將 XOP 包應(yīng)用于 Web 服務(wù)
圖 2. 將 XOP 包應(yīng)用于 Web 服務(wù)

在第二個場景中,可以首先開發(fā)業(yè)務(wù)流程規(guī)則,然后開發(fā)根據(jù)現(xiàn)有 Web 服務(wù)構(gòu)建新的 Web 服務(wù)所需的基于 XML 的 Web 請求。如果新的 Web 服務(wù)(業(yè)務(wù)邏輯 Web 服務(wù)或以數(shù)據(jù)為中心的 Web 服務(wù))可以提供更好的或額外的服務(wù)和功能,則必須減少或完全消除冗余的 Web 請求、執(zhí)行時間、訪問時間和帶寬。

問題在于,當(dāng)創(chuàng)建新的 Web 服務(wù)并大量使用時,它們將會變得過于龐大。與第一個場景類似,您需要將 XOP 包應(yīng)用于 Web 服務(wù)。對于這兩個場景,您都需要與系統(tǒng)管理員協(xié)作,以確定在不引起系統(tǒng)過載的情況下可以使用 XOP 包的 Web 服務(wù)的最大數(shù)目。







XOP 處理前的 Infoset

為了理解 XOP 的工作方式,我將首先討論一個與 SOAP 消息相似的 XML Infoset,其中描述了包含一張圖片和一個簽名的 XML 文檔。在清單 1 中,我使用粗體來突出顯示原始 XML Infoset,以說明哪些原始元素在 XOP 處理之前。


清單 1. XOP 處理前的 XML Infoset
												
																		

<soap:Envelope
    xmlns:soap='http://www.w3.org/2003/05/soap-envelope' 
    xmlns:xop='http://www.w3.org/2003/12/xop/include' 
    xmlns:xmlmime='http://www.w3.org/2004/06/xmlmime'>
  <soap:Body>
    <m:data xmlns:m='http://example.org/stuff'>
    
      
														
																
																		
																				<m:photo xmlmime:content-type='image/png'>
        /aWKKapGGyQ=
      </m:photo>
      <m:sig xmlmime:content-type='application/pkcs7-signature'>
        Faa7vROi2VQ=
      </m:sig>
																		`
      
    </m:data>
  </soap:Body>
</soap:Envelope>
  

														
												
										

正如您所看到的,其中有兩個元素:m:photo m:sigm:photo 元素采用 base64 編碼的內(nèi)容為 /aWKKapGGyQ=,而 m:sig 元素采用 base64 編碼的內(nèi)容為 Faa7vROi2VQ=。這些元素也稱為元素信息項。內(nèi)容是元素的子項。請將該元素當(dāng)作此子項的父項。子項是字符信息項,即包含字母數(shù)字字符的項。例如,m: photo 是子項 /aWKKapGGyQ= 的父項。該子項的名稱不便閱讀且難于發(fā)音,很容易出現(xiàn)鍵入錯誤。

當(dāng)通過 XOP 處理放置 XML Infoset 時,可以解決此問題。XOP 的工作方式是:從原始 Infoset 提取優(yōu)化內(nèi)容,然后創(chuàng)建 XOP Infoset。優(yōu)化內(nèi)容是我剛剛談到的經(jīng)過縮減的內(nèi)容。在清單 2 中,我突出顯示了要刪除的內(nèi)容。


清單 2. 要刪除的內(nèi)容
												
																		

<m:photo xmlmime:content-type='image/png'>
        /aWKKapGGyQ=
      </m:photo>
      <m:sig xmlmime:content-type='application/pkcs7-signature'>`
        Faa7vROi2VQ=
      </m:sig>


												
										







XOP 處理后的 Infoset

XOP 處理涉及到三個步驟。第一步,使用 Infoset 中的二進(jìn)制元素替換文本元素。第二步,在包含已替換元素的 Infoset 前添加 MIME 包。第三步,在該 Infoset 后添加另一個包。

第 1 步:替換元素

XOP 包使用名為 xop:Include 的新元素信息項來替換刪除的內(nèi)容。xop: Include 元素包含一個屬性信息項,帶有指向 XOP 包部分的鏈接,XOP 包承載從原始元素中刪除的數(shù)據(jù)的二進(jìn)制表示。在清單 3 中,我突出顯示了替換原始 Infoset 中的圖片和簽名元素的內(nèi)容的 xop: Include


清單 3. 替換后的元素
												
																		
 <m:photo xmlmime:content-type='image/png'>
        <xop:Include href='cid:http://example.org/me.png'/>
      </m:photo>
      <m:sig xmlmime:content-type='application/pkcs7-signature'>
        <xop:Include href='cid:http://example.org/my.hsh'/>
      </m:sig>
       
 
												
										

正如您所看到的, href='cid:http://example.org/me.png'/ 是圖片元素的屬性信息項,而 href='cid:http://example.org/my.hsh' 是簽名元素的屬性信息項。

更新 Infoset 部分(請參見清單 4)。而行數(shù)保持不變。


清單 4. 更新后的 XML Infoset 部分
												
																		
<soap:Envelope
    xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
    xmlns:xop='http://www.w3.org/2003/12/xop/include'
    xmlns:xmlmime='http://www.w3.org/2004/06/xmlmime'>
  <soap:Body>
    <m:data xmlns:m='http://example.org/stuff'>
      <m:photo xmlmime:content-type='image/png'>
        <xop:Include href='cid:http://example.org/me.png'/>
      </m:photo>
      <m:sig xmlmime:content-type='application/pkcs7-signature'>
        <xop:Include href='cid:http://example.org/my.hsh'/>
      </m:sig>
    </m:data>
  </soap:Body>
</soap:Envelope>

												
										

第 2 步:在 Infoset 前添加 MIME 包

為了完成更新,需要使用 MIME Multipart/Related 包中的 XOP 對原始 Infoset 進(jìn)行序列化。XOP 是一種更有效的方法,用于序列化包含特定類型的 Xquery 和 Xpath 2.0 元素內(nèi)容的 XML Infoset。

在更新后的 Infoset 前后各添加一個 MIME 包,以分別描述包含文本格式和二進(jìn)制格式的圖片和簽名的 XML 文檔。在清單 5 中,我突出顯示了 XOP 包識別 8 位文本格式的 XML Infoset 的代碼。


清單 5. Infoset 前的 XOP 包部分
												
																		
 MIME-Version: 1.0
Content-Type: Multipart/Related;boundary=MIME_boundary;
	      type=text/xml;start="<mymessage.xml@example.org>"
Content-Description: An XML document with my picture and signature in it

--MIME_boundary

														
																
																		
																				Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
																		
Content-ID: mymessage.xml@example.org

 
														
												
										

第 3 步:在 Infoset 后添加 MIME 包。

清單 6 顯示了 XOP 包如何識別已被刪除的數(shù)據(jù)的二進(jìn)制表示。


清單 6. Infoset 后的 XOP 包部分
												
																		
  --MIME_boundary

														
																
																		
																				Content-Type: image/png
Content-Transfer-Encoding: binary
																		
Content-ID: <http://example.org/me.png>

// binary octets for png

--MIME_boundary

														
														
																
																		
																				Content-Type: application/pkcs7-signature
Content-Transfer-Encoding: binary
																		
Content-ID: <http://example.org/my.hsh>

// binary octets for signature

--MIME_boundary--
      
  
														
												
										

正如您所看到的,Infoset 后的 Content-ID 的二進(jìn)制內(nèi)容,xop: Include element 中提到的鏈接代替了 Infoset 前的消息的文本內(nèi)容。







最終結(jié)果

清單 7 給出了序列化為 XOP 包的整個 XML Infoset。盡管其中還有其他行,但是此包比原始 Infoset 的 XML 解析器的效率高得多。


清單 7. 序列化為 XOP 包的 XML Infoset
												
																		

MIME-Version: 1.0
Content-Type: Multipart/Related;boundary=MIME_boundary;
	      type=text/xml;start="<mymessage.xml@example.org>"
Content-Description: An XML document with my picture and signature in it

--MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <mymessage.xml@example.org>

<soap:Envelope
    xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
    xmlns:xop='http://www.w3.org/2003/12/xop/include'
    xmlns:xmlmime='http://www.w3.org/2004/06/xmlmime'>
  <soap:Body>
    <m:data xmlns:m='http://example.org/stuff'>
      <m:photo xmlmime:content-type='image/png'>
        <xop:Include href='cid:http://example.org/me.png'/>
      </m:photo>
      <m:sig xmlmime:content-type='application/pkcs7-signature'>
        <xop:Include href='cid:http://example.org/my.hsh'/>
      </m:sig>
    </m:data>
  </soap:Body>
</soap:Envelope>

--MIME_boundary
Content-Type: image/png
Content-Transfer-Encoding: binary
Content-ID: <http://example.org/me.png>

// binary octets for png

--MIME_boundary
Content-Type: application/pkcs7-signature
Content-Transfer-Encoding: binary
Content-ID: <http://example.org/my.hsh>

// binary octets for signature

--MIME_boundary--
        

												
										







結(jié)束語

為了運行具有 XOP 包的 Web 服務(wù),需要事先進(jìn)行計劃,以確定應(yīng)該如何設(shè)計應(yīng)用程序,從而避免高峰時過載。應(yīng)該就優(yōu)化 Web 服務(wù)時應(yīng)采用何種編碼技術(shù)與系統(tǒng)管理員團(tuán)隊進(jìn)行溝通。

您會發(fā)現(xiàn)解決這些問題后,您的 Web 服務(wù)應(yīng)用程序優(yōu)化工作變得容易得多。您可以使用 IBM Relational Web Developer for WebSphere? Software 來開發(fā)基于業(yè)務(wù)流程的 Web 服務(wù),然后在 SOA 內(nèi)部及各個 SOA 之間將其與 XOP 包一起使用。管理員會發(fā)現(xiàn),解決了這些問題也使得他們的網(wǎng)絡(luò)管理工作變得更加輕松。他們能確定在不引起系統(tǒng)過載的前提下,可以將多少應(yīng)用程序與 XOP 包一起使用。

posted on 2006-04-17 04:06 wsdfsdf 閱讀(231) 評論(0)  編輯 收藏 引用 所屬分類: 技術(shù)文章

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久亚洲成人| 久久国产欧美| 欧美与黑人午夜性猛交久久久| 99精品国产福利在线观看免费| 影音先锋中文字幕一区| 国产午夜精品在线| 国产综合香蕉五月婷在线| 国产亚洲欧美日韩美女| 国产一区二区三区网站 | 欧美激情第六页| 米奇777在线欧美播放| 欧美大片一区二区| 欧美日韩一区二区在线观看视频 | 先锋资源久久| 久久久国产91| 欧美插天视频在线播放| 日韩视频在线一区二区三区| 西瓜成人精品人成网站| 久久亚洲精品视频| 欧美私人啪啪vps| 好吊色欧美一区二区三区四区| 亚洲国产日韩精品| 亚洲欧美日韩成人| 久久综合国产精品| 日韩视频在线播放| 欧美一二三区精品| 欧美va亚洲va国产综合| 国产精品久久久一区二区三区| 国内精品久久久久久久影视麻豆| 亚洲精品日本| 久久久久久久久一区二区| 亚洲二区在线| 99精品热6080yy久久| 久久精品视频导航| 国产精品成人免费视频 | 亚洲激情专区| 在线免费不卡视频| 亚洲精品中文字幕在线| 99精品福利视频| 亚洲欧美一区二区三区久久| 亚洲精品在线视频观看| 亚洲精品一区二区网址| 在线电影国产精品| 亚洲男人的天堂在线| 欧美激情a∨在线视频播放| 亚洲淫性视频| 欧美性片在线观看| 亚洲精品久久久久久久久久久| 欧美伊久线香蕉线新在线| 亚洲国产欧美另类丝袜| 久久精品人人做人人爽电影蜜月| 国产精品二区影院| 日韩视频在线观看免费| 欧美国产欧美综合 | 久久久久久一区二区三区| 国产精品jvid在线观看蜜臀 | 一区二区精品| 欧美国产视频在线| 久久精品一二三区| 国产一级揄自揄精品视频| 亚洲欧美日本另类| 一本色道久久99精品综合| 欧美精品乱人伦久久久久久| 亚洲精品视频在线播放| 免费在线国产精品| 亚洲欧美国产va在线影院| 国产精品v片在线观看不卡 | 国产一区二区中文字幕免费看| 亚洲一区二区三区久久| 亚洲靠逼com| 欧美日韩国产专区| 亚洲福利小视频| 麻豆精品91| 久久久人成影片一区二区三区观看 | 欧美在线免费观看| 亚洲一级二级| 国产欧美日韩精品在线| 亚洲在线第一页| 亚洲一区免费看| 欧美日韩一级大片网址| 91久久精品国产91性色tv| 亚洲社区在线观看| 蜜臀av一级做a爰片久久| 亚洲激情视频在线| 亚洲成人在线视频播放| 亚洲一区二区三区在线| 午夜精品久久久久| 亚洲精品日韩在线| 国产午夜精品一区二区三区视频| 欧美日韩国产不卡| 亚洲欧洲三级| 欧美chengren| 欧美.com| 午夜视频在线观看一区二区三区| 性欧美精品高清| 国产欧美一二三区| 久久久久久噜噜噜久久久精品| 久久亚洲春色中文字幕| 亚洲经典一区| 亚洲香蕉网站| 在线观看中文字幕亚洲| 欧美激情按摩| 欧美视频一区二区在线观看 | 亚洲欧美另类在线观看| 国产一区二区三区黄视频| 久久―日本道色综合久久| 久久综合亚洲社区| 99综合精品| 欧美综合国产精品久久丁香| 亚洲激情视频网站| 亚洲天堂免费观看| 国产精品人人爽人人做我的可爱 | 亚洲丶国产丶欧美一区二区三区| 亚洲精品欧美激情| 国产欧美日韩不卡免费| 91久久精品www人人做人人爽| 国产精品一区免费观看| 亚洲高清自拍| 亚洲激情啪啪| 黄色小说综合网站| 国产精品99久久久久久人| 国产亚洲欧美日韩日本| 亚洲精品久久久久久久久久久| 国产亚洲综合精品| 中文日韩在线视频| 国产一区二区三区久久| 最新亚洲视频| 亚洲第一区色| 欧美在线|欧美| 亚洲欧美一区二区三区极速播放 | 久久激情五月激情| 国产精品久久亚洲7777| 亚洲欧美中日韩| 欧美成人精品在线观看| 亚洲九九九在线观看| 欧美日韩午夜视频在线观看| 久久精品国产999大香线蕉| 99视频热这里只有精品免费| 久久午夜色播影院免费高清| 亚洲激情视频在线播放| 亚洲一区在线播放| 亚洲国产va精品久久久不卡综合| 性色av一区二区三区在线观看| 亚洲天堂男人| 欧美日韩另类在线| 亚洲国产高清aⅴ视频| 国内精品久久久久久久影视麻豆| 午夜电影亚洲| 欧美一区二区私人影院日本 | 99视频精品| 欧美国产一区二区在线观看| 欧美激情1区2区3区| 亚洲精品国精品久久99热一| 最新亚洲视频| 99re6这里只有精品视频在线观看| 欧美大片一区二区三区| 欧美激情免费观看| 亚洲国产成人porn| 欧美成人激情在线| 亚洲电影下载| 亚洲天堂视频在线观看| 国产精品黄页免费高清在线观看| 在线亚洲一区观看| 亚洲日本中文| 欧美另类videos死尸| 亚洲精品自在久久| 国内精品写真在线观看| 欧美一区二区三区久久精品茉莉花| 久久九九热re6这里有精品| 国产欧美精品一区二区色综合 | 久久亚洲精品欧美| 国产一区二区三区成人欧美日韩在线观看| 久久精品亚洲一区二区| 欧美14一18处毛片| 99在线热播精品免费| 国产精品国产三级国产aⅴ入口 | 欧美尤物一区| 欧美成人三级在线| 精品成人a区在线观看| 久久视频在线免费观看| 亚洲人体一区| 久久久精品tv| 99re6这里只有精品| 国产一区二区三区久久久久久久久| 久久综合九色欧美综合狠狠| 欧美电影打屁股sp| 久久精品99久久香蕉国产色戒| 国产精品成人播放| 亚洲最新中文字幕| 欧美国产日韩一区| 午夜精品视频在线观看| 国产精品99一区| 久热精品视频在线免费观看| 亚洲人成在线播放网站岛国| 国产精品久久久久久久久久三级| 午夜精品久久久久久久蜜桃app | 国产欧美日韩亚洲精品| 麻豆国产精品va在线观看不卡| 一区二区三区**美女毛片| 久久免费视频在线|