寧吉軍,蔡紅柳,胡海榮
(裝甲兵工程學(xué)院 a.軍政教研室;b.信息工程系,北京 100072)
裝備保障能夠為裝備迅速恢復(fù)戰(zhàn)斗力創(chuàng)造條件,在目前所倡導(dǎo)的一體化聯(lián)合作戰(zhàn)中具有重要的作用和地位[1]。隨著科技的發(fā)展,在以信息化為主導(dǎo)的軍事變革影響下,我軍武器裝備的信息化程度不斷提高,裝備保障信息化建設(shè)也取得了長足的發(fā)展,開發(fā)了基本上覆蓋各項業(yè)務(wù)的裝備管理系統(tǒng)。但是由于需求的不同以及采用的開發(fā)平臺和開發(fā)語言的不同,導(dǎo)致了各個系統(tǒng)之間呈“煙囪式”結(jié)構(gòu)自由發(fā)展,彼此之間的互聯(lián)互通互操作比較困難,這就致使“信息孤島”的出現(xiàn),這給實現(xiàn)各裝備保障資源的共享與集成造成很大困難。而且隨著裝備的種類數(shù)量越來越多,業(yè)務(wù)上的需求變得越來越復(fù)雜,若再采用傳統(tǒng)的方式將難以快速地應(yīng)對需求的變化。如何重用各類信息資源,建立可以應(yīng)對靈活多變的裝備保障信息系統(tǒng)(Equipment Support Information System,ESIS)成為新軍事變革下的急切需求。
因此,現(xiàn)階段部隊裝備保障信息化建設(shè)的瓶頸已經(jīng)轉(zhuǎn)向怎樣把孤立而且分散的各種信息資源充分利用從而消除“信息孤島”的問題上來。要使得裝備保障的業(yè)務(wù)模型能夠迅速靈活地應(yīng)對這些變化,也就是所謂的“隨需而變”,這就對信息化條件下的裝備保障系統(tǒng)的靈活性、重用性、開放性、可組合性等方面提出更為高標(biāo)準的要求。而面向服務(wù)的體系架構(gòu)(Service Oriented Architecture,SOA)作為一種全新的系統(tǒng)設(shè)計理念和技術(shù)方法體系,其粗粒度、松耦合、平臺無關(guān)性的特點正是解決這一問題的最佳途徑[2]。
SOA并不是一項技術(shù),從本質(zhì)上講,它所體現(xiàn)的是一種架構(gòu)思想,是一種新的架構(gòu)組件模型。它將應(yīng)用程序或者系統(tǒng)封裝成不同的功能單元——“服務(wù)”,并通過各個服務(wù)之間所定義好的契約和接口聯(lián)系起來[3]。SOA將服務(wù)作為基礎(chǔ),將業(yè)務(wù)驅(qū)動作為核心,其目的是可以靈活滿足不斷變化的業(yè)務(wù)需求[4]。SOA的基本特征包括以下3個方面:
1)獨立的功能實體。SOA將具有不同功能的應(yīng)用程序封裝成不同的服務(wù),由于各個服務(wù)之間的耦合程度低,因此每個服務(wù)單元可以獨立地完成不同的功能。
2)大數(shù)據(jù)低頻率訪問。服務(wù)使用者在使用服務(wù)提供者所提供的服務(wù)時可以只進行一次或者很少的服務(wù)調(diào)用,這可以保證服務(wù)使用者可以以一致的方式使用此服務(wù)。
3)基于XML進行消息傳遞。SOA采用可擴展標(biāo)記語言(Extensible Markup Language,XML)作為數(shù)據(jù)定義語言。XML為Web服務(wù)提供包括服務(wù)描述、消息、工作流描述等在內(nèi)的統(tǒng)一數(shù)據(jù)格式。基于XML定義的數(shù)據(jù)非常適用于在網(wǎng)絡(luò)中傳輸,因此已經(jīng)成為在開放環(huán)境下描述數(shù)據(jù)信息的標(biāo)準技術(shù)。
SOA的結(jié)構(gòu)模型構(gòu)建如下:SOA的體系結(jié)構(gòu)由服務(wù)提供者(Service Provider)、服務(wù)代理(Service Broker)和服務(wù)消費者(Service Consumer)這3個實體組成。三者之間遵循“發(fā)布(Publish)、查找(Find)、綁定(Bind)和調(diào)用(Invoke)”的操作規(guī)則,如圖1所示。
圖1 SOA系統(tǒng)服務(wù)集成圖
1)Web Service。Web Service是由 W3C(World Wide Web Consortium,W3C)制定開放標(biāo)準和規(guī)范,它是建立分布式應(yīng)用程序的一個嶄新平臺。Web Service是基于XML的標(biāo)準,因此可以在不同的網(wǎng)絡(luò)和平臺中進行互聯(lián)互通。作為SOA重要的實現(xiàn)技術(shù),它具有較好的封裝性、松耦合性和集成性,已經(jīng)得到了廣泛的應(yīng)用[5]。
為更好地溝通不同的編程語言、平臺以及不同類型的系統(tǒng),來實現(xiàn)服務(wù)之間的互操作性,Web Service提供了一系列的標(biāo)準協(xié)議,所應(yīng)用的協(xié)議包括:服務(wù)描述語言協(xié)議(WSDL)、服務(wù)發(fā)布和發(fā)現(xiàn)協(xié)議(UDDI)、簡單對象訪問協(xié)議(SOAP)、業(yè)務(wù)流程組合協(xié)議(BPEL)等。它們構(gòu)成了一個互相依賴的協(xié)議棧,下層為上層提供支撐。
2)ESB。企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)是XML、Web Service等技術(shù)與傳統(tǒng)的中間件技術(shù)相結(jié)合的產(chǎn)物[6]。它基于開放的標(biāo)準,所提供的是實現(xiàn)SOA的架構(gòu)模式,能夠有效集成松耦合的服務(wù)與應(yīng)用,為服務(wù)提供可靠的、安全的環(huán)境。SOA中使用ESB主要用來進行服務(wù)的集成,ESB并不參與業(yè)務(wù)邏輯,主要功能有事件管理、路由功能、數(shù)據(jù)類型轉(zhuǎn)換等。若不使用ESB,服務(wù)消費者與服務(wù)提供者之間的綁定只能是通過接口進行點對點的對接調(diào)用,如果服務(wù)量比較大,業(yè)務(wù)比較復(fù)雜,這將大大增加資源開銷。利用ESB進行服務(wù)的整合可減少接口數(shù)量,提高服務(wù)位置的透明化,從而大大提高系統(tǒng)的可擴展性。
ESIS以滿足裝備保障平時業(yè)務(wù)管理、平戰(zhàn)信息轉(zhuǎn)換需要為目標(biāo),充分吸收現(xiàn)有的建設(shè)成果,按照改造、繼承與新研發(fā)相結(jié)合的方式,采取“專業(yè)模塊分散,公用構(gòu)件集中”的研制方法,統(tǒng)一數(shù)據(jù)規(guī)范、標(biāo)準接口關(guān)系,集成構(gòu)建面向裝備保障,以數(shù)字化、自動化、網(wǎng)絡(luò)化、可視化為主要特征,實現(xiàn)“資源透明可視、信息靈敏感知、業(yè)務(wù)融合互動、決策智能輔助”的ESIS,實現(xiàn)裝備保障業(yè)務(wù)管理、平戰(zhàn)信息轉(zhuǎn)換,支持裝備保障各項業(yè)務(wù)的高效運行和輔助決策需要,為一體化裝備指揮平臺提供數(shù)據(jù)支持。
融合裝備保障各專業(yè)、各業(yè)務(wù),為首長科學(xué)決策提供輔助工具,為各機關(guān)參謀、助理業(yè)務(wù)管理和保障部隊處理提供集成化信息管理手段;建立標(biāo)準、規(guī)范、全面的裝備保障信息資源體系,為裝備保障平時業(yè)務(wù)管理、戰(zhàn)時指揮提供數(shù)據(jù)支撐;實現(xiàn)各部隊、軍區(qū)和總部三級之間的信息貫通,各級內(nèi)部業(yè)務(wù)間的信息互動,對外建立起規(guī)范化、標(biāo)準化的信息交互接口[7]。
根據(jù)ESIS的總體需求,結(jié)合我軍信息化建設(shè)過程中的裝備保障業(yè)務(wù)管理與體制特點的關(guān)系,系統(tǒng)建設(shè)要充分考慮總部、軍區(qū)及各部隊裝備部門之間,與司令機關(guān)、政治機關(guān)、后勤機關(guān)等相關(guān)部門之間的裝備保障信息的共享與交換需求;能夠依托軍用網(wǎng)絡(luò)建設(shè)戰(zhàn)術(shù)級、戰(zhàn)役級、戰(zhàn)略級三級平臺,實現(xiàn)各層級之間信息的互聯(lián)互通。基于SOA的ESIS依托這三級平臺,在異構(gòu)的環(huán)境中創(chuàng)建分布式的數(shù)據(jù)庫體系,建立數(shù)據(jù)共享中心來實現(xiàn)總部、軍區(qū)和各部隊之間的信息交互;實現(xiàn)全軍裝備信息的全方位系統(tǒng)化的管理,為各級裝備管理部門提供資源管理、信息服務(wù)、輔助決策等功能。信息系統(tǒng)功能如圖2所示。
圖2 系統(tǒng)功能框圖
基于SOA的裝備保障系統(tǒng)架構(gòu)模型參照文獻[8]采用分層設(shè)計的思想,如圖3所示,共分為6層。
圖3 系統(tǒng)架構(gòu)設(shè)計模型
1)硬件平臺層。該層提供系統(tǒng)運行的基本環(huán)境。依托軍用網(wǎng)絡(luò),選擇國產(chǎn)計算機等設(shè)備,加裝全軍統(tǒng)一配發(fā)的安全保密設(shè)備,構(gòu)建運行穩(wěn)定、安全可靠的支撐環(huán)境;按照統(tǒng)一要求選用操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、辦公處理軟件、應(yīng)用服務(wù)器等。
2)存儲層。該層對系統(tǒng)的數(shù)據(jù)進行存儲,可分為數(shù)據(jù)庫系統(tǒng)存儲和文件系統(tǒng)存儲。數(shù)據(jù)庫系統(tǒng)主要存儲結(jié)構(gòu)化信息,文件系統(tǒng)主要存儲非結(jié)構(gòu)化信息。如果系統(tǒng)運行方式是單機環(huán)境,則采用單機數(shù)據(jù)庫系統(tǒng)或本地文件系統(tǒng)。
3)資源服務(wù)層。該層是本架構(gòu)的關(guān)鍵部分,本架構(gòu)把數(shù)據(jù)信息、程序、服務(wù)都抽象為資源。因此資源服務(wù)層一方面負責(zé)對存儲層存儲的各種結(jié)構(gòu)化信息和非結(jié)構(gòu)化信息進行資源抽象并提供統(tǒng)一訪問接口,供上層使用;另一方面,對各種語言實現(xiàn)的程序和服務(wù)通過統(tǒng)一的方式封裝,提供統(tǒng)一的調(diào)用接口為上層服務(wù)提供支撐。
4)平臺服務(wù)層。該層負責(zé)構(gòu)建系統(tǒng)基礎(chǔ)核心服務(wù)和業(yè)務(wù)核心服務(wù)。其中基礎(chǔ)服務(wù)層通過各種標(biāo)準服務(wù)提供系統(tǒng)運行的支撐環(huán)境,業(yè)務(wù)服務(wù)層提供系統(tǒng)的業(yè)務(wù)組件,供上層組合調(diào)用,實現(xiàn)完成不同業(yè)務(wù)的子系統(tǒng)軟件。
5)接口層。該層分為硬件接口層和軟件接口層。其中硬件接口層抽象信息采集的各種手段,為應(yīng)用層和平臺服務(wù)層提供硬件訪問服務(wù);軟件接口層提供與其他系統(tǒng)交互的接口。
6)應(yīng)用層。該層利用各層提供的服務(wù),根據(jù)裝備保障工作的任務(wù)和特點,通過插件、構(gòu)件體系,按業(yè)務(wù)進行系統(tǒng)配置形成業(yè)務(wù)子系統(tǒng),提供裝備保障工作所需的業(yè)務(wù)管理、控制、分析和輔助決策功能,實現(xiàn)業(yè)務(wù)處理。
其中資源服務(wù)層和平臺服務(wù)層為系統(tǒng)的核心部分,構(gòu)成服務(wù)器端系統(tǒng)。接口層和應(yīng)用層提供給用戶與系統(tǒng)的交互界面,構(gòu)成客戶端系統(tǒng)。服務(wù)端系統(tǒng)提供了資源存儲、各種服務(wù)訪問的接口方法,提供了負載均衡、容錯冗余的機制,保證系統(tǒng)運行的可靠、安全。客戶端系統(tǒng)提供了客戶端軟件集成的方法、規(guī)則、和運行環(huán)境,保障業(yè)務(wù)應(yīng)用系統(tǒng)按需組裝,實現(xiàn)整個系統(tǒng)單點登錄、資源的控制訪問,實現(xiàn)各種復(fù)雜業(yè)務(wù)功能。
由于ESIS涉及專業(yè)較多,難以全面介紹,因此在這里數(shù)據(jù)庫的設(shè)計以“器材管理子系統(tǒng)”為例進行介紹。按照功能分類數(shù)據(jù)信息可以分為系統(tǒng)基礎(chǔ)數(shù)據(jù)、庫存管理數(shù)據(jù)、計劃管理數(shù)據(jù)、舊品器材管理數(shù)據(jù)、統(tǒng)計查詢數(shù)據(jù)、籌措供應(yīng)管理數(shù)據(jù)等。每種類型的數(shù)據(jù)又可以進行細分,例如統(tǒng)計查詢數(shù)據(jù)可以分為舊品器材收發(fā)明細數(shù)據(jù)、舊品器材收發(fā)單據(jù)、周轉(zhuǎn)器材收發(fā)明細數(shù)據(jù)、周轉(zhuǎn)器材收發(fā)單據(jù)等。其中周轉(zhuǎn)器材收發(fā)單據(jù)數(shù)據(jù)所涉及到的數(shù)據(jù)表如圖4所示。
圖4 數(shù)據(jù)庫表結(jié)構(gòu)
Java EE是一套API規(guī)范,它是標(biāo)準化組件、容器、服務(wù)的集合,用于在一個明確的分布式計算系統(tǒng)中創(chuàng)建和部署分布式應(yīng)用[9]。它是J2EE的發(fā)展和升級,引入了最新的規(guī)范和技術(shù),大大簡化了開發(fā)和部署流程。利用Java EE作為基于SOA的ESIS的實現(xiàn)技術(shù),可充分利用Java EE的優(yōu)點,簡化服務(wù)器端軟件的開發(fā),并且方便客戶端的調(diào)用。基于Java EE實現(xiàn)的ESIS架構(gòu)圖如圖5所示。
圖5 基于Java EE的ESIS實現(xiàn)架構(gòu)
從圖5中可以看出 Java EE體系采用 EJB 3.0或者Spring進行業(yè)務(wù)邏輯的編寫,由于SOA中的業(yè)務(wù)是以服務(wù)為基礎(chǔ)的,因此采用Spring技術(shù)中的無狀態(tài)會話bean將業(yè)務(wù)邏輯層中的各個組件封裝成Web服務(wù)進行注入,使其具有松耦合、高內(nèi)聚的特征;用Hibernate進行對象關(guān)系之間的映射,方便開發(fā)人員利用面向?qū)ο蟮闹R解決數(shù)據(jù)存儲問題。利用ESB作為服務(wù)請求和調(diào)用的中介,這使得服務(wù)請求者無需直接將請求信息發(fā)送給服務(wù)提供者,而是先通過ESB進行消息的中轉(zhuǎn);請求消息處理后,ESB再回傳給服務(wù)請求者。而且,在ESB和控制層之間加了服務(wù)調(diào)用層,該層用來調(diào)用服務(wù)的具體代碼,服務(wù)代碼需要根據(jù)ESB中所獲取服務(wù)描述文件(WSDL)進行編寫。
基于SOA的ESIS依靠軍隊的多級網(wǎng)絡(luò)體系以及采用ESB的部署方式,簡單有效地重用和共享了原有的應(yīng)用程序和資源,解決了當(dāng)前裝備保障信息化從所存在的各種問題。與其他信息系統(tǒng)相比具有獨特優(yōu)越性。將業(yè)務(wù)邏輯與界面實現(xiàn)相分離,使其耦合性降低,提高了系統(tǒng)的健壯性和代碼的可復(fù)用性。系統(tǒng)提供了多種服務(wù),集成了許多公用的功能模塊,提高了開發(fā)的效率。解決了“信息孤島”和歷史遺留系統(tǒng)問題,實現(xiàn)各系統(tǒng)之間的互聯(lián)互通,降低了開發(fā)的成本。
但是也存在這一些缺點,例如軟件設(shè)計過程較為復(fù)雜,包括很多軟件設(shè)計的思想和設(shè)計模式,這對技術(shù)人員的要求較高;而且開發(fā)語言比較單一,限制了技術(shù)人員的選擇。下一步工作將改進和完善ESIS的易用性,集成更多的服務(wù)降低其開發(fā)難度;抽象SOA的基礎(chǔ)架構(gòu)使其滿足更多的應(yīng)用。
[1] 王鐵寧,楊學(xué)強,徐宗昌,等.裝備器材保障信息化建設(shè)研究[J].物流科技,2004,103(27):17 -19.
[2] 王紫瑤,南俊杰.SOA核心技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[3] 呂希艷,張潤彤.基于SOA的企業(yè)信息資源整合[J].中國科技論壇,2006,104(3):89 -92.
[4] 張惠民,胡海榮,崔偉寧,等.基于SOA數(shù)據(jù)共享技術(shù)在裝備保障系統(tǒng)中的應(yīng)用[J].四川兵工學(xué)報,2013,34(7):63-66.
[5] 黃威,邵偉民.基于Web Services的商業(yè)智能系統(tǒng)研究與設(shè)計[J].計算機工程與設(shè)計,2009,30(11):2702-2706.
[6] 何雪峰.基于SOA的企業(yè)信息系統(tǒng)應(yīng)用研究[D].廣州:暨南大學(xué),2011:10 -12.
[7] 楊曉龍.面向服務(wù)的通用裝備保障業(yè)務(wù)信息系統(tǒng)基礎(chǔ)架構(gòu)研究[D].北京:裝甲兵工程學(xué)院,2012:30-31.
[8] 崔偉寧,余立新.一種基于Java EE技術(shù)的軟件架構(gòu)的設(shè)計及實現(xiàn)[J].裝甲兵工程學(xué)院學(xué)報,2007,21(4):70-74.
[9] Kevin Mukhar,Chris Zelenak,James L.Weaver.Beginning Java EE 5[M].北京:機械工業(yè)出版社,2006.
(責(zé)任編輯楊繼森)