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