張貝貝,李成偉,張方
武漢大學中南醫院 信息中心,湖北武漢 430071
基于SOA架構的醫療服務管理平臺的設計與實現
張貝貝,李成偉,張方
武漢大學中南醫院 信息中心,湖北武漢 430071
目的 通過SOA服務管理平臺,實現臨床信息系統的數據交互與共享。方法 分析醫療信息系統之間數據共享與交互的現狀,提出基于JBOSS ESB的SOA架構醫療服務管理平臺解決方案。平臺主要包括服務注冊中心、服務控制中心、服務統一調度中心、服務異常監聽等功能。結果 基于SOA架構的服務管理平臺為上述服務提供了統一接口,實現了醫院各信息系統間服務的規范化統一管理,避免了各系統重復開發接口。結論 該平臺提供統一的服務訪問接口,屏蔽了不同技術不同協議系統之間的數據不能共享及不能交互問題,同時也提升了醫院各信息系統運維及管理水平。
醫院信息系統;醫療服務管理平臺;SOA架構;服務注冊
隨著醫療信息化的發展,在醫療衛生服務過程中,大家迫切希望建立適用的共享衛生信息系統,使醫療服務人員能及時獲取必要的信息,提升醫療服務質量。醫院信息系統是分階段由不同廠商建設的,并采用不同技術實現,普遍存在“信息孤島”現象。楊宏橋等[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(超文本傳輸協議)三種協議服務的注冊、審核、管理。服務使用申請及審核、調度、異常監聽等動能,即提供統一的服務訪問接口。
SOA(Service Oriented Architecture,面向服務的架構)是一個組件模型,它將應用程序的不同功能單元服務通過定義服務間良好的接口和協議聯系起來[6]。其接口是采用中立的形式進行定義的,獨立于實現服務的軟硬件平臺,這樣使得系統中的服務可以以一種統一、通用的方式進行交互。SOA作為一個技術架構,決定了不依賴某個特定的技術和平臺環境來實現。我國SOA應用目前主要是幫助人們解決“信息孤島”,以系統集成的途徑整合已有系統實現信息共享[7-8]。
ESB(企業服務總線)從SOA發展而來,是傳統中間件技術與XML、Web服務等技術結合的產物。ESB是在SOA架構中實現服務間智能化集成與管理的基礎架構。
JBOSS ESB是JBOSS推出的ESB的實現,也是JBOSS的SOA產品的基礎,JBOSS ESB是一個基于消息的中間件,且是面向服務的。服務是指具有實現業務邏輯的服務,也可以是一個實現路由,或者數據轉化的服務。
基于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”當有多個參數時,采用“&”連接,直接用于瀏覽器。
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
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.
hospital information system; hospital service management platform; service-oriented architecture; service registration
TP393.03
A
10.3969/j.issn.1674-1633.2016.01.030
1674-1633(2016)01-0102-03
2015-06-08
2015-09-07
本文作者:張貝貝,醫院信息中心工程師。
作者郵箱:416262794@qq.com