李 賢
(江蘇自動化研究所,江蘇連云港222006)
基于DDS的指揮控制系統信息共享技術研究*
李 賢
(江蘇自動化研究所,江蘇連云港222006)
戰場態勢信息的共享是實現協同作戰急需解決的問題,信息共享技術關系著指揮效率和協同作戰能力的高低,關系著作戰效果是否精確高效。DDS是實時分布式系統實現信息共享的一種有效途徑,文中首先介紹了RTI DDS的體系結構,包括基本組件和QoS配置,其次針對指揮控制系統信息共享的需求,提出了使用RTI DDS實現信息共享過程中的關鍵問題及解決方法,并通過搭建實驗環境驗證,實驗結論證明DDS可以作為指揮控制系統的一種有效的信息共享技術。
指揮控制系統 信息共享 實時分布式系統 數據分發服務
隨著計算機技術和通信技術的發展,武器裝備具備了很高的信息化水平,作戰模式也由平臺中心戰向網絡中心戰轉變,以網絡為中心的未來信息化戰爭,核心是戰場態勢的共享,態勢共享的基礎是信息共享[1]。將戰場所有傳感器、武器平臺和指控系統緊密聯合起來形成一張統一的網絡,實時的共享戰場態勢,就能縮短決策時間,提高指揮效率和協同作戰能力,達到作戰效果的精確高效。
數據分發服務(DDS,Data Distribution Service)是用于實時分布式系統的一種網絡中間件,它提供了節點之間的實時網絡通信服務。它使用訂閱/發布通信模型來保證數據分發的有效性和健壯性。未來信息化戰爭的基本要求是戰場信息的全局透明共享,各個作戰單元通過網絡化指揮信息系統共享戰場信息,是典型的分布式實時應用。
1.1 DDS技術現狀及發展趨勢
DDS是對象管理組織OMG的有關分布式實時系統中數據發布的一個規范,采用發布訂閱體系結構,對實時系統有很好的支持,針對強實時系統進行了優化,提供低延遲、高吞吐量、以及對實時性能的控制級別。能夠廣泛的應用于航空、國防、分布仿真、工業自動化、分布控制及電信等多個領域[2]。
1.2 RTI DDS體系結構
RTI DDS實現了OMG提出的實時系統數據分發服務的DCPS接口,DCPS是以數據為中心的訂閱分發機制。RTI DDS具有很強的容錯機制和靈活的通信方式配置,可以兼容各種計算機硬件、操作系統、編程語言和網絡傳輸協議。RTI DDS的高可配置性使其可以滿足用戶各種應用需求。
RTI DDS的主要組件及其關系如圖1所示。

圖1 RTI DDS主要的組件及其關系Fig.1 Main modules of RTI DDS
1)參與者(Domain Participants)。寫入者和讀取者能夠互相通信,前提條件必須屬于同一個域(Domain),每個域都有一個唯一的整型的域ID。多個域的好處是,能夠在同一個物理網絡上,模擬多個虛擬的分布式系統,且互不干擾。參與者使一個應用程序能夠和域內的其他應用程序交互信息,參與者被用來創建主題、發布者、寫入者、訂閱者和讀取者,創建的這些對象和參與者屬于同一個域。
2)發布者(Publishers)和寫入者(Data Writers)。應用程序使用寫入者的“寫入”操作向域發布數據,而發布者用來將寫入者分類,程序員可以給發布者分配QoS配置,并應用到屬于該發布者的所有寫入者[3]。每個寫入者和唯一的主題關聯。每個主題以及該主題的所有寫入者都和一個特定的離散數據類型關聯,“寫入”操作是類型安全的,意味著在發布數據之前,需要做強制類型轉換。
3)訂閱者(Subscribers)和讀取者(Data Readers)。應用程序使用讀取者讀取訂閱的數據,而訂閱者用來將讀取者分類,程序員可以給發布者分配QoS配置,并應用到屬于該訂閱者的所有讀取者。每個讀取者和唯一的主題關聯,讀取者只能接收其關聯的主題數據。
4)主題(Topics)。主題提供了讀取者和寫入者之間的連接點。節點應用程序寫入者關聯的主題必須和另一個節點應用程序讀取者關聯的主題匹配,他們之間才能通信。主題包括名字和類型,名字是一個字符串,在一個域內唯一確定了該主題,類型是數據的結構定義。
5)鍵值(Keys)和樣本(Samples)。主題的值可能隨時變化,每一個值成為一個樣本,類似于類和對象的概念。樣本之間是靠鍵值區分的,鍵值是指定的,主題中的一個或者多個字段(Field)。
指揮控制系統是軍隊信息化的標志之一,肩負著戰場指揮的自動化、實時化和精確化任務。指揮控制系統接收各傳感器的探測和偵察數據,以及各武器平臺、協同作戰平臺的實時數據,進行復雜的數據計算,同時分發各種決策數據。指揮控制系統網絡數據根據平臺類型、使命任務和裝備的不同而千差萬別,建立一種實時的、即插即用的、具有強容錯性和魯棒性的信息共享機制具有很高的實用價值。
指揮控制系統設備臺位繁多,所用系統硬件平臺CPU架構也不盡相同,操作系統有Windows XP、Windows XP Embedded和VxWorks等,部署的軟件編程語言、編譯環境都存在差異,所有的這些造成了數據在不同的平臺間傳輸存在類型錯誤的可能,因為數據在不同的平臺上存儲方式和處理方式存在差異,不同平臺間數據的類型安全成為信息共享的瓶頸之一。
指揮控制系統網絡傳輸的數據類型繁多,各個節點所關注的信息必然是由選擇性的,而不感興趣的數據都會對我們的網絡和CPU資源造成浪費,同時使應用程序的邏輯復雜化。如何使軟件和網絡更多的關注有用數據,是指控系統信息共享機制必須關注的。
指控系統網絡環境復雜,節點或者網絡容易發生故障,在故障恢復時無法恢復數據,造成數據的丟失。指控系統信息共享機制必須能夠對歷史數據進行保存。復雜的網絡環境,數據延遲容易因為不可知的原因增大,數據包的傳輸失敗可能造成嚴重的問題。例如,傳感器每0.5 s發送一次自身的狀態值,雷達每0.2 s發送一次其所跟蹤的目標的位置,如果傳感器或者雷達未在承諾的周期內更新數值,可能會造成不可預知的結果,對周期性數據延遲的處理必須能夠如實的反映網絡和節點狀況。
指控系統網絡需要傳輸數據、圖像、語音和視頻等多種業務,帶寬的利用率尤為重要,對于頻繁發送的小數據包,會過多的占用網絡帶寬,造成網絡有效吞吐量下降,所以信息共享機制應該能對大量的小數據包進行合適的處理,防止造成網絡擁塞。
指控系統與其他系統通過衛星、數據鏈和短波等無線通信方式通信,無線通信質量受環境影響很大,信息共享機制必須能夠處理在大丟包率情況下的通信。
3.1 數據類型安全處理
指控系統網絡各個節點不可能是統一的平臺架構,應用程序數據在內存中的存儲和分布隨著語言/編譯器/操作系統/處理器的不同而變化,中間件必須能夠將數據從一個平臺透明傳輸到另一個平臺,這個處理過程成為序列化/反序列化。
基于消息的分布式中間件可以采用如下兩種方式解決這個問題:
1)什么都不做,這種方式將不同平臺間的數據內存分布差異交給程序員來處理,程序員必須處理所有的編碼、對齊和補齊問題。
2)中間件屏蔽不同平臺間的差異,這種方式需要將每個消息攜帶大量的冗余信息,這種方式會影響軟件性能,圖2顯示了傳統中間件對數據類型安全的處理。

圖2 傳統中間件對數據類型安全的處理Fig.2 Type-safe process of traditional middleware
RTI DDS采用一種折中的方法,類似于應用程序中的數據類型,一個主題的所有樣本屬于同一種數據類型,這種類型的定義包括一些字段和字段的類型。可以通過接口定義文檔(Interface Definition Document)來定義類型。RTI DDS通過這種方式在有效的傳輸數據的同時,也解決了字節序和字節對齊問題。圖3顯示了RTI DDS對數據類型安全的處理。

圖3 RTI DDS對數據類型安全的處理Fig.3 Type-safe process of DDS
RTI DDS有很多種方式來定義和使用數據類型:
1)使用內置的數據類型,如果消息是一個簡單的字符串或者是一段字節緩沖區,那么可以使用RTI內置的數據類型。內置的數據類型包括String、KeyedString、Octets和KeyedOctets,String和Keyed-String可以用來發送長度可變的單字節字符序列, Octets和KeyedOctets可以用來發送長度可變的字節序列。內置的數據類型可以滿足簡單的數據類型需求,但是如果數據很復雜并且高度結構化的,或者需要DDS檢查字段用于數據過濾或其他目的,那么內置的數據類型就不合適了。
2)編譯時定義數據類型,使用一種語言無關的描述方式以及RTI代碼生成器rtiddsgen來生成數據類型,這種方式提供了編譯時類型安全。數據類型定義可以使用OMG IDL、XML Schema(XSD)和DDS指定的XML格式,rtiddsgen可以接收這種類型定義。
3)運行時動態定義數據類型,這種方式適用于那些有動態數據描述需求的應用程序,數據類型頻繁改變或者無法事先知道數據類型。
指控系統網絡通信,可以通過使用編譯時定義數據類型,來保證多平臺間數據類型的安全,使程序員能夠專注于指控系統業務邏輯。
3.2 主題條件過濾
RTI DDS提供了一種數據過濾功能,數據的精簡可以使應用程序更多的關注有用數據。數據的精簡可以基于以下幾種方式:
1)數據內容。基于內容的過濾器可以檢查數據的各個字段,這些字段的值是否滿足一定的標準。對于數值類型,可以判斷大小,對于字符串類型,可以判斷是否滿足一定的正則表達式。在創建讀取者時綁定過濾器主題,在創建過濾器主題時使用類SQL表達式來指定基于內容的過濾器。運行時動態的指定過濾條件。
2)數據時間。基于時間的過濾器可以過濾一段時間內的,或者一定歷史深度的數據。
3)更新速率。如果訂閱者只能夠(只需要)以一定的速率處理數據,這種過濾標準很有用。如果發布者發布數據的速率過快,則中間件將丟棄中間的一些數據。通過這種過濾器來對數據包進行降采樣[4]。
在指控系統網絡中,基于內容和時間的過濾器,可以大大減小網絡流量和CPU負載。對于網絡中處理能力較差,且短期內無法得到更新的節點,可以使用更新速率過濾器,對數據進行降采樣。同樣對于一些表頁顯示的數據,過快的更新速率容易導致畫面抖動,用戶不易獲取正確的數值,這種情況下也可以使用更新速率過濾器。
在相同發包率的情況下,比較訂閱者在采用包過濾和未采用包過濾兩種情況下的CPU利用率,如圖4所示,未采用包過濾的情況下,由于應用軟件對接收到的數據需要接收,判斷是否是感興趣的數據,如果不是感興趣的數據則拋棄,這些操作消耗了大量的CPU資源。而基于內容的數據包過濾則節省了CPU資源,同樣,不滿足過濾條件的數據包不會在網絡上出現,減輕了網絡的負載。

圖4 訂閱者采用主題過濾后的CPU使用率Fig.4 Comparison of CPU utilization with topic filtering
3.3 系統的容錯性
作戰網絡節點故障后恢復重新訂閱,這時容易丟失在這段時間內發布的數據,RTI DDS將發送的數據保存在中間件中,用戶只需要配置持續性(Durability)策略。
在測試系統中,持續性策略配置為永久保存,數據將會被永久的保存在數據庫中,數據發布者提前發布數據包,發包速率為2包每秒,在發布者開始發包5 s后,訂閱者開始接收數據包,發包量和收包量關系如圖5所示。
通過對歷史數據的配置,可以更好的實現整個系統對故障的容錯能力,增強整個系統的魯棒性。

圖5 發包量總量和收包總量之間的關系Fig.5 Comparison of between sent and received packets
3.4 數據組包處理
在指控系統網絡中可能存在一種數據,數據本身很小,卻以很高的包率發送,數據對時間的不敏感,每個包在中間件和網絡中分別發送,會重復消耗大量的網絡帶寬,造成網絡擁塞[5]。RTI DDS提供了一種機制,將多個數據包組成一個大的數據包發送,這樣就節約了重復的消耗。
當發現網絡吞吐量遠小于網絡的最大帶寬,同時CPU負載很高,這時需要使用組包機制。
使用組包機制,在應用程序發送小數據包的時候,中間件并不實際將其發送到網絡,這容易造成潛在的數據延遲,但是如果,應用程序發送數據的速率遠大于網絡的物理吞吐量,這樣一部分帶寬還要用于對數據的確認和重發,這樣無形的增加了網絡的壓力,造成延遲的增加,在這種情況下使用RTI DDS的組包機制,可以實現在增加網絡吞吐量的同時減少數據延遲。
組包的結束可以設置不同的條件,比如樣本的數量、組包的大小和第一包的時間,也可以手動結束組包并發送。
在仿真環境中分別設置組包結束條件為最大100包并且包大小最大值為8192字節,可以得到如圖6所示的仿真結果。

圖6 數據包大小和網絡吞吐量的關系Fig.6 Relation between throughput and packet size
從仿真結果中可以看到,在發布者發布的數據包較小時,網絡的吞吐量較小,組包的吞吐量遠大于未組包的吞吐量,在數據包變大的過程的后段,組包的吞吐量變化不明顯,而未組包的吞吐量急劇變大,這是因為包頭的消耗比例減小。所以,對于較小的數據,采用組包機制能夠明顯的增大網絡的吞吐量。
3.5 鏈路條件惡劣處理
在使用衛星或者長距離的無線鏈路時,高延遲、低帶寬和高丟包率成為系統需要面對的問題。衛星的傳輸延遲可達0.5~1 s,帶寬通常在500 kb/s以內,同時有3%左右的丟包率[6]。RTI DDS不僅實現了可靠的傳輸協議(類似于TCP),而且同時監控網絡的狀態,對網絡狀態的監控增強了對惡劣通信環境的適應性。
同時在指控系統中通過惡劣的傳輸環境通信,需要特別注意一些問題,需要注意的問題和RTI DDS適應性配置說明如下。
1)網絡數據包的大小,分片會增加額外的網絡流量。需要注意的是,網絡數據包的大小不僅包括數據域的大小,還包括在序列化數據的時候為了對齊而補齊的數據。
2)確認和重發的效率,通信中確認活躍的心跳報文集成在數據報文中,成為捎帶心跳。在RTI DDS通過配置捎帶心跳的頻率,可以讓接收端中間件提前發現數據分片的丟失。
確保重發數據包不超過帶寬限制。如果重發數據包的數量大于帶寬限制,將造成網絡擁塞,增大丟包率,降低網絡吞吐量,需要在RTI DDS中通過設置單次重發數據包的總大小,來防止此類情況的發生。
3)對小數據包進行組包來提高吞吐量,需要注意組包的最大大小不能大于鏈路的MTU,如果大于鏈路的MTU,將會在造成可靠性傳輸的粒度上產生分片,分片會嚴重影響網絡的吞吐量。
一個丟包率為3%的衛星鏈路典型的數據長度和帶寬利用率之間的關系如圖7所示。

圖7 典型衛星鏈路包長度和帶寬利用率關系Fig.7 Relation between band usage and packet size
圖7中可以看出,隨著數據包的增大,網絡的有效吞吐量增大,但當增大到大于MTU時,數據包進行了分片,吞吐量急劇下降。在丟包率很大的時候,數據包的分片將造成未分包前數據包丟包率大大增加。在一個不可靠網絡中(如UDP),一個分片的丟失將導致整個數據包不可用。在可靠網絡中(如TCP),由于可靠機制造成的丟包也將大大增加丟包率,幾乎導致整個包不可用。
為了解決這個問題,可靠機制保障不應該是整個數據包,而應該是傳輸過程中容易丟失的分片,也就是保障可靠性的粒度問題。
在QoS文件中設置DDS層的分片大小小于MTU,這樣就會使數據包傳輸到IP層是已經不需要在進行分片了,保證了可靠性的粒度為DDS層的分片。
本文簡要的介紹了DDS的概念,選擇應用廣泛的RTI DDS作為示例介紹了其體系結構,包括基本組件、相互關系及QoS配置。對于指揮控制系統這種典型是實時分布式系統,其信息共享需求的實現由于其特定的應用環境,有特定的需求,本文分析了指揮控制系統信息共享的需求,針對實際需求,基于RTI DDS的靈活的可配置性,提出了解決或者配置方法,為實際在指揮控制系統中使用DDS提供了參考。
[1] 王斌,林懷清,林海濤.戰場態勢數據分發技術研究[J].艦船電子工程,2011,31(05):9-11. WANG Bin,LIN Huai-qing,LIN Hai-tao.Research on the Distribution Technology for Battlefield Situation Data [J].Ship Electronic Engineering,2011,31(05):9-11.
[2] 楊傳順,王學萬.實時數據分發系統的服務質量控制的研究[J].計算機技術與發展,2011,21(05):231-234. YANG Chuan-shun,WANG Xue-wan.Research on Quality of Service of Real-time Data Distribution System [J].Computer Technology and Development,2011,21 (05):231-234.
[3] 仲維亮,楊斌,雷國志.基于DDS的傳輸插件的性能比較和分析[J].通信技術,2013,46(03):13-15.
ZHONG Wei-liang,YANG Bin,LEI Guo-zhi.Comparison and Analysis on Performances of DDS Transmission Plug-ins[J].Communication Technology,2013,46 (3):13-15.
[4] 張珺,尹遜和.基于RTI DDS的數據分發中間件的升級設計[J].北京交通大學學報,2011,35(05):31-37.
ZHANG Jun,YIN Xun-he.Design of Upgraded Data Distribution Service Middleware Based on RTI DDS[J].Journal of Beijing Jiaotong University,2011,35(5):31-37.
[5] 張強,李建華.基于發布/訂閱的信息共享模型實時性能分析研究[J].軍事運籌與系統工程,2013, 27(01):33-35.
ZHANG Qiang,LI Jian-hua.Research on the Performance of Information Sharing Model Based on Publish/Subscribe[J].Military Operations Research and System Engineering,2013,27(1):33-35.
[6] Real-Time Innovations.RTI Distribution Data Service User′s Manual Version 45c[EB/OL].(2010-01-01) [2014-06-18].http://www.rti.com/products/dds/ index.html.
Information Sharing Technology of DDS-based Command and Control System
LI Xian
(Jiangsu Automation Research Institute,Lianyungang Jiangsu 222006,China)
Information sharing of battlefield situation is an urgent problem for cooperative fight.Information sharing technology has a bearing on command efficiency and cooperative capability,including the precision of combating effect.DDS is an effective approach to achieve information sharing of real-time distributed system.This paper firstly describes the architecture of RTI DDS,including basic modules and QoS configuration.Then,in accordance with the information sharing requirement of command and control system,this paper points out the critical problems in information sharing process and proposes solutions to these problems.And experiment indicates that DDS could serve as an effective technique for information sharing in command and control system.
command and control system;information sharing;real-time distributed system;data distribution service
TN911
A
1002-0802(2014)11-1322-06
10.3969/j.issn.1002-0802.2014.11.017

2014-09-01;
2014-10-10 Received date:2014-09-01;Revised date:2014-10-10
李 賢(1986—),男,碩士,工程師,主要研究方向為軍事通信技術。
LI Xian(1986-),male,M.Sci.,engineer,mainly engaged in the research of military communication technology.