
DDS 中間件技術(shù)在作戰(zhàn)系統(tǒng)網(wǎng)絡(luò)中的應(yīng)用
數(shù)據(jù)分發(fā)服務(wù)作為網(wǎng)絡(luò)數(shù)據(jù)通訊的核心技術(shù),能可靠實時地交換分配群體數(shù)據(jù),其傳輸能力比通常的戰(zhàn)術(shù)數(shù)據(jù)鏈高幾個數(shù)量級。DDS必須確保在極少的時間和不限制網(wǎng)絡(luò)中的報告數(shù)據(jù)容量的條件下,高度可靠地傳輸數(shù)據(jù)。目前DDS 數(shù)據(jù)通信服務(wù)已經(jīng)廣泛應(yīng)用到了美國海、陸、空、天各個領(lǐng)域,并發(fā)揮了重要的作用。而美國海軍正以DDS 技術(shù)為核心,建設(shè)一個統(tǒng)一的、全新的自動操作的分布式DDS 網(wǎng)絡(luò)結(jié)構(gòu),對其海軍裝備的作戰(zhàn)系統(tǒng)進(jìn)行綜合集成。
1 DDS 通訊中間件簡介
中間件是介于應(yīng)用程序和操作系統(tǒng)軟件層。中間件隔離計算機(jī)從底層的細(xì)節(jié)應(yīng)用體系結(jié)構(gòu),操作系統(tǒng)和網(wǎng)絡(luò)堆棧從而簡化了應(yīng)用程序發(fā)送和分布式系統(tǒng)的開發(fā)接收程序,而無需使用較低級別的協(xié)議,如信息套接字和TCP 或UDP/IP 協(xié)議。DDS 數(shù)據(jù)分發(fā)服務(wù)是一項以數(shù)據(jù)為中心的網(wǎng)絡(luò)實時分布式應(yīng)用程序中間件。通過DDS能構(gòu)建高性能的分布式異構(gòu)計算機(jī)環(huán)境中的通信,并且DDS是可配置的以便程序員可以適應(yīng)它以滿足應(yīng)用的特定通信需求。DDS數(shù)據(jù)分發(fā)服務(wù)作為實時分布式系統(tǒng)中的數(shù)據(jù)通信機(jī)制,特別適用于數(shù)據(jù)提供者和接受者眾多的情況。它簡化分布式系統(tǒng)中數(shù)據(jù)的發(fā)布,通過QoS 參數(shù)控制體現(xiàn)了通信的靈活性,具有跨語言、跨平臺的能力。
2 RTI DDS 實現(xiàn)和策略設(shè)置的分析
2.1 DomainParticipant和Topic 的創(chuàng)建
DomainParticipant(域參與者)和Topic(主題)是發(fā)布者和訂閱者所共用的,發(fā)布者和訂閱者只有在相同的域下,發(fā)布或訂閱相同的主題,數(shù)據(jù)傳輸才能完成。發(fā)布者所發(fā)布的數(shù)據(jù)的標(biāo)識被稱之為主題,主題是一串字符串,且是在同一個域下唯一的字符串,用于標(biāo)識當(dāng)前數(shù)據(jù)是什么數(shù)據(jù)。發(fā)布者需要創(chuàng)建主題用于標(biāo)識其向數(shù)據(jù)總線發(fā)布的數(shù)據(jù)主題,而訂閱者也需要創(chuàng)建主題,用于標(biāo)識它用何種主題的數(shù)據(jù)感興趣。創(chuàng)建主題時需要指明互相傳輸?shù)臄?shù)據(jù)的類型,DDS 所支持的內(nèi)置數(shù)據(jù)類型包括String,KeyedString,Octets,KeyedOctets 四種。獲取內(nèi)置類型的類型名:const char* DDSTypeSupport::get_type_name();在艦載設(shè)備網(wǎng)絡(luò)通訊的實際應(yīng)用中,我們使用DDS Octets 內(nèi)置類型,原因是由于各通訊結(jié)點發(fā)布的數(shù)據(jù)都是固定的經(jīng)約定的數(shù)據(jù)結(jié)構(gòu),且如果使用 DDSOctets 內(nèi)置類型,可以將所有由常規(guī)數(shù)據(jù)類型或自定義的數(shù)據(jù)結(jié)構(gòu)所組成的數(shù)據(jù)都轉(zhuǎn)化為八進(jìn)制(或二進(jìn)制)方式進(jìn)行發(fā)布和訂閱,以達(dá)到資源、接口的通用最大化。
2.2 Publisher 發(fā)布者的創(chuàng)建與設(shè)置
對于發(fā)布者而言,在創(chuàng)建主題之后須創(chuàng)建數(shù)據(jù)發(fā)布者和數(shù)據(jù)寫入者,默認(rèn)地,如果直接創(chuàng)建數(shù)據(jù)寫入者,會由系統(tǒng)自動地、隱式地創(chuàng)建數(shù)據(jù)發(fā)布者。在艦載設(shè)備網(wǎng)絡(luò)通訊的實際應(yīng)用中,我們將顯式手動地依次創(chuàng)建數(shù)據(jù)發(fā)布者和數(shù)據(jù)寫入者,原因是,我們需要對數(shù)據(jù)發(fā)布者策略時能更直接有效。由于在創(chuàng)建主題時使用了Octets 的類型,因此在DDSDataWriter 數(shù)據(jù)寫入者創(chuàng)建時,還要對DDSData Writer 數(shù)據(jù)寫入者進(jìn)行約束,以創(chuàng)建相應(yīng)類型的,也是真正向數(shù)據(jù)總線發(fā)出指定類型數(shù)據(jù)的DDSOctetsDataWriter對象。
2.3 數(shù)據(jù)的發(fā)布
經(jīng)過以上的設(shè)置與創(chuàng)建,已具備了數(shù)據(jù)發(fā)布的條件。發(fā)布數(shù)據(jù)的結(jié)果可以根據(jù)返回的結(jié)果獲知發(fā)布的成功與否或發(fā)布錯誤的原因。
2.4 Subscriber訂閱者的創(chuàng)建與設(shè)置
與發(fā)布者的設(shè)置相類似的,對于訂閱者而言,在創(chuàng)建主題之后須創(chuàng)建數(shù)據(jù)訂閱者和數(shù)據(jù)讀取者,默認(rèn)地,如果直接創(chuàng)建數(shù)據(jù)讀取者,會由系統(tǒng)自動地、隱式地創(chuàng)建數(shù)據(jù)訂閱者。在艦載設(shè)備網(wǎng)絡(luò)通訊的實際應(yīng)用中,我們將顯式手動地依次創(chuàng)建數(shù)據(jù)發(fā)布者和數(shù)據(jù)寫入者,與發(fā)布者的設(shè)置不同之處在于,數(shù)據(jù)讀取者是一個任務(wù)或線程實時接收發(fā)布者所提供的數(shù)據(jù),并進(jìn)行響應(yīng)處理,由于在創(chuàng)建主題的時候為達(dá)到能訂閱所有的不同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)而使用的使用了Octets 的類型,因此在訂閱者的設(shè)置時,我們可以針對所有訂閱的主題使用一個數(shù)據(jù)讀取者,采用這種策略使用對于訂閱者而言即節(jié)省了任務(wù)/線程資源又能達(dá)到高效快速的目標(biāo)。
……
新產(chǎn)品推薦:
AppDDS(Appsoft Data Distribution Service)是北京神州普惠科技股份有限公司根據(jù)對象管理組織(OMG)制定的DDS數(shù)據(jù)分發(fā)服務(wù)標(biāo)準(zhǔn),經(jīng)過多年研發(fā)而成的分布式實時應(yīng)用開發(fā)平臺,AppDDS具備高帶寬、低延遲、低抖動、跨平臺等諸多優(yōu)異性能,包含底層通信協(xié)議、模型開發(fā)工具、網(wǎng)絡(luò)分析工具、性能測試工具等一系列工具集,可以方便用戶快速開發(fā)、測試、優(yōu)化及部署各種分布式實時應(yīng)用,AppDDS具備自主知識產(chǎn)權(quán),擁有國內(nèi)最強(qiáng)大的技術(shù)研發(fā)和技術(shù)服務(wù)專業(yè)團(tuán)隊,成功案例眾多,客戶遍布航空、航天、電子、船舶、兵器等國防軍工行業(yè)》》更多詳情
-
文件大小: 735.1KB