湯春球,唐建生,莫易敏
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
近年來,我國(guó)鐵路交通發(fā)展迅速,為了保障鐵路運(yùn)輸?shù)陌踩⒏咝c可靠,機(jī)務(wù)部門的現(xiàn)代化建設(shè)顯得尤其重要。而隨著信息化的不斷發(fā)展,通過信息化技術(shù)實(shí)現(xiàn)機(jī)務(wù)生產(chǎn)效率的提升,已經(jīng)得到了中國(guó)鐵路總公司的大力支持。目前,機(jī)務(wù)段內(nèi)雖然已經(jīng)設(shè)計(jì)和研發(fā)了很多針對(duì)業(yè)務(wù)部門實(shí)際工作流程的系統(tǒng),如機(jī)車整備管理系統(tǒng)、機(jī)車檢修管理系統(tǒng)、機(jī)車運(yùn)用管理系統(tǒng)、機(jī)車救援管理系統(tǒng)及乘務(wù)員出退勤管理系統(tǒng)等。但由于其各信息系統(tǒng)相互獨(dú)立,系統(tǒng)之間的數(shù)據(jù)不能共享,影響了機(jī)務(wù)信息化的整體效果。所以科學(xué)利用、擴(kuò)充信息網(wǎng)絡(luò),合理整合信息資源,建立機(jī)務(wù)信息資源集成平臺(tái)是十分必要的?;赟OA的鐵路機(jī)務(wù)信息集成平臺(tái)整合各現(xiàn)有機(jī)務(wù)系統(tǒng)安全信息資源,形成了機(jī)務(wù)信息系統(tǒng)統(tǒng)一的信息化基礎(chǔ)平臺(tái)。該平臺(tái)以面向服務(wù)的架構(gòu)SOA為核心,以Web Service和企業(yè)服務(wù)總線等技術(shù)為支撐,實(shí)現(xiàn)各系統(tǒng)間的數(shù)據(jù)共享和功能集成。通過該平臺(tái)可對(duì)機(jī)車運(yùn)用、檢修、整備過程信息進(jìn)行監(jiān)控、記錄和統(tǒng)計(jì)分析,并建立起機(jī)車、機(jī)車乘務(wù)員和機(jī)務(wù)設(shè)備之間信息的動(dòng)態(tài)聯(lián)系,從而為機(jī)務(wù)段的生產(chǎn)和決策提供數(shù)據(jù)支持。
面向服務(wù)的架構(gòu)(service-oriented architecture,SOA)是一種構(gòu)造分布式系統(tǒng)的方法,將應(yīng)用系統(tǒng)中各功能單元以服務(wù)的形式提供給用戶,并通過定義服務(wù)接口、服務(wù)契約將各功能單元聯(lián)系起來,實(shí)現(xiàn)對(duì)不同服務(wù)的封裝[1]。利用SOA可將功能與業(yè)務(wù)分離開來,使得服務(wù)能夠重用,并降低各服務(wù)間的耦合度,而且其以一種標(biāo)準(zhǔn)語(yǔ)言的形式對(duì)外發(fā)布,支持業(yè)務(wù)轉(zhuǎn)換為一組相互鏈接的服務(wù),并在需要時(shí)通過網(wǎng)絡(luò)進(jìn)行訪問,從而將分散于各地且采用不同技術(shù)的服務(wù)進(jìn)行組合,使整個(gè)信息平臺(tái)的功能可以快速適應(yīng)不斷變化的客觀條件和需求,最終達(dá)到跨運(yùn)行平臺(tái)、跨操作系統(tǒng)、跨編程語(yǔ)言進(jìn)行信息共享和資源整合的目的[2]。
SOA體系架構(gòu)由服務(wù)提供者、服務(wù)消費(fèi)者及服務(wù)注冊(cè)中心3種角色組成,如圖1所示。服務(wù)消費(fèi)者也稱服務(wù)請(qǐng)求者,是信息集成平臺(tái)需要服務(wù)的對(duì)象,其在調(diào)用服務(wù)時(shí),需要向服務(wù)注冊(cè)中心發(fā)送請(qǐng)求消息;服務(wù)提供者的職責(zé)主要是將其提供的服務(wù)信息發(fā)布到服務(wù)注冊(cè)中心,并根據(jù)服務(wù)消費(fèi)者的需求提供相應(yīng)服務(wù);服務(wù)注冊(cè)中心的職責(zé)則是對(duì)服務(wù)和服務(wù)請(qǐng)求進(jìn)行注冊(cè),并對(duì)服務(wù)進(jìn)行分類,且可為服務(wù)消費(fèi)者提供查詢服務(wù)[3]。
圖1 SOA體系結(jié)構(gòu)
Web Service是實(shí)現(xiàn)面向服務(wù)架構(gòu)的重要技術(shù)手段[4],借助于XML和Internet技術(shù)來表現(xiàn)數(shù)據(jù),主要采用了分布式計(jì)算技術(shù)[5-6]。作為一項(xiàng)用于應(yīng)用程序之間相互通信的技術(shù),嚴(yán)格地說,Web Service是描述一系列標(biāo)準(zhǔn)的、功能化的操作接口。在進(jìn)行系統(tǒng)功能開發(fā)的過程中,只需要對(duì)相應(yīng)的Web Service模塊進(jìn)行調(diào)用,而無需了解Web Service模塊實(shí)現(xiàn)功能的具體過程。另外,Web Service模塊能適用于不同的編程語(yǔ)言或內(nèi)部協(xié)議,而且對(duì)其進(jìn)行調(diào)用時(shí)無需額外的軟件或硬件[7]。因此,通過Web Service可以將企業(yè)不同的應(yīng)用服務(wù)有效地聯(lián)系起來,并將這些服務(wù)封裝和發(fā)布到網(wǎng)絡(luò)上,以供服務(wù)消費(fèi)者調(diào)用,從而形成一個(gè)基于Web的服務(wù)共享平臺(tái),為信息系統(tǒng)的集成提供了一個(gè)通用的機(jī)制。
企業(yè)服務(wù)總線(enterprise service bus, ESB)是SOA架構(gòu)的主要切入點(diǎn),提供與SOA原則保持一致的集成基礎(chǔ)架構(gòu)和比傳統(tǒng)中間件產(chǎn)品更廉價(jià)的解決方案。其以“總線”的模式來管理和簡(jiǎn)化應(yīng)用之間的集成拓?fù)浣Y(jié)構(gòu),擔(dān)當(dāng)連接應(yīng)用程序和整個(gè)企業(yè)中其他服務(wù)的共享消息收發(fā)層,可實(shí)現(xiàn)不同信息的準(zhǔn)確、高效和安全傳遞,讓不同應(yīng)用服務(wù)器協(xié)作運(yùn)行,解決應(yīng)用接口潛在的不兼容性和維護(hù)沖突的問題[8]。
ESB位于SOA的中心,能夠提供事件驅(qū)動(dòng)、文檔導(dǎo)向的處理模式及分布式的運(yùn)行管理機(jī)制。同時(shí),ESB還支持基于內(nèi)容的路由和過濾,具備復(fù)雜數(shù)據(jù)的傳輸能力,并通過Web Service、JMS和HTTP等傳輸協(xié)議提供更強(qiáng)的系統(tǒng)互連接口,讓各應(yīng)用系統(tǒng)在ESB上進(jìn)行數(shù)據(jù)交換,從而減少了接口的數(shù)量、大小和復(fù)雜度,使得SOA更加強(qiáng)大。ESB主要完成工作包括消息路由、傳輸協(xié)議轉(zhuǎn)換、消息格式轉(zhuǎn)換及處理來自不同業(yè)務(wù)的事件[9]?;赟OA的ESB系統(tǒng)架構(gòu)如圖2所示。
圖2 基于SOA的ESB模式的系統(tǒng)架構(gòu)
機(jī)務(wù)信息集成平臺(tái)承擔(dān)著機(jī)務(wù)運(yùn)用安全、機(jī)車整備、機(jī)車檢修及機(jī)車乘務(wù)員管理等應(yīng)用系統(tǒng)的數(shù)據(jù)交換和共享,并支持機(jī)務(wù)段綜合統(tǒng)計(jì)查詢功能。其主要目標(biāo)是滿足機(jī)務(wù)段對(duì)信息共享的需求,解決“信息孤島”,實(shí)現(xiàn)對(duì)機(jī)車、機(jī)車乘務(wù)員和機(jī)務(wù)設(shè)備的實(shí)時(shí)動(dòng)態(tài)監(jiān)控及相關(guān)數(shù)據(jù)的統(tǒng)計(jì)分析。目前,機(jī)務(wù)段各部門結(jié)合自身業(yè)務(wù)需求,已經(jīng)開發(fā)和投用了一批應(yīng)用系統(tǒng),但各系統(tǒng)互不聯(lián)通、名稱各異、標(biāo)準(zhǔn)不一。機(jī)務(wù)信息集成平臺(tái)是以機(jī)車和機(jī)車乘務(wù)員信息為主要集成對(duì)象,全方位整合機(jī)務(wù)信息資源并與其他相關(guān)信息系統(tǒng)有效銜接,為此需要實(shí)現(xiàn)以下4個(gè)主要目標(biāo):①對(duì)重要信息進(jìn)行集中存儲(chǔ)、分析、轉(zhuǎn)換和處理;②統(tǒng)一基礎(chǔ)編碼,建立機(jī)車電子檔案數(shù)據(jù)庫(kù)、機(jī)車及動(dòng)車組司機(jī)數(shù)據(jù)庫(kù);③規(guī)范接口標(biāo)準(zhǔn),保證其他系統(tǒng)能順利接入信息集成平臺(tái);④保證信息共享的安全性和可靠性。
為能夠與其他系統(tǒng)進(jìn)行連接和數(shù)據(jù)共享,該信息平臺(tái)的數(shù)據(jù)交互設(shè)計(jì)需滿足以下幾個(gè)要求:①能夠?qū)Π∣racle、SQL Server、MySQL在內(nèi)的各類型數(shù)據(jù)庫(kù)及Excel、XML、Text類型的文件進(jìn)行數(shù)據(jù)轉(zhuǎn)換。②為了保證數(shù)據(jù)的實(shí)時(shí)性,能夠即時(shí)或定時(shí)與各系統(tǒng)進(jìn)行數(shù)據(jù)交換。對(duì)于首次接入的系統(tǒng)或?qū)崟r(shí)性要求較高且更新時(shí)間難以固定的數(shù)據(jù),需要采用即時(shí)觸發(fā)的數(shù)據(jù)交換方式;對(duì)于數(shù)據(jù)采集時(shí)間固定或?qū)崟r(shí)性要求較低的數(shù)據(jù),則采用定時(shí)觸發(fā)的方式交換數(shù)據(jù)。③能夠進(jìn)行同步及異步數(shù)據(jù)交換。對(duì)于數(shù)據(jù)量不大或?qū)崟r(shí)性要求較高的數(shù)據(jù),數(shù)據(jù)需求方在發(fā)送請(qǐng)求后,將一直等待至接收到數(shù)據(jù)為止;若數(shù)據(jù)量較大或網(wǎng)絡(luò)速度不理想時(shí),由于需要較長(zhǎng)的傳輸時(shí)間,則需要采用異步數(shù)據(jù)交換方式,如將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩存池后再轉(zhuǎn)發(fā)或采用消息隊(duì)列等傳輸方式。
機(jī)務(wù)信息集成平臺(tái)的主要任務(wù)是實(shí)現(xiàn)不同業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)集成和共享?;赟OA的機(jī)務(wù)信息集成平臺(tái)架構(gòu)如圖3所示,采用Web Service定義服務(wù)接口,通過ESB總線將機(jī)務(wù)段各業(yè)務(wù)系統(tǒng)有效地整合起來。
圖3 基于SOA的機(jī)務(wù)信息集成平臺(tái)架構(gòu)
(1)表示層。表示層是方便用戶與系統(tǒng)進(jìn)行交互的門戶,其將機(jī)務(wù)段的生產(chǎn)綜合信息和人員管理信息通過Web瀏覽器呈現(xiàn)在用戶面前,用戶通過表示層便可調(diào)用服務(wù)組合并進(jìn)行數(shù)據(jù)交換。
(2)服務(wù)管理層。服務(wù)管理層將來自服務(wù)封裝層的數(shù)據(jù)接口和服務(wù)接口按照需求組合成不同的服務(wù)組合,然后提供給表示層。ESB是服務(wù)管理層的服務(wù)注冊(cè)中心,其主要功能是將系統(tǒng)的參與者連接起來,并根據(jù)所需要實(shí)現(xiàn)的功能,以及機(jī)務(wù)段不同科室、車間和鐵路局相關(guān)部門的業(yè)務(wù)關(guān)聯(lián)性,確立服務(wù)之間的相互調(diào)用關(guān)系,從而管理和監(jiān)控各應(yīng)用程序間的數(shù)據(jù)和服務(wù)交互,以實(shí)現(xiàn)有效管理機(jī)務(wù)生產(chǎn)作業(yè)流程目的。
(3)服務(wù)封裝層。在服務(wù)封裝層,對(duì)機(jī)務(wù)信息系統(tǒng)功能以組件的方式進(jìn)行封裝,然后描述、包裝成具有WSDL接口的服務(wù)并提供給服務(wù)管理層,從而實(shí)現(xiàn)信息的整合。
(4)數(shù)據(jù)層。數(shù)據(jù)層對(duì)分布式數(shù)據(jù)源進(jìn)行統(tǒng)一管理,為服務(wù)封裝層提供數(shù)據(jù)信息和數(shù)據(jù)邏輯,其數(shù)據(jù)主要分為機(jī)車檢修數(shù)據(jù)、機(jī)車整備數(shù)據(jù)、機(jī)車乘務(wù)員數(shù)據(jù)、機(jī)車運(yùn)用數(shù)據(jù)、機(jī)務(wù)設(shè)備數(shù)據(jù)、機(jī)車救援指揮數(shù)據(jù)及系統(tǒng)用戶數(shù)據(jù)等。這些數(shù)據(jù)來自各異構(gòu)信息系統(tǒng)及信息集成平臺(tái)的本地?cái)?shù)據(jù)庫(kù)。數(shù)據(jù)源的形式也多種多樣,如數(shù)據(jù)庫(kù)形式、文件形式、FTP應(yīng)用、HTTP應(yīng)用、JMS等。
圖4 數(shù)據(jù)共享流程
由于XML數(shù)據(jù)儲(chǔ)存文件具有格式規(guī)范、互操作性強(qiáng)、可擴(kuò)展等優(yōu)點(diǎn),因此筆者系統(tǒng)數(shù)據(jù)交換所采用的數(shù)據(jù)格式為XML。數(shù)據(jù)共享流程如圖4所示。首先,機(jī)務(wù)信息提供系統(tǒng)將數(shù)據(jù)的共享功能封裝為服務(wù),并將從數(shù)據(jù)庫(kù)獲得的共享數(shù)據(jù)轉(zhuǎn)換為XML格式,再通過Web服務(wù)接口接入到機(jī)務(wù)信息數(shù)據(jù)交換總線。從數(shù)據(jù)總線獲得數(shù)據(jù)后,系統(tǒng)會(huì)根據(jù)數(shù)據(jù)傳輸速度等要求,選擇將數(shù)據(jù)暫存于數(shù)據(jù)緩存池或直接返回到Web服務(wù)接口,以達(dá)到提高數(shù)據(jù)交換效率的目的。然后,服務(wù)使用者可通過服務(wù)訪問接口來獲得所需數(shù)據(jù),并且為了方便數(shù)據(jù)調(diào)用和實(shí)現(xiàn)數(shù)據(jù)的集成,該數(shù)據(jù)也可以存儲(chǔ)在機(jī)務(wù)信息集成平臺(tái)的中心數(shù)據(jù)庫(kù)中。
將SOA與ESB相關(guān)理論與方法應(yīng)用于系統(tǒng)集成,不僅能起到降低被集成系統(tǒng)之間耦合度的作用,而且可以很好地提高系統(tǒng)的可擴(kuò)展性、可復(fù)用性及可維護(hù)性[10]。基于SOA與ESB的集成系統(tǒng)執(zhí)行過程如圖5所示。①服務(wù)注冊(cè)。對(duì)服務(wù)消費(fèi)者及服務(wù)提供者進(jìn)行注冊(cè),并為服務(wù)消費(fèi)者申請(qǐng)ESB數(shù)據(jù)適配器、定義服務(wù)路由及建立數(shù)據(jù)映射的關(guān)系。②請(qǐng)求消息發(fā)送。服務(wù)消費(fèi)者將服務(wù)請(qǐng)求消息通過XML編碼成SOAP,隨后服務(wù)請(qǐng)求消息將被解析、發(fā)送給服務(wù)提供者。服務(wù)消費(fèi)者與服務(wù)提供者可以通過請(qǐng)求/響應(yīng)、異步消息、會(huì)話交換、發(fā)布/訂閱4種模式進(jìn)行交互。③消息解析。服務(wù)請(qǐng)求消息被ESB接收之后,由消息處理器對(duì)其進(jìn)行解析,從而得到服務(wù)消費(fèi)者申請(qǐng)的數(shù)據(jù)適配器標(biāo)識(shí)等信息,然后ESB在服務(wù)注冊(cè)中心查詢與該標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)適配器,最后將服務(wù)處理請(qǐng)求傳達(dá)給相應(yīng)的服務(wù)提供者。④數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)適配器根據(jù)數(shù)據(jù)映射關(guān)系,把由服務(wù)提供者提供并被解析后的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使之符合Web Service接口的標(biāo)準(zhǔn)。⑤Web服務(wù)處理。數(shù)據(jù)經(jīng)適配器轉(zhuǎn)換后,通過Web服務(wù)對(duì)其進(jìn)行相關(guān)業(yè)務(wù)邏輯的處理,最后提供給服務(wù)消費(fèi)者。
圖5 基于SOA與ESB的集成系統(tǒng)執(zhí)行機(jī)制
以鐵路局機(jī)車調(diào)度指揮管理系統(tǒng)用戶獲取機(jī)車狀態(tài)信息為例,具體說明服務(wù)的封裝過程。在此過程中,機(jī)務(wù)信息集成平臺(tái)從機(jī)車檢修信息管理系統(tǒng)、機(jī)車整備信息管理系統(tǒng)和機(jī)車運(yùn)用安全管理系統(tǒng)中獲取各系統(tǒng)中最新機(jī)車狀態(tài)數(shù)據(jù),然后對(duì)這3條數(shù)據(jù)的建立時(shí)間進(jìn)行對(duì)比分析,以時(shí)間最晚的一條作為機(jī)車的最新狀態(tài),再將最新狀態(tài)數(shù)據(jù)封裝到服務(wù)接口中,并提供給鐵路局機(jī)車調(diào)度指揮管理系統(tǒng)。服務(wù)封裝如圖6所示,可知機(jī)車狀態(tài)查詢服務(wù)被封裝到ITrainService接口中,其中查詢條件JCtype表示機(jī)型,JCNO表示機(jī)車號(hào)。TrainService_JX、TrainService_ZB、TrainService_YY均為具體的服務(wù)。服務(wù)的實(shí)施過程則是通過TrainService類完成的,在此過程中通過對(duì)比分析機(jī)車數(shù)據(jù),判斷出機(jī)車的當(dāng)前狀態(tài)。
圖6 服務(wù)封裝
圖7所示為基于SOA的鐵路機(jī)務(wù)信息集成平臺(tái)中機(jī)車狀態(tài)信息管理界面(部分),其可對(duì)全段配屬機(jī)車狀態(tài)進(jìn)行跟蹤顯示及調(diào)度指揮管理,從而方便機(jī)車調(diào)度人員合理安排機(jī)務(wù)段的生產(chǎn)作業(yè)。
圖7 機(jī)車狀態(tài)信息管理界面
基于SOA的機(jī)務(wù)信息集成平臺(tái)不僅實(shí)現(xiàn)了對(duì)機(jī)務(wù)信息的集成與共享,還解決了信息孤島的問題,為機(jī)務(wù)生產(chǎn)活動(dòng)及鐵路局進(jìn)行機(jī)車調(diào)度指揮提供了數(shù)據(jù)和決策支持。通過將ESB應(yīng)用于SOA系統(tǒng)構(gòu)建,提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性,使機(jī)務(wù)信息集成系統(tǒng)的柔性大大提高,從而論證了將SOA架構(gòu)應(yīng)用于機(jī)務(wù)信息集成平臺(tái)的合理性與有效性。
參考文獻(xiàn):
[1] 胡偉莉,鄧小龍.基于SOA技術(shù)的遠(yuǎn)程教育信息系統(tǒng)的開發(fā)[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2009,31(5):736-739.
[2] 李山偉.基于SOA技術(shù)的醫(yī)院信息系統(tǒng)改造[D].廣州:中山大學(xué),2008.
[3] 焦青青,周廷美,黃豐,等.基于SOA的機(jī)務(wù)段生產(chǎn)調(diào)度管理系統(tǒng)研究[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2013,35(3):373-377.
[4] 徐春婕,史天運(yùn),王靜,等.基于SOA和工作流的鐵路客運(yùn)站管理系統(tǒng)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(2):720-725.
[5] GU Y S, YE M T, GAN Y. Web services security based on XML signature and XML encryption[J]. Journal of Networks,2010,5(9):1092-1097.
[6] CHOI J, NAZARETH D, JAIN H. Implementing service-oriented architecture in organizations[J]. Journal of Management Information Systems, 2010,26(4):253-286.
[7] 童健.Web Service下電子商務(wù)交易平臺(tái)的工作流建模[J].物流技術(shù),2014(21):457-459.
[8] 韓安.企業(yè)服務(wù)總線技術(shù)研究[J].工礦自動(dòng)化,2013,39(11):50-53.
[9] 鄭鑫.基于ESB的企業(yè)應(yīng)用集成架構(gòu)研究與應(yīng)用[D].太原:太原理工大學(xué),2013.
[10] 呂宏偉.基于SOA和ESB的企業(yè)應(yīng)用集成的解決方案[J] .計(jì)算機(jī)應(yīng)用與軟件,2010,27(4):215-216.
武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版)2018年2期