◆湯學達 張媛 孫文俊
(中國電子科技集團公司第二十八研究所 江蘇 210007)
隨著我軍信息化建設的蓬勃發展,實時信息系統的體系結構呈現出以網絡為中心的趨勢,對信息交互能力的要求日益提高。因此,實時傳輸技術研究的目標是建立實時性強、可靠性高、安全性好的信息交換平臺,提高系統互聯能力,滿足系統內各種信息交換和共享需求,并解決應用軟件之間的數據共享和集成問題。
目前,我軍的信息化系統中仍然大量采用端到端的面向連接的通信模式,當系統比較復雜時,該模式的維護性和擴展性都比較差。而在信息化系統中,除了發送的數據外,根據傳輸信道和使用場景的不同,用戶可能對于傳輸的要求以及關注點也不盡相同。例如對于延時較長的傳輸信道,用戶可能更關注于怎樣才能保證收到的數據不過期。未來的信息化系統正在向著網絡化和服務化的方向發展,而類似于CORBA 或者RPC 等傳統的服務化通信模式可能無法滿足我軍實時信息系統的網絡傳輸要求。針對上面的問題,參考DDS 規范,設計并實現了面向數據的實時網絡中間件,可以實現通信節點和傳輸構件的即插即用;通過設計實時網絡中間件的服務質量策略(Quality of ServicePolicies,QoS),優化我軍實時信息系統的數據傳輸能力,大幅提高系統設計和功能拓展的靈活性;通過對于全局數據空間的設計,使用“主題”來標識信息流,實現類似于“服務總線”的“數據總線”,為上層應用提供透明的應用接口。
DDS 規范是OMG 的有關分布式實時系統中數據發布的一個較新的規范[1-2](2004 年12 月發布1.0 版,2007 年1 月發布1.2 版)。DDS 規范采用了發布/訂閱體系結構,但對實時性要求提供更好的支持。DDS 是以數據為中心的發布/訂閱通信模型[3-5],并針對強實時系統進行了優化,提供低延遲、高吞吐量、對實時性能的控制級別、從而使DDS 能夠廣泛地應用于軍事、航空、通信、交通運輸、工業自動化、金融等領域。DDS 規范了實時分布式系統中數據發布、傳遞和接收的接口和行為,定義了以數據為中心的發布/訂閱機制。DDS規范使用UML 語言描述服務,提供了一個與平臺無關的數據模型。DDS 規范簡化了實時分布式系統中數據高效、可靠地發布,它主要應用在要求高性能、可預見性和對資源有效使用的關鍵任務領域[6-7]。

圖1 DDS 協議基本過程
如圖1 所示,DDS 中以數據為中心的發布/訂閱模型建立了一個邏輯上統一的“全局數據空間”的概念[8],通過全局數據空間來管理數據對象?!爸黝}”提供了一個標志符,在全局數據空間中唯一地標識某些數據項,“數據發布者”和“數據訂閱者”通過“主題”進行關聯。“數據發布者”為向數據空間發布主題信息的應用程序,“數據訂閱者”為從數據空間中獲取主題信息的應用程序。通過這種方式可以實現在“數據發布者”和“數據訂閱者”之間的松耦合。DDS 規范列舉并正式定義了一整套的QoS,能利用QoS 進行系統控制。每一個實體都有自身QoS 策略,而且在每一對發布者和訂閱者之間又都可以建立獨立的QoS 協定。這使得DDS 可以很好地配置和利用系統資源、協調可預言性與執行效率間的平衡,以及能夠支持復雜多變的數據流需求。目前,DDS 規范已被廣泛應用于軍事系統中,包括作戰系統、船舶導航和控制系統、船舶防御系統、無人機駕駛系統和地面控制系統、裝甲車輛控制系統、仿真和培訓系統等,其典型應用系統包括美國海上作戰中心(NSWS)高性能分布式計算系統(HiPer-D)、美國海軍LPD-17 艦內廣域網絡、洛馬美國海軍宙斯盾(Aegis)武器系統、Ⅰnsitu無人機等。
由于在未來的軍事信息化系統中,大量實時信息存在于提供信息的各個成員系統中,它們以信息流和數據存儲的方式提供給信息用戶使用。這些信息的傳輸既需要實時網絡中間件實現網絡化與服務化系統中的即插即用與松耦合,又要求實時網絡中間件可以在極短的時間將消息傳輸給用戶實現強實時性。不僅要保證消息可以快速正確的傳遞給用戶,而且需要對信息的可靠性、持久性、丟報率、傳送優先級等屬性進行保證。
參考DDS 規范,將實時網絡中間件劃分為平臺無關模型和平臺相關模型。模平臺無關模型是對平臺無關部分進行的抽象,可以劃分為結構模型,消息模型,行為模型和發現型等四個模型。其中,結構模型定義了實時網絡中間件中的實體信息;消息模型定義了實時網絡中間件中的消息格式;行為模型定義了實體間的動態行為;而發現模型則定義了實體間的發現方法,而平臺相關模型則體現了每個平臺的差異性,例如傳輸模型和安全模型等。平臺無關模型和平臺相關模型共同構成了實時網絡中間件的理論模型,如圖2 所示。
(1)結構模型
結構模型定義了DDS 規范中規定的一些核心實體,如圖3 所示。在實時網絡中間件模型中,實體之間在域內進行通信,每個實體又代表了一個參與者的集合,參與者包含本地通信端點,其中,通信端點又包括兩種類型:數據發布者和數據訂閱者,數據發布者和數據訂閱者通過消息進行通信。其中,數據發布者在域內發布數據而參與者可以根據自己的需求獲得數據。

圖2 實時網絡中間件理論模型圖

圖3 結構模型的核心實體
除了核心實體以外,為了通信的方便,結構模型還定義了一種數據對象——歷史緩存。歷史緩存主要用于緩存數據發布者發布以及數據訂閱者接收的歷史數據。歷史緩存并不包括全部數據,其緩存的具體內容取決于QoS 的設置以及數據發布者與數據訂閱者的實體狀態。
(2)消息模型
消息模型定義了數據發布者和數據訂閱者交互的消息格式,按照不同類型,可以將消息分為控制消息,數據消息,心跳消息等。其中,每個消息都包括消息頭和消息體兩部分,消息頭中定義了協議號,驗證報頭等通用信息。消息格式按照標準的DDS 規范進行設計,可以很方便地支持標準協議以及進行相應擴展。
(3)行為模型
行為模型定義了實體間的動態行為。其中,數據發布者的行為包括創建主題,發布主題,發布數據,更改歷史緩存等,數據訂閱者的行為包括創建主題,訂閱主題,接收數據,從歷史緩存獲取數據等。
(4)發現模型
發現模型定義了實體間的發現方法,其目的是使每個參與者自動地發現相關的參與者以及其通信端點信息。發現之后,實體間就可以根據數據的發布訂閱規則進行通信。
而對于平臺相關模型,每個平臺的定義方式不同,在此不再進行介紹。
基于上文需求,參照實時網絡中間件的理論模型,設計實時網絡中間件的框架如圖4 所示。其中,實時網絡中間件采用分布式網絡結構,每個主機的地位對等,保存與自身相關的發布/訂閱信息,“全局數據空間”作為邏輯概念存在于整個系統中。
如圖4 所示,參與的實體有數據發布者和數據訂閱者。數據發布者通過發布訂閱接口向發布訂閱代理發布主題,數據訂閱者則通過發布訂閱接口向發布訂閱代理訂閱主題。而發布訂閱代理則通過數據總線進行主題管理,消息匹配等功能,共同維護了一個邏輯上的全局數據空間。該設計方式有效避免了集中式網絡結構中的信息交換瓶頸問題,簡化了信息發布/訂閱流程,任何網絡節點出現故障都不會影響其他節點的正常通信,因此具有相對更好的便捷性和可靠性。

圖4 實時網絡中間件框架圖
實時網絡中間件平臺處于應用系統和操作系統之間,分為發布訂閱代理和應用程序接口兩大部分,體系結構如圖5 所示。

圖5 中間件體系結構
中間件的主要功能模塊可以劃分為Socket 傳輸層,網絡通信接口,QoS 配置模塊,發布訂閱接口以及發布訂閱代理。
其中Socket 傳輸層對應于上文的平臺相關模型,實現了對于操作系統的傳輸接口封裝,為上層提供了統一的傳輸接口。通信接口通過調用Socket 傳輸層的接口,針對不同QoS,對于傳輸方式以及傳輸信道進行了自適應的匹配。QoS 配置模塊通過發布訂閱代理實現了對于QoS 的管理以及QoS 的自動匹配。而發布訂閱接口則對下層接口進行了封裝,提供了統一的接口,使得用戶更加易用。發布訂閱代理則維護了邏輯上的全局數據空間,實現了主題數據以及QoS 數據的全局共享。網絡通信接口,QoS 配置模塊,發布訂閱接口以及發布訂閱代理則參考上文的平臺無關模型進行設計。
在實時網絡中間件中,全局數據空間是整個中間件實現的核心。全局數據空間是一個虛擬的空間,實現了公共數據總線的管理和驅動,所有實時信息交換平臺應用主機的地址空間均看作該空間的一部分;發布/訂閱模型中消息主題的管理與匹配、發布者和訂閱者連接事件通知、基于主題的消息交換等功能都基于全局數據空間完成[8]。其核心數據結構主要由參與者結構,主題管理表,歷史緩存結構以及主題同步結構構成。
(1)參與者結構
定義參與者數據結構,該數據結構用來保存參與者的狀態信息。其中,包括參與者標識,用來唯一的標識某一個參與者,參與者的端點信息,以及參與者的QoS 信息。
(2)主題管理表
定義主題數據結構用來保存主題的狀態信息。其中,包括主題標識,用來標識某一個主題,主題名稱,主題的QoS 信息,以及該主題的本地發布者集合,本地訂閱者集合,遠程發布者集合,遠程訂閱者集合,這些集合的數據都為參與者類型。而主題管理表是用來管理主題的,其數據結構為主題數據結構的聚合,包括當前注冊的主題數目以及主題集合。
(3)主題同步結構
定義主題同步結構表示在一個主題需要同步時對外廣播的數據結構。包括主題標識,用來標識某一個主題,主題名稱,主題的QoS信息,以及本地的發布者與訂閱者的集合。全局數據空間的主題管理表主要通過每個主機的發布訂閱代理進行同步,如圖6 所示,每個應用程序主要向本地的發布訂閱代理進行數據的訂閱與發布,本地節點的發布訂閱代理通過網絡和其他節點的發布訂閱代理進行數據同步,最終可實現每個發布訂閱代理都保存有整個網絡所有節點的數據發布者與數據訂閱者信息。

圖6 數據同步方法
在整個過程中,有兩個時機需要進行數據同步,一個時機是在數據發布者和數據訂閱者發布或者訂閱數據的同時,發布訂閱代理立刻和其他代理進行同步,這樣可以保證每個訂閱發布代理的數據都能保持最新。另外一個時機是發布訂閱代理周期性的進行數據同步,這樣可以防止數據發布者和數據訂閱者的異常情況。在發布訂閱代理內部存有主題信息表,包括這個網絡中所有發布和訂閱的主題列表。每個主題內又有該主題對應的四個列表:本地發布者列表,本地訂閱者列表,發現的發布者列表和發現的訂閱者列表。主要的發布訂閱過程如圖7 所示。

圖7 實體發現流程
(1)數據發布者發布主題時將自身信息添加到發布訂閱代理對應主題的本地發布者列表中;
(2)數據訂閱者訂閱主題時將自身信息添加到發布訂閱代理對應主題的本地訂閱者列表中;
(3)發布訂閱代理同步主題時,將該主題對應的本地發布者和本地訂閱者列表通過廣播的方式發給其他網絡節點的發布訂閱代理;
(4)其他網絡節點的發布訂閱代理收到同步的主題數據時將收到的發布者和訂閱者列表添加到對應主題的發現列表中。
通過以上方法進行數據同步既可以實現每個發布訂閱代理都保存有完整的數據發布者與數據訂閱者信息,又保證了網絡中需要同步的數據量較少,最大限度地避免了同步數據的重復發送。
QoS 為數據發布者和數據訂閱者提供了靈活的傳輸配置策略,發布者和訂閱者通過配置這些QoS 參數可以實現靈活的數據分發策略,優化數據傳輸過程,而網絡中間件負責對這些QoS 參數進行匹配,這樣可以增加通信靈活性,減輕開發者的開發工作。DDS 規范中總共包括22 類QoS。針對實際需求,實時網絡中間件中將平常比較少用的QoS 進行精簡和修改,總共實現了15 類QoS 策略。其典型QoS 介紹如下:
(1)可靠性策略
在實時網絡中間件中,可靠性是可選的,并且是可配置的。使用者可以根據自身的需求選擇是最有效的還是最可靠的傳輸策略??煽啃圆呗跃S護在數據傳輸過程中的數據丟失問題,對于高數據丟失率(超過20%)的實際應用是非常有效的。
(2)保鮮策略
接收方在收到數據但一直沒有處理的情況下,有新數據到來,設置緩沖區中是保留最新的,還是全部保留;如果只保留最新的,設置可最多保留多少條。保鮮策略主要用于高延時的應用中,可以避免在高延時的情況下由于緩沖區滿而導致接收方收到“過時”的數據。
(3)持久化策略
表示如果數據訂閱者在中途訂閱一個主題時,是否會收到之前已經發出的數據,即數據生產者會緩存發出的數據多久,如不緩存,直到進程退出,一直保留(持久化)。通過持久化策略,使用者可以根據自己的需要對于之前發送的數據進行持久化,對于某些經常“宕機”的應用,該策略可以避免數據丟失,極大地增強應用的魯棒性。
本文引入了DDS 規范,研究了其關鍵技術,設計并實現了實時網絡中間件。該中間件以數據為中心,有松耦合,高可用等特點,同時又可以通過對QoS 的設置優化傳輸過程,增強傳輸的靈活性。該中間件可以為應用軟件系統提供了一個有組織的數據總線,使得應用軟件在開發、集成、維護、擴展等各個階段更加方便,使得應用軟件系統在需求變更、功能擴展等各方面的反應更加敏捷,提升指揮信息系統整體集成能力;并通過實時網絡中間件提供的信息傳輸QoS 策略保障實現應用對傳輸過程的最優控制,從而更好地支撐多種業務的信息傳輸需求。