OpenDDS系列(1) —— OpenDDS 简介
- 1. OpenDDS簡(jiǎn)要介紹
- 1.1 簡(jiǎn)介
- 1.1.1 DDS是什么
- 1.1.2 DDS通信的基本要素
- 1.1.3 DDS架構(gòu)的主要優(yōu)點(diǎn)
- 1.1.4 DDS產(chǎn)品種類
- 1.1.5 OpenDDS
- 1.2 DDS的應(yīng)用領(lǐng)域
- 美國(guó)海上戰(zhàn)爭(zhēng)中心(NSWC)高性能分布式計(jì)算系統(tǒng)(HiPer-D)
- 1.3 結(jié)論
- 1.1 簡(jiǎn)介
1. OpenDDS簡(jiǎn)要介紹
1.1 簡(jiǎn)介
1.1.1 DDS是什么
DDS(DataDistributionService)是數(shù)據(jù)分發(fā)服務(wù)的首字母縮略詞。
DDS采用發(fā)布/訂閱體系架構(gòu),強(qiáng)調(diào)以數(shù)據(jù)為中心,提供豐富的QoS服務(wù)質(zhì)量策略,能保障數(shù)據(jù)進(jìn)行實(shí)時(shí)、高效、靈活地分發(fā),可滿足各種分布式實(shí)時(shí)通信應(yīng)用需求。
根據(jù)OMG(對(duì)象管理組織,Object Management Group)定義的標(biāo)準(zhǔn),它本質(zhì)上是一個(gè)通過網(wǎng)絡(luò)交換數(shù)據(jù)的協(xié)議。廣泛應(yīng)用于分布式應(yīng)用,模擬器等。它基于 DCPS(Data-Centric Publish-Subscribe, 以數(shù)據(jù)為中心的發(fā)布訂閱)模型。
DDS中以數(shù)據(jù)為中心的發(fā)布/訂閱(DCPS)模型構(gòu)建了一個(gè)共享的”全局?jǐn)?shù)據(jù)空間“的概念,所有的數(shù)據(jù)對(duì)象都存在于此空間中,分布式節(jié)點(diǎn)通過簡(jiǎn)單的讀、寫操作便可以訪問這些數(shù)據(jù)對(duì)象。實(shí)際上,數(shù)據(jù)并非存在于所有計(jì)算機(jī)的地址空間中,它僅存在于那些對(duì)它感興趣的應(yīng)用程序的本地緩存中,而這一點(diǎn)正是發(fā)布/訂閱模型的關(guān)鍵所在。
DDS規(guī)范使用UML語言描述服務(wù),提供了一個(gè)與平臺(tái)無關(guān)的數(shù)據(jù)模型(這個(gè)模型能夠映射到各種具體的平臺(tái)和編程語言),使得實(shí)時(shí)分布式系統(tǒng)中數(shù)據(jù)能夠高效、可靠地發(fā)布,它主要應(yīng)用在要求高性能、可預(yù)見性和對(duì)資源有效使用的關(guān)鍵任務(wù)領(lǐng)域。
DDS規(guī)范列舉并正式定義了一整套全面的QoS(Quality of Service,服務(wù)質(zhì)量)策略,能利用QoS進(jìn)行系統(tǒng)控制。每一個(gè)DCPS實(shí)體都有自身的QoS策略,而且在每一對(duì)發(fā)布者和訂閱者之間又都可以建立獨(dú)立的QoS協(xié)定。這使得DDS可以很好地配置和利用系統(tǒng)資源,協(xié)調(diào)可預(yù)言性與執(zhí)行效率間的平衡,并能支持復(fù)雜多變的數(shù)據(jù)流需求。
DDS經(jīng)常被用于三種設(shè)計(jì)和應(yīng)用環(huán)境,包括:
- 數(shù)據(jù)苛刻性場(chǎng)合的應(yīng)用
- 多個(gè)數(shù)據(jù)源需要連接到多個(gè)數(shù)據(jù)接收點(diǎn)的應(yīng)用程序
- 系統(tǒng)結(jié)構(gòu)動(dòng)態(tài)需要發(fā)生變化的應(yīng)用程序
目前DDS數(shù)據(jù)通信服務(wù)已經(jīng)廣泛應(yīng)用到了美國(guó)海、陸、空、天各個(gè)領(lǐng)域,并發(fā)揮了重要的作用。而美國(guó)海軍正以DDS 技術(shù)為核心,建設(shè)一個(gè)統(tǒng)一的、全新的自動(dòng)操作的分布式DDS 網(wǎng)絡(luò)結(jié)構(gòu),對(duì)其海軍裝備的作戰(zhàn)系統(tǒng)進(jìn)行綜合集成。
OpenDDS體系結(jié)構(gòu)1.1.2 DDS通信的基本要素
- 主題(Topic):這是一個(gè)包含可在進(jìn)程之間交換的數(shù)據(jù)的消息。數(shù)據(jù)表示為可以包含不同數(shù)據(jù)類型的結(jié)構(gòu),如整數(shù),字符串等;
- 數(shù)據(jù)編寫器(Data Writer):這是該過程用于發(fā)送數(shù)據(jù)的組件。進(jìn)程寫入必須發(fā)送到數(shù)據(jù)寫入器的數(shù)據(jù);
- 數(shù)據(jù)讀取器(Data Reader):這是接收數(shù)據(jù)并使其可用于流程的組件;
- 發(fā)布者(Publisher):這是控制消息的網(wǎng)絡(luò)流的組件,應(yīng)用即QoS策略(我們將在后面介紹);
- 訂閱者(Subscriber):這是控制輸入流的組件。
1.1.3 DDS架構(gòu)的主要優(yōu)點(diǎn)
- 以數(shù)據(jù)為中心,數(shù)據(jù)吞吐量大,數(shù)據(jù)傳輸實(shí)時(shí)性好
- 采用全局?jǐn)?shù)據(jù)空間技術(shù),大大地提高通信效率
- 引入服務(wù)質(zhì)量策略(QoS),增加了通信靈活性
- 具有豐富的線上協(xié)議,支持真實(shí)設(shè)備接入
- 通訊實(shí)時(shí)性好,能夠支持低時(shí)延仿真
1.1.4 DDS產(chǎn)品種類
- RTI DDS:由美國(guó) RTI 公司開發(fā),目前全球范圍內(nèi)超過500個(gè)項(xiàng)目的廣泛應(yīng)用和部署,支持Windows、Linux、VxWorks等多種操作系統(tǒng),由于是商用軟件,成本相對(duì)較高。
- OpenSplice DDS: 最初由 Thales 開發(fā),在 2006 年被 PT(Prism Technologies)獲得,主要的應(yīng)用在 Tacticos 項(xiàng)目(Thales 的戰(zhàn)斗管理系統(tǒng))。
- OpenDDS:對(duì)象管理組織 OMG 的實(shí)時(shí)數(shù)據(jù)分發(fā)系統(tǒng)的 C++ 開源實(shí)現(xiàn)。 OpenDDS 本身使用 C++ 開發(fā),并通過 JNDI 技術(shù)兼容 JMS 標(biāo)準(zhǔn)。 OpenDDS 為了實(shí)現(xiàn)跨平臺(tái)特性而構(gòu)建于 ACE 抽象層。
- MilSoftDDS: 土耳其的 MILSOFT Soft-ware Technologies 公司開發(fā)的DDS應(yīng)用軟件。
由于基于 ACE(自適應(yīng)通信環(huán)境) 通訊框架的中間件與OpenDDS 底層的 ACE+TAO 機(jī)制可以兼容。另外,從商業(yè)角度考慮,采用 OpenDDS 這種免費(fèi)開源的數(shù)據(jù)分發(fā)服務(wù)軟件也有利于系統(tǒng)接口和支撐軟件平臺(tái)的推廣應(yīng)用。
1.1.5 OpenDDS
OpenDDS是使用C++語言針對(duì)OMG數(shù)據(jù)分發(fā)服務(wù)(DDS)的一種開源實(shí)現(xiàn)。由OCI公司設(shè)計(jì)和維護(hù),可從http://www.opendds.org/的OpenDDS社區(qū)門戶中獲得幫助,目前最新的版本是OpenDDS 3.12.1。
盡管本身OpenDDS采用C++語言實(shí)現(xiàn),但也提供JAVA和JMS的開發(fā)接口,這意味著JAVA程序開發(fā)也可以使用OpenDDS。
1.2 DDS的應(yīng)用領(lǐng)域
全球已經(jīng)有500多個(gè)項(xiàng)目和案例成功采用了RTI公司的DDS方案,網(wǎng)絡(luò)中間的市場(chǎng)占有率高達(dá)80%左右。包括航空、航天、船舶、國(guó)防、金融、通信、汽車等領(lǐng)域。
美國(guó)海上戰(zhàn)爭(zhēng)中心(NSWC)高性能分布式計(jì)算系統(tǒng)(HiPer-D)
- 高性能分布式計(jì)算(HiPer-D)程序跟蹤成千上萬個(gè)目標(biāo)、多艘船的幾百個(gè)計(jì)算機(jī)之間協(xié)同通信
- 滿足系統(tǒng)實(shí)時(shí)性要求(微秒級(jí)) 并具有100%時(shí)間確定性
- RTI提供成熟的技術(shù)和產(chǎn)品滿足分布式計(jì)算環(huán)境中HiPer-D對(duì)實(shí)時(shí)性和確定性的嚴(yán)格要求
1.3 結(jié)論
我們已經(jīng)介紹了OpenDDS體系結(jié)構(gòu)及其特點(diǎn)。在接下來的文章中,我們將看到如何更詳細(xì)地使用OpenDDS,并且會(huì)看到一些有趣的應(yīng)用程序。
總結(jié)
以上是生活随笔為你收集整理的OpenDDS系列(1) —— OpenDDS 简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse字体大小设置教程(ecli
- 下一篇: (DBA之路【十一】)master-sl