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