色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DDS通信中間件——DCPS規(guī)范(下)

北匯信息POLELINK ? 2024-11-27 11:47 ? 次閱讀

DDS通信中間件——DCPS規(guī)范(下)

本期還是DCPS規(guī)范,填上期沒有聊完的QoS的坑。本系列文章將包括以下內容陸續(xù)更新:

1.DDS規(guī)范概述

2.DCPS規(guī)范解讀

3. DDS-XTypes與IDL解讀

4. RTPS規(guī)范解讀

5. DDS安全規(guī)范解讀

6. DDS-RPC規(guī)范解讀

7. DDS-TSN規(guī)范解讀

8. DDS-XRCE規(guī)范解讀

1. 概述

“數(shù)據(jù)還可以通過靈活的服務質量 (QoS) 規(guī)范進行共享,包括可靠性、系統(tǒng)運行狀況(活躍性)甚至安全性。在真實的系統(tǒng)中,并非所有其他端點都需要本地存儲中的所有數(shù)據(jù)。DDS很聰明,只發(fā)送它需要的內容。如果消息并不總是到達預期目的地,中間件會在需要時實現(xiàn)可靠性。當系統(tǒng)發(fā)生變化時,中間件會動態(tài)地確定將哪些數(shù)據(jù)發(fā)送到哪里,并智能地將變化通知參與者。如果總數(shù)據(jù)量很大,DDS會智能過濾并僅發(fā)送每個端點真正需要的數(shù)據(jù)。當需要快速更新時,DDS會發(fā)送多播消息來同時更新許多遠程應用程序。隨著數(shù)據(jù)格式的發(fā)展,DDS會跟蹤系統(tǒng)各個部分使用的版本并自動進行轉換。對于安全關鍵型應用程序,DDS控制訪問、強制執(zhí)行數(shù)據(jù)流路徑并動態(tài)加密數(shù)據(jù)。”

以上這段話是DDS官網對QoS的說明,第一段中的描述涉及到:可靠性QoS、存活性QoS、基于時間過濾QoS、類型兼容QoS以及安全QoS。這些在后面會詳細說明。

“當您在非常動態(tài)、要求嚴格且不可預測的環(huán)境中以極高的速度同時指定所有這些內容時,DDS 的真正威力就會顯現(xiàn)出來。”

上面這句話里面的“同時”這個關鍵詞總結了QoS真正能夠發(fā)揮重要作用的場景。也就是說當一個大系統(tǒng)里面存在多種數(shù)據(jù)需要傳輸并且對不同數(shù)據(jù)的傳輸“需求”不同的場景。QoS是DDS標榜自己區(qū)別于其他中間件的重要特征,也是很多總師/設計師在選用DDS技術作為架構的理由,但實際情況是QoS到底在系統(tǒng)中有什么用,并沒有想清楚,我見過的大部分場景中用戶也只能提出來是否需要可靠外加底層通過什么通信協(xié)議通信,這種情況下起初因為“QoS”選擇DDS的初衷就沒辦法在系統(tǒng)中體現(xiàn)。

簡單來說,QoS就是DDS配置,類比到socket里面就是set_option,通過set_option可以配置緩沖區(qū)大小、阻塞/非阻塞模式,優(yōu)先級等。QoS提供配置來完成以下幾類功能:

? 通信需求配置:DDS會總結常用的通信需求,并抽象為典型的配置項由用戶來選擇,典型的包括:可靠性、持久化、優(yōu)先級、延遲預算、截止時間等;

? 數(shù)據(jù)呈現(xiàn)配置:控制DDS如何把數(shù)據(jù)呈現(xiàn)給收端,排序、分組、過濾等,包括:所有權/權值、基于時間過濾、樣本順序、數(shù)據(jù)表現(xiàn)、過期時間等;

? 資源使用配置:DDS可以通過QoS來配置使用的系統(tǒng)資源,典型的包括:歷史數(shù)據(jù)、資源限制、發(fā)端數(shù)據(jù)周期、收端數(shù)據(jù)周期;

? 發(fā)現(xiàn)階段配置:實體攜帶數(shù)據(jù)、組攜帶數(shù)據(jù)、主題攜帶數(shù)據(jù)、分區(qū)、存活性;

分類及其簡單的介紹、配置項參見下面兩張圖,這里只總結DCPS規(guī)范中的QoS,在其他規(guī)范中擴展的QoS暫時不考慮,例如:DDS安全規(guī)范中添加的安全配置、DDS-XTypes規(guī)范中添加的數(shù)據(jù)兼容性配置等。

462f5412-ac72-11ef-8084-92fbcf53809c.png

465febb8-ac72-11ef-8084-92fbcf53809c.png

2.QoS檢查

2.1. 組合

上期我們提到DDS中定義了多種實體:域參與者、發(fā)布者、訂閱者、數(shù)據(jù)讀者、數(shù)據(jù)寫者、主題,每個實體都可以配置上面列出來的多個QoS配置。具體的對應情況這里就不一一列出,可以參見DCPSV1.4規(guī)范的2.2.3章節(jié)的表格的Concerns列。

2.2. 有效性和兼容性

DDS對用戶配置的QoS進行幾個方面的檢查,具體的每個QoS的檢查同樣查看上面規(guī)范中的表格:

? 有效性:在本地判斷配置的QoS的值是否在允許的范圍內,比如:資源限制中的max_samples必須要大于0;

? 本地兼容性:在本地判斷同一個實體上配置的多個配置項不能互相矛盾,比如:截止時間配置至少1s接收一包,基于時間過濾的配置又配置報文間隔最小是2s,這就是屬于矛盾的配置;

? 匹配兼容性:在自動發(fā)現(xiàn)階段后匹配階段檢查,數(shù)據(jù)寫者與數(shù)據(jù)讀者端的QoS是否兼容,需要滿足:“提供的服務等級 > 需求的服務等級”,例如:數(shù)據(jù)寫者配置BEST-EFFORT,表示我提供盡力而為的傳輸服務,數(shù)據(jù)讀者配置RELIABLE,表示我需要可靠的傳輸服務,這種情況下數(shù)據(jù)讀者的可靠性配置無法滿足,這就是不兼容的QoS配置。

2.3. QoS影響

這里涉及到QoS如何作用,大概分為兩類:

? 影響DDS實體的狀態(tài),這些狀態(tài)可以通過相應的接口獲取,具體可以參考上一篇文章中的 2.2.1.1. 實體狀態(tài)章節(jié);

? 影響底層的傳輸模式,比如:配置可靠模式后,底層就是啟動反饋重傳的可靠機制等。

3. QoS應用

QoS個數(shù)比較多,每個都詳細分析篇幅會比較長,下面會選擇幾個比較常用的QoS進行詳細分析,對其他QoS感興趣的可以私信一起討論,QoS的應用還需要在實際應用中進行探索甚至擴展。

3.1. 可靠性策略

一般理解:應用是否需要DDS提供可靠傳輸,需要就是設置kind == RELIABLE,否則就設置kind == BEST-EFFORT。下面從兩個看起來比較愚蠢的疑問來進一步分析。

3.1.1. 設置為BEST-EFFORT就一定不可靠嗎?

答案是不一定。因為DDS里定義的可靠性QoS指的是“是否需要DDS做額外的可靠保證。”,比如傳輸層使用的是TCP傳輸或者其他RTPS底層的協(xié)議已經保證了可靠的傳輸,這時候配置DDS為BEST-EFFORT同樣可以實現(xiàn)可靠的傳輸。

3.1.2. 設置為RELIABLE就一定可靠嗎?

答案同樣是不一定。可靠的實現(xiàn)方式是確認重傳,簡單來說就是在接收到告知發(fā)送端數(shù)據(jù)已經收到之前,數(shù)據(jù)是需要緩存在隊列中以備可能需要的重傳,既然有隊列,就會有長度限制(無論是存儲在內存還是文件中,受限于存儲空間的大小),當隊列到達上限并需要發(fā)送新的樣本數(shù)據(jù)時,會有如下的幾個處理方式:

? 替換老的樣本數(shù)據(jù),這種處理模式下,當被替換的數(shù)據(jù)丟包需要重傳時,無法重傳,從而造成“丟包”,就是無法實現(xiàn)可靠;

? 阻塞等待隊列有額外的空間,這種處理模式下可以實現(xiàn)“絕對”的可靠。

上面提到的隊列的長度限制在DDS中就體現(xiàn)在歷史數(shù)據(jù)測試(History)以及資源限制策略(ResourceLimits)。

3.1.3. 應用場景

可靠性的應用場景比較好定義,一般周期性的數(shù)據(jù)或者接收端只關心最新數(shù)據(jù)的場景下,設置為BEST-EFFORT;控制命令等關鍵的數(shù)據(jù)配置為可靠模式。

3.2. 持久化策略

對于數(shù)據(jù)寫者和數(shù)據(jù)讀者的含義分別是:? 數(shù)據(jù)寫者:控制是否保存當前所有匹配數(shù)據(jù)讀者端已經確認的樣本數(shù)據(jù);? 數(shù)據(jù)讀者:控制數(shù)據(jù)讀者是否需要加入網絡前的歷史數(shù)據(jù)。主要分為兩類:? VOLATILE:不保留/不需要歷史數(shù)據(jù),這是默認的配置,這種模式節(jié)省空間,只要當前所有的數(shù)據(jù)讀者均確認接收就可以把這包數(shù)據(jù)從DDS內部刪除;? TRANIENT_LOCAL/TRANSENT/PERSISTENT,這三種表示保留/需要歷史數(shù)據(jù),只是歷史數(shù)據(jù)保存的方式不同,其中最常用的TRANSIENT_LOCAL是保存在數(shù)據(jù)寫者內部管理的內存隊列中,而后兩種則需要額外的服務(獨立的進程)來保存數(shù)據(jù)。

468d4a04-ac72-11ef-8084-92fbcf53809c.png

上圖是一個簡單的示意圖,其中數(shù)據(jù)寫者配置的是TRANSIENT_LOCAL,數(shù)據(jù)讀者1配置的VOLATILE,數(shù)據(jù)讀者2配置的TRANSIENT_LOCAL,按照時間描述系統(tǒng)運行的過程如下:

? T0時刻,數(shù)據(jù)寫者和數(shù)據(jù)讀者1同時上線,通過自動發(fā)現(xiàn)協(xié)議相互感知;

? T1時刻,用戶調用接口發(fā)送3個樣本數(shù)據(jù);

? T2時刻,數(shù)據(jù)寫者根據(jù)自己配置的是TRANSIENT_LOCAL模式,將發(fā)送的3個樣本數(shù)據(jù)保存在內部的隊列中;

? T3時刻,數(shù)據(jù)讀者2上線,通過自動發(fā)現(xiàn)協(xié)議和數(shù)據(jù)寫者相互感知;

? T4時刻,數(shù)據(jù)寫者發(fā)現(xiàn)數(shù)據(jù)讀者2需要歷史數(shù)據(jù),則會將緩存的3個數(shù)據(jù)樣本發(fā)送給數(shù)據(jù)讀者2。

3.2.1. 應用場景

持久化策略是實現(xiàn)“時間解耦”的重要QoS,即用戶可以通過該QoS解除系統(tǒng)中應用啟動先后順序的限制。或者是在上線后需要及時獲取系統(tǒng)中關心的最新狀態(tài)的場景。

3.3.分區(qū)策略

域內構成邏輯分區(qū)(通信平面的概念)由一個字符串序列組成,每個字符串表示一個分區(qū)的名稱。

  • 分區(qū)策略與域隔離的主要區(qū)別:
  • 分區(qū)策略與主題隔離的主要區(qū)別:
  • 發(fā)送端與接收端匹配的條件如下:
46a507e8-ac72-11ef-8084-92fbcf53809c.png

3.3.1. 應用場景

? 分區(qū)可以在域不夠用的時候構建更多的邏輯通信平面;? 同一份數(shù)據(jù)需要屬于多個分類的場景可以用分區(qū)關聯(lián)。

3.4. 截止時間策略

? 在發(fā)布端,應用必須遵循這個約定,即在截止時間內必須發(fā)布一個數(shù)據(jù)(調用write()函數(shù))。如果應用未遵循該約定, 則修改OFFERED_DEADLINE_MISSED _STATUS狀態(tài)以及調用監(jiān)聽器中on_offered_deadline_missed方法。? 在訂閱端,表示對端的(所有匹配)發(fā)布者應該能夠滿足訂閱者期望得到數(shù)據(jù)的最低要求(最長允許時間)。若發(fā)布端未能遵循該約定,則修改REQUESTED_DEADLINE_MISSED _STATUS狀態(tài)以及調用監(jiān)聽器中on_requested_deadline_missed方法。

46af5f22-ac72-11ef-8084-92fbcf53809c.png

3.4.1. 應用場景

截止時間可以用來檢測系統(tǒng)運行是否符合設計,并且提供當運行不符合設計時的異常處理,增加系統(tǒng)的魯棒性。在檢測再上一層,根據(jù)不同主題數(shù)據(jù)的截止時間的長短,用于底層調度不同主題數(shù)據(jù)發(fā)送或者處理的優(yōu)先級以確保截止時間小的數(shù)據(jù)能夠盡快發(fā)送到接收端。

3.5. 所有權/權值策略

所有權策略主要有兩個配置:

? SHARED(共享型),這個是默認的配置,就是接收端可以收到所有匹配對端的樣本數(shù)據(jù);

? EXCLUSIVE(獨占型),這個是數(shù)據(jù)讀者只會接收所有匹配對端中權值最高的樣本數(shù)據(jù),下圖表示的就是一個示意場景,所有實體均配置EXCLUSIVE,并且其中一個數(shù)據(jù)寫者的權值是4大于另一個數(shù)據(jù)寫者的權值1,此時兩個數(shù)據(jù)寫者同時發(fā)送數(shù)據(jù)時,數(shù)據(jù)讀者只會接收到左邊這個權值較大的樣本數(shù)據(jù)。

46b9893e-ac72-11ef-8084-92fbcf53809c.png

3.5.1. 應用場景

所有權/權值策略可以用來實現(xiàn)系統(tǒng)簡單的熱備份容錯,如上圖所示的場景,權值低的右邊數(shù)據(jù)寫者作為左邊權值高的數(shù)據(jù)寫者的熱備(發(fā)送相同的數(shù)據(jù),進行相同的業(yè)務),正常情況下接收端只會接收到一份數(shù)據(jù),當配置存活性策略(Liveliness)感知到左邊的數(shù)據(jù)寫者失活(可能時由于硬件/軟件故障)后,右邊的數(shù)據(jù)寫者成為當前權值最高的對端,即可把數(shù)據(jù)提交給數(shù)據(jù)讀者,這樣整個系統(tǒng)還可以正常的運行。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6024

    瀏覽量

    135950
  • 中間件
    +關注

    關注

    0

    文章

    65

    瀏覽量

    18168
  • DDS
    DDS
    +關注

    關注

    21

    文章

    633

    瀏覽量

    152630
收藏 人收藏

    評論

    相關推薦

    什么是DDS(數(shù)據(jù)分發(fā)服務)?#軟件中間件

    中間件DDS
    北匯信息POLELINK
    發(fā)布于 :2023年06月05日 14:50:13

    一種嵌入式系統(tǒng)通信中間件的設計

    基于嵌入式系統(tǒng)的跨平臺實現(xiàn)互通、互連、互操作及通用性的特殊要求,我們根據(jù)中間件的設計思想研制開發(fā)了一種基于嵌入式技術的各通信設備之間進行網絡互連的通信中間件
    發(fā)表于 05-30 09:33 ?35次下載

    基于中間件技術的異構機器人系統(tǒng)設計及實現(xiàn)

    基于中間件技術的異構機器人系統(tǒng)設計及實現(xiàn):基于C++CORBA中間件的技術規(guī)范和具體應用,對異構機器人系統(tǒng)的集成技術進行了研究.以ACE?TAO作為開發(fā)平臺,
    發(fā)表于 03-18 16:23 ?17次下載

    基于JMS的RFID中間件設計與實現(xiàn)

    介紹了Radio Frequency Identification (RFID) 和物聯(lián)網的RFID 中間件技術,設計了RFID 中間件整體框架,在此基礎上設計并實現(xiàn)了一個基于JMS 的商品零售的邊緣中間件
    發(fā)表于 10-19 16:16 ?17次下載

    什么是中間件

    什么是中間件 中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件
    發(fā)表于 12-28 17:54 ?1370次閱讀
    什么是<b class='flag-5'>中間件</b>

    NGB中間件標準考慮因素

      數(shù)字電視中間件技術與標準,大家都非常熟悉了。自2001年,DVB推出MHP中間件技術標準以來,全世界各地都開始了中間件技術的研究與標準制定工作,而且基本上都是源自于MHP
    發(fā)表于 06-25 11:18 ?1088次閱讀
    NGB<b class='flag-5'>中間件</b>標準考慮因素

    通信中間件設計實現(xiàn)及其在銀行中的應用

    本文 對 該 中間件方案及實現(xiàn)在中國建設銀行中的應用情況作了調查,收集、整理了在銀行中的應用情況資料,描述了銀行使用平臺構建核心業(yè)務系統(tǒng)的過程,通過數(shù)據(jù)統(tǒng)計資料分析,
    發(fā)表于 09-20 16:10 ?16次下載
    <b class='flag-5'>通信中間件</b>設計實現(xiàn)及其在銀行中的應用

    基于DDS網絡中間件的持久化數(shù)據(jù)管理問題研究

    基于DDS網絡中間件的持久化數(shù)據(jù)管理問題研究_劉宏義
    發(fā)表于 01-07 21:28 ?0次下載

    常見的中間件有哪些?匯總解析

    世界著名的資訊機構Giga Group把中間件分為三大類,共十五種。另一家世界著名的資訊機構IDC同時指出,最近幾年到未來的2002年,增長率最高的中間件將集中在數(shù)據(jù)存取中間件、消息中間件
    發(fā)表于 12-01 08:48 ?5.5w次閱讀

    物聯(lián)網軟件系統(tǒng)中的RFID中間件介紹

    RFID中間件是物聯(lián)網軟件系統(tǒng)中的關鍵和靈魂,為解決分布異構問題,人們提出了中間件的概念。中間件是位于平臺(硬件和操作系統(tǒng))和應用之間的通用服務,這些服務具有標準的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口
    發(fā)表于 04-15 16:00 ?4650次閱讀
    物聯(lián)網軟件系統(tǒng)中的RFID<b class='flag-5'>中間件</b>介紹

    RFID中間件是什么東西

    RFID 中間件是一種面向消息的中間件,信息是以消息的形式,從一個程序傳送到另一個或多個程序。
    發(fā)表于 12-02 16:12 ?3481次閱讀

    通信中間件接口手冊

    通信中間件接口手冊
    發(fā)表于 06-29 11:37 ?2次下載

    汽車軟件通信中間件iceoryx和它的零拷貝技術

    1. iceOryx 是什么?這是一頭漂亮的"冰羚",它是一種用于汽車軟件中的 ICP 通信中間件,由 Eclipse 基金會發(fā)布和維護。 通信中間件在汽車軟件開發(fā)中占據(jù)越來越重要的地位,這是
    發(fā)表于 05-15 11:42 ?0次下載
    汽車軟件<b class='flag-5'>通信中間件</b>iceoryx和它的零拷貝技術

    自動駕駛通信中間件

    ,而中間件的任務就是確保網絡 本身對軟件組件是透明的。比如我們所熟知的SOME/IP就是一種典型的中間件技術實現(xiàn)。使用中間件能夠簡化系統(tǒng)的開發(fā),提 高管理和測試效率。 車載網絡通信
    發(fā)表于 06-01 11:32 ?0次下載
    自動駕駛<b class='flag-5'>通信中間件</b>

    DDS通信中間件——DCPS規(guī)范(上)

    DDS通信中間件——DCPS規(guī)范(上)本篇文章繼續(xù)和大家分享一DDS這套
    的頭像 發(fā)表于 09-26 08:08 ?491次閱讀
    <b class='flag-5'>DDS</b><b class='flag-5'>通信中間件</b>——<b class='flag-5'>DCPS</b><b class='flag-5'>規(guī)范</b>(上)
    主站蜘蛛池模板: 暖暖日本免费播放| 国产午夜视频在线| 国产永久视频| 亚洲女初尝黑人巨磁链接| 国产婷婷午夜精品无码A片| 曰本熟妇乱妇色A片在线| 久九九精品免费视频| 亚洲精品成人在线| 久久国产精品萌白酱免费| 3d无遮挡h肉动漫在线播放| 葵司中文第一次大战黑人| 87影院午夜福利| 女人 我狠狠疼你| 国产电影尺度| 亚洲精品乱码久久久久久中文字幕| 久久久无码AV精品亚洲A片软件| 中文字幕网站在线观看| 猛烈抽插H1V1| 福利一区福利二区| 性色爽爱性色爽爱网站| 久久久96| 精品国产成人AV在线看| 91伊人久久大香线蕉| 亚洲合集综合久久性色| 色婷婷五月综合久久中文字幕| 国产欧美一区二区三区在线看| 伊人久久综合| 亚洲精品久久久久久蜜臀| 熟女啪啪白浆嗷嗷叫| 久久久久久免费高清电影| 国产欧美无码亚洲毛片| 国产 欧美 亚洲 日韩视频| 印度学生xxxxx性14一16| 亚洲精品第一综合99久久| 卫生间被教官做好爽HH视频| 久久久久久久久a免费| 国产亚洲福利在线视频| 国产精品香蕉视频在线| 538在线播放| 91福利在线观看| 91极品蜜桃臀在线播放|