新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 實時SOA從消息總線開始

        實時SOA從消息總線開始

        作者: 時間:2016-12-15 來源:網絡 收藏
        比如,正在開發中的新一代空中交通管理(Air Traffic Management)系統,是為了調整日益繁忙的航線,并連接各客戶端(比如美國聯邦航空管理局、國防部及國土安全部)的工作。這些系統需要更高的信息帶寬用于追蹤更多的飛行器和更復雜的“自由飛行”軌跡,同時需要更快的信息響應速度以更快地檢測飛行異常。其它方面也有類似的需求,比如醫療保健系統、數據采集與監控(SCADA)系統、網絡監控系統、能源分布系統、運輸系統,以及其它關鍵基礎設施系統。

        SOA組件的最佳組合

        本文引用地址:http://www.104case.com/article/201612/330174.htm

        實時應用程序需要面向服務的基礎組件的最佳組合。SOA系統有三種基礎組件:消息總線、信息轉換/處理引擎和數據存儲庫(見圖1)。一般來說,這些組件會集成到企業服務總線中(ESB),并使用J2EE應用程序服務器。


        圖1


        而在這些基礎組件中,消息總線是最重要的,因為它是所有其它組件交互的中介。
        低性能的SOA系統或許會使用HTTP協議作為“消息總線”實現各組件間的消息交換。這種方案只適用于非實時應用程序。HTTP協議缺乏可靠性、帶寬有限、延遲大,并且在系統暫時無法使用時不能提供緩沖或消息隊列以延時遞交。
        解決方案是采用高性能的消息中間件,比如RTI Data-Distribution Service、IBM WebSphere MQ、TIBCO或SonicMQ等。這些中間件平臺在開發時充分考慮了可擴展性和表現性能。而且,它們為不同的應用方案采用不同的優化架構。

        為什么消息性能很重要?

        這是計算機實時超越人類實時的需求與期望。若系統中存在人類這一環節,實時即指信息可以在一秒到幾秒反應時間內隨時可??;而在計算機到計算機環境中,卻必須以毫秒甚至微秒級別的速度處理信息。
        計算機實時對消息基礎設施的要求更為嚴格:每個處理組件和存儲組件每秒都會收到幾十萬的消息或事件,延遲不能超過微秒級別,最差不能超過毫秒級別。這意味著消息中間件必須可以在系統范圍內每秒傳送幾百萬的消息。
        消息總線的負載能力也必須滿足基礎硬件設施的負載要求,并且不能在基礎硬件設施的限制(中央處理器速度、核心、速度和網絡帶寬)外再有其它限制。隨著中央處理器和網絡速度的提升,那些可以因硬件升級而提升性能的系統將獲得更大的競爭優勢。比如,在一個自動交易系統中,決定性因素并不是判定交易所用的絕對時間,而是要在競爭交易發生前做出判定并執行。
        關于計算機實時,SOA系統的最后一個問題是,它們的“反向性能負載效應曲線”,也就是系統在高負載下運作時的及時響應能力非常重要。一般的效應曲線,比如人類實時系統,由于負載的加重而使性能有所下降是可以接受的。這是因為人類的期望與耐性是隨情況改變的,比如,人們明白在度假高峰期預定機票必須忍受較長的等待時間。而對計算機實時系統的要求卻與此相反。高負載時期正是“最關鍵業務”發生的時期,也是需要系統表現最佳性能的關鍵時期。比如,業務繁忙時必須更快地處理交易判定。
        人類實時系統與計算機度實時系統的區別在表1中做了概要說明。


        表1


        為實時SOA選擇消息中間件

        消息中間件是實時SOA系統的實現關鍵。雖然如此,仍然有許多問題需要考慮。如何為實時SOA系統選擇最佳的消息中間件呢?可以從架構、服務質量(QoS)控制與過濾器、性能提升技術、實時判定機制和度量指標五個方面考慮。

        1. 架構
        消息中間件有四種基本架構:星型拓撲(hub-and-spoke)架構、集群拓撲架構、聯合架構和對等架構(peer-to-peer)。(見圖2)


        圖2


        星型拓撲架構用一個服務器作為消息交換的路由,實現包含所有消息隊列的消息“服務”。
        集群拓撲架構使用一組服務器,分別處理不同種類的消息(比如消息隊列或主題所有權)。每條消息通過一個服務器,但不是所有消息都用同一個服務器。
        聯合架構也使用一組服務器,但這組服務器是作為“資源庫”使用。比如,消息隊列可以出現在多個服務器中。消息可能只經過一個服務器代理,也可能經過多個服務器代理。
        對等架構不在傳輸路徑中使用任何代理。消息直接從發送方傳向接收方。
        各種架構都有其優缺點。星型拓撲型容易管理,便于操作,但表現性能、容錯率和可擴展性比較差。集群架構可擴展性比星型架構好,但容錯性同樣較差,并且只能在網格范圍內為附近的客戶端提供較好的表現性能。聯合架構的擴展性更好一些,但其延遲更大,因為每條消息都要經過至少兩個服務器的代理。對等架構提供了最好的可擴展性、表現性能,最低的延遲和最高的容錯率,但實現起來很困難,并且對業務的支持有限。
        隨著需求越來越具實時性,對性能、可預見性和平衡的要求越來越傾向于對等架構。這就是為什么像IP語音通信和IP視頻傳播(比如Skype)之類的需求網絡會采用對等的設計方案
        服務質量控制與過濾器
        服務質量控制是以低延遲、高處理能力提供及時數據的關鍵。中央處理器、內存和網絡帶寬資源必須在所有通信過程中共享。然而,并不是所有的通信都需要相同的帶寬或有相同的緊急性和重要性。如果沒有服務質量控制,應用程序就無法分辨不同的信息類別和反應需求。這會導致中間件不能靈活地做出判定,對信息進行優化處理或滿足應用需求。
        比如,使用TCP協議(傳輸控制協議)的傳統網絡環境中,一個小而緊急的警告消息可能在TCP連接中被排在一個較大的文件傳輸后面。因為TCP無視消息源,并穩定有序地傳輸每一個字節。這個警告消息只有在傳完整個文件之后才能被成功接收到。可以假想在廣域網(WAN)中轉播直播節目的情況。網絡阻塞可能會造成圖像丟失;由于沒有服務質量控制,中間件就會繼續查找丟失的圖像,而不是選擇傳送最新的圖像。這樣就不只是丟失幾張圖片的問題,極有可能圖像會凍結,直到成功取得丟失的圖像。所以,即使硬件可以提供不錯的表現性能,系統的整體性能仍然大打折扣。
        為實現計算機速度的實時性能,消息中間件必須至少滿足以下服務質量控制要求:穩定性、緩沖計算、流量控制、生命周期、歷史記錄和傳輸優先級。(見表2)


        表2


        過濾功能是系統擴展性與表現性能的關鍵。支持過濾的中間件可以只為各組件傳送最重要的內容,這可以節省大量網絡帶寬和CPU資源,使系統可以處理更多的信息。比如,事件處理引擎可能會查找關系到某些計算機或網絡單元,或者屬于某種協議的網絡活動。中間件并不會將所有網絡事件都傳送到引擎,并讓引擎過濾掉不相關數據,而是先進行過濾處理,然后再發送相關數據,這樣可為事件處理引擎節省網絡帶寬與CPU資源。
        主要有兩種過濾器:一種是基于時間的,另一種是基于內容的?;跁r間的過濾器會限制信息頻率,比如每秒最多允許發送10次更新信息?;跁r間的過濾器對應用程序非常有用,例如以人為本的儀表板,只需要獲得走向與概要信息即可。


        上一頁 1 2 下一頁

        關鍵詞: 實時SOA消息總

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临沂市| 兴海县| 牙克石市| 苏尼特右旗| 朝阳市| 华亭县| 松溪县| 沙田区| 衡阳县| 珠海市| 仁布县| 肥乡县| 松原市| 大冶市| 区。| 库车县| 定西市| 墨玉县| 松潘县| 微山县| 会昌县| 长子县| 琼结县| 中山市| 瑞昌市| 怀宁县| 新和县| 麻江县| 怀集县| 房产| 铅山县| 白河县| 宝清县| 宜宾县| 五家渠市| 巴彦县| 建水县| 平安县| 太保市| 南澳县| 当雄县|