-------國(guó)產(chǎn)自主可控消息中間件--------
DDS (Data Distribution Service) 數(shù)據(jù)分發(fā)服務(wù)技術(shù)最早應(yīng)用于美國(guó)海軍,用于解決艦船復(fù)雜網(wǎng)絡(luò)環(huán)境中大量軟件升級(jí)的兼容性問(wèn)題,目前已經(jīng)成為美國(guó)國(guó)防部的強(qiáng)制標(biāo)準(zhǔn)。
應(yīng)美國(guó)工業(yè)部門的要求,OMG(對(duì)象管理組織)于2003年開(kāi)始制訂支持高性能實(shí)時(shí)系統(tǒng)的數(shù)據(jù)分發(fā)服務(wù)DDS(Data Distribute Service)規(guī)范,并于2004年完成第一版?,F(xiàn)行標(biāo)準(zhǔn)是2007年制定的v1.2版
DDS 目前已經(jīng)廣泛應(yīng)用于國(guó)防、民航、工業(yè)控制等領(lǐng)域,成為分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)發(fā)布/訂閱的標(biāo)準(zhǔn)解決方案。DDS 技術(shù)是基于以數(shù)據(jù)為核心的設(shè)計(jì)思想提出的,定義了描述網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)內(nèi)容、交互行為和服務(wù)質(zhì)量要求的標(biāo)準(zhǔn)。
FogBus DDS(數(shù)據(jù)分發(fā)服務(wù))是以數(shù)據(jù)為中心的網(wǎng)絡(luò)通信模型,是一套支持發(fā)布\訂閱模式的應(yīng)用程序接口(API)??蓮V泛應(yīng)用于航空、國(guó)防、分布式仿真、工業(yè)自動(dòng)化、分布式控制、機(jī)器人、電信多個(gè)領(lǐng)域。
產(chǎn)生背景:
過(guò)去應(yīng)用程序之間通過(guò)網(wǎng)絡(luò)傳遞數(shù)據(jù),在需要通信的兩個(gè)應(yīng)用程序都兩兩各自建立連接進(jìn)行數(shù)據(jù)傳遞。存在系統(tǒng)復(fù)雜度高、耦合程度高、脆弱難以擴(kuò)展和維護(hù)的問(wèn)題
為了改變上述狀況,出現(xiàn)了另一種通信模式,通過(guò)一臺(tái)中心服務(wù)器進(jìn)行互聯(lián)互通。這種方式降低了系統(tǒng)復(fù)雜度、降低了耦合程度。但是存在單點(diǎn)失效和中心節(jié)點(diǎn)成為性能瓶頸的問(wèn)題。
為解決國(guó)防和航天領(lǐng)域數(shù)據(jù)分發(fā)系統(tǒng)面臨的這些挑戰(zhàn),由OMG(對(duì)象管理組織)提出DSS通信模型并標(biāo)準(zhǔn)化。進(jìn)一步降低了分布式系統(tǒng)程序之間的耦合性和系統(tǒng)復(fù)雜度,提高系統(tǒng)健壯性、伸縮性、可擴(kuò)展性。
解耦性特點(diǎn):
(1) 空間解耦(Space Decoupling)
即發(fā)布者和訂閱者之間無(wú)需知道對(duì)方的地址和存在。發(fā)布者只需要發(fā)布它所能提供的數(shù)據(jù),而訂閱者只需要接收它所感興趣的數(shù)據(jù),發(fā)布者和訂閱者之間并沒(méi)有直接的聯(lián)系,不需要事先知道對(duì)方的地址和端口號(hào)等信息。
(2) 時(shí)間解耦(Time Decoupling)
即發(fā)布者和訂閱者無(wú)需同時(shí)處于就緒狀態(tài)。在發(fā)布者發(fā)布數(shù)據(jù)時(shí),訂閱者可能沒(méi)有在線;當(dāng)發(fā)布者下線之后,訂閱者還可能收到相應(yīng)的發(fā)布者所發(fā)布的數(shù)據(jù)。
(3) 數(shù)據(jù)流解耦(Flow Decoupling)
即發(fā)布者和訂閱者的主進(jìn)程是異步的,不需要阻塞。發(fā)布者在發(fā)布數(shù)據(jù)時(shí),自身不必阻塞;訂閱者在接收所感興趣的數(shù)據(jù)時(shí)也不必將自身阻塞,而是可以同時(shí)進(jìn)行其它的操作。
DDS構(gòu)架:
DDS優(yōu)勢(shì):
? 降低系統(tǒng)耦合性、提高健壯性
? 屏蔽異構(gòu)系統(tǒng)的復(fù)雜性
? 屏蔽網(wǎng)絡(luò)通信細(xì)節(jié)
? 提高應(yīng)用伸縮性
? 加快應(yīng)用的開(kāi)發(fā),減少技術(shù)負(fù)擔(dān)
? 跨操作系統(tǒng)