将 Enterprise Service Bus 用于医疗保健
这篇由两部分组成的文章将演示各种医疗保健相关的服务通过一个服务总线进行聚合,我称 之为(可能不够准确)Healthcare Service Bus (HSB)。在第 1 部分中,我将介绍一个用例场 景,其中为病人服务的各种应用程序需要连接到 HSB,我将解释 HSB 应当提供的特性。接下来 ,我将介绍 Java Business Integration (JBI) 架构,它用于构建 HSB。按照以下顺序了解发 生在 JBI 服务器内部的事件,您将了解到 JBI 如何在内部用于业务集成,以及其组件如何与 外部应用程序协同。第 1 部分的最后一章将提供配置实例,它将演示如何控制 JBI 组件行为 ,以使其用于医疗保健。在第 2 部分中,您将学习如何使用开源 JBI 实现 (Apache ServiceMix)现有的功能以及通过实现 ServiceMix 新功能集成医疗保健服务。
医疗保健服务总线
HSB 集成了大量医疗保健相关的服务。想象一下需要救命的紧急病人的需求,包括输血、紧 急处方和放射检查。
当病人到达医疗机构,主治医生使用服务总线通过病人手机上运行的应用程序查看过敏史。 医生还可将对病人最初情况的观察输入到连接到总线的医疗处方应用程序中。医生的观察通过 服务总线传送到托管病人所在保险公司门户网站的 Web 服务器。
医生然后在相同的处方应用程序中开具输血处方。然后处方自动通过服务总线不仅传送到血 库,还传送到捐赠组织应用程序中,它将向那些血液样本预先与病人配型成功的捐赠者发送短 信。对捐赠组织应用程序的需求也通过服务总线传送。
医生还会开具紧急药物和放射检查处方,这些也输入同样的处方应用程序。处方应用程序通 过总线发送处方到医疗机构内部的药房和放射科。
服务聚合
您可以看到在该用例中,HSB 允许各种应用程序相互连通,相互操作,从而聚合服务。应用 程序的两种主要类型 — 服务使用者和服务提供者 — 连接到 HSB。向 HSB 发送输血需求的处 方应用程序作为服务使用者(请求或使用服务的应用程序)。向潜在血液捐赠者发送短信的捐 赠组织应用程序作为服务提供者(提供所请求服务的应用程序)。相互连通 和 相互操作 是不 同的需求,它们共同提供了服务聚合。相互连通 意思是服务提供者和服务使用者有一种通用方 式可以连接(到达)对方,从而可以 相互操作 对方(交互信息和消息)。HSB 使用通用的 XML 格式相互交换消息。
HSB 作为 SOA
像 HSB 这样严重依赖 “服务” 的架构称作 Service Oriented Architecture (SOA)。SOA 就是说一切皆服务。发送短信的捐赠组织应用程序是服务。放射科也是一个服务,它根据需要 进行放射检查。在 SOA 中,任何公开服务的应用程序都是服务提供者,要求、请求或使用服务 的应用程序都是服务使用者。
图 1 显示服务提供者和服务使用者连接到 HSB:
图 1. 服务提供者和服务使用者连接到 HSB
请注意 图 1 显示三个服务提供者连接到 HSB:Insurance Company Portal、Donor Group 和 Radiology Department 应用程序。HSB 应当能将服务使用者连接到内部和外部的服务提供 者,以便它们能相互操作。在 图 1 中,Radiology Department 应用程序在医疗机构内部; Donor Group 和 Insurance Company Portal 应用程序在医疗机构外部。