李 東,吳龍濤
(裝甲兵工程學(xué)院 信息工程系,北京 100072)
裝備器材保障擔(dān)負(fù)著為裝備恢復(fù)戰(zhàn)斗能力創(chuàng)造條件的重任,在信息化條件下的一體化聯(lián)合作戰(zhàn)中具有重要地位和作用[1]。目前,各級(jí)裝備器材管理部門(mén)基本建成了獨(dú)立運(yùn)行的、覆蓋單項(xiàng)業(yè)務(wù)的管理信息系統(tǒng),用于裝備保障業(yè)務(wù)的管理,提高了管理水平和工作效率,但無(wú)法實(shí)現(xiàn)戰(zhàn)略級(jí)裝備器材保障信息資源的集成和共享。特別是隨著裝備器材種類(lèi)越來(lái)越多,業(yè)務(wù)需求日益復(fù)雜,原有手段難以靈活、快速地響應(yīng)需求變更;現(xiàn)有信息系統(tǒng)沒(méi)有統(tǒng)一的體系結(jié)構(gòu)、數(shù)據(jù)和技術(shù)標(biāo)準(zhǔn),難以實(shí)現(xiàn)信息綜合和共享,彼此形成了的“信息孤島”[2]。
近幾年,面向服務(wù)的體系結(jié)構(gòu)(SOA)以其松耦合、粗粒度、平臺(tái)無(wú)關(guān)性、業(yè)務(wù)敏捷性等特點(diǎn)成為軟件體系結(jié)構(gòu)新的發(fā)展階段[3]。在傳統(tǒng)軟件體系結(jié)構(gòu)無(wú)法滿(mǎn)足裝備器材保障信息化需求的情況下,基于SOA 開(kāi)發(fā)戰(zhàn)略級(jí)裝備器材保障信息系統(tǒng)可以快速靈活地應(yīng)對(duì)業(yè)務(wù)變化,并在維持現(xiàn)有系統(tǒng)的前提下破除“信息孤島”,實(shí)現(xiàn)資源共享。
面向服務(wù)的體系結(jié)構(gòu)(SOA)[4]是一個(gè)組件模型,它將應(yīng)用程序的不同組件單元(稱(chēng)為服務(wù))通過(guò)這些服務(wù)之間定義良好的借口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義,它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。
SOA 通過(guò)網(wǎng)絡(luò)對(duì)松耦合、粗粒度服務(wù)進(jìn)行分布式部署,所有服務(wù)的具體實(shí)現(xiàn)、位置和傳輸協(xié)議對(duì)調(diào)用者來(lái)說(shuō)都是透明的,服務(wù)調(diào)用者根據(jù)不同業(yè)務(wù)需求進(jìn)行重組和使用。通過(guò)業(yè)務(wù)驅(qū)動(dòng)服務(wù),服務(wù)驅(qū)動(dòng)技術(shù),SOA 讓系統(tǒng)變得更有彈性。
Web 服務(wù)是建立可互操作的分布式應(yīng)用程序的新平臺(tái)。作為重要的SOA 實(shí)現(xiàn)技術(shù),Web 服務(wù)(Web Services)已得到廣泛應(yīng)用。Web 服務(wù)通過(guò)URL 識(shí)別,并通過(guò)XML 語(yǔ)言進(jìn)行定義、描述和發(fā)現(xiàn),具有完好的封裝性、松耦合性和高度的可集成能力[5]。
Web 服務(wù)具有良好的封裝性、松耦合、為實(shí)現(xiàn)服務(wù)互操作性,Web 服務(wù)平臺(tái)提供了一套標(biāo)準(zhǔn)的協(xié)議,用于溝通不同的平臺(tái)、編程語(yǔ)言和組件模型中的不同的類(lèi)型系統(tǒng)。參考W3C 提議的Web Services 互操作性疊層,將Web Services 的各種典型操作和技術(shù)標(biāo)準(zhǔn)構(gòu)成一個(gè)技術(shù)間相互依賴(lài)的協(xié)議棧,如圖1 所示,上層功能必須依靠下層的支持。
圖1 Web 服務(wù)協(xié)議棧
企業(yè)服務(wù)總線(ESB)[6]提供了一種實(shí)現(xiàn)SOA 的基礎(chǔ)架構(gòu)模式。ESB 是傳統(tǒng)中間件技術(shù)與XML,Web 服務(wù)等技術(shù)結(jié)合的產(chǎn)物,它提供了一種在松耦合的服務(wù)和應(yīng)用之間標(biāo)準(zhǔn)的集成方式,實(shí)現(xiàn)異構(gòu)環(huán)境中的服務(wù)、消息以及基于事件的交互。
ESB 在SOA 中負(fù)責(zé)幫助服務(wù)的集成,而不參與業(yè)務(wù)邏輯,它的功能:在服務(wù)與服務(wù)之間路由消息;在請(qǐng)求者與服務(wù)者之間轉(zhuǎn)換傳輸協(xié)議;在請(qǐng)求者與服務(wù)者之間轉(zhuǎn)換消息格式;處理來(lái)自于各種異構(gòu)源的業(yè)務(wù)事件;保證服務(wù)質(zhì)量(安全、可靠和交互處理)。
如果沒(méi)有ESB,服務(wù)的請(qǐng)求者和服務(wù)的提供者之間必須要通過(guò)接口建立顯式的點(diǎn)到點(diǎn)的調(diào)用,這在擁有大量服務(wù)和復(fù)雜業(yè)務(wù)的大型系統(tǒng)中是不堪設(shè)想的。使用ESB 作為大型系統(tǒng)中整合應(yīng)用和服務(wù)的一個(gè)靈活的基礎(chǔ)架構(gòu),可以大大減少接口的數(shù)量,降低系統(tǒng)復(fù)雜度,實(shí)現(xiàn)服務(wù)位置的透明化,提高系統(tǒng)的可擴(kuò)展性,使得SOA 更為強(qiáng)大。圖2 為引入ESB前后服務(wù)調(diào)用的對(duì)比示意圖。
根據(jù)裝備器材保障信息化建設(shè)的要求,結(jié)合我軍裝備器材保障體制特點(diǎn)和業(yè)務(wù)管理關(guān)系,裝備器材保障信息化網(wǎng)絡(luò)平臺(tái)采用開(kāi)放互聯(lián)的多層網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),依托軍網(wǎng)搭建戰(zhàn)略、戰(zhàn)役、戰(zhàn)術(shù)三級(jí)網(wǎng)絡(luò)平臺(tái),實(shí)現(xiàn)總部機(jī)關(guān)、軍區(qū)機(jī)關(guān)、各部隊(duì)單位以及各級(jí)倉(cāng)庫(kù)之間的互聯(lián)互通[7]。
圖2 ESB 對(duì)SOA 的改進(jìn)
基于SOA 的戰(zhàn)略裝備器材保障信息系統(tǒng)的總體功能是依托三級(jí)網(wǎng)絡(luò)平臺(tái)[8],在異構(gòu)環(huán)境下,建立分布式數(shù)據(jù)庫(kù),形成一個(gè)共享數(shù)據(jù)環(huán)境,實(shí)現(xiàn)總部機(jī)關(guān)、軍區(qū)機(jī)關(guān)、各級(jí)部隊(duì)、倉(cāng)庫(kù)之間的雙向信息溝通,將器材籌措、儲(chǔ)存、供應(yīng)、戰(zhàn)時(shí)保障等環(huán)節(jié)連成一個(gè)閉環(huán)信息流,實(shí)現(xiàn)全軍裝備器材信息的全系統(tǒng)、全過(guò)程、全方位的管理,并為各級(jí)部門(mén)提供信息管理和服務(wù),以及輔助決策支持的功能。系統(tǒng)的總體功能見(jiàn)圖3。
圖3 系統(tǒng)功能示意圖
根據(jù)面向業(yè)務(wù)不同,基于SOA 的戰(zhàn)略裝備器材保障信息系統(tǒng)可以細(xì)化為器材網(wǎng)絡(luò)管理、器材資源管理、決策支持等子系統(tǒng)[9];根據(jù)面向用戶(hù)不同,系統(tǒng)又可劃分為戰(zhàn)略、戰(zhàn)役、戰(zhàn)術(shù)等三級(jí)信息系統(tǒng)。如圖4 所示,系統(tǒng)充分考慮裝備器材保障的特點(diǎn)和系統(tǒng)的靈活性、兼容性、可移植性及可擴(kuò)展性,對(duì)于各級(jí)信息系統(tǒng),利用組件化軟件開(kāi)發(fā)模式,設(shè)計(jì)經(jīng)費(fèi)管理、訂貨合同、器材分配等若干粗粒度的服務(wù)組件,并發(fā)布到ESB 中。不同業(yè)務(wù)部門(mén)根據(jù)業(yè)務(wù)管理內(nèi)容和特點(diǎn),通過(guò)網(wǎng)絡(luò)平臺(tái),從ESB 中選擇相應(yīng)的服務(wù)組件進(jìn)行組裝,從而滿(mǎn)足不同的業(yè)務(wù)管理需要。
圖4 基于SOA 的裝備器材保障信息系統(tǒng)架構(gòu)
為了更好地實(shí)現(xiàn)各級(jí)信息系統(tǒng)之間的服務(wù)共享和服務(wù)權(quán)限控制,采用聯(lián)合ESB 是一個(gè)很好的解決方案:不同部隊(duì)單位、軍區(qū)機(jī)關(guān)在各自網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)內(nèi)使用單獨(dú)的ESB,通過(guò)軍網(wǎng)實(shí)現(xiàn)ESB 的互聯(lián)。上級(jí)單位的ESB 與下級(jí)單位的ESB 是主-從關(guān)系,主ESB 控制參與者可以訪問(wèn)哪些內(nèi)容。圖5 為聯(lián)合ESB 部署模式。
圖5 聯(lián)合ESB 在系統(tǒng)中的部署模式
J2EE 是一種來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)[10]。J2EE 為搭建具有可伸縮性、靈活性、易維護(hù)型的商務(wù)系統(tǒng)提供了良好的機(jī)制。結(jié)合J2EE 技術(shù),可以實(shí)現(xiàn)基于SOA 的戰(zhàn)略裝備器材保障信息系統(tǒng)架構(gòu),如圖6。由于J2EE 技術(shù)當(dāng)前應(yīng)用廣泛,這個(gè)架構(gòu)應(yīng)該具有典型意義的,而且它也是嚴(yán)格遵循了SOA 特性。
圖6 基于J2EE 實(shí)現(xiàn)的系統(tǒng)架構(gòu)
J2EE 體系中,通常采用EJB 組件或Spring 來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯層,而在SOA 系統(tǒng)中業(yè)務(wù)是基于服務(wù)的,于是采用把業(yè)務(wù)邏輯層的組件包裝成Web Service 的方式,使用Web Service 作為SOA 的服務(wù)提供者,由無(wú)狀態(tài)會(huì)話(huà)bean 生成,通常是粗粒度的,對(duì)應(yīng)企業(yè)的業(yè)務(wù)邏輯。同時(shí),使用企業(yè)服務(wù)總線(ESB)技術(shù)來(lái)實(shí)現(xiàn)SOA 中的服務(wù)中介,服務(wù)請(qǐng)求不用直接發(fā)送到服務(wù)提供者,而是先送到服務(wù)總線,由服務(wù)總線將請(qǐng)求消息轉(zhuǎn)發(fā)給服務(wù)提供者,得到返回消息后,服務(wù)總線再轉(zhuǎn)發(fā)給服務(wù)請(qǐng)求者。并且,在J2EE 體系的控制層之下添加了一個(gè)服務(wù)調(diào)用層,用來(lái)封裝對(duì)服務(wù)的具體調(diào)用代碼,編寫(xiě)服務(wù)調(diào)用代碼時(shí)需要從服務(wù)總線獲得服務(wù)的WSDL 描述文件,然后根據(jù)此文件進(jìn)行編寫(xiě)。
目前,已有不同的廠商推出了自己的ESB 產(chǎn)品,但是這些產(chǎn)品的體系結(jié)構(gòu)各異,所具有的功能和實(shí)現(xiàn)的程度也不盡相同,所以在進(jìn)行大型復(fù)雜系統(tǒng)的SOA 應(yīng)用構(gòu)建時(shí),就要選擇一個(gè)適合的產(chǎn)品。BEA 發(fā)布的Aqua Logic Service Bus(ALSB)可以運(yùn)行在Windows,Linux 和Solaris 等不同操作系統(tǒng)上。ALSB 是完全的現(xiàn)代ESB,它提供了智能的消息代理、動(dòng)態(tài)傳送和轉(zhuǎn)換,所有這些都支持與服務(wù)生命周期管理功能(包括服務(wù)注冊(cè)、監(jiān)控和定義閾值的服務(wù)水平協(xié)議(Server Level Agreement,SLA)實(shí)施)集成的異構(gòu)服務(wù)端點(diǎn)。
基于SOA 的戰(zhàn)略裝備器材保障信息系統(tǒng),依托部隊(duì)三級(jí)網(wǎng)絡(luò)體系,采用聯(lián)合ESB 部署模式,能夠有效解決當(dāng)前裝備器材保障信息化中存在的諸多問(wèn)題。相比當(dāng)前部隊(duì)大多信息系統(tǒng),該系統(tǒng)具有以下特色[12]:
1)連通“信息孤島”,實(shí)現(xiàn)異構(gòu)系統(tǒng)之間的互操作。SOA 架構(gòu)中,使用不同操作系統(tǒng)、數(shù)據(jù)庫(kù)、技術(shù)平臺(tái)的系統(tǒng)借助ESB 可以互相訪問(wèn),總部可以無(wú)障礙的獲取各軍區(qū)、各部隊(duì)的器材保障信息;
2)靈活、快速地響應(yīng)業(yè)務(wù)需求變更。SOA 從現(xiàn)有的服務(wù)中組合新的服務(wù)的能力為靈活、快速地響應(yīng)器材保障業(yè)務(wù)的需求變更提供了獨(dú)特的優(yōu)勢(shì);
3)充分利用現(xiàn)有的資產(chǎn)。通過(guò)將現(xiàn)有的IT 資產(chǎn)按照Web 服務(wù)協(xié)議標(biāo)準(zhǔn)包裝為服務(wù),各部門(mén)可以繼續(xù)使用已有系統(tǒng),而不必推倒重建;
4)增加重用,減少成本。通過(guò)以松耦合的方式公開(kāi)業(yè)務(wù)服務(wù),各業(yè)務(wù)子系統(tǒng)可以根據(jù)業(yè)務(wù)要求更輕松地使用和組合服務(wù)。這意味著資源副本的減少、重用可能性增加。
5)支持服務(wù)的“即插即用”,系統(tǒng)擴(kuò)展易于實(shí)現(xiàn)。因?yàn)榉?wù)之間的松耦合特性,在對(duì)系統(tǒng)進(jìn)行擴(kuò)展時(shí),只需要將新開(kāi)發(fā)的服務(wù)發(fā)布到ESB 中,就可以被各業(yè)務(wù)系統(tǒng)調(diào)用。
結(jié)合部隊(duì)裝備器材保障的特點(diǎn)和現(xiàn)狀,提出了基于SOA的戰(zhàn)略裝備器材保障信息系統(tǒng)的架構(gòu)設(shè)計(jì)。架構(gòu)結(jié)合了SOA、Web Service、ESB 等主流技術(shù),并以J2EE 技術(shù)描述了系統(tǒng)架構(gòu)實(shí)現(xiàn),嚴(yán)格遵循了SOA 的實(shí)現(xiàn)標(biāo)準(zhǔn)。在下一步工作中,要對(duì)ESB 的一些深層機(jī)制,如路由、格式轉(zhuǎn)換等方面進(jìn)行深層研究;探討基于ESB 的SOA 架構(gòu)的安全性問(wèn)題;擴(kuò)展SOA 架構(gòu),使其能面向不同的技術(shù)、協(xié)議、應(yīng)用。
[1]王鐵寧,楊學(xué)強(qiáng),徐宗昌,等.裝備器材保障信息化建設(shè)研究[J].物流科技,2004,27(103):17-19.
[2]楊學(xué)強(qiáng),黃俊.裝備保障信息化建設(shè)概論[M].北京:國(guó)防工業(yè)出版社,2011.
[3]王紫瑤,南俊杰.SOA 核心技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[4]李丹.基于企業(yè)服務(wù)總線的SOA 研究與應(yīng)用[D].大連:大連理工大學(xué),2008.
[5]黃威,邵偉民.基于Web Services 的商業(yè)智能系統(tǒng)研究與設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2009,30(11):2702-2706.
[6]BOBBY W.Why do developers need an Enterprise Service Bus?[EB/OL].[2005 -08 -26].http://www -128.ibm.com/developerworks/webservices/library/ws-whyesb/.
[7]劉立恒.基于SOA 的商業(yè)智能平臺(tái)的研究與設(shè)計(jì)[J].計(jì)算機(jī)工程,2008,34(3):75-80.
[8]王鐵寧.戰(zhàn)略裝甲裝備器材保障工程[M].北京:兵器工業(yè)出版社,2006.
[9]陳文偉.數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘教程[M].北京:清華大學(xué)出版社,2006.
[10]李剛.經(jīng)典Java EE 企業(yè)應(yīng)用實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2012.
[11]袁學(xué)民.基于ESB 的SOA 架構(gòu)技術(shù)的研究與應(yīng)用[D].成都:西南交通大學(xué),2008.
[12]ZENG S,HUANG S.X,F(xiàn)AN Y.S.Service-Oriented Enterprise Network Performance Analysis[J]. Tsinghua Science and Technology,2009,14(4):492-503.