




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、在企業(yè)級 SOA 中使用 Web 服務(wù),第 7 部分: 使用 XML 二進(jìn)制優(yōu)化打包規(guī)范加速 Web 服務(wù)應(yīng)用程序級別: 中級Judith Myerson, 系統(tǒng)工程師兼架構(gòu)師2005 年 11 月 24 日您是否希望了解如何使用 XML 二進(jìn)制優(yōu)化打包 (XOP) 規(guī)范來優(yōu)化 Web 服務(wù)應(yīng)用程序? Judith M. Myerson 將向您展示在處理 Web 服務(wù)時(shí),XOP 包比 XML 解析器更有效的原因。她將討論在多 SOA 中 Web 服務(wù)變得過于龐大的兩個(gè)場景。為了解決此問題,她討論了XOP 包可以如何比 XML 解析器更為有效地處理二進(jìn)制(而非文本)格式的大型文件。她給出了 XO
2、P 處理前后的代碼示例,以幫助開發(fā)人員了解需要更改哪些元素。引言在本系列的第 2 部分中,我討論了可以如何實(shí)現(xiàn)原始應(yīng)用程序 Web 服務(wù)的業(yè)務(wù)流程并確定系統(tǒng)可以承載的可互操作 SOA 的最大個(gè)數(shù),以避免 SOA 過載。在本系列的第 5 部分中, 我強(qiáng)調(diào)了將業(yè)務(wù)流程規(guī)則作為優(yōu)化 Web 服務(wù)的首要事項(xiàng)的重要性,并給出了一些示例,以說明可以如何減少 Web 請求的數(shù)量和執(zhí)行時(shí)間。文檔選項(xiàng)將此頁作為電子郵件發(fā)送未顯示需要JavaScript 的文檔選項(xiàng)最新推薦Java 應(yīng)用開發(fā)源動力 下載免費(fèi)軟件,快速啟動開發(fā)在這一部分中,我將討論基于 XML 的 Web 服務(wù)應(yīng)用程序是如何變得過于龐大的。當(dāng)大量使
3、用 Web 服務(wù)時(shí),這些 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)解析器讀寫大型文件(特別是文本格式的大型文件)時(shí),并不能達(dá)到其讀取較小的文件或計(jì)算簡單函數(shù)時(shí)的性能。甚至加密也可能使 Web 服務(wù)陷于停頓, 因?yàn)楸仨殘?zhí)行復(fù)雜的計(jì)算才能獲得希望的結(jié)果。兩個(gè)場景回頁首我在第 2 部分中提到,從企業(yè)應(yīng)用程序提取組件,然后將其重新構(gòu)造為外部 Web 服務(wù),這種做法更為恰當(dāng)。如
4、果這樣,您就可以更改 Web 服務(wù)中的代碼,而不用重新設(shè)計(jì)并編譯長時(shí)間運(yùn)行的大型復(fù)雜應(yīng)用程序。第一個(gè) SOA 中經(jīng)過重新設(shè)計(jì)而顯得更加緊湊的應(yīng)用程序(請參見圖 1)可以通過發(fā)送 Web 請求來與第二個(gè) SOA 中的外部企業(yè)MRP(托管資源原型)Web 服務(wù)進(jìn)行動態(tài)鏈接。而 MRP Web 服務(wù)又指向第三個(gè) SOA 中的外部企業(yè) CRM Web 服務(wù)??蛻絷P(guān)系管理 (CRM) Web 服務(wù)隨后將請求和信息發(fā)送到該應(yīng)用程序以進(jìn)行進(jìn)一步處理。圖 1. 動態(tài)鏈接到 Web 服務(wù)讓我們假定在任何給定時(shí)間都可能出現(xiàn)對多個(gè)基于 XML 的 Web 服務(wù)的多個(gè) Web 請求。鏈接到其他遺留系統(tǒng)或大型企業(yè)系統(tǒng)的
5、企業(yè)應(yīng)用程序未在上圖中顯示,而這些系統(tǒng)又與接收多個(gè) Web 請求的多個(gè) Web 服務(wù)鏈接。當(dāng)大量使用時(shí),Web 服務(wù)會變得過于龐大,從而阻塞網(wǎng)絡(luò)通信。一個(gè)解決方案就是向基于 XML 的 MRP 和 CRM Web 服務(wù)應(yīng)用 XOP 包(請參見圖 2),從而以二進(jìn)制格式進(jìn)行處理。圖 2. 將 XOP 包 應(yīng) 用 于 Web 服 務(wù)在第二個(gè)場景中,可以首先開發(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ù)和功能,則必須減少或完全消除冗余的
6、 Web 請求、執(zhí)行時(shí)間、訪問時(shí)間和帶寬。問題在于,當(dāng)創(chuàng)建新的 Web 服務(wù)并大量使用時(shí),它們將會變得過于龐大。與第一個(gè)場景類似,您需要將 XOP 包應(yīng)用于 Web 服務(wù)。對于這兩個(gè)場景,您都需要與系統(tǒng)管理員協(xié)作,以確定在不引起系統(tǒng)過載的情況下可以使用 XOP 包的 Web 服務(wù)的最大數(shù)目。XOP 處理前的 Infoset回頁首為了理解 XOP 的工作方式,我將首先討論一個(gè)與 SOAP 消息相似的 XML Infoset,其中描述了包含一張圖片和一個(gè)簽名的 XML文檔。在清單 1 中,我使用粗體來突出顯示原始 XML Infoset,以說明哪些原始元素在 XOP 處理之前。/aWKKapGGy
7、Q=Faa7vROi2VQ=清單 1. XOP 處理前的 XML Infoset正如您所看到的,其中有兩個(gè)元素:m:photo 和 m:sig。m:photo 元素采用 base64 編碼的內(nèi)容為 /aWKKapGGyQ=,而 m:sig 元素采用 base64 編碼的內(nèi)容為 Faa7vROi2VQ=。這些元素也稱為元素信息項(xiàng)。內(nèi)容是元素的子項(xiàng)。請將該元素當(dāng)作此子項(xiàng)的父項(xiàng)。子項(xiàng)是字符信息項(xiàng),即包含字母數(shù)字字符的項(xiàng)。例如,m: photo 是子項(xiàng) /aWKKapGGyQ= 的父項(xiàng)。該子項(xiàng)的名稱不便閱讀且難于發(fā)音, 很容易出現(xiàn)鍵入錯(cuò)誤。當(dāng)通過 XOP 處理放置 XML Infoset 時(shí),可以解決
8、此問題。XOP 的工作方式是:從原始 Infoset 提取優(yōu)化內(nèi)容,然后創(chuàng)建 XOP Infoset。優(yōu)化內(nèi)容是我剛剛談到的經(jīng)過縮減的內(nèi)容。在清單 2 中,我突出顯示了要刪除的內(nèi)容。/aWKKapGGyQ=Faa7vROi2VQ=清單 2. 要刪除的內(nèi)容XOP 處理后的 Infoset回頁首XOP 處理涉及到三個(gè)步驟。第一步,使用 Infoset 中的二進(jìn)制元素替換文本元素。第二步,在包含已替換元素的 Infoset 前添加MIME 包。第三步,在該 Infoset 后添加另一個(gè)包。第 1 步:替換元素XOP 包使用名為 xop:Include 的新元素信息項(xiàng)來替換刪除的內(nèi)容。xop: Inc
9、lude 元素包含一個(gè)屬性信息項(xiàng),帶有指向 XOP 包部分的鏈接,XOP 包承載從原始元素中刪除的數(shù)據(jù)的二進(jìn)制表示。在清單 3 中,我突出顯示了替換原始 Infoset 中的圖片和簽名元素的內(nèi)容的 xop: Include。xop:Include href=cid:/me.png/m:sig xmlmime:content-type=application/pkcs7-signaturexop:Include href=cid:/my.hsh/清單 3. 替換后的元素正如您所看到的, href=cid:http:/exampl
10、/me.png/ 是圖片元素的屬性信息項(xiàng),而href=cid:/my.hsh 是簽名元素的屬性信息項(xiàng)。更新 Infoset 部分(請參見清單 4)。而行數(shù)保持不變。清單 4. 更新后的 XML Infoset 部分m:sig xmlmime:content-type=application/pkcs7-signature第 2 步 : 在 Infoset 前 添 加 MIME 包為了完成更新,需要使用 MIME Multipart/Related 包中的 XOP 對原始 Infoset 進(jìn)行序列化。XOP 是一種更有效的方法,用于序列化包含特定類型的
11、 Xquery 和 Xpath 2.0 元素內(nèi)容的 XML Infoset。在更新后的 Infoset 前后各添加一個(gè) MIME 包,以分別描述包含文本格式和二進(jìn)制格式的圖片和簽名的 XML 文檔。在清單 5 中, 我突出顯示了 XOP 包識別 8 位文本格式的 XML Infoset 的代碼。MIME-Version: 1.0Content-Type: Multipart/Related;boundary=MIME_boundary; type=text/xml;start=Content-Description: An XML document with my picture andsig
12、nature in it-MIME_boundaryContent-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bitContent-ID: 清單 5. Infoset 前的 XOP 包部分第 3 步:在 Infoset 后添加 MIME 包。清單 6 顯示了 XOP 包如何識別已被刪除的數(shù)據(jù)的二進(jìn)制表示。-MIME_boundaryContent-Type: image/pngContent-Transfer-Encoding: binaryContent-ID: / bi
13、nary octets for png清單 6. Infoset 后的 XOP 包部分-MIME_boundaryContent-Type: application/pkcs7-signature Content-Transfer-Encoding: binaryContent-ID: / binary octets for signature-MIME_boundary-正如您所看到的,Infoset 后的 Content-ID 的二進(jìn)制內(nèi)容,xop: Include element 中提到的鏈接代替了 Infoset 前的消息的文本內(nèi)容。回頁首最終結(jié)果在清單 7 給出了序列化為 XOP 包
14、的整個(gè) XML Infoset。盡管其中還有其他行,但是此包比原始 Infoset 的 XML 解析器的效率高得多。MIME-Version: 1.0Content-Type: Multipart/Related;boundary=MIME_boundary; type=text/xml;start=Content-Description: An XML document with my picture andsignature in it-MIME_boundaryContent-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding:
15、 8bit Content-ID: m:sig xmlmime:content-type=application/pkcs7-signature-MIME_boundaryContent-Type: image/pngContent-Transfer-Encoding: binary Content-ID: / binary octets for png-MIME_boundaryContent-Type: application/pkcs7-signature Content-Transfer-Encoding: binary Content-ID: / binary octets for
16、signature-MIME_boundary-回頁首結(jié)束語為了運(yùn)行具有 XOP 包的 Web 服務(wù),需要事先進(jìn)行計(jì)劃,以確定應(yīng)該如何設(shè)計(jì)應(yīng)用程序,從而避免高峰時(shí)過載。應(yīng)該就優(yōu)化 Web服務(wù)時(shí)應(yīng)采用何種編碼技術(shù)與系統(tǒng)管理員團(tuán)隊(duì)進(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)部及各個(gè) SOA 之間將其與 XOP 包一起使用。管理員會發(fā)現(xiàn),解決了這些問題也使得他們的網(wǎng)絡(luò)管理工作變得更加輕松。他們能
17、確定在不引起系統(tǒng)過載的前提下,可以將多少應(yīng)用程序與XOP 包一起使用?;仨撌讌⒖假Y料學(xué)習(xí)您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文。本系列的其他部分了解如何在企業(yè)級 SOA 中使用 Web 服務(wù)。Use SLAs in a Web services contextJudith Myerson 所撰寫的關(guān)于服務(wù)級別協(xié)議的另一系列文章。XML-binary Optimized Packaging了解關(guān)于處理二進(jìn)制格式的大型 XML 文件的其他功能和代碼示例。The Complete Book of Middleware 由 Judith Myerson 撰寫,主要討論關(guān)于系統(tǒng)設(shè)計(jì)的基本原則和優(yōu)先考慮事項(xiàng),主要是由于電子商務(wù)和分布式集成系統(tǒng)的興起所帶來的新要求。Enterprise Systems Integration, Second Edition 了解業(yè)務(wù)概況和技術(shù)相關(guān)知識,以確保成功完成系統(tǒng)集成。IBM Redbook for Domino administrators了解開發(fā)服務(wù)級別協(xié)議的難點(diǎn)和解決辦法。獲得產(chǎn)品和技術(shù)W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)產(chǎn)業(yè)園可行性分析報(bào)告
- 建筑給排水設(shè)計(jì)規(guī)范gb50015
- 商業(yè)街區(qū)商業(yè)規(guī)劃手冊
- 智能生產(chǎn)線設(shè)備維護(hù)指南
- 三農(nóng)文化傳播策略方案
- 重慶高新技術(shù)產(chǎn)業(yè)
- 開題可行性分析報(bào)告模板
- 醫(yī)療設(shè)備操作與使用說明手冊
- 農(nóng)業(yè)產(chǎn)業(yè)鏈協(xié)同發(fā)展方案
- 衛(wèi)星導(dǎo)航定位系統(tǒng)技術(shù)應(yīng)用文檔
- 工業(yè)軟件CAD:研究框架
- 礦山救護(hù)隊(duì)裝備培訓(xùn)課件
- 光伏并網(wǎng)前單位工程驗(yàn)收報(bào)告-2023
- 剪輯拍攝培訓(xùn)課件
- 股權(quán)投資的基本概念與原理
- 自檢記錄表鋼筋
- 壓力容器年度自查表
- 回彈法檢測混凝土強(qiáng)度自動計(jì)算表,測區(qū)混凝土強(qiáng)度換算表,回彈值
- GB/T 2965-2023鈦及鈦合金棒材
- 身份證A4直接打印word模版
- 在線考試系統(tǒng)數(shù)據(jù)庫分析設(shè)計(jì)與建模
評論
0/150
提交評論