胡亞男,程健慶,何躍峰
(江蘇自動(dòng)化研究所,江蘇連云港 222061)
基于DDS艦載火控系統(tǒng)通信
胡亞男,程健慶,何躍峰
(江蘇自動(dòng)化研究所,江蘇連云港222061)
摘要:針對(duì)艦載火控系統(tǒng)通信需求,提出基于DDS的艦載火控體系結(jié)構(gòu),實(shí)現(xiàn)了系統(tǒng)松耦合,同時(shí)滿足了實(shí)時(shí)性要求。通過發(fā)布訂閱服務(wù)的設(shè)計(jì),基于默認(rèn)QoS策略,分別使用內(nèi)置數(shù)據(jù)類型和自定義數(shù)據(jù)類型實(shí)現(xiàn)艦載火控系統(tǒng)的發(fā)布訂閱功能。通過可靠性QoS策略的配置分析其對(duì)系統(tǒng)實(shí)時(shí)性和可靠性的影響。測(cè)試結(jié)果表明,DDS在艦載火控系統(tǒng)中有廣闊的應(yīng)用前景。
關(guān)鍵詞:DDS規(guī)范;艦載火控系統(tǒng);發(fā)布/訂閱模型;QoS策略
隨著軍事裝備技術(shù)的提高,新的作戰(zhàn)需求使艦載火控系統(tǒng)向綜合化、網(wǎng)絡(luò)化的方向發(fā)展。艦載火控系統(tǒng)除具備最基本的要求之外,還應(yīng)當(dāng)適應(yīng)未來海上信息化作戰(zhàn)的需求,既要保持和發(fā)揮單個(gè)武器平臺(tái)的作戰(zhàn)能力,更要發(fā)揮整個(gè)作戰(zhàn)網(wǎng)絡(luò)中的所有軟硬武器的作戰(zhàn)能力[1]。傳統(tǒng)作戰(zhàn)系統(tǒng)以點(diǎn)對(duì)點(diǎn)為通信模式,各種作戰(zhàn)資源未能充分共享利用,很難適應(yīng)信息化作戰(zhàn)的一體化需求。
20世紀(jì)90年代開始,世界許多國(guó)家開始研制適應(yīng)網(wǎng)絡(luò)化作戰(zhàn)的火控系統(tǒng)。從軍事需求來講,合理的火控系統(tǒng)必然要在數(shù)字化信息戰(zhàn)爭(zhēng)中方便使用,要適合于協(xié)同作戰(zhàn)。為此,系統(tǒng)要網(wǎng)絡(luò)化,便于作戰(zhàn)時(shí)聯(lián)網(wǎng)。將火控系統(tǒng)納入網(wǎng)絡(luò)作戰(zhàn),有利于其在更大范圍內(nèi)交互信息、圖像數(shù)據(jù)。以數(shù)據(jù)為中心的發(fā)布訂閱模型可以實(shí)現(xiàn)火控系統(tǒng)中資源的按需配置,提高信息共享能力[2]。
1艦載火控系統(tǒng)通信需求
綜合分析國(guó)內(nèi)外艦載火控系統(tǒng)的現(xiàn)狀和發(fā)展趨勢(shì),艦載火控系統(tǒng)體系結(jié)構(gòu)由集中式向分布式發(fā)展[3]。集中式火控系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 集中式火控系統(tǒng)體系結(jié)構(gòu)
在集中式火控系統(tǒng)中,火控系統(tǒng)的目標(biāo)跟蹤控制、火控計(jì)算和射擊控制等主要計(jì)算任務(wù)集中由一臺(tái)或一組計(jì)算機(jī)來完成。
集中式火控系統(tǒng)數(shù)據(jù)傳輸以客戶服務(wù)模型(Client-Server,C/S)為基礎(chǔ),如圖2所示,客戶端與服務(wù)端直接建立連接,客戶端發(fā)送數(shù)據(jù)給服務(wù)端,服務(wù)端進(jìn)行相應(yīng)處理并將結(jié)果返回給客戶端。這是一對(duì)多的體系結(jié)構(gòu),隨著客戶端節(jié)點(diǎn)的增加,服務(wù)端響應(yīng)時(shí)間變長(zhǎng),從而出現(xiàn)性能瓶頸。而一旦服務(wù)端發(fā)生故障,整個(gè)系統(tǒng)將崩潰。
圖2 C/S模型
發(fā)布訂閱模型以數(shù)據(jù)為中心,如圖3所示,客戶之間的通信完全是通過中間件來實(shí)現(xiàn)的,客戶分為發(fā)布者和訂閱者,發(fā)布者發(fā)布數(shù)據(jù),訂閱者訂閱數(shù)據(jù),數(shù)據(jù)就在中間件中自動(dòng)傳遞。在任意時(shí)刻,發(fā)布者/訂閱者都無需知道對(duì)方是否存在,它們都是任意的,動(dòng)態(tài)的。因此,發(fā)布訂閱模型是松耦合的,提高了系統(tǒng)的靈活性[4]。
圖3 發(fā)布/訂閱模型
以發(fā)布訂閱模型為基礎(chǔ)的分布式火控系統(tǒng),如圖4所示,火控系統(tǒng)將獨(dú)立功能分解到多個(gè)計(jì)算機(jī)中完成,通過DDS中間件實(shí)現(xiàn)信息交互和共享,實(shí)現(xiàn)了在物理位置上和功能上的分布。物理位置上的分布,是指各個(gè)計(jì)算機(jī)位于應(yīng)用它的設(shè)備附近,不但可以縮短計(jì)算機(jī)與所控設(shè)備的連線,更可以提高生存性;功能上的分布,是指位于不同位置上的計(jì)算機(jī)獨(dú)自完成所劃分的相對(duì)獨(dú)立的單一功能。
圖4 基于DDS分布式火控系統(tǒng)體系結(jié)構(gòu)
基于DDS分布式火控系統(tǒng)體系結(jié)構(gòu)的優(yōu)點(diǎn)主要有以下幾個(gè)方面:
1)DDS的應(yīng)用,使得系統(tǒng)信息資源可以充分共享;
2)系統(tǒng)的通道組織非常靈活,具有較強(qiáng)的系統(tǒng)重構(gòu)能力和任務(wù)動(dòng)態(tài)分配能力,有效提高了系統(tǒng)的可靠性和生命力;
3)系統(tǒng)的模塊化程度高,便于擴(kuò)充、裁剪和設(shè)備的更換;
4)可縮短研制周期,降低系統(tǒng)研制成本。
2DDS規(guī)范
數(shù)據(jù)分發(fā)服務(wù)規(guī)范(Data Distribution Service, DDS)由OMG(Object Management Group,對(duì)象管理組織)發(fā)布。該規(guī)范基于發(fā)布/訂閱模型,它將分布式通信系統(tǒng)分為兩部分:數(shù)據(jù)發(fā)布者和數(shù)據(jù)訂閱者。
DDS采用全局?jǐn)?shù)據(jù)空間代替中心服務(wù)器,用來管理整個(gè)分布式系統(tǒng)中的發(fā)布、訂閱、節(jié)點(diǎn)信息的維護(hù)。所有的數(shù)據(jù)對(duì)象都存在于全局?jǐn)?shù)據(jù)空間中,分布式節(jié)點(diǎn)通過簡(jiǎn)單的讀/寫就可以訪問數(shù)據(jù)對(duì)象。
2.1DDS實(shí)體
在DDS規(guī)范中,域是創(chuàng)建、刪除和管理其他DDS對(duì)象的核心點(diǎn),只有屬于相同DDS域的應(yīng)用才能互相通信。數(shù)據(jù)通過主題被區(qū)分,主題連接數(shù)據(jù)寫入者和數(shù)據(jù)讀取者。發(fā)布者擁有并控制寫入者,一個(gè)寫入者只能被一個(gè)發(fā)布者所擁有,一個(gè)發(fā)布者可以有多個(gè)寫入者。訂閱者擁有并控制讀取者,一個(gè)讀取者只能被一個(gè)訂閱者所擁有,一個(gè)訂閱者可以有多個(gè)讀取者。每個(gè)實(shí)體都可以通過設(shè)置監(jiān)聽者來監(jiān)聽實(shí)體的狀態(tài),當(dāng)實(shí)體狀態(tài)改變時(shí),監(jiān)聽者可通知實(shí)體進(jìn)行相應(yīng)的處理。DDS各實(shí)體之間的關(guān)系如圖5所示。
圖5 DDS各實(shí)體之間的關(guān)系
2.2內(nèi)置數(shù)據(jù)類型與自定義數(shù)據(jù)類型
DDS提供內(nèi)置在中間件中的標(biāo)準(zhǔn)數(shù)據(jù)類型,這些類型可以立即被使用。內(nèi)置類型包括:字符串型(String,KeyedString),二進(jìn)制型(Octects,KeyedOctets)。在創(chuàng)建參與域的時(shí)候內(nèi)置數(shù)據(jù)類型就自動(dòng)被創(chuàng)建了。使用內(nèi)置類型進(jìn)行發(fā)布訂閱時(shí),無需注冊(cè)數(shù)據(jù)類型,可直接調(diào)用內(nèi)置函數(shù)進(jìn)行數(shù)據(jù)寫入者和讀取者的類型約束。
自定義數(shù)據(jù)類型是指將所要發(fā)布訂閱的主題的數(shù)據(jù)結(jié)構(gòu)全部置于idl文件中,并使用生成工具生成相關(guān)的配置文件。在這些配置文件中,定義了發(fā)布訂閱過程中所需的函數(shù)。使用自定義數(shù)據(jù)類型進(jìn)行發(fā)布訂閱時(shí),需按照數(shù)據(jù)結(jié)構(gòu)名注冊(cè)數(shù)據(jù)類型。
2.3QoS策略
QoS是指一系列可控制DDS服務(wù)行為的特性集合,它由獨(dú)立的QoS策略組成,是DDS規(guī)范的最大亮點(diǎn)。依賴于這些QoS策略,DDS能夠有效地控制和管理網(wǎng)絡(luò)帶寬、內(nèi)存空間等資源的使用,控制數(shù)據(jù)的生存時(shí)間、可靠性和實(shí)時(shí)性。
發(fā)布訂閱過程中,發(fā)布方與訂閱方不僅主題需要匹配,QoS策略也需匹配。匹配并不一定是指雙方QoS策略完全相同,而是指邏輯上的合理性。以可靠性(Reliability)策略的設(shè)置為例,可靠性策略可設(shè)置為盡量發(fā)送(best-effort)或可靠發(fā)送(reliability),若發(fā)布方訂閱方都設(shè)置為盡量發(fā)送或可靠發(fā)送,則雙方可通信;若發(fā)布方設(shè)置為可靠發(fā)送,訂閱方設(shè)置為盡量發(fā)送,雙方也可通信;若發(fā)布方設(shè)置為盡量發(fā)送,而訂閱方設(shè)置為可靠發(fā)送,則雙方不能通信[5]。
雖然在DDS標(biāo)準(zhǔn)中制訂了幾十種類型的QoS策略,但在實(shí)際應(yīng)用中,若對(duì)每一個(gè)QoS策略進(jìn)行實(shí)現(xiàn),將增加系統(tǒng)的復(fù)雜性,影響系統(tǒng)性能,因此需根據(jù)實(shí)際情況選擇QoS策略進(jìn)行配置。
3基于DDS艦載火控系統(tǒng)通信設(shè)計(jì)
3.1發(fā)布訂閱功能設(shè)計(jì)
DDS模塊主要由發(fā)布服務(wù)和訂閱服務(wù)組成,發(fā)布者發(fā)布相關(guān)主題的數(shù)據(jù)樣本,訂閱者在主題名、數(shù)據(jù)結(jié)構(gòu)以及QoS策略與發(fā)布者匹配的情況下訂閱主題。
發(fā)布服務(wù)的實(shí)現(xiàn)主要分為以下幾個(gè)步驟:
1)創(chuàng)建域參與者
sect1icipant=DDS-Domainsect1icipantFactory-create-sect1icipant()
2)注冊(cè)數(shù)據(jù)類型
retcode=structTypeSupport-register-type()
3)創(chuàng)建主題
topic=DDS-Domainsect1icipant-create-topic()
4)創(chuàng)建發(fā)布者
publisher=DDS-Domainsect1icipant-create-publisher()
5)創(chuàng)建寫入者
datawriter=DDS-Publisher-create-datawriter()
6)約束寫入者類型
structwriter=structDataWriter-narrow()
7)數(shù)據(jù)分發(fā)
retcode=structDataWriter-write()。
訂閱服務(wù)的實(shí)現(xiàn)步驟1)、2)、3)與發(fā)布服務(wù)相同。訂閱方在接收到數(shù)據(jù)時(shí),監(jiān)聽者會(huì)調(diào)用相關(guān)函數(shù)來處理,因此需提前定義好調(diào)用的函數(shù),具體如下:
1)創(chuàng)建域參與者
2)注冊(cè)數(shù)據(jù)類型
3)創(chuàng)建主題
4)創(chuàng)建訂閱者
subscriber=DDS-Domainsect1icipant-create-subscriber()
5) 定義監(jiān)聽者的on-data-available()函數(shù),在函數(shù)中約束讀取者類型
structreader=structDataReader-narrow()
6) 創(chuàng)建讀取者
datareader=DDS-Subscriber-create-datareader()
7)數(shù)據(jù)接收,調(diào)用on-data-available()函數(shù)。
當(dāng)使用內(nèi)置形式進(jìn)行發(fā)布訂閱時(shí),跳過發(fā)布服務(wù)與訂閱服務(wù)中的步驟2),其余步驟中的struct需改為內(nèi)置類型,如string等。
3.2實(shí)時(shí)性性能測(cè)試算法
艦載火控系統(tǒng)對(duì)實(shí)時(shí)性要求非常高,數(shù)據(jù)傳輸通常要求達(dá)到毫秒級(jí),因此,需對(duì)基于DDS的艦載火控系統(tǒng)的實(shí)時(shí)性進(jìn)行測(cè)試,觀察是否能滿足實(shí)時(shí)性性能需求。
文獻(xiàn)[6]采用節(jié)點(diǎn)1發(fā)送數(shù)據(jù)樣本,節(jié)點(diǎn)2接收到樣本后發(fā)送應(yīng)答消息的方法,計(jì)算出樣本傳輸?shù)臅r(shí)延。這種方法需先計(jì)算出應(yīng)答消息的傳輸時(shí)間。本文在這種方法的基礎(chǔ)上,提出一種新的算法。
節(jié)點(diǎn)1發(fā)送id=0的數(shù)據(jù)樣本,節(jié)點(diǎn)2接收到樣本之后立刻發(fā)送同樣的id=0的樣本并記錄此時(shí)的時(shí)戳,節(jié)點(diǎn)1接收到之后發(fā)送id=1的樣本,節(jié)點(diǎn)2接收到樣本后立刻發(fā)送同樣的id=1 樣本并記錄時(shí)戳,以此類推,重復(fù)n次,直至節(jié)點(diǎn)2接收到id=n的樣本。節(jié)點(diǎn)2根據(jù)每個(gè)樣本到達(dá)時(shí)的時(shí)戳計(jì)算出時(shí)延平均值并篩選出最大值。算法的具體流程如圖6所示。
圖6 實(shí)時(shí)性測(cè)試算法流程圖
4仿真測(cè)試
為了驗(yàn)證基于DDS的艦載火控系統(tǒng)的發(fā)布訂閱功能以及實(shí)時(shí)性性能,搭建了圖7所示的仿真環(huán)境。
圖7 仿真環(huán)境
4.1發(fā)布訂閱功能測(cè)試
節(jié)點(diǎn)1、2、3通過交換機(jī)相連接,在創(chuàng)建發(fā)布訂閱服務(wù)時(shí)都使用默認(rèn)的QoS策略,它們之間進(jìn)行數(shù)據(jù)交換的主題分別為“導(dǎo)航信息”,“目標(biāo)信息”以及“武器打擊命令”。導(dǎo)航信息與目標(biāo)信息的數(shù)據(jù)結(jié)構(gòu)均包括批號(hào)、經(jīng)度、緯度、航速和航向;武器打擊命令的數(shù)據(jù)結(jié)構(gòu)包括武器類型、武器編號(hào)以及所打擊的目標(biāo)批號(hào)。三個(gè)節(jié)點(diǎn)發(fā)布訂閱功能如表1所示。
表1 各節(jié)點(diǎn)發(fā)布訂閱的主題
分別使用二進(jìn)制內(nèi)置類型(Octets)和自定義類型發(fā)布訂閱,二者結(jié)果相同:
1)各節(jié)點(diǎn)均能完成表1所示的發(fā)布訂閱功能;
2)當(dāng)節(jié)點(diǎn)1退出時(shí),節(jié)點(diǎn)2依然能接收到武器打擊命令,節(jié)點(diǎn)3不能接收到導(dǎo)航信息但能接收到目標(biāo)信息。節(jié)點(diǎn)1重新開啟時(shí),節(jié)點(diǎn)1,2,3依然能完成表1所示的發(fā)布訂閱功能。
由上述結(jié)果可以看出,使用內(nèi)置類型和自定義類型均可以完成發(fā)布訂閱功能,在實(shí)際應(yīng)用中,用戶可根據(jù)需求選擇不同的數(shù)據(jù)類型發(fā)布訂閱;基于DDS的艦載火控系統(tǒng)具有良好的松耦合性,節(jié)點(diǎn)可以動(dòng)態(tài)地加入和退出。
4.2實(shí)時(shí)性性能測(cè)試
采用本文中的實(shí)時(shí)性測(cè)試算法,同樣使用圖7的仿真環(huán)境,節(jié)點(diǎn)1發(fā)布不同字節(jié)大小的報(bào)文,發(fā)送1000次,節(jié)點(diǎn)2接收?qǐng)?bào)文并記錄時(shí)戳計(jì)算時(shí)延,節(jié)點(diǎn)3作為備用節(jié)點(diǎn)。節(jié)點(diǎn)1,2的可靠性QoS策略分別同時(shí)設(shè)置為盡量發(fā)送與可靠發(fā)送,節(jié)點(diǎn)2計(jì)算出的時(shí)延如圖8、9所示,測(cè)試所得丟包率如表2所示。
圖8 可靠發(fā)送與盡量發(fā)送平均時(shí)延
圖9 可靠發(fā)送與盡量發(fā)送最大時(shí)延
盡量發(fā)送可靠發(fā)送丟包率0.1%0
由圖8、9結(jié)果可以看出,隨著報(bào)文字節(jié)的增加,系統(tǒng)傳輸報(bào)文時(shí)延的平均值以及最大值都在增加。發(fā)送的報(bào)文為1024個(gè)字節(jié)時(shí),最大時(shí)延也在500μs以內(nèi)。在艦載火控系統(tǒng)中,傳輸?shù)膱?bào)文通常小于1024個(gè)字節(jié),因此,基于DDS的艦載火控系統(tǒng)通信時(shí)延能控制在1ms以內(nèi),滿足了實(shí)時(shí)性的需求。
綜合表2可以發(fā)現(xiàn),可靠發(fā)送模式下的平均時(shí)延和最大時(shí)延都比盡量發(fā)送模式下的長(zhǎng),但是可靠發(fā)送沒有發(fā)生丟包的情況,盡量發(fā)送存在丟包的可能性。在艦載火控系統(tǒng)中,二者應(yīng)相互結(jié)合使用。
傳輸實(shí)時(shí)性要求較高以及周期性發(fā)送的數(shù)據(jù)如導(dǎo)航信息、目標(biāo)信息等,發(fā)送模式應(yīng)為“盡量發(fā)送”;而傳輸控制命令如武器打擊命令等則需要“可靠發(fā)送”。
5結(jié)束語
本文針對(duì)艦載火控系統(tǒng)的通信需求,提出了基于DDS的艦載火控系統(tǒng)通信,不僅能夠?qū)崿F(xiàn)系統(tǒng)松耦合,還滿足了系統(tǒng)的實(shí)時(shí)性需求。在進(jìn)一步的工作中,還需對(duì)其他QoS策略進(jìn)行設(shè)計(jì)并實(shí)現(xiàn),以更好地滿足艦載火控系統(tǒng)的需求。
參考文獻(xiàn):
[1]本書編寫組.現(xiàn)代艦艇火控系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2008.
[2]張珺,尹遜和.基于RTI DDS的數(shù)據(jù)分發(fā)中間件的升級(jí)設(shè)計(jì)[J].北京交通大學(xué)學(xué)報(bào),2011,35(5):31-37.
[3]王海川.艦艇火控系統(tǒng)的現(xiàn)狀與發(fā)展設(shè)想[J].指揮控制與仿真,2007,29(1):1-6.
[4]曹萬華,謝蓓,吳海昕,等.基于DDS的發(fā)布/訂閱中間件設(shè)計(jì)[J].計(jì)算機(jī)工程,2007,33(18):78-83.
[5]楊鑫輝,張慧翔.基于DDS的異構(gòu)網(wǎng)絡(luò)數(shù)據(jù)分發(fā)方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(11):57-61.
[6]馮國(guó)良.基于DDS的數(shù)據(jù)分發(fā)中間件的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2011.
Communication of Ship Fire Control System Based on DDS
HU Ya-nan, CHENG Jian-qing, HE Yue-feng
(Jiangsu Automation Research Institute, Lianyungang 222061, China)
Abstract:Ship fire control structure based on DDS is proposed according to the need of communication of ship fire control system. The system is loosely-coupled and the real-time requirement is satisfied. By the design of publish and subscribe services,built-in and user-defined data types are both used to disseminate data based on default QoS policies. By configuring the reliability QoS policy,its effect on the reliability and real-time capabilities of the system is illustrated. The result of simulation proves that DDS can be furtherly used in ship fire control system
Key words:DDS standard; ship fire control system; publish/subscribe model; QoS policies
文章編號(hào):1673-3819(2016)03-0059-04
收稿日期:2016-01-22
作者簡(jiǎn)介:胡亞男(1993-),女,江蘇連云港人,碩士研究生,研究方向?yàn)镈DS通信技術(shù)。 程健慶(1966-),男,研究員,碩士生導(dǎo)師。 何躍峰(1981-),男,高級(jí)工程師。
中圖分類號(hào):TJ630.3+4;E917
文獻(xiàn)標(biāo)志碼:A
DOI:10.3969/j.issn.1673-3819.2016.03.011
修回日期: 2016-02-24