【數據通信】數據分發服務DDS技術研究

數據分發服務DDS技術研究

本文轉載自知乎的 周伯通

DDS(Data Distribution Service)是基於以數據爲核心的設計思想提出的,定義了描述網絡環境下數據內容/交互行爲和服務質量要求的標準技術,最早應用於美國海軍,用於解決艦船複雜網絡環境中大量軟件升級的兼容性問題,目前已經成爲美國國防部的強制標準。2013年,DDS被對象管理組織(Object Management Group, OMG)組織接受,併發布了專門爲實時系統設計的數據分發/訂閱標準。DDS目前已經廣泛應用於國防、民航、工業控制等領域,成爲分佈式實時系統中數據發佈/訂閱的標準解決方案。

DDS發佈訂閱模型

DDS以數據爲中心的發佈一訂閱模型爲所有分佈式節點之間建立了一個虛擬共享的“全局數據空間(Global Data Space, GDS)。在該模型下分佈式節點在網絡上以發佈或訂閱的方式傳輸數據,節點可以是發佈者或訂閱者,或者既是發佈者又是訂閱者。網絡中的數據對象用主題((Topic)做標識,分佈式節點在全局數據空間中發佈或訂閱感興趣的主題信息。各個節點在邏輯上無主從關係,點與點之間都是對等關係.通信方式可以是點對點、點對多、多對多等,在QoS的控制下建立連接,自動發現和配置網絡參數,如下圖

DDS架構

DDS規範有兩層,分別是數據本地重構層DLRL(Data Local Reconstruction Layer)和以數據爲中心的發佈一訂閱層DCPS(Data-Centric Publish-Subscribe)。DCPS層是DDS的核心和基礎,提供了通信的基本服務;DLRL層將DCPS層提供的服務進行了抽象,在DLRL層建立了與底層服務的映射關係。

DDS域(Domain)和域參與者(Domain Participant)

DDS中的基本結構是Domain,Domain將各個應用程序綁定在一起進行通信。

DDS組成模型

DDS內所有的成員都是Entity,DDS中的任兩個Entity(實體角色)通信都必須在同一個Domain內進行交互,即他們初始化時DomainID是同一個,並且不同Domain的DomainID必須唯一。Domain內的DomainParticipant是服務的入口點,任何DDS應用都需首先獲取DomainParticipant,然後通過Domain Participant獲取其他服務,如Publisher、Subscriber、Topic等。

幾個重要概念:

  • 服務質量策略(QoS)。DDS規範定義了豐富的服務質量策略(Quality of Services Policies),QoS是一種網絡傳輸策略,應用程序指定所需要的網絡傳輸質量行爲,QoS服務實現這種行爲要求,儘可能地滿足客戶對通信質量的需求,DDS定義QoS策略使其對複雜網絡環境的適應性和魯棒性大大增強,優化網絡傳輸質量。QoS可以理解爲數據提供者和接收者之間的合約。

  • Domain是一個範圍概念,由域號(DomainID ) 唯一標示,只有在同一個域內的通信實體才能通信,不同域內的實體間無任何邏輯關係。
  • Domain Participant作爲數據分發服務的入口點,包含若干發佈者、訂閱者和註冊主題,負責創建、刪除和管理這些實體。
  • Publisher作爲發佈者角色,至少包含一個DataWriter,並負責創建、刪除和管理DataWriter。同樣,Subscribe作爲訂閱角色,至少與一個DataReader關聯,並負責創建、刪除和管理DataReader。
  • DataWriter具體負責發佈數據,數據發佈者通過調用DataWriter的write函數發佈數據,但數據不會立刻被送出,實際的消息產生是通過Puhlisher和QoS綜合控制的。
  • DataReader負責訂閱數據,訂閱方式可採用異步方式(Listener)、同步方式(WaitSet)和非阻塞三種。
  • Topic是DataWriter和DataReader相互通信時約定的主題,每個DataWriter/DataReader必須與一個主題綁定,相互通信的DataWriter與DataReader之間的主題數據類型必須相同、QoS必須匹配。另外,Topic必須有確定的數據類型。

DDS的網絡性能特性

DDS的網絡性能特性,表現在軟件自身的時間開銷和物理的時間延遲小,QoS策略保證數據包發送和接收的一致性、正確性和實時性。

Latencies of reliable DDS and socket communication (Note: lines connecting points are only used for illustration)圖片來源:Data Distribution Service for Industrial Automation

DDS latencies of reliable QoS and best-effort QoS communication (Note: lines connecting points are only used for illustration)圖片來源:Data Distribution Service for Industrial Automation

Socket latency values distribution圖片來源:Data Distribution Service for Industrial Automation

參考文獻:

【1】 Object Management Group (OMG), The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification, OMG, 2009

【2】 http://www.omg.org/spec/DDS/

【3】 PrismTech, OpenSplice DDS Community V5.4.1 Release Notes

【4】 Object Management Group (OMG), Data Distribution Service (DDS) Brief, 2011.

【5】 Jinsong Yang,Data Distribution Service for Industrial Automation

【6】知乎專欄: 機器人技術與發展

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章