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