朱佳麗,王靜嬌
(中國船舶集團有限公司第八研究院,南京 211153)
雷達信息處理平臺數(shù)據(jù)傳輸系統(tǒng)目前存在以下情況:(1) 同一種軟硬件平臺下,不同的傳輸協(xié)議有不同的實現(xiàn)方式,多種傳輸協(xié)議之間沒有統(tǒng)一的、標準的傳輸接口;(2) 不同軟硬件平臺下,相同的傳輸協(xié)議實現(xiàn)也會有所不同,同一種傳輸協(xié)議在不同軟硬件平臺之間沒有統(tǒng)一的使用方式;(3) 異構(gòu)軟硬件平臺之間通信時,應用軟件通信接口復雜而難以維護;(4) 進行數(shù)據(jù)傳輸須預先知曉通信對端的存在情況和位置信息。
在上述情況下,應用軟件在程序設計和實現(xiàn)時須考慮多種傳輸協(xié)議之間的差異,分別實現(xiàn)不同的傳輸協(xié)議和傳輸接口;應用程序使用傳輸接口通信時,須預先設置通信對端的位置,無法實現(xiàn)數(shù)據(jù)透明傳輸;應用軟件進行跨平臺移植時,須要考慮平臺軟硬件之間的差異,進行傳輸相關(guān)接口的適配和修改。傳輸接口作為應用軟件之間、應用軟件內(nèi)部模塊之間的交互接口,上述情況不利于應用軟件的標準化、通用化、可擴展性和可移植性。
通信中間件可以屏蔽不同軟硬件環(huán)境的差異,為雷達數(shù)據(jù)傳輸提供一套標準的、統(tǒng)一的傳輸接口,縮短雷達應用軟件開發(fā)周期,提高雷達應用軟件的可維護性、可移植性和互聯(lián)互通性。諸多文獻都對此做了研究:通信中間件是實現(xiàn)異構(gòu)系統(tǒng)間透明訪問的關(guān)鍵技術(shù),目前已成為軍用電子設備開放式架構(gòu)的關(guān)鍵組成部分[1];多兵種、多層次、多系統(tǒng)的協(xié)同作戰(zhàn)模式已廣泛應用于現(xiàn)代戰(zhàn)爭中,將通信中間件應用于雷達軟件,可提高雷達系統(tǒng)的魯棒性,為雷達系統(tǒng)進一步融入戰(zhàn)區(qū)指揮系統(tǒng)打下基礎[2];通信中間件具有跨平臺性,可用于X86+40G網(wǎng)+LINUX和PPC+RapidIO+Vxworks等多種軟硬件平臺[3];在雷達軟件設計中運用開放式軟件架構(gòu)、軟件中間件技術(shù)、實時重構(gòu)技術(shù),可提高雷達軟件的可維護性[4]。
本文提出一種基于數(shù)據(jù)分發(fā)服務(Data Distribution Service,DDS)通信中間件作為傳輸接口的應用配置方法來解決上述問題。本方法通過一種配置通信節(jié)點的傳輸協(xié)議、發(fā)布、訂閱模式、接口和服務質(zhì)量(Quality of Service,QoS)等信息的應用實例,實現(xiàn)為不同的傳輸協(xié)議提供統(tǒng)一的接口實現(xiàn)和傳輸配置方式,為應用軟件的擴展和重構(gòu)提供支撐。
通信中間件采用圖1所示的發(fā)布/訂閱模型,主要由域、域參與者、發(fā)布者、訂閱者、服務質(zhì)量等構(gòu)成。域是物理網(wǎng)絡從邏輯上劃分形成域,只有同一個域內(nèi)的應用程序之間才能進行數(shù)據(jù)交互。參與通信的節(jié)點被分成產(chǎn)生數(shù)據(jù)的發(fā)布者和使用數(shù)據(jù)的訂閱者,發(fā)布者和訂閱者之間通過主題通信,只有擁有相同主題的讀者和寫者之間才能通信,一個節(jié)點可以既是發(fā)布者又是訂閱者。對于用戶而言,僅僅需要標識自己所需求的通信類型,并以特定格式描述所使用的數(shù)據(jù)格式就能與其他節(jié)點建立通信,所有的通信細節(jié)都由通信中間件進行管理。通信中間件按主題組織系統(tǒng)中的所有數(shù)據(jù),發(fā)布者通過數(shù)據(jù)寫者發(fā)布需要分享的主題數(shù)據(jù),訂閱者通過數(shù)據(jù)讀者訂閱自己感興趣的主題數(shù)據(jù),無需其他應用程序的存在性以及位置信息,實現(xiàn)空間、時間上解耦合。DDS通信中間件通過豐富的通信服務質(zhì)量QoS配置功能,支持多種通信協(xié)議和通信行為配置,提供雷達數(shù)據(jù)通信行為定制能力。
圖1 發(fā)布/訂閱通信模型
對于不同的軟硬件平臺和不同的傳輸協(xié)議,通信中間件提供標準的、統(tǒng)一的傳輸接口,接口主要包括DDS初始化接口、創(chuàng)建域參與者接口、主題發(fā)布接口、主題訂閱接口、寫數(shù)據(jù)接口、監(jiān)聽數(shù)據(jù)接口、資源回收接口,具體如表1所示。通信中間件提供不同軟硬件平臺下的庫文件和頭文件,包括X86+Windows、X86+Linux、飛騰+Linux等,并通過QoS配置來實現(xiàn)通信協(xié)議的選擇,使用戶在設計通信接口時不需要考慮軟硬件平臺以及傳輸協(xié)議之間的接口差異。
表1 通信中間件傳輸接口
在使用通信中間件進行雷達數(shù)據(jù)通信時,通過QoS配置實現(xiàn)通信協(xié)議的選擇以及通信行為的定制。QoS可以理解為雷達數(shù)據(jù)提供者和數(shù)據(jù)接收者之間的“合約”,通信兩端的QoS配置要保持一致。DDS通信中間件以數(shù)據(jù)為中心,雷達設備數(shù)據(jù)業(yè)務類型多樣,從中頻數(shù)據(jù)、視頻數(shù)據(jù)到點航跡類數(shù)據(jù)、控制信息等,其帶寬、實時性、拓撲、協(xié)議等均大相徑庭,通信中間件通過QoS服務配置來滿足各種應用場景需求。
QoS配置作用的通信中間件實體包括域參與者、數(shù)據(jù)讀者、數(shù)據(jù)寫者等,其中域參與者的QoS配置對于其對應的所有數(shù)據(jù)讀者和數(shù)據(jù)寫者均有效。通過QoS配置可以設置傳輸協(xié)議、傳輸方式、傳輸模式。傳輸協(xié)議主要包括SRIO、TCP、UDP等,傳輸方式包括點播、組播,傳輸模式包括可靠傳輸和盡力而為傳輸模式,QoS配置具體如表2所示。
表2 通信中間件QoS配置與實現(xiàn)
通信中間件采用XML文件描述QoS配置信息,一個XML文件中可以包含應用所需的所有QoS配置。用戶只需在表1標準接口中引用XML文件中的實體QoS,即可實現(xiàn)傳輸協(xié)議、傳輸方式、傳輸模式等配置。采用XML文件描述QoS可使配置信息與應用軟件松耦合,實現(xiàn)配置信息的跨平臺移植。圖2是一個包含Rapido、TCP、UDP等傳輸協(xié)議的QoS配置。
圖2 XML文件描述QoS信息
雷達數(shù)字后端傳輸數(shù)據(jù)有點航跡數(shù)據(jù)、視頻數(shù)據(jù)、控制信息等,根據(jù)數(shù)據(jù)傳輸帶寬要求會涉及SRIO、UDP、TCP等多種通信協(xié)議,不同通信協(xié)議有不同的通信處理流程和通信接口實現(xiàn)。采用DDS通信中間件進行數(shù)據(jù)通信時,可以屏蔽軟硬件平臺和通信協(xié)議之間的差別, 提供標準的統(tǒng)一的通信處理流程和通信接口。在不同的軟硬件平臺下,基于通信中間件的雷達數(shù)據(jù)通信實現(xiàn)流程如圖3所示,具體如下:
圖3 基于通信中間件的數(shù)據(jù)傳輸實現(xiàn)流程
(1) 設計通信的數(shù)據(jù)類型;
(2) 根據(jù)數(shù)據(jù)傳輸需求設計各實體的QoS配置;
(3) 初始化DDS通信接口;
(4) 創(chuàng)建域參與者,并設置通信域ID;
(5) 在數(shù)據(jù)發(fā)送端創(chuàng)建數(shù)據(jù)寫者,配置相關(guān)主題、數(shù)據(jù)類型和QoS服務類型,并通過數(shù)據(jù)寫者進行數(shù)據(jù)發(fā)布;
(6) 在數(shù)據(jù)接收端創(chuàng)建數(shù)據(jù)讀者,配置相關(guān)主題、數(shù)據(jù)類型、QoS服務類型以及數(shù)據(jù)監(jiān)聽器,通過數(shù)據(jù)讀者進行數(shù)據(jù)訂閱,并在回調(diào)接口中處理數(shù)據(jù);
(7) 清理回收資源。
使用通信中間件進行雷達數(shù)據(jù)傳輸時,通過表1標準接口、表2和圖2的QoS配置就能實現(xiàn)不同傳輸協(xié)議下接口的統(tǒng)一。一個同時包含了UDP協(xié)議和RapidIO協(xié)議的基于通信中間件的傳輸接口實現(xiàn)如下:
(1) 調(diào)用Init()接口進行DDS初始化;
(2) 分別創(chuàng)建UDP協(xié)議下的域參與者udpDp和RapidIO協(xié)議下的域參與者rioDp;
(3) 調(diào)用DDS_PubTopic()接口創(chuàng)建用于主題發(fā)布的數(shù)據(jù)寫者,通過參數(shù)設置傳輸協(xié)議、主題信息、支持的數(shù)據(jù)類型、傳輸模式;
(4) 調(diào)用DDS_SubTopic()接口創(chuàng)建用于主題訂閱的數(shù)據(jù)讀者,通過參數(shù)設置傳輸協(xié)議、主題信息、支持的數(shù)據(jù)類型、傳輸模式和數(shù)據(jù)監(jiān)聽器,通過監(jiān)聽函數(shù)監(jiān)聽主題數(shù)據(jù)的到來,并對數(shù)據(jù)進行接收處理;
(5) 調(diào)用write接口用于主題數(shù)據(jù)的發(fā)送;
(6) 調(diào)用DDS_Finalize()接口進行DDS資源回收。對于不同的軟硬件平臺,通信中間件分別提供了對應的庫文件和頭文件,通過引用對應的庫文件和頭文件,就能實現(xiàn)通信中間件接口軟件的跨平臺移植和代碼重用。對于異構(gòu)平臺之間的通信,比如X86+Windows和飛騰+Linux平臺,通過使用不同平臺下對應的庫文件和頭文件,以及通信中間件標準的通信處理流程和統(tǒng)一的通信接口就可以實現(xiàn)異構(gòu)平臺之間的通信。
從圖3可以看出,在同一軟硬件平臺下,通信中間件可以提供不同傳輸協(xié)議下標準的數(shù)據(jù)傳輸處理流程以及統(tǒng)一的傳輸接口實現(xiàn);不同軟硬件平臺下,通過引用不同軟硬件平臺下的庫文件和頭文件,就能實現(xiàn)通信中間件接口軟件的移植和重用。通信中間件采用基于主題發(fā)布/訂閱的方式進行數(shù)據(jù)通信,通信中間件按主題組織系統(tǒng)中的所有數(shù)據(jù)。應用軟件使用通信中間件進行數(shù)據(jù)傳輸時,發(fā)布者通過數(shù)據(jù)寫者發(fā)布需要分享的主題數(shù)據(jù),訂閱者通過數(shù)據(jù)讀者訂閱自己感興趣的主題數(shù)據(jù),無需知道其他應用程序的存在性以及位置信息,可實現(xiàn)空間、時間上解耦合。
雷達信息處理平臺數(shù)據(jù)傳輸涉及多種軟硬件平臺和多種傳輸協(xié)議,本文提出一種基于DDS通信中間件作為傳輸接口的應用配置方法,通過一種配置通信節(jié)點的傳輸協(xié)議、發(fā)布、訂閱模式、接口和QoS等信息應用實例,實現(xiàn)為不同的傳輸協(xié)議提供統(tǒng)一的接口實現(xiàn)和傳輸配置方式,為應用軟件的擴展和重構(gòu)提供支撐,實現(xiàn)應用軟件空間、時間上解耦合。