版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在企业级 SOA 中使用 Web 服务,第 7 部分: 使用 XML 二进制优化打包规范加速 Web 服务应用程序级别: 中级Judith Myerson, 系统工程师兼架构师2005 年 11 月 24 日您是否希望了解如何使用 XML 二进制优化打包 (XOP) 规范来优化 Web 服务应用程序? Judith M. Myerson 将向您展示在处理 Web 服务时,XOP 包比 XML 解析器更有效的原因。她将讨论在多 SOA 中 Web 服务变得过于庞大的两个场景。为了解决此问题,她讨论了XOP 包可以如何比 XML 解析器更为有效地处理二进制(而非文本)格式的大型文件。她给出了 XO
2、P 处理前后的代码示例,以帮助开发人员了解需要更改哪些元素。引言在本系列的第 2 部分中,我讨论了可以如何实现原始应用程序 Web 服务的业务流程并确定系统可以承载的可互操作 SOA 的最大个数,以避免 SOA 过载。在本系列的第 5 部分中, 我强调了将业务流程规则作为优化 Web 服务的首要事项的重要性,并给出了一些示例,以说明可以如何减少 Web 请求的数量和执行时间。文档选项将此页作为电子邮件发送未显示需要JavaScript 的文档选项最新推荐Java 应用开发源动力 下载免费软件,快速启动开发在这一部分中,我将讨论基于 XML 的 Web 服务应用程序是如何变得过于庞大的。当大量使
3、用 Web 服务时,这些 Web 服务将阻塞网络通信,从而导致系统过载。为了解决此问题,我将讨论可以如何应用 XML 二进制优化打包 (XOP) 规范(请参阅参考资料) 来加速 Web 服务。此标准草案旨在比当前 XML 解析器更有效地处理 Web 服务。解析器的行为更像解释器,而不是编译器。当解析器读写大型文件(特别是文本格式的大型文件)时,并不能达到其读取较小的文件或计算简单函数时的性能。甚至加密也可能使 Web 服务陷于停顿, 因为必须执行复杂的计算才能获得希望的结果。两个场景回页首我在第 2 部分中提到,从企业应用程序提取组件,然后将其重新构造为外部 Web 服务,这种做法更为恰当。如
4、果这样,您就可以更改 Web 服务中的代码,而不用重新设计并编译长时间运行的大型复杂应用程序。第一个 SOA 中经过重新设计而显得更加紧凑的应用程序(请参见图 1)可以通过发送 Web 请求来与第二个 SOA 中的外部企业MRP(托管资源原型)Web 服务进行动态链接。而 MRP Web 服务又指向第三个 SOA 中的外部企业 CRM Web 服务。客户关系管理 (CRM) Web 服务随后将请求和信息发送到该应用程序以进行进一步处理。图 1. 动态链接到 Web 服务让我们假定在任何给定时间都可能出现对多个基于 XML 的 Web 服务的多个 Web 请求。链接到其他遗留系统或大型企业系统的
5、企业应用程序未在上图中显示,而这些系统又与接收多个 Web 请求的多个 Web 服务链接。当大量使用时,Web 服务会变得过于庞大,从而阻塞网络通信。一个解决方案就是向基于 XML 的 MRP 和 CRM Web 服务应用 XOP 包(请参见图 2),从而以二进制格式进行处理。图 2. 将 XOP 包 应 用 于 Web 服 务在第二个场景中,可以首先开发业务流程规则,然后开发根据现有 Web 服务构建新的 Web 服务所需的基于 XML 的 Web 请求。如果新的 Web 服务(业务逻辑 Web 服务或以数据为中心的 Web 服务)可以提供更好的或额外的服务和功能,则必须减少或完全消除冗余的
6、 Web 请求、执行时间、访问时间和带宽。问题在于,当创建新的 Web 服务并大量使用时,它们将会变得过于庞大。与第一个场景类似,您需要将 XOP 包应用于 Web 服务。对于这两个场景,您都需要与系统管理员协作,以确定在不引起系统过载的情况下可以使用 XOP 包的 Web 服务的最大数目。XOP 处理前的 Infoset回页首为了理解 XOP 的工作方式,我将首先讨论一个与 SOAP 消息相似的 XML Infoset,其中描述了包含一张图片和一个签名的 XML文档。在清单 1 中,我使用粗体来突出显示原始 XML Infoset,以说明哪些原始元素在 XOP 处理之前。/aWKKapGGy
7、Q=Faa7vROi2VQ=清单 1. XOP 处理前的 XML Infoset正如您所看到的,其中有两个元素:m:photo 和 m:sig。m:photo 元素采用 base64 编码的内容为 /aWKKapGGyQ=,而 m:sig 元素采用 base64 编码的内容为 Faa7vROi2VQ=。这些元素也称为元素信息项。内容是元素的子项。请将该元素当作此子项的父项。子项是字符信息项,即包含字母数字字符的项。例如,m: photo 是子项 /aWKKapGGyQ= 的父项。该子项的名称不便阅读且难于发音, 很容易出现键入错误。当通过 XOP 处理放置 XML Infoset 时,可以解决
8、此问题。XOP 的工作方式是:从原始 Infoset 提取优化内容,然后创建 XOP Infoset。优化内容是我刚刚谈到的经过缩减的内容。在清单 2 中,我突出显示了要删除的内容。/aWKKapGGyQ=Faa7vROi2VQ=清单 2. 要删除的内容XOP 处理后的 Infoset回页首XOP 处理涉及到三个步骤。第一步,使用 Infoset 中的二进制元素替换文本元素。第二步,在包含已替换元素的 Infoset 前添加MIME 包。第三步,在该 Infoset 后添加另一个包。第 1 步:替换元素XOP 包使用名为 xop:Include 的新元素信息项来替换删除的内容。xop: Inc
9、lude 元素包含一个属性信息项,带有指向 XOP 包部分的链接,XOP 包承载从原始元素中删除的数据的二进制表示。在清单 3 中,我突出显示了替换原始 Infoset 中的图片和签名元素的内容的 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/ 是图片元素的属性信息项,而href=cid:/my.hsh 是签名元素的属性信息项。更新 Infoset 部分(请参见清单 4)。而行数保持不变。清单 4. 更新后的 XML Infoset 部分m:sig xmlmime:content-type=application/pkcs7-signature第 2 步 : 在 Infoset 前 添 加 MIME 包为了完成更新,需要使用 MIME Multipart/Related 包中的 XOP 对原始 Infoset 进行序列化。XOP 是一种更有效的方法,用于序列化包含特定类型的
11、 Xquery 和 Xpath 2.0 元素内容的 XML Infoset。在更新后的 Infoset 前后各添加一个 MIME 包,以分别描述包含文本格式和二进制格式的图片和签名的 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 包如何识别已被删除的数据的二进制表示。-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 的二进制内容,xop: Include element 中提到的链接代替了 Infoset 前的消息的文本内容。回页首最终结果在清单 7 给出了序列化为 XOP 包
14、的整个 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-回页首结束语为了运行具有 XOP 包的 Web 服务,需要事先进行计划,以确定应该如何设计应用程序,从而避免高峰时过载。应该就优化 Web服务时应采用何种编码技术与系统管理员团队进行沟通。您会发现解决这些问题后,您的 Web 服务应用程序优化工作变得容易得多。您可以使用 IBM Relational Web Developer for WebSphere Software 来开发基于业务流程的 Web 服务,然后在 SOA 内部及各个 SOA 之间将其与 XOP 包一起使用。管理员会发现,解决了这些问题也使得他们的网络管理工作变得更加轻松。他们能
17、确定在不引起系统过载的前提下,可以将多少应用程序与XOP 包一起使用。回页首参考资料学习您可以参阅本文在 developerWorks 全球站点上的 英文原文。本系列的其他部分了解如何在企业级 SOA 中使用 Web 服务。Use SLAs in a Web services contextJudith Myerson 所撰写的关于服务级别协议的另一系列文章。XML-binary Optimized Packaging了解关于处理二进制格式的大型 XML 文件的其他功能和代码示例。The Complete Book of Middleware 由 Judith Myerson 撰写,主要讨论关于系统设计的基本原则和优先考虑事项,主要是由于电子商务和分布式集成系统的兴起所带来的新要求。Enterprise Systems Integration, Second Edition 了解业务概况和技术相关知识,以确保成功完成系统集成。IBM Redbook for Domino administrators了解开发服务级别协议的难点和解决办法。获得产品和技术W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省教育系统后备干部考试参考试题(含答案)
- 航道清障潜水辅助工规程
- 2027届上海市复旦初级中学七上数学期末教学质量检测模拟试题含解析
- 2025-2026学年海南省海口市初中历史七年级期末上册提升培优拓展题附答案
- Oracle数据库基础测试题(含详细答案解析)
- OEC管理模式考核试题(含详细答案解析)
- 国家基层高血压防治管理指南(2026版)培训项目试题有答案
- 2026年法律职业资格(主观题)模拟题和答案分析
- 核医学检查临床适应症专家共识(2026版)
- 医疗不良事件根本原因分析实操模板标准共识
- 大理石地面铺贴技术交底
- 2026年应急系统工贸企业储存与使用危险化学品安全题库
- 胸外科术后康复治疗指南(2026年)
- 2026血脂异常管理指南解读与实践:科学降脂护心策略
- 空调设备运输与搬运施工方案
- 2025山东东营市文化旅游体育发展集团招聘6人笔试历年难易错考点试卷带答案解析2套试卷
- 重庆谈判和《双十协定》
- 2025年渠道维护工(技师)技能理论考试题库(含答案)
- 2025年度新闻记者职业资格考试新闻基础知识练习题库及答案
- 关务基础知识课件
- DB31/T 1170-2019再生骨料混凝土砌块(砖)技术要求
评论
0/150
提交评论