技术开发 频道

通过 IBM WESB 和 IBM WebSphere DataPower SOA Appliances 使 SOA

【IT168 技术文章】

    您是否在寻找一种方法来使用不同的协议(需要交换保密数据)管理应用程序间的互操作性?那么可以考虑将 IBM? WebSphere? Enterprise Service Bus 和 IBM WebSphere DataPower SOA Appliances 的功能结合在一起使用。通过本文您可以了解如何仅通过很少的代码工作就获得安全、灵活且可扩展的解决方案。

    引言

    随着各种标准和技术的大量出现,我们经常会遇到通过 Internet 集成各种系统和应用程序的问题,以及需要促进使用不同语言开发且使用不同协议和技术的组件间的互操作性。在这种情况下,同步应用程序经常作为 Web 服务实现,而且必须与基于消息的异步系统进行通信。这种情况需要连接基础设施来直接管理服务交互,让应用程序不必考虑使用不同协议、实现且位于网络不同位置的服务之间的通信。

    本系列共四个部分,将讨论卫生保健预约系统的实际场景,本文是其中的第一篇。系统采用了面向服务的体系结构(Service-Oriented Architecture,SOA),配备了 WebSphere Enterprise Service Bus。本系列文章将提供详细的步骤,帮助了解如何对其进行扩展,以实现基于消息传递中间件的新用例,并同时使用 WebSphere DataPower SOA Appliances 保证数据保密性。

    为了帮助您了解这些概念,我们决定对每个功能部分用一篇单独的文章进行讨论:

    第 1 部分假定您对 Web 服务和面向消息的框架有基本的了解,将提供此场景的完整概述,从而说明已采用的体系结构全貌。
    第 2 部分讨论系统安全相关的部分、数据加密、证书管理和 WebSphere DataPower SOA Appliances。您将通过此部分深入了解后台的情况,并了解如何配置 WebSphere DataPower SOA Appliances 及其扩展功能来提升公钥基础设施(Pblic Key Infrastructure,PKI)。
    第 3 部分将介绍企业服务总线(Enterprise Service Bus,ESB)中介模块,并说明让 ESB 识别保密信息的配置步骤。
    第 4 部分讨论从企业服务总线接收 Java? Message Service (JMS) 消息的应用程序的客户端的问题,说明如何解密敏感数据来重新构造原始消息。

    卫生保健预约系统

    医疗活动、卫生保健系统和医院通常使用某种类型的卫生保健预约系统来改进客户预约工作,提高运作效率和降低成本。预约系统是患者的唯一访问点,可帮助他们找到距离自己最近的医生、更快得到特殊护理、安排延迟时间不长的预约或重新安排现有预约。患者通常通过电话或网络与预约系统交互。

    集成的卫生保健系统还可以包含家庭保健机构、放射治疗机构、物理治疗机构、长期护理服务和其他健康相关的实体。注册为卫生保健服务提供者后,他们都可以享受中央预约系统的好处。他们可以选择完全委托预约管理,或仍然将内部预约系统和新系统同时使用。

    如图 1 中所示,卫生保健预约系统包括中央预约系统和由各个卫生保健中心管理的本地系统。中央预约系统提供用于添加新卫生保健中心的 Web 服务界面 (registerNewPartner)。反过来,每个卫生保健中心必须实现一组 Web 服务界面来与中央卫生保健系统进行交互(makeReservation、queryReservation、cancelReservation)。

    正如您看到的,我们已经确定了与系统交互的两个角色:

    合作伙伴执行一组基本管理任务,如注册新合作伙伴和发布日程表。
    患者代表对查询系统进行预约或重新预订感兴趣的预约系统的一般用户。

    图 1 给出了基本流程:


图 1. 卫生保健预约系统
 

    让我们逐个分析一下图 1 中所看到的内容:

    1.希望利用中央预约系统提供的优势的卫生保健中心可以将自己注册为合作伙伴,并提供患者可以预约的服务和可用时间段列表(红色):合作伙伴使用 Web UI (1.1) 与系统交互,调用 registerNewPartner (1.2),而数据存储在卫生保健预约系统数据中 (1.3)。
    2.患者提供所有所需的信息来完成初始表格 (2.1) 并将收到满足搜索条件的选择列表(蓝色)。
    3.患者使用 Web UI 提交预约请求 (3.1)。中央预约系统 (3.2) 需要在运行时在线事务期间查找合作伙伴服务,以便系统查找满足患者需求的可用提供者。此任务由 WebSphere Enterprise Service Bus 完成,后者允许更高级别的抽象,可隐藏服务位置的细节并提供中介、动态查找、路由和日志记录支持 (3.3)。系统将请求转发到卫生保健提供者待批(即调用 makeReservation Web 服务)(3.4) 并最终向患者确认预约。

    本系列将说明如何扩展系统功能来支持新卫生保健中心合作伙伴类型。这些大部分是没有本地预约系统的小机构。他们委托外部系统管理其日程表,每天连接一次(或很少连接)来获取新预约。与此类提供者预约时段的患者不会立即获得确认。中央预约系统会稍后在提供者连接时发送电子邮件,获取日程表,然后确认预约。为了支持此类诊所,中央预约系统在处理请求时会更新日程表并将其发布给合作伙伴。

    您需要考虑以下事项:

    *诊所通常并不随时在线,因此必须保证可靠地交付日程表,甚至使用者临时断开连接也应如此。
    *由于这些诊所可能通过慢速链接进行连接,因此必须限制发送的数据量。
    *日程表中包含的数据要严格保密,因此必须采用某种方式对其进行保密。保密性在异步场景中有些麻烦,因为不能应用 PKI 技术中使用的客户端和服务提供者之间的一对一交互。对于一对一交互,服务公钥的使用非常明确。但当涉及多个服务提供者时,问题就成了“系统将使用谁的公钥进行加密?”

0
相关文章