1. 程式人生 > >《分散式java運用:基礎與實踐》筆記2

《分散式java運用:基礎與實踐》筆記2

第二章、大型分散式java應用與SOA

隨著業務複雜性的上升,單系統無法滿足需求。需要多系統細化分工!拆分系統必然帶來系統之間資訊互動的問題。簡單地辦法是統一互動標準——SOA。

SOA全稱是面向服務架構。它強調系統間用標準的服務方式進行互動,各系統允許採用不同語言、不同框架,但互動必須以標準的服務進行。

挑戰:

伺服器多級呼叫帶來的延時;

除錯/跟蹤困難;

更高的安全監測需求;

現有應用的移植;

Qos支援(限制流量、機器資源分配)

高可用、可伸縮。

多版本依賴管理。

綜合,實現一個大型應用的SOA平臺應滿足:

1)        統一服務互動方式,實現現有應用無縫整合。

2)        提供除錯跟蹤支援。

3)        依賴管理;

4)        高可用可伸縮。

2.1基於SCA實現SOA

      SCA(Service Component Architecture):大廠商聯合組織制定的SOA具體實現規範。

      為了減少系統實現侵入,採用XML定義Component對映到系統本身介面的實現上。SCA允許多種對映方式。

      SCA提供了清晰的釋出服務、呼叫服務和無縫與現有應用的整合。除錯跟蹤、依賴管理、高效能高可用未定義。

2.2、基於ESB實現SOA


      可以認為ESB只是個概念:基於訊息中介軟體來實現系統間的互動。5要素:

      標準的訊息通訊格式;

      訊息路由;

      支援多種資訊互動型別;

      支援多種網路協議;

      支援多種資料格式並相互轉換。

      綜述:訊息模式承擔了統一服務互動,支援同步非同步互動。除錯跟蹤沒定義;通過訊息流轉判斷依賴關係。高效能高可用取決框架。

2.3、基於Tuscany實現SOA

      Tuscany是IBM和Bea捐獻給Apache的產品,也是最常用的SCA實現框架之一。

      支援更多的釋出方式:Webserver、ajax、corba、rmi等等

      呼叫服務:和SCA一樣支援更多應用整合方式,

      支援的通訊及互動方式:比SCA支援更多的通訊方式

      綜述:除錯跟蹤會把錯誤帶到呼叫端;依賴管理、高效能高可用沒有在SCA上擴充套件。

2.4、基於Mule實現SOA

      Mule是常用ESB實現框架之一。

      釋出服務:配置上較為簡單,支援以WebService、jms等方式將Spring和普通java物件釋出為Mule Service,相對Tuscany弱了。

      呼叫服務:相對麻煩,由於ESB強調以訊息方式傳送給匯流排決定的。

      通訊方式:Webservice和jms兩種。

      互動方式:Mule可明確指定synchronous的引數實現同步通訊。在不指定的情況下預設非同步。

      除錯跟蹤:未做特別處理。

      依賴管理:有開源服務治理框架MuleGalaxy。

      高效能高可用:無專門處理。

     總結

      SCA及其實現框架對於服務的統一互動支援很好。ESB則適用於需要解耦方式的服務互動,及複雜的多服務互動場景。共通地,都需要自定義擴充套件:除錯跟蹤、依賴管理、高效能高可用