張濤, 馬沖, 李蜀瑜, 成靜, 婁陽(yáng)
(1.西北工業(yè)大學(xué) 軟件與微電子學(xué)院, 陜西 西安 710072; 2.陜西師范大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710062)
虛擬試驗(yàn)驗(yàn)證支撐框架能夠根據(jù)任務(wù)需求,快速集成分布在各個(gè)靶場(chǎng)、設(shè)施中的試驗(yàn)、仿真和高性能計(jì)算能力,構(gòu)成一個(gè)試驗(yàn)和訓(xùn)練的“邏輯靶場(chǎng)”。同時(shí),提高消息和任務(wù)的處理能力,實(shí)現(xiàn)快速安裝、初始化、測(cè)試和執(zhí)行能力[1]。美國(guó)軍方正在研發(fā)的試驗(yàn)訓(xùn)練使能體系結(jié)構(gòu)(test and training enabling architecture,TENA),該框架以狀態(tài)分布對(duì)象SDO(stateful-distribute-object)為核心對(duì)象模型,支持綜合狀態(tài)發(fā)布/訂閱和遠(yuǎn)程方法調(diào)用的分布式通信機(jī)制[2-3]。研究和改進(jìn)其狀態(tài)分布對(duì)象通信機(jī)制和實(shí)現(xiàn)方法,對(duì)于提高虛擬實(shí)驗(yàn)驗(yàn)證框架通信效率、保障其可靠性和實(shí)時(shí)性,具有重要研究意義。
虛擬試驗(yàn)驗(yàn)證支撐框架提供了快速構(gòu)建"邏輯靶場(chǎng)"所需的技術(shù)規(guī)范、支撐環(huán)境和基礎(chǔ)服務(wù)等。如圖1所示,具體包括:試驗(yàn)構(gòu)建、試驗(yàn)應(yīng)用、試驗(yàn)管理、分析工具、核心服務(wù)和基礎(chǔ)支撐。
圖1 虛擬試驗(yàn)支撐框架結(jié)構(gòu)示意圖
試驗(yàn)構(gòu)建主要由分布式對(duì)象定義語(yǔ)言、分布式對(duì)象自動(dòng)生成工具和試驗(yàn)應(yīng)用自動(dòng)生成工具構(gòu)成。分布對(duì)象定義語(yǔ)言支持快速定義分布式對(duì)象;分布式對(duì)象自動(dòng)生成工具根據(jù)定義模型自動(dòng)生成分布式對(duì)象;試驗(yàn)應(yīng)用自動(dòng)生成工具根據(jù)用戶想定自動(dòng)生成試驗(yàn)應(yīng)用。
試驗(yàn)應(yīng)用主要由多個(gè)應(yīng)用進(jìn)程構(gòu)成,應(yīng)用進(jìn)程使用了多個(gè)分布式對(duì)象,并通過分布式對(duì)象實(shí)現(xiàn)數(shù)據(jù)交互。試驗(yàn)管理和分析工具則主要用于對(duì)試驗(yàn)的實(shí)時(shí)觀測(cè)和試驗(yàn)后的數(shù)據(jù)分析評(píng)估。
核心服務(wù)主要包括:時(shí)間服務(wù)、命名服務(wù)和執(zhí)行管理等。時(shí)間服務(wù)用于虛擬試驗(yàn)中的時(shí)間推進(jìn);命名服務(wù)用于分布式環(huán)境下分布式對(duì)象查詢定位;執(zhí)行管理是對(duì)整個(gè)虛擬試驗(yàn)交互資源的集中式管理。
虛擬試驗(yàn)運(yùn)行支撐中間件是虛擬試驗(yàn)支撐框架的核心部分,是系統(tǒng)組件化和集成的基礎(chǔ),對(duì)試驗(yàn)與訓(xùn)練界的互操作、重用和可組合性提供關(guān)鍵支撐。
在虛擬試驗(yàn)驗(yàn)證支撐框架中,其分布式對(duì)象元模型如圖2所示。其核心元素包括:狀態(tài)分布對(duì)象(SDO)、消息(message)和本地狀態(tài)對(duì)象(local Class)。其他輔助數(shù)據(jù)類型,如基本數(shù)據(jù)類型(fundamental type)、枚舉(enumeration)、容器(vector)、異常(exception)、SDO指針(SDO pointer)和操作(operation)等。
圖2 分布式對(duì)象元模型
狀態(tài)分布對(duì)象是包含狀態(tài)和方法的分布式對(duì)象,其支持面向狀態(tài)的發(fā)布/訂閱和遠(yuǎn)程方法調(diào)用,適用于分布式實(shí)時(shí)通信與交互。同時(shí),SDO具有聚合和繼承等面向?qū)ο筇匦浴>酆峡山M合多個(gè)簡(jiǎn)單SDO構(gòu)造復(fù)雜SDO,繼承則代表SDO可以沿用和擴(kuò)展其父模型的特性。
SDO邏輯結(jié)構(gòu)包括公共狀態(tài)和對(duì)象接口兩部分。其中,發(fā)布者將公共狀態(tài)數(shù)據(jù)發(fā)布給所有該SDO的訂閱者。對(duì)象接口部分則提供位置透明的遠(yuǎn)程訪問方法。在實(shí)現(xiàn)結(jié)構(gòu)上,其核心模塊是伺服(Servant)和代理(Proxy)。其中,SDO代理是SDO實(shí)體的接口,用于接收中間件推送來的狀態(tài)信息和調(diào)用遠(yuǎn)程方法。SDO伺服則實(shí)現(xiàn)將中間件底層消息傳輸機(jī)制與SDO中狀態(tài)和遠(yuǎn)程方法相互結(jié)合,伺服除了提供SDO的遠(yuǎn)程方法服務(wù)外,還是其狀態(tài)發(fā)布的接口。
通常,一個(gè)SDO存在于單一應(yīng)用中,稱該應(yīng)用為"SDO服務(wù)者",SDO實(shí)例自身稱為伺服。而可能多個(gè)訂購(gòu)該SDO對(duì)象的靶場(chǎng)應(yīng)用中均存在其代理,每個(gè)代理都有一個(gè)SDO公共狀態(tài)的本地實(shí)例,用于緩存其狀態(tài)數(shù)據(jù)。SDO的公共狀態(tài)可以發(fā)布給其所有代理,訂購(gòu)者則可以直接調(diào)用該SDO方法。其具體運(yùn)行機(jī)制如圖3所示。
圖3 SDO運(yùn)行機(jī)制示意圖
SDO基于發(fā)布/訂閱機(jī)制實(shí)現(xiàn)分布式數(shù)據(jù)通信,該機(jī)制能夠通過中間件實(shí)現(xiàn)發(fā)送者與多個(gè)訂閱者之間的松散通信。發(fā)送者向中間件注冊(cè)所發(fā)布的SDO對(duì)象,訂閱者則根據(jù)興趣向中間件注冊(cè)所需的SDO對(duì)象,發(fā)送者和訂閱者無須相互感知。具體發(fā)布/訂閱流程如圖4所示。
圖4 SDO發(fā)布/訂閱流程圖
發(fā)布者首先通過會(huì)話創(chuàng)建SDO的servant,并通過會(huì)話發(fā)布其公共狀態(tài)數(shù)據(jù)。中間件則負(fù)責(zé)將更新的狀態(tài)數(shù)據(jù)序列化后推送給事件通道。訂閱者則通過會(huì)話向中間件表達(dá)訂閱興趣。中間件為訂閱者創(chuàng)建一個(gè)代理對(duì)象,該對(duì)象包含一個(gè)回調(diào)對(duì)象緩沖隊(duì)列。在SDO對(duì)象創(chuàng)建、狀態(tài)更新和銷毀時(shí),中間件將為訂閱者創(chuàng)建相應(yīng)的回調(diào)對(duì)象,并通知訂閱者。一個(gè)基于SDO的狀態(tài)發(fā)布/訂購(gòu)系統(tǒng)可以抽象表示為一個(gè)五元組:
S=
Pub=pub1,pub2,…,pubn表示n個(gè)發(fā)布者;
S表示各個(gè)發(fā)布者上的SDO伺服集合;
Sub=sub1,sub2,…,subn表示n個(gè)訂購(gòu)者;
P表示各個(gè)訂購(gòu)者上的SDO代理集合;
Se為會(huì)話(session)集合,會(huì)話包括了發(fā)布/訂購(gòu)的各個(gè)操作原語(yǔ),例如publish原語(yǔ)用于表示SDO狀態(tài)的發(fā)布,subscribe原語(yǔ)用于表示訂購(gòu)SDO狀態(tài)。
SDO的狀態(tài)發(fā)布/訂閱是基于CORBA的實(shí)時(shí)事件服務(wù)實(shí)現(xiàn),即其狀態(tài)數(shù)據(jù)通過實(shí)時(shí)事件通道從發(fā)布者端傳輸?shù)接嗛喺叨?,緩存于訂閱端的緩沖隊(duì)列中。單實(shí)時(shí)事件通道多緩沖隊(duì)列模式是最簡(jiǎn)單機(jī)制。所有SDO伺服通過同一實(shí)時(shí)事件通道更新SDO狀態(tài),根據(jù)興趣匹配規(guī)則,將SDO狀態(tài)數(shù)據(jù)發(fā)送到相應(yīng)訂閱者的緩沖隊(duì)列。該方法實(shí)現(xiàn)簡(jiǎn)單,但單個(gè)實(shí)時(shí)事件通道可能成為系統(tǒng)性能瓶頸,難以滿足大規(guī)模虛擬仿真試驗(yàn)實(shí)時(shí)性要求。多實(shí)時(shí)事件通道多緩沖隊(duì)列模式則是目前廣泛使用的傳輸機(jī)制。系統(tǒng)提供多個(gè)實(shí)時(shí)事件通道,同時(shí)提供多個(gè)狀態(tài)緩沖隊(duì)列。多實(shí)時(shí)事件通道具有良好的性能,但需要提供完善的通道分配管理、負(fù)載均衡和調(diào)度策略,這將增加實(shí)時(shí)事件通道維護(hù)復(fù)雜性和系統(tǒng)開銷。
本文提出一種新的多實(shí)時(shí)事件通道單興趣通道多緩沖隊(duì)列的SDO傳輸策略。如圖5所示,每個(gè)訂閱者創(chuàng)建一個(gè)實(shí)時(shí)事件通道,并將其訂閱興趣發(fā)送到系統(tǒng)單一的興趣通道。SDO伺服從興趣通道接收到自身訂閱興趣后,解析訂閱者的實(shí)時(shí)事件通道,將更新后SDO狀態(tài)數(shù)據(jù)發(fā)送至該實(shí)時(shí)事件通道。由于多個(gè)實(shí)時(shí)事件通道分別隸屬于不同的訂閱者,既可充分利用多實(shí)時(shí)事件通道的傳輸效率,又有效規(guī)避了對(duì)其管理、調(diào)度和訂閱匹配開銷問題,保障了大數(shù)據(jù)量傳輸時(shí)的服務(wù)質(zhì)量。
圖5 SDO消息傳輸策略示意圖
本文通過研究基于分布式對(duì)象的新一代虛擬試驗(yàn)驗(yàn)證支撐框架,設(shè)計(jì)了其分布對(duì)象元模型,并重點(diǎn)研究了狀態(tài)分布對(duì)象運(yùn)行機(jī)制。特別是設(shè)計(jì)了其狀態(tài)分布對(duì)象的狀態(tài)數(shù)據(jù)發(fā)布/訂閱機(jī)制,提出一種新的多實(shí)時(shí)事件通道單興趣通道多緩沖隊(duì)列的SDO傳輸策略?;谠摖顟B(tài)對(duì)象模型,設(shè)計(jì)開發(fā)了虛擬試驗(yàn)驗(yàn)證支撐框架原型,并開展初期應(yīng)用驗(yàn)證研究,取得了良好效果。下一步,將開展該狀態(tài)分布對(duì)象模型的QOS保障技術(shù)研究,以保證系統(tǒng)的實(shí)時(shí)性、時(shí)序性和可靠性。
參考文獻(xiàn):
[1] Craig Marsden, Michael Aldinger, Benjamin Leppard. Toward Interoperability between Test and Training Enabling Architecture (TENA) and Distributed Interactive Simulation (DIS) Training Architectures[C]∥Proceedings of the Interservice/Industry Trainging Simulation & Education Conference (I/ITSEC), 2009
[2] Noseworthy J R. Supporting the Decentralized Development of Large-Scale Distributed Real-time LVC Simulation Systems with TENA (The Test and Training Enabling Architecture)[C]∥Proceedings of the 14th IEEE International Symposium on Distributed Simulation and Real Time Applications (DS-RT 2010), 2010
[3] 徐忠富,王國(guó)玉,張玉竹. 原瑞政.TENA的現(xiàn)狀和展望[J]. 系統(tǒng)仿真學(xué)報(bào), 2008, 20(23): 6325-6329
Xu Zhongfu, Wang Guoyu, Zhang Yuzhu, Yuan Ruizheng. Progresses and Prospects of TENA[J]. Journal of System Simulation, 2008, 20(23): 6325-6329 (in Chinese)