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