寧吉軍,蔡紅柳,胡海榮
(裝甲兵工程學院 a.軍政教研室;b.信息工程系,北京 100072)
裝備保障能夠為裝備迅速恢復戰斗力創造條件,在目前所倡導的一體化聯合作戰中具有重要的作用和地位[1]。隨著科技的發展,在以信息化為主導的軍事變革影響下,我軍武器裝備的信息化程度不斷提高,裝備保障信息化建設也取得了長足的發展,開發了基本上覆蓋各項業務的裝備管理系統。但是由于需求的不同以及采用的開發平臺和開發語言的不同,導致了各個系統之間呈“煙囪式”結構自由發展,彼此之間的互聯互通互操作比較困難,這就致使“信息孤島”的出現,這給實現各裝備保障資源的共享與集成造成很大困難。而且隨著裝備的種類數量越來越多,業務上的需求變得越來越復雜,若再采用傳統的方式將難以快速地應對需求的變化。如何重用各類信息資源,建立可以應對靈活多變的裝備保障信息系統(Equipment Support Information System,ESIS)成為新軍事變革下的急切需求。
因此,現階段部隊裝備保障信息化建設的瓶頸已經轉向怎樣把孤立而且分散的各種信息資源充分利用從而消除“信息孤島”的問題上來。要使得裝備保障的業務模型能夠迅速靈活地應對這些變化,也就是所謂的“隨需而變”,這就對信息化條件下的裝備保障系統的靈活性、重用性、開放性、可組合性等方面提出更為高標準的要求。而面向服務的體系架構(Service Oriented Architecture,SOA)作為一種全新的系統設計理念和技術方法體系,其粗粒度、松耦合、平臺無關性的特點正是解決這一問題的最佳途徑[2]。
SOA并不是一項技術,從本質上講,它所體現的是一種架構思想,是一種新的架構組件模型。它將應用程序或者系統封裝成不同的功能單元——“服務”,并通過各個服務之間所定義好的契約和接口聯系起來[3]。SOA將服務作為基礎,將業務驅動作為核心,其目的是可以靈活滿足不斷變化的業務需求[4]。SOA的基本特征包括以下3個方面:
1)獨立的功能實體。SOA將具有不同功能的應用程序封裝成不同的服務,由于各個服務之間的耦合程度低,因此每個服務單元可以獨立地完成不同的功能。
2)大數據低頻率訪問。服務使用者在使用服務提供者所提供的服務時可以只進行一次或者很少的服務調用,這可以保證服務使用者可以以一致的方式使用此服務。
3)基于XML進行消息傳遞。SOA采用可擴展標記語言(Extensible Markup Language,XML)作為數據定義語言。XML為Web服務提供包括服務描述、消息、工作流描述等在內的統一數據格式。基于XML定義的數據非常適用于在網絡中傳輸,因此已經成為在開放環境下描述數據信息的標準技術。
SOA的結構模型構建如下:SOA的體系結構由服務提供者(Service Provider)、服務代理(Service Broker)和服務消費者(Service Consumer)這3個實體組成。三者之間遵循“發布(Publish)、查找(Find)、綁定(Bind)和調用(Invoke)”的操作規則,如圖1所示。

圖1 SOA系統服務集成圖
1)Web Service。Web Service是由 W3C(World Wide Web Consortium,W3C)制定開放標準和規范,它是建立分布式應用程序的一個嶄新平臺。Web Service是基于XML的標準,因此可以在不同的網絡和平臺中進行互聯互通。作為SOA重要的實現技術,它具有較好的封裝性、松耦合性和集成性,已經得到了廣泛的應用[5]。
為更好地溝通不同的編程語言、平臺以及不同類型的系統,來實現服務之間的互操作性,Web Service提供了一系列的標準協議,所應用的協議包括:服務描述語言協議(WSDL)、服務發布和發現協議(UDDI)、簡單對象訪問協議(SOAP)、業務流程組合協議(BPEL)等。它們構成了一個互相依賴的協議棧,下層為上層提供支撐。
2)ESB。企業服務總線(Enterprise Service Bus,ESB)是XML、Web Service等技術與傳統的中間件技術相結合的產物[6]。它基于開放的標準,所提供的是實現SOA的架構模式,能夠有效集成松耦合的服務與應用,為服務提供可靠的、安全的環境。SOA中使用ESB主要用來進行服務的集成,ESB并不參與業務邏輯,主要功能有事件管理、路由功能、數據類型轉換等。若不使用ESB,服務消費者與服務提供者之間的綁定只能是通過接口進行點對點的對接調用,如果服務量比較大,業務比較復雜,這將大大增加資源開銷。利用ESB進行服務的整合可減少接口數量,提高服務位置的透明化,從而大大提高系統的可擴展性。
ESIS以滿足裝備保障平時業務管理、平戰信息轉換需要為目標,充分吸收現有的建設成果,按照改造、繼承與新研發相結合的方式,采取“專業模塊分散,公用構件集中”的研制方法,統一數據規范、標準接口關系,集成構建面向裝備保障,以數字化、自動化、網絡化、可視化為主要特征,實現“資源透明可視、信息靈敏感知、業務融合互動、決策智能輔助”的ESIS,實現裝備保障業務管理、平戰信息轉換,支持裝備保障各項業務的高效運行和輔助決策需要,為一體化裝備指揮平臺提供數據支持。
融合裝備保障各專業、各業務,為首長科學決策提供輔助工具,為各機關參謀、助理業務管理和保障部隊處理提供集成化信息管理手段;建立標準、規范、全面的裝備保障信息資源體系,為裝備保障平時業務管理、戰時指揮提供數據支撐;實現各部隊、軍區和總部三級之間的信息貫通,各級內部業務間的信息互動,對外建立起規范化、標準化的信息交互接口[7]。
根據ESIS的總體需求,結合我軍信息化建設過程中的裝備保障業務管理與體制特點的關系,系統建設要充分考慮總部、軍區及各部隊裝備部門之間,與司令機關、政治機關、后勤機關等相關部門之間的裝備保障信息的共享與交換需求;能夠依托軍用網絡建設戰術級、戰役級、戰略級三級平臺,實現各層級之間信息的互聯互通。基于SOA的ESIS依托這三級平臺,在異構的環境中創建分布式的數據庫體系,建立數據共享中心來實現總部、軍區和各部隊之間的信息交互;實現全軍裝備信息的全方位系統化的管理,為各級裝備管理部門提供資源管理、信息服務、輔助決策等功能。信息系統功能如圖2所示。

圖2 系統功能框圖
基于SOA的裝備保障系統架構模型參照文獻[8]采用分層設計的思想,如圖3所示,共分為6層。

圖3 系統架構設計模型
1)硬件平臺層。該層提供系統運行的基本環境。依托軍用網絡,選擇國產計算機等設備,加裝全軍統一配發的安全保密設備,構建運行穩定、安全可靠的支撐環境;按照統一要求選用操作系統、數據庫管理系統、辦公處理軟件、應用服務器等。
2)存儲層。該層對系統的數據進行存儲,可分為數據庫系統存儲和文件系統存儲。數據庫系統主要存儲結構化信息,文件系統主要存儲非結構化信息。如果系統運行方式是單機環境,則采用單機數據庫系統或本地文件系統。
3)資源服務層。該層是本架構的關鍵部分,本架構把數據信息、程序、服務都抽象為資源。因此資源服務層一方面負責對存儲層存儲的各種結構化信息和非結構化信息進行資源抽象并提供統一訪問接口,供上層使用;另一方面,對各種語言實現的程序和服務通過統一的方式封裝,提供統一的調用接口為上層服務提供支撐。
4)平臺服務層。該層負責構建系統基礎核心服務和業務核心服務。其中基礎服務層通過各種標準服務提供系統運行的支撐環境,業務服務層提供系統的業務組件,供上層組合調用,實現完成不同業務的子系統軟件。
5)接口層。該層分為硬件接口層和軟件接口層。其中硬件接口層抽象信息采集的各種手段,為應用層和平臺服務層提供硬件訪問服務;軟件接口層提供與其他系統交互的接口。
6)應用層。該層利用各層提供的服務,根據裝備保障工作的任務和特點,通過插件、構件體系,按業務進行系統配置形成業務子系統,提供裝備保障工作所需的業務管理、控制、分析和輔助決策功能,實現業務處理。
其中資源服務層和平臺服務層為系統的核心部分,構成服務器端系統。接口層和應用層提供給用戶與系統的交互界面,構成客戶端系統。服務端系統提供了資源存儲、各種服務訪問的接口方法,提供了負載均衡、容錯冗余的機制,保證系統運行的可靠、安全。客戶端系統提供了客戶端軟件集成的方法、規則、和運行環境,保障業務應用系統按需組裝,實現整個系統單點登錄、資源的控制訪問,實現各種復雜業務功能。
由于ESIS涉及專業較多,難以全面介紹,因此在這里數據庫的設計以“器材管理子系統”為例進行介紹。按照功能分類數據信息可以分為系統基礎數據、庫存管理數據、計劃管理數據、舊品器材管理數據、統計查詢數據、籌措供應管理數據等。每種類型的數據又可以進行細分,例如統計查詢數據可以分為舊品器材收發明細數據、舊品器材收發單據、周轉器材收發明細數據、周轉器材收發單據等。其中周轉器材收發單據數據所涉及到的數據表如圖4所示。

圖4 數據庫表結構
Java EE是一套API規范,它是標準化組件、容器、服務的集合,用于在一個明確的分布式計算系統中創建和部署分布式應用[9]。它是J2EE的發展和升級,引入了最新的規范和技術,大大簡化了開發和部署流程。利用Java EE作為基于SOA的ESIS的實現技術,可充分利用Java EE的優點,簡化服務器端軟件的開發,并且方便客戶端的調用。基于Java EE實現的ESIS架構圖如圖5所示。

圖5 基于Java EE的ESIS實現架構
從圖5中可以看出 Java EE體系采用 EJB 3.0或者Spring進行業務邏輯的編寫,由于SOA中的業務是以服務為基礎的,因此采用Spring技術中的無狀態會話bean將業務邏輯層中的各個組件封裝成Web服務進行注入,使其具有松耦合、高內聚的特征;用Hibernate進行對象關系之間的映射,方便開發人員利用面向對象的知識解決數據存儲問題。利用ESB作為服務請求和調用的中介,這使得服務請求者無需直接將請求信息發送給服務提供者,而是先通過ESB進行消息的中轉;請求消息處理后,ESB再回傳給服務請求者。而且,在ESB和控制層之間加了服務調用層,該層用來調用服務的具體代碼,服務代碼需要根據ESB中所獲取服務描述文件(WSDL)進行編寫。
基于SOA的ESIS依靠軍隊的多級網絡體系以及采用ESB的部署方式,簡單有效地重用和共享了原有的應用程序和資源,解決了當前裝備保障信息化從所存在的各種問題。與其他信息系統相比具有獨特優越性。將業務邏輯與界面實現相分離,使其耦合性降低,提高了系統的健壯性和代碼的可復用性。系統提供了多種服務,集成了許多公用的功能模塊,提高了開發的效率。解決了“信息孤島”和歷史遺留系統問題,實現各系統之間的互聯互通,降低了開發的成本。
但是也存在這一些缺點,例如軟件設計過程較為復雜,包括很多軟件設計的思想和設計模式,這對技術人員的要求較高;而且開發語言比較單一,限制了技術人員的選擇。下一步工作將改進和完善ESIS的易用性,集成更多的服務降低其開發難度;抽象SOA的基礎架構使其滿足更多的應用。
[1] 王鐵寧,楊學強,徐宗昌,等.裝備器材保障信息化建設研究[J].物流科技,2004,103(27):17 -19.
[2] 王紫瑤,南俊杰.SOA核心技術及應用[M].北京:電子工業出版社,2008.
[3] 呂希艷,張潤彤.基于SOA的企業信息資源整合[J].中國科技論壇,2006,104(3):89 -92.
[4] 張惠民,胡海榮,崔偉寧,等.基于SOA數據共享技術在裝備保障系統中的應用[J].四川兵工學報,2013,34(7):63-66.
[5] 黃威,邵偉民.基于Web Services的商業智能系統研究與設計[J].計算機工程與設計,2009,30(11):2702-2706.
[6] 何雪峰.基于SOA的企業信息系統應用研究[D].廣州:暨南大學,2011:10 -12.
[7] 楊曉龍.面向服務的通用裝備保障業務信息系統基礎架構研究[D].北京:裝甲兵工程學院,2012:30-31.
[8] 崔偉寧,余立新.一種基于Java EE技術的軟件架構的設計及實現[J].裝甲兵工程學院學報,2007,21(4):70-74.
[9] Kevin Mukhar,Chris Zelenak,James L.Weaver.Beginning Java EE 5[M].北京:機械工業出版社,2006.
(責任編輯楊繼森)