天天看點

OpenDDS開發手冊---前言前言

前言

什麼是openDDS? OpenDDS 是兩篇Object Management Group (OMG)規範的一個開源實作。

1) Data Distribution Service (DDS) for Real-Time Systems v1.4(OMG Document

formal/2015-04-10). 實時資料分發服務。This specification details the core functionality implemented by

OpenDDS for real-time publish and subscribe applications and is described throughout

this document.

2) The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire

Protocol Specification (DDSI-RTPS) v2.2 (OMG Document formal/2014-09-01). This

specification describes the primary requirements for interoperability between industry

DDS implementations. This is not the only protocol for which a specifications exists,

however, it is the protocol used for interoperability testing among DDS

implementations.

OpenDDS 由 Object Computing, Inc. (OCI)發起 ,可從其官網上下載下傳。

支援的平台 Linux family:

** Red Hat EL 5 and 5.3, x86_64

** Red Hat EL and CentOS 6.6 and 6.8, x86_64

** Red Hat EL 7, x86_64

** Fedora Core 6, x86

** Fedora 24 x86_64

** Ubuntu 16.04 LTS, x86_64

** openSUSE 42.1, x86_64

Windows family:

** Windows 7 (32-bit, 64-bit)

** Windows Server 2012 R2 (64-bit)

Others:

** SunOS 5.10 (Solaris 10) (SPARC)

** Mac OSX 10.11 (El Capitan)

Embedded/Mobile/IoT:

** LynxOS-178 (OpenDDS Safety Profile)

** VxWorks 6.9 and 7 (see below)

** Linux on Raspberry Pi and Intel Edison

** Android NDK r12b (ARM)

編譯器支援 ** Microsoft Visual C++ 9 with SP1 (Visual Studio 2008)

** Microsoft Visual C++ 10 with SP1 (Visual Studio 2010)

** Microsoft Visual C++ 11 (Visual Studio 2012) - Update 4

** Microsoft Visual C++ 12 (Visual Studio 2013) - Update 5

** Microsoft Visual C++ 14 (Visual Studio 2015) - Update 3

** gcc 4.1.x

** gcc 4.4.x

** gcc 4.8.x

** gcc 4.9.x

** gcc 5.4

** gcc 6.2

** Clang 3.8 (llvm.org) and 7.3 (Apple)

** Sun C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/25

* Building and Installing

最近偶然接觸了一本關于OpenDDS的開發書籍,名字叫《分布式系統實時釋出/訂閱資料分布技術》(Real-Time Publish/Subscribe Data Distribution for Distributed Systems),對于DDS的入門挺有幫助的,覺得更像是入門手冊的翻譯與工程經驗的入門總結與使用。

實時資訊分發技術取決于網絡本身的實體特性、資訊分發的模型、資訊分發的政策。 常見的四種通信模型:點對點模型、客戶/伺服器(Client/Server,C/S)模型、分布式對象模型、釋出/訂閱(Publish/Subscribe,P/S)模型。

點對點模型: 優點:一種簡單的一對一通信模型,能夠支援高寬帶資訊傳輸 缺點:一對多需求較多,應用範圍有局限

C/S模型, 用戶端和伺服器粉筆運作與不同的機器或者程序中,伺服器為客戶提供系統定義的各種服務,如檔案系統、資料庫、事務處理等,為使用者提供了一種有效的資源共享手段。 優點:優化網絡使用率,減少網絡流量;縮短響應時間;把應用程式與資料隔離,保護資料。 缺點:可擴充性差,維護困難。

分布式對象模型:采用面向對象的多層C/S計算模型,将分布在網絡上的資源按照對象的概念組織起來,為每個對象定義清晰的接口通路。這裡面的用戶端與伺服器的角色都是相對的和多層次的。主要的三種實作有:CORBA、DCOM、EJB。本質上還是C/S模型。 優點:将複雜的網絡通信功能抽象出來,提高了對象的課重用性,減少了開發者工作量。 缺點:請求應答的模式不能滿足實時性要求,不能根據不同的資料流類型來進行實時性和可靠性的選擇。

P/S模型:專門為一對多的資料傳輸要求而設計的。在這種模式裡,應用程式隻是簡單的釋出或者訂閱資料。 優點:1.以資料為中心,降低網絡延遲.2.釋出訂閱應用是子產品化的,内容可伸縮,提高資料傳輸能力。3.支援多種資料流類型,資料流的控制管理較為容易。4.應用程式通過名稱來訂閱資料而不是特定的位址,配置改變不會導緻資料流的終端。5.支援多方釋出訂閱,允許應用程式動态的加入或者離開系統而不影響系統工作,滿足線上擴充和維護,容錯性好。6.通過參數由應用程式自己來控制資料流的傳輸特性。在定時傳輸和可靠性之間做出這種選擇,傳輸方式靈活多樣。7.與C/S模型相比更為高效,對寬帶使用率更高。