基于SOA架构的医疗服务管理平台的设计与实现

张贝贝,李成伟,张方

武汉大学中南医院 信息中心,湖北武汉 430071

[摘 要]目的 通过SOA服务管理平台,实现临床信息系统的数据交互与共享。方法 分析医疗信息系统之间数据共享与交互的现状,提出基于JBOSS ESB的SOA架构医疗服务管理平台解决方案。平台主要包括服务注册中心、服务控制中心、服务统一调度中心、服务异常监听等功能。结果 基于SOA架构的服务管理平台为上述服务提供了统一接口,实现了医院各信息系统间服务的规范化统一管理,避免了各系统重复开发接口。结论 该平台提供统一的服务访问接口,屏蔽了不同技术不同协议系统之间的数据不能共享及不能交互问题,同时也提升了医院各信息系统运维及管理水平。

[关键词]医院信息系统;医疗服务管理平台;SOA架构;服务注册

0 前言

随着医疗信息化的发展,在医疗卫生服务过程中,大家迫切希望建立适用的共享卫生信息系统,使医疗服务人员能及时获取必要的信息,提升医疗服务质量。医院信息系统是分阶段由不同厂商建设的,并采用不同技术实现,普遍存在“信息孤岛”现象。杨宏桥等[1]通过Web Service和XML技术建立了一种基于SOA的医疗信息系统集成基础架构,实现了全局一致的医疗信息共享模式。辛小霞等[2]提出SOA区域医疗信息共享平台框架,说明了框架的可用性及有效性。孙万驹等[3]研究了Web Service技术框架构建SOA应用软件,优化临床路径。张丽等[4]采用Web Service技术实现SOA架构,实现了远程挂号、远程开单、远程诊断结果获取等功能。

目前大多采用Web Service技术实现SOA架构,ESB即企业服务总线,它弥补了传统的基于Web Service集成技术点对点连接的缺陷[5]。本文提出的SOA医疗服务平台是基于JBOSS ESB开源产品,实现了SOAP(简单对象访问协议)、JMS(Java消息服务)、HTTP(超文本传输协议)三种协议服务的注册、审核、管理。服务使用申请及审核、调度、异常监听等动能,即提供统一的服务访问接口。

1 SOA技术介绍

SOA(Service Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元服务通过定义服务间良好的接口和协议联系起来[6]。其接口是采用中立的形式进行定义的,独立于实现服务的软硬件平台,这样使得系统中的服务可以以一种统一、通用的方式进行交互。SOA作为一个技术架构,决定了不依赖某个特定的技术和平台环境来实现。我国SOA应用目前主要是帮助人们解决“信息孤岛”,以系统集成的途径整合已有系统实现信息共享[7-8]

ESB(企业服务总线)从SOA发展而来,是传统中间件技术与XML、Web服务等技术结合的产物。ESB是在SOA架构中实现服务间智能化集成与管理的基础架构。

JBOSS ESB是JBOSS推出的ESB的实现,也是JBOSS的SOA产品的基础,JBOSS ESB是一个基于消息的中间件,且是面向服务的。服务是指具有实现业务逻辑的服务,也可以是一个实现路由,或者数据转化的服务。

2 基于SOA的医院服务管理平台设计

基于SOA的医院服务管理平台,可统一规划管理服务、建立SOA资源库,进而整合医院业务系统服务,最终形成医院信息服务库,供各信息系统使用。通过服务的重用,提高系统资源的利用率。基于SOA的医院服务管理平台框架设计,见图1。

图1 SOA服务平台架构

SOA服务平台包括服务注册中心、ESB服务总线、服务控制器、服务调度器、异常监听器、服务访问接口。其中ESB服务总线、服务调度器、服务控制器、异常监听器基于JBOSS ESB改造,而SOA服务平台服务注册、服务访问是基于Web和ESB服务总线,以接口的方式进行开发的。

2.1 服务注册中心

服务注册中心用来存储管理服务平台下的所有服务及服务描述。服务注册中心提供服务分类、服务注册、服务存储、服务发布、服务开启、服务停止、服务检索等功能。服务注册中心是基于Javaweb与Tomcat开发部署的Web项目,支持SOAP、JMS、HTML三种协议的注册,这三种协议是最常用的协议服务,能满足医院服务平台实现临床信息系统数据共享与交互的目的。Web Sevice接口可发布为SOAP服务,如医院信息系统(HIS)提供给其他系统的基本信息类(如医院信息、患者信息、科室信息等)接口,不用针对每个系统做一个接口。消息类服务可发布为JMS服务,如检验科向临床科室发送危机值、CT室向临床发送患者检查预约消息等。Web页面可发布为HTTP服务,HTTP服务真实URL是不可见的,如Web病历查询服务。

SOA服务注册中心包括普通用户、管理员、审核员三类角色。① 普通用户:具有查询服务、注册服务、修改服务、升级服务、注销服务、查看发布服务、订阅JMS消息、取消订阅、查询订阅、修改订阅的权限;② 审核员:具有查询服务、审核服务、审核订阅权限;③ 管理员:具有服务管理权限,服务管理包括查询服务、发布服务、取消发布,启动服务、停止服务等。

2.1.1 服务注册

服务注册包括服务编号、服务分类、服务名、服务版本、服务提供商、服务描述等基本信息,及服务的元数据信息(如访问地址、配置文件等),服务注册成功后,服务数据存储于数据库中。

2.1.2 服务审核

审核员对注册的服务进行审核,包括通过和不通过审核,并填写审核意见。

2.1.3 服务发布

审核通过后由管理员发布,服务发布时系统将存储于数据库的服务元数据取出并生成ESB服务发布到JBOSS ESB服务器中。ESB服务以名称为服务编号.esb的文件夹存在于JBOSS ESB服务器中。取消发布,将ESB服务从JBOSS ESB服务器中移除。

2.1.4 服务启动

服务发布成功后,才能启动服务;启动状态的服务才可以被使用。

2.1.5 服务检索

服务使用者可登录SOA注册中心,查询发布的有效服务,可订阅需要的服务,订阅通过审核后,可查询到服务编号,及调用服务所需参数。

2.2 ESB服务总线

ESB服务总线主要包含转换器、消息路由器、消息过滤器、连接器。

ESB服务总线的主要功能:客户端通过服务调用接口与ESB管道连接;监听器通过监听管道获取客户端消息、消息过滤、消息转换、消息路由,交由服务端消息处理;获取服务端返回消息,将消息转换并通过管道返回给客户端。

ESB功能的实现由SOA服务实例(或者叫SOA服务)来完成。一个SOA服务实例对应一个SOA服务配置文件。消息的接收、转发,消息格式的转换,消息的路由等功能都写在SOA服务配置文件里。SOA服务配置文件包括两部分:管道(Providers)和服务(Services),Providers包含各种类型的Provider,Provider节点下可配置多个管道,用于消息的传输。Services由多个Service组成,一个Service对应一个ESB服务,Service节点下包括Listeners和Actions。Listeners下监听器用于监听对应的管道,Actions下的Action用于处理相应接口请求,可以实现过滤器、转换器、路由器功能。

2.3 服务调度器

服务调度器是服务平台的核心,它负责接收服务访问接口的服务请求,由它来负责调用相应的服务,再将调用结果返回给服务访问接口。服务调度器的功能包括接收服务请求、查询服务注册中心、动态路由服务请求消息、传输服务处理结果。服务调度器是基于JBOSS ESB开发的服务项目,服务调度器支持HTTP协议和SOAP协议两种方式调用SOA服务。服务调度器功能示意图,见图2。

图2 服务调度器功能示意图

2.4 服务控制器

服务控制器是基于Javaweb与JBOSS开发的Web项目。服务控制器由Web Service技术实现,对外不可见。它实现服务的实际发布(发布服务时配置文件修改、统一分配端口),以及取消发布、启动、停止等,并提供接口供服务注册中心调用。所有操作在服务注册中心的服务管理中完成。

Web Service接口参数为:操作类型、SOA服务唯一编号。其中操作类型包括:发布服务、取消发布、启动服务、停止服务。返回参数为XML格式字符串(0为返回正常;1为返回错误;2为操作类型错误;3为服务ID为空;9为服务接口异常)。

2.5 异常监听

异常监听是在服务调度器请求外部服务时,实时监听外部服务的响应情况,当外部服务请求出现网络不通、请求超时等异常时,监听器会捕捉到异常,并进行异常处理,之后再由服务调度器将异常情况组织成标准处理信息返回给请求客户端。异常监听器逻辑流程,见图3。

图3 异常监听逻辑图

异常监听器在服务发生异常时,对异常信息进行记录、处理,以便后续对服务的改进、完善。

2.6 服务访问接口

服务访问接口负责接收服务请求者的请求,并将其转发到服务调度器,再接收服务返回结果,并将结果返回给服务调用者。服务访问接口为SOA服务平台对外提供的统一访问接口,支持两种不同的访问协议(HTTP、SOAP),满足不同场景的使用。

SOAP统一访问接口参数:服务编号为SoaId、方法名为Method、参数键值对象为Params,均为字符串类型。

HTTP统一访问接口:http://localhost:端口号/服务编号/http/soa,当有参数传递时,在服务访问url地址后添加“?参数名1=参数值1”当有多个参数时,采用“&”连接,直接用于浏览器。

3 总结

SOA服务平台屏蔽了不同技术不同协议系统之间的数据共享与交互问题,提供统一的服务访问接口,使得临床信息系统能够采用相同的方式访问已启动的服务;提供异常监听器,保障服务使用过程中出现异常后,能够正确提示调用系统,并提醒管理员解决问题;提供ESB服务总线、服务控制器、服务调度器保障服务的调用、响应及异常监听等整个SOA服务平台的正确运转。依托服务的松耦合性和重用性,使医疗服务平台提高了医疗信息化建设的效率,简化了开发与维护工作,降低了开发与维护成本,提升了医院管理与服务水平。但是如何梳理医疗信息资源、编排流程以真实再现业务实际,需要进一步研究。

[参考文献]

[1] 杨宏桥,吴飞,刘玉树.基于SOA的医院信息系统集成研究[J].医疗卫生装备,2008,29(1):38-40.

[2] 辛小霞,吴汝明,邹赛德,等.一种基于SOA的区域医疗信息共享平台框架模型[J].中国数字医学,2010,5(11):33-35.

[3] 孙万驹,何安勇,朱海燕.SOA技术在区域医疗机构信息共享中的应用研究[J].计算机应用与软件,2013,30(7):255-258.

[4] 张丽,常建国,郭凌,等.基于SOA架构的医联体信息系统研究与实现[J].中国医疗设备,2014,29(2):59-61.

[5] 林泳孳,黄晨晖.面向企业应用集成的ESB框架的研究[J].计算机应用,2010,30(6):1658-1660.

[6] 叶云.基于SOA的应用系统的设计与实现[D].长沙:中南大学,2010.

[7] 俞晓锋.基于SOA的企业信息系统集成架构研究[D].长春:吉林大学,2014.

[8] 王潮阳,袁媛,董建.SOA应用分析及最新标准化进展[J].技术热点,2012,(3):40-43.

Design and Realization of the Medical Service Management Platform Based on SOA

ZHANG Bei-bei, LI Cheng-wei, ZHANG Fang
Information Center, Zhongnan Hospital of Wuhan University, Wuhan Hubei 430071, China

Abstract:Objective To realize data sharing and interaction between clinical information systems through the service-oriented architecture (SOA) service management platform. Methods The current status of data sharing and interaction between different medical information systems was analyzed. The solution of SOA based on JBOSS ESB was proposed. Results This paper designs a SOA based JBOSS ESB, including the service registration center, the service control center, the unifi ed service dispatch center, and the service exceptions listener. Conclusion The medical service management platform has provided the standardization of the unifi ed management of various interfaces and services. It also helps avoid the duplication of development and prevent the problems that data from different systems cannot be shared or interacted, and thus improves the operation and management of the information systems.

Key words:hospital information system; hospital service management platform; service-oriented architecture; service registration

[中图分类号]TP393.03

[文献标志码]A

doi:10.3969/j.issn.1674-1633.2016.01.030

[文章编号]1674-1633(2016)01-0102-03

收稿日期:2015-06-08

修回日期:2015-09-07