ESB(企業服務匯流排)

menu icon

ESB(企業服務匯流排)

在本指南中,進一步瞭解 ESB(SOA 的基本元件)、它所提供的好處,以及它與微服務架構的關係。

何謂 ESB(企業服務匯流排)?

ESB(企業服務匯流排)是一種型樣,由集中式軟體元件執行與後端系統的整合(以及資料模型的轉換、深度連線功能、遞送和要求),並以服務介面的形式提供整合與轉換,然後供新應用程式重複使用。 ESB 型樣通常使用特別設計的整合執行時期和工具集來進行實作,以確保可能的最佳生產力。

ESB 和 SOA

ESB 是 SOA(服務導向架構,在 1990 年代後期出現的一種架構)的基本元件。 SOA 定義一種透過服務介面讓軟體元件可重複使用的方式。 這些介面利用共同的通訊標準,讓它們能夠快速併入新應用程式,無需每次執行深度整合。

SOA 中的每個服務都包含執行完整離散商業功能(例如,檢查客戶信用、計算每月貸款支付,或處理抵押貸款申請)所需的程式碼和資料整合。 服務介面提供鬆散連結,這表示可以在不清楚或完全不知道如何在底層實作整合的情況下呼叫服務介面。 服務是透過標準網路通訊協定(例如 SOAP(簡易物件存取通訊協定)/HTTP 或 JSON/HTTP)進行公開,以傳送資料讀取或變更要求。 這些服務的發佈方式可讓開發人員快速找到它們,並重複使用它們來組合新的應用程式。

這些服務可以從頭開始建置,但通常是透過將舊版記錄系統中的函數公開為服務介面來建立。 這就是需要 ESB 發揮作用的地方。 舊版系統和記錄系統通常都會使用舊的通訊協定和專有資料格式,而這些項目需要進行轉換和整合,才能與 SOA 網路通訊協定搭配使用。 ESB 可以即時執行這些轉換和整合。 您可以在沒有 ESB 的情況下實作 SOA,但每個應用程式擁有者都必須尋找自己的獨特方式以公開服務介面,即使介面最終可重複使用,仍需要花費大量精力,同時也會給未來維護帶來很大的挑戰。

若要進一步瞭解 SOA 以及 ESB 在其中的角色,請參閱 SOA(服務導向架構)簡介

優勢

理論上,集中式 ESB 提供標準化以及大幅簡化全企業通訊與服務整合的可能性。 硬體和軟體成本可以共享,佈建伺服器只需要執行一次,而且可以指派(如果必要的話,也可以訓練)單一專家團隊來開發與維護整合。

開發人員可以使用單一通訊協定與 ESB 進行「交談」,並發出指令以引導服務之間的互動,並將其保留給 ESB 以轉換指令、遞送訊息,以及視需要轉換資料以執行指令。 這可讓開發人員大幅減少整合時間,保留更多時間以進行配置與改善應用程式。 而在上一個專案到下一個專案之間重複使用這些整合的能力,可以讓下游提升生產力和節約。

不過,雖然已有許多組織順利部署 ESB,但在其他許多組織中,ESB 仍被視為 SOA 部署的瓶頸。 對某個整合進行變更或加強往往會使其他整合變得不穩定。 對 ESB 中介軟體進行更新經常會影響現有整合。 ESB 採行集中管理,因此應用程式團隊很快就會發現自己在排隊等待整合。 隨著整合量的增加,為 ESB 伺服器實作高可用性和災難回復的成本會變得更加昂貴。 而作為全企業專案,ESB 的資金籌集往往面臨困難,這使得技術挑戰變得更難解決。

最後,維護、更新與調整集中式 ESB 的挑戰既巨大又昂貴,ESB 往往使得 SOA 預期會帶來的生產力效益遲遲無法實現,讓銳意變革的業務團隊失去信心。

若要更深入地瞭解 ESB 的起落,請閱讀 ESB 的命運

ESB 與微服務

微服務架構可讓單一應用程式內部分解成可獨立變更、調整與管理的小組件。 隨著虛擬化雲端運算、敏捷開發作法和 DevOps 的崛起,微服務也快速興起並蓬勃發展。 在這些脈絡下,微服務可提供:

  • 改良的開發人員敏捷與生產力,方法是透過讓開發人員可以將新技術納入應用程式的一部分,而不需要改動或「擷取」應用程式的其餘部分。
  • 透過讓任何元件均可獨立調整來實現更簡單且更具成本效益的可調整性,以盡可能快速地因應工作負載需求,並以最有效率的方式使用運算資源。
  • 更好的備援,因為一個元件的失敗不會影響其他元件,而且每個微服務都可以滿足其本身的可用性需求,無需依賴其他元件來滿足「最大一般可用性」需求。

微服務為應用程式設計帶來的精細度也可套用於整合,以提供類似好處。 這是敏捷整合背後的理念,它將 ESB 分解成數個精細、分散且沒有交互相依關係的整合元件,讓個別應用程式團隊可以自行擁有與管理這些元件。

若要更深入地瞭解所有微服務,請參閱微服務:完整指南SOA 與微服務有什麼區別?,並觀看 Dan Bettinger 的影片「什麼是微服務?」:

ESB 和 IBM Cloud

隨著貴公司將 IT 基礎架構轉向混合雲方法,您有很大的可能需要將各種工作負載(包括根據 SOA 和 ESB 型樣的工作負載)轉換為更加輕量且更具彈性的部署模型。 這類轉換在任何組織的雲端旅程中都只是應用程式現代化的一部分。  

進行下一步:

立即開始使用  IBM Cloud 帳戶。