張 濤,史璐莎,張 斌,贠 遠,田 耀
(1.北京工業(yè)大學 電子信息與控制工程學院,北京 100022;2.中國科學院 空間應(yīng)用工程與技術(shù)中心,北京 100094)
一種快速擴展HLA/RTI Web服務(wù)的方法
張 濤1,史璐莎2,張 斌2,贠 遠2,田 耀2
(1.北京工業(yè)大學 電子信息與控制工程學院,北京 100022;2.中國科學院 空間應(yīng)用工程與技術(shù)中心,北京 100094)
針對過去研究中高層體系結(jié)構(gòu)(HLA)分布式仿真框架無法很好地在廣域網(wǎng)上運行,與其他系統(tǒng)接口復(fù)雜,聯(lián)邦成員開發(fā)語言單一,系統(tǒng)開發(fā)和維護成本高等特點,提出一種快速擴展HLA/RTI仿真Web服務(wù)的框架。該框架將HLA/RTI接口基于面向服務(wù)體系結(jié)構(gòu)(SOA)進行封裝,并在HLA/RTI中心節(jié)點部署聯(lián)邦大使管理代理,通過使用HTTP協(xié)議和將代理的聯(lián)邦大使和用戶進行映射,實現(xiàn)HLA仿真系統(tǒng)與編程語言和平臺的解耦,具有快速開發(fā)、部署、高度可定制化等特點,為中小企業(yè)和機構(gòu)實現(xiàn)HLA仿真擴展提供了一種新思路。實驗結(jié)果表明,該框架對HLA高層體系結(jié)構(gòu)的擴展是可行的,不僅極大提高了HLA擴展效率,而且滿足了平臺多樣性、聯(lián)邦成員開發(fā)語言解耦、效率高等需求,還有效降低了開發(fā)和維護成本。
中高層體系結(jié)構(gòu);運行支撐環(huán)境;Web服務(wù);分布式仿真;跨平臺
高層體系結(jié)構(gòu)(High Level Architecture,HLA)是一種分布式仿真架構(gòu),旨在解決大規(guī)模復(fù)雜系統(tǒng)仿真和降低仿真成本等問題[1]。HLA的運行支撐環(huán)境(Run Time Infrastructure,RTI)將底層支撐環(huán)境與仿真應(yīng)用分離,各仿真應(yīng)用在符合HLA規(guī)范的條件下獨立開發(fā),從而涵蓋各領(lǐng)域先進技術(shù),降低開發(fā)難度和時間成本。運用HLA模擬軍事實戰(zhàn)演習已廣泛應(yīng)用于各國的現(xiàn)代軍事領(lǐng)域。隨著全球一體化的進展,越來越多的企業(yè)表現(xiàn)出對分布式仿真的需求,使得不同地理位置的員工可以參與到產(chǎn)品原型設(shè)計和開發(fā)的過程中去,HLA在民用仿真領(lǐng)域也逐漸發(fā)揮著巨大的作用[2]。
隨著技術(shù)的發(fā)展,HLA許多特征逐漸與其設(shè)計初衷背離,進而阻礙了該技術(shù)的發(fā)展[2]。一般HLA軟件公司只提供RTI和配套的聯(lián)邦成員軟件開發(fā)包(Softeware Development Kit,SDK)。大部分SDK只支持C++和Java編程語言。這使得HLA對聯(lián)邦成員開發(fā)編程語言有著十分嚴重的依賴性,開發(fā)維護成本較高,不利于HLA系統(tǒng)的移植和跨平臺使用。在系統(tǒng)內(nèi)部SDK通過TCP/IP協(xié)議與RTI進行通訊交換數(shù)據(jù),各用戶對數(shù)據(jù)傳輸都有自己的標準,由于網(wǎng)絡(luò)環(huán)境的差異和各網(wǎng)絡(luò)防火墻采用的安全策略的不同,經(jīng)常導(dǎo)致HLA通信發(fā)生故障,不利于廣域網(wǎng)使用[3-4]。
Web服務(wù)基于可擴展標識語言(eXtensive Markup Language,XML)、簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)和超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)。這些技術(shù)和協(xié)議具有跨平臺、編程語言等優(yōu)勢。將Web服務(wù)應(yīng)用于HLA框架,不僅能夠發(fā)揮HLA分布式仿真框架的優(yōu)勢,還能利用Web服務(wù)的開放透明等特性彌補上述的不足[5-6]。
Katherine[7]通過使用BEEP協(xié)議替換HTTP協(xié)議實現(xiàn)HLA Web服務(wù),缺點是BEEP協(xié)議應(yīng)用范圍較小,通用性不強。Bj?rn M?ller提出由聯(lián)邦成員請求RTI獲取所需回調(diào)函數(shù)[3],但需要Cookie維持聯(lián)邦成員與RTI的會話,與HTTP無狀態(tài)協(xié)議的設(shè)計初衷不符,且增加了客戶端開發(fā)難度。Xie等[8]通過客戶端服務(wù)端雙向Web服務(wù)完成回調(diào),缺點是客戶端也需要實現(xiàn)Web服務(wù),對實現(xiàn)解耦復(fù)用等特性意義不大。文中通過將聯(lián)邦大使進行基于SOA的封裝和將Web服務(wù)分為功能支持服務(wù)和標準HLA Web服務(wù),實現(xiàn)HLA與Web服務(wù)的結(jié)合。
Web服務(wù)是一個通過互聯(lián)網(wǎng)提供計算機到計算機交互的軟件系統(tǒng)。Web服務(wù)利用格式化自解釋的XML語言描述數(shù)據(jù),完成軟件系統(tǒng)間的通信?,F(xiàn)代軟件開發(fā)過程中,越來越多的將耗時長、復(fù)雜的運算放到高性能的服務(wù)器上執(zhí)行,客戶端只需遠程調(diào)用所需的服務(wù),待返回運算結(jié)果后完成其業(yè)務(wù)層邏輯即可。這正是現(xiàn)代軟件開發(fā)中面向服務(wù)架構(gòu)(Service Oriented Architecture,SOA)的核心思想[9]。
Web服務(wù)主要由三種技術(shù)組成,分別是服務(wù)描述語言(Web Services Description Language,WSDL)、SOAP和統(tǒng)一描述發(fā)現(xiàn)和集成中心(Universal Description,Discovery and Integration,UDDI)。不同系統(tǒng)可能使用不同的編程語言,因此需要一種不依賴于編程語言的數(shù)據(jù)交換方法,WSDL是一種特殊格式的文件,它定義了系統(tǒng)間數(shù)據(jù)通信并描述了Web服務(wù)所提供服務(wù)的具體信息。其他系統(tǒng)通過SOAP協(xié)議,將遠程調(diào)用對象序列化為XML格式文件,其中包括調(diào)用對象名、輸入?yún)?shù)等信息,然后將SOAP數(shù)據(jù)當作HTTP的body發(fā)送給Web服務(wù)完成系統(tǒng)間交互。
上述通訊過程的實現(xiàn)是通訊雙方默認對方存在的基礎(chǔ)上建立的,當所處網(wǎng)絡(luò)中包含大量未知Web服務(wù)時,可通過UDDI發(fā)布和查詢所需服務(wù),具體流程如圖1所示。
圖1 Web服務(wù)流程
傳統(tǒng)的HLA仿真系統(tǒng)開發(fā)流程為:
(1)根據(jù)仿真系統(tǒng)的需要編寫相關(guān)的HLA對象模型模板(Object Model Template,OMT)。
(2)參與仿真的各分系統(tǒng)根據(jù)HLA提供商提供的SDK(一般只提供C++和Java)和OMT編寫自己的聯(lián)邦成員軟件。
(3)各分系統(tǒng)使用聯(lián)邦大使接口通過TCP/IP連接到RTI與其他聯(lián)邦成員進行交互。
由圖2可以看到,傳統(tǒng)RTI運行在中央服務(wù)器上,而各聯(lián)邦成員運行在各客戶主機上,以此實現(xiàn)分布式仿真。
圖2 傳統(tǒng)RTI架構(gòu)
為了實現(xiàn)RTI的Web服務(wù)擴展,可在通信層面實現(xiàn),最簡單的想法是用HTTP協(xié)議更換TCP/IP協(xié)議,但這通常需要修改RTI的通信接口,一般HLA供應(yīng)商不會提供源代碼供用戶修改其核心代碼。因此要想不修改RTI源碼的前提下實現(xiàn)擴展是比較困難的。
文中提出一種替換方案,其核心思想是對RTI提供的API進行Web封裝,作為服務(wù)器。稱這個軟件系統(tǒng)為聯(lián)邦大使管理代理(Ambassador Management Proxy,AMP)。AMP作為代理,接收聯(lián)邦成員的數(shù)據(jù)并傳遞給RTI;同時接收RTI回調(diào)數(shù)據(jù)并傳遞給聯(lián)邦成員。AMP與聯(lián)邦成員之間通過HTTP協(xié)議進行通信,AMP與RTI之間通過TCP/IP進行通信。其框架結(jié)構(gòu)如圖3所示。
圖3 擴展后HLA架構(gòu)
AMP主要功能:
(1)用戶認證,確認其相應(yīng)的操作權(quán)限。
(2)完成聯(lián)邦成員到聯(lián)邦大使的映射,可以是一對一或多對一的形式。
(3)管理聯(lián)邦大使,尤其是仿真任務(wù)中數(shù)據(jù)對象的維護。
(4)將聯(lián)邦大使的接口通過Web服務(wù)的形式提供給用戶。
(5)完成RTI系統(tǒng)回調(diào)。
AMP實質(zhì)上提供的是遠程功能調(diào)用(Remote Function Call,RFC),將聯(lián)邦成員對Web服務(wù)的調(diào)用轉(zhuǎn)換為聯(lián)邦大使對RTI API的調(diào)用,聯(lián)邦大使和RTI的交互在中央服務(wù)器內(nèi)部完成,實現(xiàn)與用戶的隔離。
針對前文聯(lián)邦大使管理代理模塊功能的特點,簡要描述其功能具體實現(xiàn)。
為了支持Web服務(wù),HLA Evolved標準新增了WSDL API(hla1516e.wsdl)[10-13]。AMP基于WSDL API。AMP對于提供給用戶的Web服務(wù)可以劃分為兩類,一類是管理功能支持服務(wù),另一類是標準HLA WSDL服務(wù)。用戶認證可歸為管理功能,對用戶提供注冊、登陸等服務(wù)。AMP將用戶信息持久化到數(shù)據(jù)庫中便于后續(xù)管理和維護。
為用戶提供創(chuàng)建、刪除聯(lián)邦大使等功能服務(wù)。用戶登陸后,每一位用戶維護一張聯(lián)邦大使表(Ambassador Table),在表中完成相應(yīng)的創(chuàng)建、刪除操作,并完成用戶到聯(lián)邦大使的映射。
HLA對象模型模板(OMT)描述參與仿真的各聯(lián)邦成員需要交互的數(shù)據(jù)類型及信息。OMT通常為XML格式,解析XML可獲得仿真系統(tǒng)中交互數(shù)據(jù)內(nèi)容。AMP系統(tǒng)為每一個聯(lián)邦大使維護一個變量引用表(Variable Reference Table),聯(lián)邦成員通過變量引用表發(fā)送及獲取數(shù)據(jù)。聯(lián)邦成員調(diào)用數(shù)據(jù)時,才對相應(yīng)的變量進行實例化,從而降低系統(tǒng)內(nèi)存消耗。
由于HTTP協(xié)議的局限性,只能由用戶主動向服務(wù)器發(fā)起會話,因此回調(diào)函數(shù)的實現(xiàn)是HLA Web服務(wù)化必須解決的問題。通常采用的方法:
(1)使用BEEP協(xié)議替換HTTP協(xié)議,但BEEP協(xié)議的通用性十分有限,不如HTTP協(xié)議應(yīng)用廣泛。
(2)在服務(wù)器和客戶端雙向都提供Web服務(wù),使服務(wù)器也可以主動向客戶端發(fā)起會話,但這種做法仍然十分依賴于客戶端軟件的實現(xiàn),增加了客戶端復(fù)雜程度,不利于后期維護。
文中的解決方案是為用戶提供回調(diào)函數(shù)注冊服務(wù),用戶可以對自身聯(lián)邦成員定義多張回調(diào)函數(shù)表,根據(jù)用戶對回調(diào)函數(shù)時效性需求的不同,將速度要求高的回調(diào)函數(shù)和速度要求低的回調(diào)函數(shù)分別注冊在不同的回調(diào)表中,然后客戶端程序?qū)Σ煌幕卣{(diào)表設(shè)定不同的輪詢頻率完成回調(diào)。
對HLA Web服務(wù)化的原型系統(tǒng)進行了測試,參考文獻[14]中內(nèi)容,軟件系統(tǒng)的功能性和并發(fā)處理能力是主要考察的方面,系統(tǒng)配置如表1所示。
表1 實驗環(huán)境配置
實驗中AMP使用gSOAP開源C++庫和pRti提供的C++ SDK編寫。gSOAP是一個快速開發(fā)Web服務(wù)的第三方開源庫,可提供HTTP和SOAP協(xié)議的解析,使用戶不用關(guān)心協(xié)議細節(jié)而專注于功能層面的實現(xiàn)。
pRti和AMP運行于中央服務(wù)器上,用戶分別在其他主機上訪問AMP的Web服務(wù),實驗用例Chat是pRti的教學用例,模擬一個聊天室,各用戶交換數(shù)據(jù)。文中使用MFC編寫聯(lián)邦成員界面,實現(xiàn)加入聯(lián)邦和發(fā)送接收數(shù)據(jù)功能。聯(lián)邦成員交互如圖4所示。
圖4 聯(lián)邦成員交互
每一次聯(lián)邦成員發(fā)送或者接收數(shù)據(jù),都是在調(diào)用AMP提供的Web服務(wù),使AMP進行一次HTTP處理,實驗中可模擬多用戶同時向服務(wù)器發(fā)送HTTP請求,在服務(wù)器端記錄每秒訪問數(shù),查看其并發(fā)處理能力,服務(wù)器訪問處理曲線圖如圖5所示。
圖5 服務(wù)器訪問處理曲線
通過上述實驗,證明文中設(shè)計的HLA Web服務(wù)框架是可行的,并且具有解耦、高并發(fā)、可定制化等優(yōu)點。
HLA Web服務(wù)化是HLA分布式仿真發(fā)展的重要方向,HLA Web服務(wù)不僅可以擴展其適用范圍,還增強了其對復(fù)雜系統(tǒng)仿真的能力,降低了開發(fā)難度和成本,這正是HLA設(shè)計的初衷。建模和仿真一直是仿真系統(tǒng)著力解決的兩個核心問題,HLA Web服務(wù)不僅降低了仿真軟件開發(fā)的門檻,并且使得不同編程語言背景的人都參與到開發(fā)中去,為系統(tǒng)的移植和部署提供了極大的便利。文中實現(xiàn)了一種快速擴展HLA Web服務(wù)的方法,實驗結(jié)果表明其具有簡單易用、開發(fā)周期短、高度可定制化等特點。
[1] 周 彥,戴劍偉.HLA仿真程序設(shè)計[M].北京:電子工業(yè)出版社,2002.
[2] Brutzman D,Zyda M,Pullen J M,et al.Extensible Modeling and Simulation Framework (XMSF):challenges for web-based modeling and simulation[EB/OL].(2002-10-22)[2007-03-20].http://www.movesinstitute.org/xmsf/xmsf.html.
[3] 張 衛(wèi),查亞兵.一種基于Globus工具箱的HLA RTI Web服務(wù)化方法[J].系統(tǒng)仿真學報,2009,21(20):6492-6497.
[4] 范希輝,劉 萍,楊艾軍,等.面向廣域網(wǎng)的高層體系結(jié)構(gòu)設(shè)計[J].兵工自動化,2012,31(8):42-45.
[5] 曹鵬飛.基于Web服務(wù)的HLA聯(lián)邦設(shè)計與實現(xiàn)[D].鄭州:解放軍信息工程大學,2011.
[6] 吳澤彬.基于Web服務(wù)的分布式仿真關(guān)鍵技術(shù)研究[D].南京:南京理工大學,2007.
[7] Katherine L M.Web enabling HLA compliant simulations to support network centric applications[EB/OL].(2004)[2006-07-20].http://www.dodccrp.org/events/2004/CCRTS_San_Diego/CD/papers/.
[8] Xie Y,Teo Y M,Cai W,et al.Service provisioning for HLA-based distributed simulation on the grid[C]//Workshop on principles of advanced and distributed simulation.Monterey,CA,USA:[s.n.],2005.
[9] 范希輝,劉 萍,楊艾軍,等.面向服務(wù)的高層體系結(jié)構(gòu)研究[J].計算機仿真,2012,29(11):382-385.
[10] 鐘 蔚,龔建興,郝建國,等.HLA Evolved規(guī)范研究分析[J].系統(tǒng)仿真學報,2011,23(4):691-696.
[11] IEEE-SA Standards Board.IEEE standard for Modeling and Simulation (M&S) High Level Architecture (HLA)—Object Model Template (OMT) specification [S].New York,USA:IEEE Inc.,2000.
[12] 高武奇,康鳳舉,鐘聯(lián)炯,等.一種基于HLA Evovled的云仿真技術(shù)研究[J].系統(tǒng)仿真學報,2011,23(8):1643-1647.
[13] 徐麗娟,彭曉源.基于HLA的仿真服務(wù)總線研究[J].系統(tǒng)仿真學報,2006,18(S2):347-349.
[14] 周 寶,王曉飛,姜繼波.基于HLA的Web服務(wù)效能評估技術(shù)研究[J].系統(tǒng)仿真學報,2013,25(1):185-189.
A Method for Rapid Expansion of HLA/RTI Web Service
ZHANG Tao1,SHI Lu-sha2,ZHANG Bin2,YUN Yuan2,TIAN Yao2
(1.College of Electronic and Control Engineering,Beijing University of Technology,Beijing 100022,China;2.Technology and Engineering Center for Space Utilization,Chinese Academy of Sciences,Beijing 100094,China)
A Web services frame is proposed for fast extension of the High Level Architecture (HLA).This new frame is aimed to solve the problem of the old frame of the HLA distributed simulation that the latter can not operate smoothly on the WAN and makes the interfaces complex with other systems and the development languages single for the federal members.The new frame could make the HLA/RTI interfaces packaged by the SOA and decouple the HLA simulation system,the programming language and the platforms through the using of the HTTP protocol and the mapping of the users and the federal members with the agency of the federal members in the HLA/RTI center node.The characteristics of the fast development and the deployment and the highly customizable also could be reflected in this frame.A new idea to achieve the HLA simulation extension has been shown through this new frame for the companies and the institutions.The result of the project shows that this new frame is feasible for the extension of the HLA.It could improve the efficiency of the extension of the HLA and satisfy the needs of the high portability,the high efficiency,the decoupling of the programming language of the federal members and so on.The development and maintenance cost also could be reduced in the new frame.
HLA;RTI;Web services;distributed simulation;cross-platform
2016-02-25
2016-06-16
時間:2016-11-22
國家重大專項(Y31405210N)
張 濤(1990-),男,碩士生,研究方向為機械臂規(guī)劃仿真。
http://www.cnki.net/kcms/detail/61.1450.TP.20161122.1227.006.html
TP301
A
1673-629X(2016)12-0049-04
10.3969/j.issn.1673-629X.2016.12.011