李 騰,孫志剛,賈 峰
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
?
實時發布/訂閱數據分發服務的模型分析
李騰,孫志剛,賈峰
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
摘要為了探索數據分發服務中間件(DDS)在移動自組織網絡中的通信性能,深入研究了DDS的規范和特點,描述了DDS規范中以數據為中心的發布訂閱層(DCPS) 和數據本地重構層(DLRL)的2個接口內容,闡述了DDS數據分發的基本思想,分析了DDS的服務質量(QoS)策略。OMG DDS定義了以數據為中心的發布/訂閱模式,對分布式實時系統中數據分發、傳遞和接收的接口行為進行了標準化,提供一個與平臺無關的數據模型,該模型能夠映射到各種具體的平臺和編程語言。以RTI公司的數據分發服務為例,對中間件模型的數據分發進行了分析。
關鍵詞數據分發服務;中間件;實時發布訂閱;服務質量策略
Analysis on Real-time Publish/Subscribe Data Distribution Service Model
LI Teng,SUN Zhi-gang,JIA Feng
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
AbstractIn order to explore the communication performance of Data Distribution Service (DDS) in mobile ad hoc networks,the specifications and characteristics of DDS are deeply studied.The two layers of DDS,DCPS and DLRL,are described.Then the basic idea of DDS data distribution is introduced.The QoS policy of DDS is analyzed.OMG DDS standardizes the API and behavior of data distribution,delivery and receiving in distributed real-time systems.It defines a data-centric publish/subscribe model,and provides a platform-independent data model,which can be mapped to a variety of programming languages.Taking RTI data distribution service as an example,the design and implementation of the middleware model are analyzed.
Key wordsdata distribution service;middleware;real-time publish/subscribe;quality of service policy
0引言
隨著網絡技術的飛速發展,各領域網絡應用軟件越來越復雜,系統集成的難度和風險都在大幅度提高, 現在通信需要解決的關鍵問題就是如何將這些基于不同平臺的系統連接起來,使通信更為方便。中間件技術作為架構在應用層和底層操作系統之間的橋梁能夠很好地解決該問題,保證了應用軟件在不同平臺、不同操作系統之間的互連、互通和互操作。數據分發服務是一個用于實時分布式應用程序的網絡中間件,傳統的客戶端/服務器(C/S)的數據傳輸方式存在低效和信息傳遞不及時的問題[1],DDS使用發布/訂閱通信模型,在數據分發服務中建立以數據為中心的發布訂閱模型,并能解決高效、實時的數據分發問題,能夠使分布式應用程序的參與者有效地分配數據服務,各種需要信息分發的應用都能夠使用這種以數據為驅動的網絡結構。在2004年12月,OMG組織正式頒布了該規范,本文將對DDS的關鍵技術進行討論和相關研究,對DDS的QoS策略進行可靠性配置,并試驗驗證了其可靠性性能。通過分析提出了DDS在無線網絡下的可行性觀點。
1數據分發服務
以數據為中心的發布/訂閱(Data Centric Publish-Subscriber,DCPS) 是DDS的核心,它提供了一個與平臺無關的數據模型。使應用程序能夠實時地進行信息發布,并訂閱其需要的信息。作為網絡中間件層可以認為是架構在應用層與傳輸層之間的橋梁,使系統集成從傳統的硬集成轉變為以數據為中心的軟集成,達到信息按需獲取、應用功能即插即用和系統靈活重構的目的[2]。
1.1DDS規范
DDS規范目的是為了簡化分布式系統以能夠有效地發布數據,主要應用于要求可預見性、高性能和能有效使用資源的關鍵領域。DDS規范有2個層次的接口:
低層的DCPS:將數據發布者發布的信息高效準確地傳送給數據訂閱者,DCPS層提供了數據發布的基礎架構,是 DDS規范的核心。
可選的高層DLRL:允許將服務簡單地集成到應用層[3]。DLRL層建立在DCPS之上,主要規定應用層和DCPS層之間的接口,該接口將接收到的數據進行處理并傳遞給應用層,經由底層DCPS層提供服務,進而簡化編程工作。
1.2DDS特點
DDS是一種輕便的、能夠提供實時信息傳送的中間件產品。其特點整理如下:
① DDS是針對網絡編程的一個公開標準;
② 是一套支持發布/訂閱設計思想的應用程序接口(API);
③ 體現了以數據為中心進行結構設計的方法學;
④ 是專為高性能,實時系統設計的通信中間件;
⑤ 降低成本,用戶專注于自己的設計,沒有自己設計系統中所有的組件,不需要DIY.;降低集成成本,減少首次設計和后繼測試等時間開銷;
⑥ 采用公開標準,減少了被供應商特定技術禁錮的風險;
⑦ 可以同時使用多種傳輸途徑,如UDPv4、UDPv6、共享內存、WAN和DTLS。
2以數據為中心的發布/訂閱層
作為DDS 規范的核心,DCPS 層為應用程序的發布/訂閱數據提供了基礎架構[4]。它允許:
① 發布者應用程序識別即將發布的數據對象,并提供發布值給這些對象;
② 訂閱者應用程序識別其感興趣的數據,并獲得這些對象值;
③ 應用程序定義主題以及和主題關聯的類型信息,創建發布者和訂閱者實體并給這些實體關聯 QoS 策略[5],進而創建并初始化所有實體。
2.1基本概念
DCPS的實體包括:域(Domain)、域參與者(Domain Participant)、數據寫入者(Data Writer)、發布者(Publisher)、數據讀取者(Data Reader)、訂閱者(Subscriber)和主題(Topic)。各個實體間的關系如圖 1所示。下面將詳細介紹這些實體的概念以及實體間的聯系[6]。

圖1 DDS發布/訂閱模型
域是DDS中特有的一個通信環境,應用程序實現互相通信的前提是在同一個域內,這一約束對隔離優化那些共享相同需求的通信有很大幫助。每個分布式系統可以由1個或多個域組成。
數據寫入者是發布者的類型化的接入器,數據寫入者將數據提供給發布者,由發布者完成數據分發,發布者根據其自身的 QoS策略和數據寫入者的相應的QoS策略進行數據分發。
數據讀取者負責獲取訂閱者接收到的數據,并傳遞給應用程序的DCPS層。而訂閱者負責接收來自發布者的數據,然后將接收到的數據傳給相應的數據讀取者,從而使應用程序獲得它所感興趣的數據。數據讀取者可以通過調用函數從DDS中獲取數據,這為開發人員程序的開發提供了靈活性。調用的函數有2種: take()函數和 read()函數。在獲取數據后take()函數會把數據刪除,而 read()在讀取數據后不刪除該數據,所以下一次依然可以讀取該數據。
主題作為發布者和訂閱者之間的基本連接點,2個節點上的發布者主題和訂閱者主題相匹配才能夠進行通信[7]。一個主題由主題名稱(Topic Name)和主題類型(Topic Type)組成。在一個域中,Topic Name是能唯一標識主題的字符串,而Topic Type則是對在主題中數據的定義。在一個特定的域中主題必須是唯一的。在 DDS 框架結構中,即便2個主題是不同的Topic Name但是相同的Topic Type,也說明這是2個不同的主題。此外,每個主題都可關聯其相應 QoS。
DDS的對稱架構,使用戶應用程序更加強健。沒有中央服務器和中心節點,這樣解決了斷點失效的問題。這一點可以很好地適應無線移動網絡的特點。
2.2模塊描述
DDS提供的是一個與平臺無關的數據模型,數據模型圖如圖2所示。它允許應用程序對其擁有的信息進行實時的發布,并可訂閱需要的信息,能夠較好地處理不可靠網絡通信中數據的自動發現、冗余性和可靠性等問題。DDS規范的關鍵之一就是使分布式應用的底層通信模型和應用程序接口(API)標準化。

圖2 DDS數據模型
以數據為中心的發布/訂閱模式清晰地定義了接口和模型信息。有了清晰的接口,各個部件很容易接入。可見,DDS是模塊之間成為松耦合的方式,這使得集成各個系統成為可能。
DDS作為一個高性能、支持容錯的數據分發服務,也適于需要高可靠性的系統。DDS中沒有任何特殊的節點。如果某個節點發生故障,其他部分能照常繼續工作;同樣,如果有新的節點加入,也不會對原有的系統造成任何影響(這同時也反應了可擴展性)。DDS網絡能夠進行自愈,即使網絡被劈成兩半,每一半都能獨立的工作;如果網絡被修復,將會自動重新連接,繼續提供服務。
DDS規范提出了全局數據空間的概念,它的發布/訂閱模型是通過主題將發布者和訂閱者相關聯的。當訂閱與發布的主題相同并且相應的QoS相匹配時,DCPS全局數據空間通知發布者和訂閱者進行數據傳輸,即DDS規范的核心。
2.3DDS的QoS策略
QoS是指一系列可控制 DDS 服務行為的特性集合,它由獨立的 QoS策略組成,DDS 的功能依賴于 QoS 的使用[8]。DDS 中的所有實體都可以與QoS 策略關聯,QoS 策略是 DDS 規范的最大亮點,DDS 提供了包括數據可靠性、持久度、周期數據的超時、基于時間的過濾、數據的歷史記錄、數據的分區、所有權和資源限制等20多種 QoS 策略。每種QoS策略對應一種功能,并且能在不同層次上進行配置。因此,用戶可以按需求進行不同的配置,只有當發布者與訂閱者QoS 策略匹配成功,二者才能進行通信。如:DEADLINE策略決定數據的有效期限,LATENCY_BUDGET策略用來優化調節數據傳輸時訂閱者最大可接受時延,RELIABILITY策略用來保證接收數據的可靠性。TRANSPORT_PRIORITY、PRESENTATION和DESTINATION_ORDER策略可以解決優先級的問題,DISCOVER、USERDATA和GROUPDATA等策略可以實現DDS的發現機制,使新接入的節點能夠被原組網內成員識別并進行通信。由此可以看出,DDS 規范只是定義了一系列的 QoS 策略和接口來控制實體間的數據交換,但并沒有指定如何去實現這些服務或DDS 資源的管理。因此,DDS開發者可以根據規范自由地發揮和創新[9,10]。
3RTPS DDS互操作協議
互操作是指一種能使分布的控制系統設備通過相關信息的交換,能夠協調工作,從而達到共同目標的能力。也認為是“不同平臺或編程與語言之間交換和共享數據的能力”。為了實現這一目標DDS規范使用模型驅動體系結構(MDA)方法來精確描述了以數據為中心的通信模型,該通信模型解決了如下問題[11]:
① 應用程序希望如何發送和接收的數據模型;
② 應用程序如何與DCPS中間件交互并指定它所希望發送和接收的數據以及QoS需求;
③ 數據是如何被發送和接收;
④ 應用程序如何訪問數據;
⑤ 應用層從中間件的狀態獲得的各種反饋。
DDS規范還包括一個映射到交互式數據語言(Interactive Data Language,IDL)特定的平臺。因此,應用程序使用DDS能夠在DDS運行和重編譯之間切換。DDS因此具有應用程序的可移植性。
隨著在大型分布式系統采用DDS,定義一個標準的“線協議”是可取的,以允許來自多個供應商的DDS實現互操作。理想的 “DDS線協議”應該有能力利用DDS的QoS可配置性,來優化基礎傳輸功能。特別是,理想的線協議必須具備組播、高效,連接許多DDS QoS的設置的能力。
4應用軟件的設計與實現
以RTI公司為例,DDS中間件是執行數據分發服務標準的一個典型代表。編寫好發送數據的結構體IDL文件后,只需RTI Launcher中的Code Generator代碼生成器,即可生成相應的發布/訂閱程序[12]。
使用Code Generator代碼生成器即可生成相應的發布/訂閱程序,包括可以配置QoS的XML文件,可以在此XML文件中設置自己需要的服務質量策略。高可靠傳輸的策略設置如表1所示。這組策略配置了數據寫入者和數據讀取者的服務策略,能夠有效保證數據傳輸的可靠性,避免丟包的發生。

表1 可靠性QoS設置
為了證明DDS的可靠性傳輸,用8臺計算機、交換機和路由器搭建了如圖3所示的樹形網絡拓撲結構,在100 M網域網環境下,網絡背景流量占帶寬百分比分別為10%、50%和90%,數據包大小分別為32 bytes、1 024 bytes和8 192 bytes,總發包數為10 000個包情況下進行實驗。試驗結果如表2所示。實驗驗證丟包數全部為零,可以認為滿足可靠性傳輸。在不進行可靠性設置下進行相同條件試驗則偶爾會出現丟包現象。

圖3 網絡拓撲結構
5結束語
DDS可以說是目前相對較先進的網絡中間件,它提供一個以數據為中心的網絡設計手段,是一個分布式網絡的首選網絡中間件,并且專注于數據通信領域;為數據通信提供良好的系統架構和豐富的通信質量服務策略,通過QoS設置可以使各種復雜的數據通信方式變得容易,從而為整個系統的開發節省了大量的時間和資源;它高度的靈活性以及與生俱來的高性能就是為大系統而產生,提高了分布式系統的可擴展性,為后續復雜系統的搭建和實現提供了基礎。
參考文獻
[1]張大海,賴蘭劍,陳鼎才.DDS在分布式系統仿真中的應用[J].計算機技術與發展,2011,21 (3): 250-252.
[2]任昊利,李旺龍,張少揚,等.數據分發服務——以數據為中心的發布/訂閱式通信[M].北京:清華大學出版社,2014:8-9.
[3]朱華勇,張慶杰,沈林成,等.分布式系統實時發布/訂閱數據分發服務[M].北京:國防工業出版社,2013:16-18.
[4]裘楷,沈棟,李娜,等.基于DCPS模型的數據分發服務DDS的研究[J].電子科技,2006(11):68-76.
[5]CASTELLOTE G P.OMG Data Distribution Service: Architectural Overview[J].IEEE Military Communications Conference,2003(1):242-247.
[6]楊傳順,錢幸存.實時數據分發系統軟件的設計與實現[J].微型機與應用,2011,30(6):3-5,10.
[7]BASAGNI S,CONTI M,GLORDANO S,et al.Mobile Ad Hoc Networking[M].西安:西安交通大學出版社,2012:13-17.
[8]Real-Time Innovations,Inc.RTI Connext- Comprehensive Summary of QoS Policies[M].U.S.A: Real-Time Innovations,Inc,2012.
[9]Real-Time Innovations,Inc.RTI Core Libraries And Utilities QoS Reference Guide[S].U.S.A: Real-Time Innovations,Inc,2012.
[10]馮國良.基于DDS的數據分發中間件的設計與實現 [D].南京:南京航空航天大學,2011:8-10.
[11]謝蓓,劉毅,曹萬華,等.實時系統數據分布服務DDS技術綜述[J].艦船電子工程,2006(2):16-19.
[12]Real-Time Innovations,Inc.Core Libraries and Utilities User’s Manual[M].U.S.A,2012.
李騰女,(1989—),碩士研究生。主要研究方向:無人機系統通信技術。
孫志剛男,(1965—),研究員。主要研究方向:航空測控與信息傳輸技術。
作者簡介
中圖分類號TP391.41
文獻標識碼A
文章編號1003-3106(2016)02-0006-04
基金項目:國家高技術研究發展計劃(“863”計劃)(2013AA122105)。
收稿日期:2015-11-12
doi:10.3969/j.issn.1003-3106.2016.02.02
引用格式:李騰,孫志剛,賈峰.實時發布/訂閱數據分發服務的模型分析[J].無線電工程,2016,46(2):6-9,18.