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

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

在企業級 SOA 中使用 Web 服務,第 7 部分: 使用 XML 二進制優化打包規范加速 Web 服務應用程序

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

引言

在本系列的第 2 部分中,我討論了可以如何實現原始應用程序 Web 服務的業務流程并確定系統可以承載的可互操作 SOA 的最大個數,以避免 SOA 過載。在本系列的第 5 部分中,我強調了將業務流程規則作為優化 Web 服務的首要事項的重要性,并給出了一些示例,以說明可以如何減少 Web 請求的數量和執行時間。

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

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







兩個場景

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

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


圖 1. 動態鏈接到 Web 服務
與 Web 服務動態鏈接

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

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


圖 2. 將 XOP 包應用于 Web 服務
圖 2. 將 XOP 包應用于 Web 服務

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

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







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 編碼的內容為 /aWKKapGGyQ=,而 m:sig 元素采用 base64 編碼的內容為 Faa7vROi2VQ=。這些元素也稱為元素信息項。內容是元素的子項。請將該元素當作此子項的父項。子項是字符信息項,即包含字母數字字符的項。例如,m: photo 是子項 /aWKKapGGyQ= 的父項。該子項的名稱不便閱讀且難于發音,很容易出現鍵入錯誤。

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


清單 2. 要刪除的內容
												
																		

<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 中的二進制元素替換文本元素。第二步,在包含已替換元素的 Infoset 前添加 MIME 包。第三步,在該 Infoset 后添加另一個包。

第 1 步:替換元素

XOP 包使用名為 xop:Include 的新元素信息項來替換刪除的內容。xop: Include 元素包含一個屬性信息項,帶有指向 XOP 包部分的鏈接,XOP 包承載從原始元素中刪除的數據的二進制表示。在清單 3 中,我突出顯示了替換原始 Infoset 中的圖片和簽名元素的內容的 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)。而行數保持不變。


清單 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 進行序列化。XOP 是一種更有效的方法,用于序列化包含特定類型的 Xquery 和 Xpath 2.0 元素內容的 XML Infoset。

在更新后的 Infoset 前后各添加一個 MIME 包,以分別描述包含文本格式和二進制格式的圖片和簽名的 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 包如何識別已被刪除的數據的二進制表示。


清單 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 的二進制內容,xop: Include element 中提到的鏈接代替了 Infoset 前的消息的文本內容。







最終結果

清單 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--
        

												
										







結束語

為了運行具有 XOP 包的 Web 服務,需要事先進行計劃,以確定應該如何設計應用程序,從而避免高峰時過載。應該就優化 Web 服務時應采用何種編碼技術與系統管理員團隊進行溝通。

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

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

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产色爱av资源综合区| 99ri日韩精品视频| 亚洲精品久久久一区二区三区| 国产精品一二三| 国产精品一区二区欧美| 国产视频久久久久| 亚洲国产mv| 一区二区三区高清在线| 午夜一区二区三区在线观看| 久久久久久尹人网香蕉| 欧美韩国日本一区| 亚洲视频狠狠| 久久激情视频久久| 欧美精品尤物在线| 国产亚洲综合在线| 亚洲精品在线视频| 欧美在线网址| 最新精品在线| 亚洲一区在线免费观看| 久久国产精彩视频| 欧美日韩一区二区三区免费看| 国产精品夜色7777狼人| 亚洲黄一区二区三区| 性欧美办公室18xxxxhd| 欧美激情视频免费观看| 亚洲欧美日韩精品一区二区| 美女免费视频一区| 国产伦精品一区二区三区照片91| 亚洲国产视频直播| 久久精品理论片| 一本一本久久| 欧美激情久久久久| 韩国欧美一区| 亚洲免费一区二区| 亚洲国产美女久久久久| 久久精品女人的天堂av| 国产精品日韩在线一区| 一本大道久久a久久精品综合| 美玉足脚交一区二区三区图片| 一区二区三区波多野结衣在线观看| 久久婷婷色综合| 韩日在线一区| 久久久www成人免费无遮挡大片| 99视频精品全部免费在线| 欧美sm视频| 亚洲大胆人体在线| 久久资源av| 久久国产综合精品| 亚洲国产精品久久91精品| 久久精品亚洲精品| 国产一区二区三区最好精华液| 亚洲一区亚洲| 在线视频一区二区| 国产精品国产a| 亚洲私人影院在线观看| 亚洲精品乱码久久久久久黑人| 美女网站在线免费欧美精品| 亚洲电影在线播放| 免费观看在线综合| 美女视频黄免费的久久| 永久免费精品影视网站| 免费在线看成人av| 麻豆91精品91久久久的内涵| 亚洲国产天堂久久国产91| 免费影视亚洲| 欧美成人激情视频| 亚洲免费久久| 在线亚洲精品| 国产午夜精品美女视频明星a级| 欧美在线中文字幕| 久久国产福利| 亚洲精品1234| 亚洲精品综合精品自拍| 国产精品va在线播放| 久久国产精品99精品国产| 欧美伊人久久大香线蕉综合69| 国产主播一区二区| 欧美黄在线观看| 欧美午夜免费影院| 久久久亚洲午夜电影| 美女性感视频久久久| 一二美女精品欧洲| 亚洲直播在线一区| 一区二区视频在线观看| 亚洲人成在线影院| 国产欧美日韩在线播放| 欧美大片免费| 国产精品麻豆va在线播放| 久久久久久久尹人综合网亚洲 | 在线亚洲自拍| 狠狠色狠狠色综合人人| 亚洲日韩视频| 国产亚洲欧美一区二区| 亚洲人成在线播放| 国内成人精品视频| 一本色道久久88综合亚洲精品ⅰ| 国产午夜精品一区理论片飘花 | 亚洲欧美色婷婷| 久久精品国产成人| 亚洲视频每日更新| 久久久噜噜噜久噜久久| 亚洲天堂免费观看| 老司机精品福利视频| 欧美亚洲一区| 欧美精品一区三区| 麻豆精品精华液| 老巨人导航500精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品久久久久久亚洲调教 | 久久久无码精品亚洲日韩按摩| 亚洲午夜女主播在线直播| 久久日韩精品| 欧美一级一区| 欧美日韩另类综合| 欧美高清视频免费观看| 国内不卡一区二区三区| 亚洲一区免费网站| 亚洲视频在线一区| 欧美剧在线免费观看网站| 麻豆精品精华液| 国产在线播精品第三| 亚洲欧美日本日韩| 亚洲嫩草精品久久| 欧美色欧美亚洲高清在线视频| 亚洲丰满少妇videoshd| 尤物九九久久国产精品的分类| 午夜欧美理论片| 欧美中文在线视频| 国产伦精品一区二区三区视频孕妇| 99国产精品久久| 亚洲一区二区三区欧美| 欧美色区777第一页| 一区二区电影免费观看| 亚洲一区二区三区四区视频| 欧美精品1区| 亚洲欧洲一区二区在线播放| 亚洲欧洲一级| 欧美激情性爽国产精品17p| 欧美激情国产精品| 日韩视频精品| 欧美丝袜第一区| 亚洲欧美日韩在线高清直播| 欧美亚洲一区二区在线| 国产精品日日做人人爱| 亚洲欧美另类国产| 久久躁日日躁aaaaxxxx| 亚洲国产欧美一区二区三区久久 | 亚洲国产成人午夜在线一区 | 国产日韩亚洲欧美综合| 欧美在线免费| 欧美激情欧美激情在线五月| 亚洲日本激情| 国产精品福利网站| 欧美伊人精品成人久久综合97| 另类国产ts人妖高潮视频| 亚洲人成77777在线观看网| 欧美乱大交xxxxx| 亚洲一本大道在线| 久久久亚洲午夜电影| 亚洲精品韩国| 国产精品青草综合久久久久99| 美女精品在线观看| 亚洲日本黄色| 国产精品久久久久久户外露出 | 欧美日韩亚洲三区| 销魂美女一区二区三区视频在线| 浪潮色综合久久天堂| 一区二区三区产品免费精品久久75 | 亚洲手机成人高清视频| 久久午夜精品| 亚洲调教视频在线观看| 韩日在线一区| 欧美日韩亚洲视频一区| 久久久.com| 宅男在线国产精品| 欧美大片在线观看一区| 欧美在线免费看| 亚洲美女av在线播放| 国产亚洲综合精品| 欧美色中文字幕| 久久亚洲高清| 亚洲欧美日韩天堂一区二区| 91久久精品国产| 久久人人爽人人爽| 西西人体一区二区| 一区二区日韩欧美| 91久久精品国产91久久性色| 国产日韩欧美日韩| 国产精品久久久久久久app| 欧美极品色图| 免费在线一区二区| 久久精品人人做人人爽| 亚洲午夜视频在线| 亚洲人妖在线| 欧美激情五月| 欧美成人综合一区| 久久最新视频| 久久综合国产精品| 久久久久久久一区二区| 久久精品国产免费|