加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 综合聚焦 > 酷站推荐 > 酷站 > 正文

用XML、XQuery和本机XML数据库技术加速SOA

发布时间:2017-10-10 14:27:28 所属栏目:酷站 来源:ITPUB论坛
导读:本文考察了如何提升 SOA 的性能和可伸缩性,详细介绍了在中间层使用 XQuery 支持结合 XML 持久的 SOA 设计所带来的好处。FastSOA 设计结合使用了本机 XML 持久性和 XQuery,因此每次收到服务调用时,中间层都要决定是使用以前请求的缓冲值响应,还是传递请求

    FastSOA 解决方案

    FastSOA 是解决这些问题的一种体系结构和软件编码实践:

    FastSOA 通过减少 Java 对象的需要,更多使用本机 XML 环境提供 SOAP 绑定来解决 SOAP 绑定(代理)性能问题。
    FastSOA 引入了中间层服务缓冲来加快 SOA 服务。
    FastSOA 使用本机 XML 持久性来避免 XML 到关系数据库的转换造成的性能问题。
   
    下图显示了 FastSOA 体系结构。

    图 4. FastSOA 体系结构

用XML、XQuery和本机XML数据库技术加速SOA

    FastSOA 体系结构与现有的基于 Web 的基础结构结合在一起,作为中间层缓冲部署来接收服务消费者的请求。比如,一个消费者向服务发出 SOAP 请求。中间层缓冲提供 SOAP 绑定(代理)。绑定调用 XQuery 在 XQuery 引擎处理 XML 请求文档。XQuery 检查缓冲,查看以前是否收到该请求;在这种情况下,FastSOA 服务可以从缓冲中返回响应,不需要逆流而上再请求服务。该过程通过缓冲加快 SOA 执行从而实现了 SOA 提速。

    FastSOA 方法的优点包括:

    服务端点是标准的。对于应用程序的其他部分而言,FastSOA 中间层缓冲就像是一种服务。
    不需要修改现有的系统或代码。FastSOA 中间层缓冲作为一种数据聚合和迁移服务嵌入到已有的数据中心。
    如果上游服务暂时不能用,当服务离线的时候,FastSOA 方法提供了一种浏览缓冲数据的机制。
    通过缓冲服务的请求降低了为支持消费者和服务之间的通信通常所需的带宽要求。
    为了从实践的角度理解 FastSOA,考虑下面的应用程序。

    XML 的例子

    General Motors 采用 SOA 模式创建服务,让汽车代理商使用基于 ebXML 的模式和协议从生产厂家订购零部件。该服务能够识别 Software Technology in Automotive Retailing (STAR) 组织的一种 XML 模式。STAR 是大型汽车厂商共同努力的结果,其中包括 GM。STAR 创建并维护 Business Object Document (BOD) 模式,定义了目录检查请求(以及其他许多东西)。

    CheckInventory 请求检查请求者和目录的级别与状态。服务消费者根据 STAR 模式创建目录请求文档。消费者将文档编组成请求,并通过网络发送给服务。服务发回目录状态响应说明库存中有哪些零部件。

    通过降低网络带宽的需要和减少为了响应冗余请求而造成的服务带宽需要,零件订购服务可以从 FastSOA 模式中受益。

    比方说,汽车零售商的零件目录响应中包含一个 Time-To-Live (TTL) 元素。TTL 元素定义了响应有效的秒数。比如 GM 可能将其设为 60 秒。在这 60 秒内,FastSOA 用中间层存储的目录响应缓存响应目录请求。这样服务就减少了带宽的使用,并缩短了请求响应时间。

    下表说明了如何计算网络中的服务提速效果,这些服务位于本地网络之外的服务器上,FastSOA 数据缓冲收集服务在本地网络中。

    表 1. 计算服务加速效果

用XML、XQuery和本机XML数据库技术加速SOA

    在 FastSOA 实现中,用 XQuery 实现零部件订购服务。XQuery 请求目录服务,读取响应的内容,在运行时确定是否可以使用以前存储的响应而不必再次请求目录服务。

    这样就在服务环境中实现了 FastSOA 数据缓冲收集体系结构。XQuery 和本机 XML 数据库提供了重用以前缓冲响应数据的服务,只要请求与以前的请求匹配并且数据仍然不过时。结果是服务提速了。

    FastSOA 技术选择

    可以使用 Java 代码和关系数据库技术实现 FastSOA 体系结构。但是,在测试使用 Java 对象创建的服务绑定和使用关系数据库持久 XML 时,我发现了重要的性能和可伸缩性问题。这些问题很突出,考虑使用 XQuery、XSLT 和本机 XML 数据库技术很有必要。

    我对 XQuery 感兴趣,是因为它是作为应用程序开发的本机 XML 环境来实现的。与早期的 Java 技术非常相似,XQuery 社区充满了扩张和证明 XQuery 是一种开发平台的活力。实际上,多数 XQuery 实现都经过扩展超出了 XQuery 标准,以便 XQuery 能够进行 SOAP 请求。比如,XQuery 可以查询其他服务、J2EE 对象和通过 JDBC、SOAP、JMS 协议查询数据源。此外,已经有 10 种或更多非常可靠的商业化和开放源码 XQuery 实现。

    最后,FastSOA 使用本机 XML 数据库作为中间层缓冲,因为 SOA 数据通常采用 XML 编码格式,而关系数据库在持久存储和索引 XML 这样的层次性非结构化数据方面有很大不足。存储 XML 数据的关系数据库通常使用大型二进制对象(BLOB)字段类型存储 XML。不仅效率低,而且很难建立索引以便快速搜索。对于流数据采用关系方法通常也不是最佳办法。如果在基于 Web 服务的网络中发送 XML 消息,最好用基于流的方法处理该消息,而关系数据库对此无能为力。

    FastSOA 的未来

    除了本文所述的 SOAP 绑定性能改进之外,采用中间层服务缓冲还会为企业带来很多好处。其他好处包括中间层模式转换、服务版本化、策略选路和服务质量(QOS)处理。比如,FastSOA 提供了中间层 XML 消息模式转换,以便保证需要不同和不兼容的消息类型的服务之间的兼容性。

    结束语

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读