SOA基礎

 

      每一個系統上都有多種業務邏輯,這就像在一個小超市中,一我的負責收銀、清潔、擺貨、諮詢等各類各樣的事情,當來超市的顧客多到必定程度,這我的就沒辦法再負責這麼多的事情了,系統也一樣如此。網絡

   

      第一個現象就是系統多元化帶來的問題,可採用對公用邏輯的部分進行抽象的方法,造成多個按領域劃分的共用業務邏輯系統;第二個現象是系統訪問量、數據量上漲後帶來的典型問題,當超市的顧客不斷增長時,一般超市採起分工的方式更好地服務顧客。一樣,對系統而言,也會採起拆分系統的方式來解決。框架

 

      在構建了共用業務邏輯系統拆分系統後,最明顯的問題就是系統之間如何交互。異步

      若是不控制,會出現多個系統之間存在多種交互方式:Http、TCP/IP+NIO、Hessian/RMI、WebService等;同步、異步等方式可能都會出現,這會致使開發人員每訪問一個公用業務邏輯系統或拆分出來的系統後,都有可能要學習不一樣的交互方式;同時也會形成各開發團隊重複造輪子,提供不一樣交互方式用的框架,這對於應用的性能、可用性而言,也帶來了極大的挑戰。性能

 

      對於以上問題,很容易想到的解決方法就是統一交互的方式,SOA無疑是實現這種方式的首選。學習

      SOA全稱是:面向服務構架,它強調系統之間以標準的服務方式進行交互,各系統可採用不一樣的語言、不一樣的框架來實現,交互則所有經過服務的方式進行。spa

 

1、基於SCA實現SOA平臺中間件

      SCA:Service Component Architecture.blog

 

      發佈服務: 服務遵守SOA以接口方式對外提供,發佈服務首先要求系統自己已經有相應的接口實現。爲了減小對系統實現的侵入,經過XML定義Component映射到系統奔上的接口實現上。在定義Component後,則可將Component實現的接口已服務的方式發佈。接口

 

      支持的通訊和交互方式: SCA標準默認提供的通訊方式爲SCA、WebService和JMS三種。SCA方式是指由框架根據運行情況來選擇採用相應的通訊方式,例如框架發現須要調用的服務在同一JVM中,則會自動切換爲本地調用,如在不一樣JVM中,則會採用WebService或JMS等方式;WebService的實現爲Http方式:JMS則可用多種方式來實現,例如TCP/IP、HTTP等,這取決於具體的SCA框架。路由

 

 

 

2、基於ESB實現SOA平臺

       ESB只是一個概念,核心思想是基於消息中間件來實現系統間的交互。

       基於消息中間件所構建的此係統交互的中間場所稱爲總線,系統間交互的數據格式採用統一的消息格式,由總線完成消息的轉化、路由,發送到相應的目標應用,基於ESC構建的系統結構:

           

 

一般ESB框架須具有如下5個要素:

  1. 標準的消息通訊格式

           ESB框架中,要定義系統發送及接收消息時的消息格式,以便各個系統保持一樣的方式與總線通訊。

      2. 消息路由

          消息路由是指當總線接收到消息後,根據消息中的數據來決定須要調用的系統。

      3. 支持多種的消息交互類型

          消息交互時要支持請求/響應和發佈/訂閱等方式,請求/響應方式會更加方便實現同步請求,發佈/訂閱方式則更加方便實現異步的消息廣播。

     4.  支持多種網絡協議

          總線要和多個系統進行交互,一般要支持多種網絡協議,例如:TCP/IP、UDP/IP、HTTP等

     5.   支持多種數據格式並可以進行相互轉換

          多個系統均鬚髮送消息至總線,並由總線將消息轉發,但各個系統消息中的數據格式可能不一致,此時總線要支持數據的轉換。

相關文章
相關標籤/搜索