天天看點

OPENDDS_開發者文檔系列_1 簡介 

目錄

簡介

1.1. 概述

1.1.1 基本概念

1.1.2 标題的内置

1.1.3 服務品質政策

1.1.4 監聽者

1.1.5 條件

簡介 

        DDS制定了一個能在分布式應用的多個參與者之間有效分發資料的服務。此服務不是專用于CORBA的。該規範提供了平台無關模型(PIM)和将PIM映射到CORBA IDL 實作的特定平台模型(PSM)。對于更多的有關DDS的細節問題,開發者應該參考DDS規範(OMG Document formal/2015-04-10),因為其中包含了所有服務特征的進一步說明。OpenDDS是OMG  DDS規範的開源C++實作,該規範是由OCI公司進行商業支援和開發的。OpenDDS可以通過網址http://www.opendds.org/downloads.html進行下載下傳,并且能夠與OCI TAO1.6a,2.0a和2.2a版本的最新更新檔以及最新發行的DOC版本相容。

1.1. 概述

        在本節,我們将介紹有關DCPS層的主要概念和實體,并讨論他們之間如何互相作用以及協同工作的。

1.1.1 基本概念

        下圖顯示了DDS DCPS層的概述。

OPENDDS_開發者文檔系列_1 簡介 

1.1.1.1 域 

        域是DCPS中的基本分區單元。 每個其他實體屬于一個域,隻能與同一域中的其他實體進行互動。 應用程式代碼可以自由地與多個域進行互動,但必須通過屬于不同域的單獨實體進行互動。

1.1.1.2 域的參與者

        域參與者是應用程式在特定域内進行互動的入口點。 域參與者是編寫或讀取資料所涉及的許多對象的工廠。

1.1.1.3 主題

       主題是釋出和訂閱應用程式之間互動的基本方式。 每個主題在域中都有一個唯一的名稱釋出具有特定類型的資料。可以将主題釋出的資料類型制定成消息的鍵。 釋出資料時始終指定主題。 訂閱者通過該主題請求資料。 在DCPS術語中,可以為主題上的不同執行個體釋出單個資料樣本。 每個執行個體都與密鑰的唯一值相關聯。 釋出資料時通過根據樣本使用的鍵值在同一執行個體上釋出多個資料樣本。

1.1.1.4 資料寫入器

        釋出應用程式代碼使用資料寫入器将值傳遞給DDS。 每個資料寫程式都綁定到特定主題。 該應用程式使用資料編寫器的特定于類型的接口來釋出該主題的示例。 資料編寫者負責編組資料并将其傳遞給釋出者以進行傳輸。

1.1.1.5 發行方

        釋出者負責擷取已釋出的資料并将其傳播到域中的所有相關訂閱者。 采用的确切機制留給服務實作。

1.1.1.6 訂閱方

        訂閱方從釋出者接收資料并将其傳遞給與其連接配接的任何相關資料讀取器。

1.1.1.7 資料讀取器

        資料讀取器從訂閱方擷取資料,将其解析為該主題的相應類型,并将對應的消息傳遞給應用程式。 每個資料讀取器都綁定到特定主題。 應用程式使用資料讀取器的特定于類型的接口來接收樣本。

1.1.2 标題的内置

       DDS規範定義了DDS實作中内置的許多主題。 訂閱這些内置主題使應用程式開發人員能夠通路所使用的域的狀态,包括注冊哪些主題,連接配接和斷開哪些資料讀取器和資料寫入器,以及各種實體的QoS設定。 訂閱時,應用程式會收到訓示域内實體更改的樣本。

下表顯示了DDS規範中定義的内置主題:

OPENDDS_開發者文檔系列_1 簡介 

1.1.3 服務品質政策

        DDS規範定義了許多應用程式使用的服務品質(QoS)政策,以指定其對服務的QoS要求。 參與者指定他們從服務中需要的行為,服務決定如何實作這些行為。 這些政策可以應用于各種DCPS實體(主題,資料寫入器,資料讀取器,釋出者,訂閱者,域參與者),但并非所有政策都适用于所有類型的實體。訂閱者和釋出者使用請求與提供(RxO)模型進行比對。 訂閱者請求一組最低要求的政策。 釋出者向潛在訂閱者提供一組QoS政策。 然後,DDS實施嘗試将所請求的政策與提供的政策進行比對; 如果這些政策相容,則形成關聯。

1.1.4 監聽者

        DCPS層為每個實體定義回調接口,允許應用程式程序“監聽”某些狀态更改或與該實體有關的事件。 例如,當有可供讀取的資料值時,将通知資料讀取器偵聽器。

1.1.5 條件

       條件和等待集允許偵聽器在檢測DDS中感興趣的事件時使用另一種方法。一般模式是應用程式建立特定類型的條件對象,例如StatusCondition,并将其附加到WaitSet。

•應用程式在WaitSet上等待,直到一個或多個條件成立為止。

•應用程式調用相應實體對象上的操作以提取必要資訊。

•DataReader接口還具有采用ReadCondition參數的操作。

•QueryCondition對象是作為ContentSubscription配置檔案實作的一部分提供的。 QueryCondition接口擴充了ReadCondition接口。

繼續閱讀