alphaWorks demo 演示了如何通过简单的方式(不使用映射)在 pureXML 数据库中存储和查询 XML(特别是行业格式,如 HL7)。还介绍如何通过 Web 服务、RESTful 服务、Atom Feed 和 Xform 来检索数据。本文仅使用 Web 服务选项。
alphaWorks 演示和举例说明如何创建一个通用服务层,以便通过公开一组简单的 CRUD(创建、替换、更新和删除)和查询服务来访问存储的消息。该演示使用 DB2 pureXML 列(XML 集合)来存储 XML 文档。如果 XML 格式的结构得到了改进,它仍可以继续存储在相同的表格中,而不用进行任何显著的修改,如重新映射。
alphaWorks Web 服务接口提供了多个检索方法。其中的两个检索方法是:
getXMLDocumentByKey:返回特定的 XML 文档
runxquery:在表中的 XML 文档上执行 XQuery 查询
本例使用后一个方法,该方法使用 DB2 pureXML 功能在数据库的 XML 列上执行 XQuery 查询。在中介模块中,此 XQuery 使用药品的 UUID 表示,并调用 Web 服务方法来检索匹配的药品文档。
清单 2 显示了 alphaWorks HL7 服务接口的部分内容。其中显示了要在 alphaWorks SPL 数据服务上调用的 runxquery 操作的定义。
清单 2. alphaWorks HL7 SPL 数据服务的 WSDL 接口演示
…
<element name="runxqueryResponse">
<complexType>
<sequence>
<element name="queryresult">
<complexType>
<sequence>
<element ref="tns:runXQuery"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
<element name="runxquery">
<complexType>
<sequence>
<element name="query" type="string"/>
</sequence>
</complexType>
</element>
<message name="runxquerySoapInput">
<part element="xsd1:runxquery" name="request"/>
</message>
<message name="runxquerySoapOutput">
<part element="xsd1:runxqueryResponse" name="response"/>
</message>
<portType name="theSoapPortType">
…
<operation name="runxquery">
<input message="tns:runxquerySoapInput"/>
<output message="tns:runxquerySoapOutput"/>
</operation>
…
</portType>
…
中介模块
我们的实现依赖于 WebSphere ESB 中介功能来实现中介流,该中介流可实现描述的场景。中介流负责接口转换和服务调用;它调用内部服务来获得药品 UUID,然后使用药品 UUID 来调用 alphaWorks 服务,并向调用方返回结果 HL7 文档。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
总线技术究竟该不该用?
曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。
-
从ESB到微服务:如何演变?
从web开发人员的角度看,大量的微服务部署到轻量级的Karaf 容器中,这就符合了ESB的定义。
-
企业IT架构术语之Amazon Dynamo数据库
Dynamo可以用来形容一个精力充沛的人。不用如此惊讶,Amazon Dynamo数据库的创建正是要延续这一理念。