在We here和DB2中使用标准数据格式

文章作者 100test 发表时间 2007:09:06 12:08:47
来源 100Test.Com百考试题网


  许多行业在努力实现更高级别的标准化,以促进公司之间及其外部业务合作伙伴之间的相互交互和数据交换。为实现这一目标,各行各业都制定了特定于各自业务的标准,以保证各方之间信息的一致性,并确保遵守任何适用的法律和法规。例如,行业标准数据格式包括保险业的 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 体系结构

  在图 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. 具体的示例体系结构
图 2. 具体的示例体系结构

  清单 1. ESB 导出的服务的 WSDL 接口








type="xsd:string"/>


























相关文章


DB2V9pureXML在企业中的典型应用
把DB2V8数据库系统迁移到DB2V9
在We here和DB2中使用标准数据格式
SQLServer2008新版CTP特性解读
恢复整个SQL数据库还是只恢复错误文件组
JAVA几个常见错误简析
Java学习路径(三)过程篇
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛