SOA與ESB
SOA是一組用於服務開發和集成的體系結構概念。服務是通過web提供的一個公開的功能包。ESB是一種基礎設施軟件,它提供了一種軟件體系結構,用於為複雜體系結構提供基本服務。ESB可以作為實現SOA的平臺。
什麼是SOA?
SOA(面向服務的體系結構)是一組用於服務開發和集成的體系結構概念。SOA處理的是分佈式計算,其中用戶使用一組可互操作的服務。多個消費者可以使用一個服務,反之亦然。因此,SOA通常用於集成使用不同平臺的多個應用程序。為了使SOA能夠正常運行,服務應該與操作系統和底層應用程序的技術松耦合。SOA開發人員使用功能單元創建服務,並使其在internet上可用。Web服務可用於實現SOA架構。在這種情況下,web服務成為可通過internet訪問的SOA功能單元。任何人都可以使用Web服務,而不必擔心用於開發它們的平臺或編程語言。SOA是直接建立在面向服務的原則之上的,它討論具有簡單接口的服務,用戶可以獨立地訪問這些服務,而不必擔心服務的實際平臺實現。
什麼是ESB?
ESB(enterpriseservicebus)是一種基礎設施軟件,它提供了一種軟件體系結構,用於為複雜體系結構提供基本服務。對於ESB產品或是一個軟件產品,甚至是一個架構風格的產品,都有相當大的爭議。它通過事件驅動和基於標準的消息傳遞引擎(實際上是服務總線)提供服務。在這個消息傳遞引擎之上,提供了一個抽象層,允許架構師使用總線提供的功能,而無需編寫任何實際的代碼。ESB通常通過基於標準的中間件基礎設施來實現。
在ESB中使用術語“總線”是因為ESB確實提供了與物理計算機總線非常相似的功能,但是在更高的抽象級別上。擁有ESB的一個主要優點是能夠減少接觸點的數量;因此,使適應變化變得更容易。ESB可以作為實現SOA的平臺。轉換/路由(流相關)的概念可以由ESB引入SOA。此外,通過證明端點的抽象(在SOA中),ESB促進了服務之間的松耦合。
SOA和ESB的區別是什麼?