許多分散式即時系統必須滿足嚴格的即時性能要求,為此,業界已推出了高性能的中介軟體產品,它們每秒能處理上百萬條消息,且延遲只有數十毫秒,這個速度比針對較低要求的企業級應用所開發的消息處理系統快上許多倍。這種技術的特點是快速、靈活、可擴展,並具有確定性和可靠性。同樣重要的是,這種中介軟體支援以網路為中心的設計模型,可大幅簡化系統的整合和升級。
真實世界中的應用正驅動著即時中介軟體的發展。如美國海軍的聖安東尼奧艦艇採用的艦載廣域網路(SWAN)。該網路由數百台電腦組成,必須能夠在各種情況下連續工作。這就要求中介軟體支援自動發現、冗餘的資料源、接收器、資料路徑和發送器。預防來襲導彈和飛機的最後一道防線系統需要指揮每秒上千發的貧鈾炮追蹤和擊落以每小時數百英哩速度飛行的入侵目標。該系統還需要協調高速雷達和決策系統與快速自動武器之間的通訊,並且要求以低於毫秒級的延遲向數十個節點分發資料,這一切都驅動著中介軟體必須滿足特別高的性能要求。而且這種連接感測器、控制和儲存的應用還迫使即時中介軟體必須提供頻寬管理功能。
如今的即時中介軟體已被廣泛用於推進通訊子系統的發展;將各種不同的感測器匯整在一起;連接飛行模擬器中的運動控制、繪圖和控制;並協助無人駕駛車輛整合感測器和命令控制器。這些應用都要求具有即時回應功能。
一如既往,解決複雜問題的最佳方法是利用簡單的概念:發佈-訂閱模式。從概念上講,採用發佈-訂閱機制後,需要的資訊只是簡單地被請求和發送。中介軟體可匹配發送器和接收器,因而確保每個資料‘合約’都能得到滿足。實際上,有許多細節必須加以規範。儘管如此,整個模型非常直觀,用起來也非常方便。
即時設計與傳統中介軟體間最明顯的區別在於調整功能。例如,大多數中介軟體採用傳輸控制協議(TCP)。TCP是20世紀70年代設計,可以在兩台電腦之間提供可靠的位元組串流連接。由於它能保證可靠性,因此TCP非常有用,但也有很多限制。如TCP只支援兩台電腦間的通訊。它的驅動狀態機有許多逾時設定,而且都不是用戶可設置的。雖然TCP支援可靠性,但隱藏了所有重要的細節:丟棄的資料封包要重發多少次?使用多少記憶體空間?何時發送重傳命令等。
即時中介軟體則不同,它採用簡單得多的用戶資料報協議(UDP)。中介軟體提供可靠性、時序和逾時;記憶體和資源的使用;網路傳送及優先順序等服務品質(QoS)控制功能。當傳輸媒介丟失資料封包、鏈路中斷和硬體發生故障時,中介軟體會作出及時正確的反應。大多數企業級中介軟體使用基於daemon或broker的架構,而即時中介軟體最好採用沒有額外跳接和單點故障的無中心‘點對點’對等協議。而且本地記憶體內的快取記憶體提供了不需要重傳就能快速得到最新值的功能。自動的自我發現和配置功能允許使用中系統動態地增加和減少元件,而不致造成系統混亂。
即時中介軟體的特點是必須快速。第一步是減少開銷。雖然傳統的客戶伺服器設計傳送每條消息都需要一個來回請求/回應週期,但發佈-訂閱機制中的每條消息並不存在請求業務。以前的中介軟體也使用中心伺服器來協調資料流程。向中間伺服器發送消息至少會使發送‘nonstop’點對點資料封包的延遲加倍,因為資料封包必須被接收然後再次發送。事實上,有許多原因會造成伺服器滿負載工作、擁塞或不能即時回應。使伺服器介入每次傳輸還會使網路上的總流量加倍。
在目前的硬體和作業系統平台上,堆疊和原始網路傳送機制每秒可處理約5萬條消息。將多個應用層消息批次處理成一個傳輸層資料報,可以使基於伺服器的架構達到每秒10萬條消息左右的吞吐量,而延遲只有幾毫秒。因為點對點中介軟體跳過了所有的中間設備,在採用批次處理時能達到每秒近300萬條應用層消息的處理能力。在吞吐量沒有明顯變化的條件下,點對點中介軟體的延遲性能也可達到65ms以下。
將一個資料封包發往多個目的地的群播功能可以徹底縮短總延遲,並提高有效吞吐量和效率。理論上群播能以50倍單播的速度向50個節點發送資訊。然而大家都知道,群播的可靠性面臨極大的挑戰。
圖:實際應用推動了對即時中介軟體的需求。
QoS將直接影響系統性能和功能,它包括:
*可靠性:選擇何時重傳及重傳多少次丟棄的資料封包。
*頻寬控制:限制一個發佈者可以使用的頻寬。
*資源管理:設置用於緩衝和重傳的記憶體大小。
*濾波器:透過虛擬劃分網路、限制單位時間內提供的更新封包數量,或是僅提供內容匹配濾波器的更新封包來最佳化資訊,使其只提供給需要的節點。
*容錯:對意外故障和狀態作出及時反應。
即時中介軟體透過使用QoS設置最佳化網路資源來解決問題。舉例來說,中介軟體可以同時接收每秒數千次更新的雷達軌跡資料流程,並每隔10秒僅將更新資料傳送給HMI工作站,在資料庫伺服器上可靠地記錄每次讀取資料,並僅對5英哩半徑範圍內的目標更新衝撞檢查器,並同時將資料群播給網路上的數百個應用程式。
發佈-訂閱中介軟體允許應用程式從許多分散式資源中收集資訊,並從許多位置對它進行存取。因此有許多人將這個新功能稱為‘以網路為中心’或‘以資料為中心’的架構。
以網路為中心的架構從根本上減輕了連網應用的設計和發展難度,如美國海軍的E-2C鷹眼預警機就是轉用以網路為中心的架構設計。以網路為中心的架構比以前的客戶伺服器架構模組化程度更高,且更容易維護。它提供了結構化的總體設計模型,非常方便擴展、修改和獨立開發。
DDS標準
2005年,物件管理組織(OMG)採納了用於即時系統、稱為資料分散式服務(DDS)的標準。DDS是第一種中介軟體規格,主要用於高性能分散式系統,它包括了一個API規格和一個線協議(wire-protocol)設計。
DDS已經成為高性能、基於標準的中介軟體的技術焦點,特別是在軍事應用中。國防情報服務機構(DISA)已經要求美國軍隊中的所有資料分佈均應用採用DDS。大多數主要的NATO武器系統設計也正升級到DDS,而且該技術將構成韓國新型艦艇系統的核心通訊功能。
今天,即時中介軟體提供的性能和功能,已經能完全滿足嵌入式產業面臨的新要求。
作者:Stan Schneider
執行長
Real-Time Innovations
留言列表