DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 988|回复: 0
打印 上一主题 下一主题

[待整理] 在WebSphere和DB2中使用标准数据格式

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 15:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
许多行业在努力实现更高级别的标准化,以促进公司之间及其外部业务合作伙伴之间的相互交互和数据交换。为实现这一目标,各行各业都制定了特定于各自业务的标准,以保证各方之间信息的一致性,并确保遵守任何适用的法律和法规。例如,行业标准数据格式包括保险业的 ACORD、金融衍生行业 (financial derivative) 的 FpMLfinancial、金融贸易业的 FIXML、抵押业的 MISMO以及联邦政府应用的 GJXDM 及其他。制药业也在努力进行多方面的标准化工作,其中包括 Health Level 7 (HL7) 标准。HL7 的目标定位在多个领域和场景,每个标准在整个工作中都表示一个单独的构件。其中的一个示例是“结构化产品标记”标准,它是在本文中使用的示例标准。  业务场景
  在美国,每种处方药都必须经过食品与药物管理局 (FDA) 的批准。在审批过程中,必须将有关药品的详细信息提供给食品与药物管理局,还必须提供所有可能的分销商信息,如药房、医院等。必须提供的确切信息在一个名为 HL7 结构化产品标记 (SPL) 的标准 XML 模式中描述,它是 HL7 标准的一部分。
  该标准最初是以 PDF 文档格式进行描述的,该标准的当前版本定义了一个完整描述药物的 XML 模式,其中包括商标名称、类属名、剂量表、活性成分和非活性成分等等。包括的信息主要供医药公司向食品与药物管理局提出申请,以便得到对处方药的批准,食品与药物管理局要求必须以标准格式提供这些信息。后来公众可以通过注册获得这些信息,但各国的提供方式又各不相同。在美国,SPL 信息可以通过 National Library of Medicine 获得。因此,该标准除了作为一种有用的工具便于信息交换外,法律也强制要求遵守此标准,这也是该标准受到广泛支持的重要原因。
  本文描述一个虚构的医药公司,介绍如何设置可供客户和食品与药物管理局访问的 Web 服务,以便获得其药品的 SPL 文档。符合 SPL 的实际数据存储在 DB2 Version 9 pureXML 数据库中。Web 服务通过企业服务总线 (ESB) 公开,后者使用 WebSphere ESB 产品实现。将这两种产品集成在一起有助于提供这样一个解决方案,即通过标准 Web 服务接口公开 SPL 服务。
  尽管本文中的示例基于卫生保健行业的标准,但这种方法同样适用于所有基于 XML 的其他特定行业标准。
  使用企业服务总线构建解决方案
  ESB 可以向公司内部企业网络的内部和外部使用者公开一些虚拟的服务接口。这些接口之所以是虚拟的,是因为它们向服务请求程序提供的数据和功能与实际的服务提供程序所提供的不相同,无论是在协议、位置方面还是在数据格式方面都不相同。ESB 可以将服务提供程序提供的数据格式映射到请求程序,具体方法是通过直接转换实现(例如,使用 XSLT 样式表),或者使用从其他数据源检索的数据进行增补。如果必须向一些新的使用者提供现有功能或数据(可能需要支持某种标准),ESB 可以进行必要的处理而不会影响现有的应用程序。
  在此虚拟的场景中,医药公司希望将其药品信息以上文描述的标准化 SPL 格式公开。此公司使用 DB2 Version 9 pureXML 存储实际数据,利用产品的内置支持来处理 XML 数据。该信息是通过 ESB 进行访问的,ESB 接收对 SPL 信息的请求,并将这些信息转发到内部服务,内部服务本身不处理这些信息,而是返回技术信息,使 ESB 能够从数据库中检索符合 SPL 的文档。图 1 显示了解决方案的体系结构。
图 1. ESB 体系结构

  在图 1 中,ESB 使用内部服务提供程序和 Web 服务接口在 DB2 pureXML 上检索 SPL 信息,然后将检索到的信息以 XML 文档的形式返回给请求程序。此外,ESB 还可以作为 Web 服务直接公开数据库的 XQuery 功能,而不必使用任何其他内部服务提供程序。内部服务的具体利用方式对请求程序是完全透明的,因为请求程序仅使用 ESB 提供的虚拟服务接口。
  本文的其余部分将介绍如何构建此类解决方案,在该解决方案中,当 WebSphere ESB 中运行的中介模块从内部服务提供程序获得所需的 UUID 信息后,将显式调用 DB2 pureXML 提供的 XQuery 功能。

         具体示例
  图 2 中描述的示例是在 Industry Formats and Services with pureXML technology demonstration 的基础上构建的,该演示提供了一个 Web 服务包装,用于访问存储在 DB2 pureXML 中的 HL7 示例文档。我们将利用 alphaWorks Web 服务包装,并从 ESB 中介模块访问它。若要在存储于 DB2 pureXML 中的 HL7 文档上组合 XQuery,并将其传递到 alphaWorks Web 服务包装,您需要有一个药品 UUID。由于不能确定用户是否知道药品 UUID,因此另一个内部 Web 服务使用药品名作为输入并返回其相应的 UUID。这样,通过中介模块按顺序调用两个服务实现了以药品名作为输入的单个用户请求。通过这种方式,ESB 公开的服务接口隐藏了该解决方案的内部复杂性,其中包括在调用 alphaWorks 服务之前 XQuery 的组合方式。清单 1 显示了由 ESB 导出到使用者的服务的 WSDL 接口。(这里没有包括内部服务接口;它是一个相当简单的 Web 服务,该服务返回带有药品 UUID 的字符串。)
图 2. 具体的示例体系结构

  清单 1. ESB 导出的服务的 WSDL 接口
<?xml version="1.0" encoding="UTF-8"?>
            <wsdl:definitions …>
              <wsdl:types>
                <xsd:schema …>
                  <xsd:element name="getSPLInfo">
                    <xsd:complexType>
                      <xsd:sequence>
                        <xsd:element name="medicationName" nillable="true"
              type="xsd:string"/>
                      </xsd:sequence>
                    </xsd:complexType>
                  </xsd:element>
                  <xsd:element name="getSPLInfoResponse">
                    <xsd:complexType>
                      <xsd:sequence>
                        <xsd:element name="SPLDocument" nillable="true"/>
                      </xsd:sequence>
                    </xsd:complexType>
                  </xsd:element>
                </xsd:schema>
              </wsdl:types>
                <wsdl:message name="getSPLInfoRequestMsg">
                <wsdl:part element="tns:getSPLInfo" name="getSPLInfoParameters"/>
              </wsdl:message>
                <wsdl:message name="getSPLInfoResponseMsg">
                <wsdl:part element="tns:getSPLInfoResponse" name="getSPLInfoResult"/>
              </wsdl:message>
                <wsdl:portType name="MedicationSPL">
                <wsdl:operation name="getSPLInfo">
                  <wsdl:input message="tns:getSPLInfoRequestMsg" name="getSPLInfoRequest"/>
                  <wsdl:output message="tns:getSPLInfoResponseMsg" name="getSPLInfoResponse"/>
                </wsdl:operation>
              </wsdl:portType>
            </wsdl:definitions>

……
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-27 15:24 , 耗时 0.091978 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表