SOA和ESB的區別

gudesheng發表於2008-01-03

本期的BIJ上面的一片文章闡述了SOA和ESB的區別,讓我很感興趣。原來看這兩個技術的時候都是從技術層面上看,而沒有從使用者的層面上看。

SOA和傳統開發的最大區別:

傳統的B/S或者C/S的開發是橫向的,表現層,業務層,資料層是彼此獨立,分開來開發,並且各自部署在各自的伺服器上的。在這種橫向架構中,一個專案不管有多少客戶,必須由一個公司,或多個公司遵守相同的元件規則來完成開發。

而SOA提出的概念是縱向概念。每一個服務都是一個獨立部署的單元,可以完全由獨立單位開發。部署在獨立伺服器上,不管底層如何實現,只要最後使用WSDL的介面,可以被呼叫就行了。例如下訂單服務,和信用檢查服務,可以是完全獨立的服務。由不同單位開發,並且在任何程式中可以公用。

所以SOA是抽象的服務,它是直接面對客戶的。

ESB實際上更象是企業訊息匯流排。它是面向開發者的,因為讓客戶理解匯流排很困難。

就像一個電腦,從客戶的角度理解,它的功能有開機,執行作業系統。而內部的匯流排怎麼傳遞,使用者不需要知道,只有開發人員需要知道。

因此,使用SOA可以

1 直接用BPEL編織SOA,使用者用自己的圖形編輯器定義業務流程。客戶更容易理解。

2 使用ESB,當所有服務都在匯流排上時候,服務呼叫實際上是一種訊息呼叫。客戶不易理解,是面向開發者統一訊息服務介面的方法。

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=612788


相關文章