任昊利 趙洪利
實時分布式系統(tǒng)是信息柵格、互聯(lián)網(wǎng)+和物聯(lián)網(wǎng)等信息系統(tǒng)的基本框架,這種框架在軍事領域應用得更廣泛.隨著軍事信息系統(tǒng)聯(lián)合、集成需求的不斷提出,末端如何接入、如何實現(xiàn)動中通、如何保障實時性以及復雜數(shù)據(jù)流管控等問題已經(jīng)成為研究的熱門領域.美軍為解決上述問題在作戰(zhàn)信息系統(tǒng)及試驗鑒定信息系統(tǒng)集成方面投入了大量資金,支持研究開發(fā),提出了新的技術,開發(fā)出了產(chǎn)品,其中比較有代表性的有試驗與訓練使能體系結構(Test and Training Enabling Architecture,TENA)和數(shù)據(jù)分發(fā)服務(Data Distribution Service,DDS)技術[1].
為有效確保聯(lián)合部隊的訓練和需要協(xié)作的聯(lián)合部隊的試驗能力,以反映“要有戰(zhàn)斗的聯(lián)合,就必須有訓練的聯(lián)合”的思想,美軍于2005年12月啟動聯(lián)合任務環(huán)境試驗能力(Joint Mission Environment Test Capacity,JMETC)項目的各項課題.JMETC的目標是建設聯(lián)合試驗能力,這種能力能夠將分布式的真實的、虛擬的和構造的(Live,Virtual,and Constructive,LVC)資源集成起來.它的開發(fā)及使用可以為相關部門在項目開發(fā)、研發(fā)測試、運行測試、互操作認證,包括在客戶特定的聯(lián)合任務環(huán)境中的網(wǎng)絡完備性、關鍵性能參數(shù)(Key Performance Parameter,KPP)的仿真演示需求提供支持.JMETC項目采用了TENA來開發(fā)新的支撐基礎結構的元模型,為JMETC提供了一種已被國防部接受的技術.TENA提供中間件和軟件部件,而JMETC虛擬專用網(wǎng)(VPN)提供硬件連接.目前TENA技術已經(jīng)普遍用于試驗鑒定和訓練項目中,連接美國所有試驗訓練靶場,提升了美軍的分布式試驗和訓練能力[2?3].
DDS是OMG發(fā)布的有關分布式實時系統(tǒng)中數(shù)據(jù)傳輸?shù)囊粋€新的規(guī)范(2004年12月發(fā)布1.0版,2007年1月發(fā)布1.2版)[4].DDS為各種不同的分布式應用提供了數(shù)據(jù)通信模型,能促使數(shù)據(jù)實時、高效地分發(fā).DDS是以數(shù)據(jù)為中心的發(fā)布-訂閱通信模型,并針對強實時系統(tǒng)進行了優(yōu)化,提供低延遲、高吞吐量、以及對實時性能的控制等級,從而使DDS能夠廣泛用于航空航天、國防、分布式仿真、工作自動化、分布式控制、機器人、電信以及網(wǎng)絡化的消費電器等多個領域[5].美國國防部2006年已經(jīng)把DDS列為全球信息柵格(Global Information Grid,GIG)的數(shù)據(jù)分發(fā)標準,目前已在美國的軍方及其他各個領域得到了廣泛應用.
1)為試驗和訓練靶場所使用的通信軟件提供互操作、可重用并且可組合的體系結構;
2)提供一個穩(wěn)健的、可靠的且不易誤操作的軟件基礎設施,以便實現(xiàn)該結構.
TENA的基本框架由TENA應用、TENA工具和TENA公共基礎設施3部分構成[6?9],如圖1所示.靶場資源應用程序屬于TENA應用,由靶場開發(fā)者創(chuàng)建,并部署于每個靶場,以執(zhí)行每天試驗與訓練中所有的任務.這些應用程序包含顯示系統(tǒng)、傳感系統(tǒng)、硬件在回路試驗臺及其他;可靠并可通用的靶場資源應用程序,被指定為TENA工具;所有這些應用程序,通過一個叫作“TENA中間件”的公共軟件基礎設施通信.TENA中間件負責整個系統(tǒng)運行期間邏輯靶場中應用程序的內(nèi)部通信.通信的主體是每個邏輯靶場的“邏輯靶場對象模型(Logical Range Object Model,LROM)”定義的一系列對象.這些對象多數(shù)從標準的“TENA對象模型”中挑選使用.
圖1下半部是TENA功能程序,這些功能程序,使用戶更易于實施管理,并在靶場事件生命周期中更易于與TENA基礎設施交互.圖片的右下角,顯示了不同TENA網(wǎng)關所扮演的角色——完全遵從TENA的與那些不遵從TENA的(包含基于HLA的仿真)系統(tǒng)間的橋梁.網(wǎng)關負責執(zhí)行用于邏輯靶場的TENA對象與用于非TENA系統(tǒng)的其他標準和協(xié)議間的翻譯.網(wǎng)關具有雙重性:它們是TENA邏輯靶場與其他非TENA應用程序“聯(lián)盟”二者的一部分.網(wǎng)關也可以提供TENA邏輯靶場與其他網(wǎng)絡之間的物理連通.
1)為解決國防和太空應用中跨域異構系統(tǒng)的數(shù)據(jù)分發(fā)問題而設計;
2)實時、可信和高性能的發(fā)布/訂閱中間件,其語義可通過一組豐富的(Quality of Service,QoS)策略[5,10]進行控制.
DDS是OMG關于分布式實時系統(tǒng)中數(shù)據(jù)發(fā)布/訂閱模型的一個規(guī)范.DDS規(guī)范為基于DDS構建的軟件定義了規(guī)范的接口和結構.如果分層描述基于DDS的應用系統(tǒng),DDS層將位于應用層與通信層之間,如圖2所示.
基本的DDS結構分為兩個層次:
1)底層是以數(shù)據(jù)為中心的發(fā)布/訂閱層(Data Centric Publish Subscribe,DCPS).DCPS層是DDS規(guī)范的核心層,提供有效的、可擴展的、能感知的數(shù)據(jù)訂閱分發(fā),可以按照數(shù)據(jù)主題、發(fā)布者和訂閱者的不同QoS策略來傳遞數(shù)據(jù).
圖1 TENA體系結構
圖2 DDS層位置關系圖
2)數(shù)據(jù)本地重構層(Data Local Reconstruction Layer,DLRL).它構建在DCPS層之上,可以選擇使用,提供可選擇的、面向對象的接口,能把主題映射到對象,建立起關聯(lián)關系,使分布式的數(shù)據(jù)可以為本地對象和遠程對象所共享.
在DDS架構中,DCPS層是核心,提供了實現(xiàn)DDS的核心功能.DCPS構建在“全局數(shù)據(jù)空間(Global Data Space,GDS)”概念的基礎上,所有相關應用都可以訪問該全局數(shù)據(jù)空間.DCPS模型又分為平臺獨立模型(Platform Independent Model,PIM)和平臺專門模型(Platform Specific Model PSM),PSM是以PIM為基礎的OMG IDL平臺,應用最多的是平臺獨立模型.向數(shù)據(jù)空間提供信息的應用即為“發(fā)布者”,從數(shù)據(jù)空間中獲取數(shù)據(jù)的應用即為“訂閱者”,同一個應用可以兼有發(fā)布者和訂閱者的角色,而且分布式節(jié)點中也可以存在多個不同應用.
在DDS規(guī)范中,定義DCPS層的核心實體有:域(Domain)、域參與者(Domain Participant)、主題 (Topic)、發(fā)布者 (Publisher)、數(shù)據(jù)寫入者(Data Writer)、訂閱者(Subscriber)、數(shù)據(jù)讀入者(Data Reader)等.這些實體完成了DDS的數(shù)據(jù)分發(fā)功能,它們之間的相互關系和主要動作如圖3所示.
圖3 實體概念圖
DDS規(guī)范的一個顯著特點是定義了多種QoS策略.這使得基于DDS的服務能夠充分利用系統(tǒng)資源,協(xié)調(diào)可預測性與執(zhí)行效率之間的平衡,支持復雜多變的數(shù)據(jù)流需求.
兩者解決的問題是相同的,它們都想把分布式的異構的系統(tǒng)集成在一起達到系統(tǒng)無縫連接的目的,只是應用的場合各自有所側重.
TENA和DDS各自優(yōu)勢對比情況如表1所示.
表1 TENA和DDS各自優(yōu)勢對比
從數(shù)據(jù)分發(fā)、通信的角度看,它們都在操作系統(tǒng)之上,應用層之下.TENA分兩層,一層是TENA中間件層,這層主要功能是通過事件運行期間為靶場資源應用程序間提供高性能、低延遲的實時通信,主要負責在聯(lián)合試驗、訓練時將邏輯靶場“束”在一起.這一層相當于DDS的DCPS層+Real-Time Publish/Subscribe Protocol(RTPS)+DDS Interoperability Wire Protocol層,如圖4所示,其中,RTPS層是OMG于2009年1月制定了以增強不同版本互操作性為目的的規(guī)范,在這個版本中,增加了實時發(fā)布訂閱RTPS層協(xié)議;另一層是代理/服務體層,它相當于DDS的DLRL層.
TENA和DDS的基本概念對比如表2所示.
表2 TENA與DDS基本概念表
一個元模型,就是對可用于闡述對象模型的特征的描述說明.TENA對象模型必須支持3類服務.這些服務針對不同類型的靶場信息提供基本功能,而這些信息需要編碼并標準化.這3類服務可以總結為:1)邏輯靶場(狀態(tài)分布式對象(Stateful Distributed Object,SDO))中,有一定壽命的對象;2)短暫的對象(消息);3)流動信息(數(shù)據(jù)流).TENA元模型支持描述所有構建對象模型的信息,這些信息是使用上述3種服務來傳送的.
“合成”是TENA元模型最重要的方面.構造SDO的能力對創(chuàng)建可再用TENA對象定義的標準集合是關鍵的.因為TENA元模型準許合成,TENA對象模型開發(fā)者可關注小的、可再用的、“積木”式對象的標準化上,而不是一口氣定義整個對象模型.TENA元模型如圖5所示,說明了元模型的所有要素以及它們之間的關系.
類(Class):一個類,是一個狀態(tài)分布式對象服務體.
流緩沖器:流緩沖器是SDO類的一個特殊屬性,它提供了分發(fā)數(shù)據(jù)流的一個終點.數(shù)據(jù)流中信息本身分割到框架中,每個框架編碼成向量或是值類型.
接口:是指為描述數(shù)據(jù)類型而匯集在一起的連續(xù)的一個或多個操作(方法簽名).一個接口可以擴展(或繼承)多個其他接口(或從多個接口繼承).它可以由SDO類執(zhí)行,或由數(shù)值類型執(zhí)行.
操作:指的是方法簽名,包含了返回類型與一系列參數(shù).參數(shù)可以指定為“進”(只有輸入)、“出”(只有輸出),或“進出”(可輸入輸出).返回類型與參數(shù)可以是列舉、基本類型、參考、向量或數(shù)值類型.
列舉:表示用戶定義的類型,該類型可獲得幾個預定義值中的一個值.列舉包含于數(shù)值類型或向量中.列舉可以用作參數(shù),也可作為操作的返回值.
基本類型:一個基本類型是指信息中不可分割片斷的類型.基本類型可以包含于數(shù)值類型與向量中.基本類型可以當作參數(shù)與操作返回值來使用.
圖4 TENA和DDS層級對比關系圖
圖5 TENA元模型
引用:一個引用代表一個指向SDO類的分布式指針.使用對SDO的引用,用戶可以直接控制該SDO.當一個用戶使用(解除引用)一個引用時,它獲得一個對SDO的代理,包括SDO發(fā)布狀態(tài)的當前版本.引用可以包含于數(shù)值類型、向量.它們可以當作參數(shù)與操作返回值使用.
向量:向量是一個相同類型元素序列.一個包含其他向量的向量,是一個有效的構造,所以向量支持邏輯靶場開發(fā)者期望的任何層次的合成.一個向量可以是一組相似類型的數(shù)值類型、基本類型、列舉或引用.一系列相似類型的SDO類向量,可以包含于其他類中.向量可以當作參數(shù)與操作返回值使用.向量可以包含在數(shù)值類型中.
數(shù)值類型:一個值類型,就是一個僅本地存在于給定進程空間的對象,但可以通過“數(shù)值”從一個進程傳送到另一個進程.最重要的數(shù)值類型隱式包含SDO類的發(fā)布狀態(tài).數(shù)值類型可當作消息體與數(shù)據(jù)流框架使用.
TENA與DDS原模型的基本要素對比如圖6所示.
目前,有些單位提出,把TENA和DDS混合使用,取長補短.通過研究認為,可能會出現(xiàn)以下問題:
1)在兩個應用程序中以相同名稱定義數(shù)據(jù)類型,但它們存在于在不同的結構體定義中,DDS的主題監(jiān)聽器監(jiān)聽不到數(shù)據(jù);
2)編譯器指令(例如為結構體定義關鍵字)在供應商間并未標準化,這使接口定義語言(IDL)文件不能標準化;
3)“主題”概念在TENA中沒有,將TENA中信息類型翻譯為主題需要新的方法來為數(shù)據(jù)建模;
4)DDS的應用程序接口某種程度上過于復雜,使得編譯時容易出現(xiàn)異常;
5)DDS的某些供應商不支持發(fā)送方過濾.
TENA是美國軍方支持的技術,雖然聲稱公開部分軟件,但還存在一些壁壘;DDS源碼可以在OMG網(wǎng)站上下載.下一步的工作準備開發(fā)、完善DDS使用工具,希望通過工具降低DDS的使用門檻,取得事半功倍的效果,讓系統(tǒng)工程師借助工具很快搭建系統(tǒng)基礎平臺,實現(xiàn)系統(tǒng)集成.
圖6 TENA與DDS原模型的基本要素對比圖