什麼是企業服務匯流排?
企業服務匯流排 (ESB) 是一種軟體架構模式,可支援不同應用程式之間進行即時資料交換。大型組織擁有多種應用程式,使用各種資料模型、通訊協定和安全限制來執行各種功能。ESB 藉由執行資料轉換、通訊協定轉換、訊息路由等作業,讓應用程式整合變得更加容易。應用程式將相關資料傳遞給 ESB,然後轉換資料並轉傳至需要該資料的其他應用程式。
企業服務匯流排有何優點?
企業服務匯流排 (ESB) 概念能標準化並簡化整個組織中服務之間的通訊、傳訊和整合。下一步,我們提供一些小型 ESB 架構實作的好處。
改進的應用程式整合
ESB 提供企業應用程式整合的中央平台。組織可以無縫整合所有類型的系統和應用程式,無論其基礎技術或通訊協定如何。這讓組織更容易維護、管理和擴展其應用程式。
提升開發人員效率
開發人員可以使用 ESB 提供的預先建置的通訊服務,更快地建置應用程式。團隊共享基礎設施成本並佈建伺服器以供合併使用。他們能夠降低開銷和營運成本,同時提高整體效率。ESB 還可以加快上市時間並降低開發成本。
提高可見性和控制
使用 ESB,組織能監控不同應用程式間的資料和服務流程,並能快速識別並解決可能出現的任何問題。這有助於組織確保其應用程式可用、可靠且安全。
企業服務匯流排如何運作?
企業服務匯流排 (ESB) 根據服務導向架構 (SOA) 原則運作。
SOA 是一種軟體開發方法,它使用稱為服務的軟體元件來建立商業應用程式。每個服務都提供一種業務功能,而多種服務之間還能跨平台、跨語言互相通訊。
ESB 平台提供應用程式用於互動的通訊服務。一些範例包括訊息轉換、通訊協定轉換、路由和身分驗證。
接下來,我們討論 ESB 架構的關鍵元件。
端點
在 ESB 架構中,可將端點視為進入或離開 ESB 的入口或出口點。
每個端點通常都有唯一地址或識別碼。您可以使用各種技術來實作端點,例如 Web 服務介面、訊息佇列或 FTP 伺服器。端點還能處理不同的訊息類型,如 XML、JSON 或二進制資料。
端點架構的靈活性讓 ESB 能與各種系統和應用程式整合。
轉接器
ESB 工具中的轉接器元件可在不同格式和通訊協定之間轉譯訊息。這代表它們能被接收方的軟體應用程式正確使用。它還能提供訊息記錄、監控、身分驗證和錯誤處理等功能。
匯流排
匯流排是端點之間訊息交換的核心 ESB 元件。它使用一組根據訊息類型、內容或目的地等不同條件的規則或政策來路由訊息。
您可以在 ESB 組態中定義政策,以符合複雜商業程序的需求。它使用各種通訊協定,如 HTTP、JMS 和 FTP 與端點通訊。
匯流排運作方式如下:
- 匯流排在一個端點接收訊息
- 它會透過檢查商業政策規則來判斷目的地端點的地址
- 它處理訊息並將其傳送至目標端點
例如,假設匯流排從連接到端點 A 的應用程式收到一個 XML 檔案。它判斷該 XML 檔案應傳送至端點 B 和 C。端點 B 需要 JSON 資料,而端點 C 需要使用 HTTP Put 函數。轉接器會將 XML 檔案轉換為 JSON,而匯流排會將其傳送到端點 B。匯流排會在端點 C 上使用 XML 執行 HTTP 請求。
企業服務匯流排有哪些限制?
由於以下限制,企業架構已經從企業服務匯流排 (ESB) 移出。
複雜性
實施和維護 ESB 需要專業技術知識,使其變得複雜而昂貴。供應商鎖定會讓切換到其他 ESB 解決方案變得困難,並限制了資料整合的選項。團隊經歷長時間的等待,因為只有 ESB 的中央管理團隊能夠整合新的企業應用程式。
可擴展性
ESB 軟體由於增加了抽象層和處理層,導致通訊中出現額外的延遲。隨著端點數量和通訊服務映射的增加,ESB 會成為瓶頸並影響效能。為 ESB 伺服器實作高可用性和災難復原的成本也會增加。
升級難度
增強 ESB 整合可能會導致其他相連元件的不穩定,需在更新之前進行大量測試。為 ESB 專案升級提供資金需要跨團隊協作,這可能構成挑戰。
哪些技術正在取代企業服務匯流排?
現今,企業服務匯流排 (ESB) 的使用主要限於需要複雜整合的舊式系統。ESB 架構模式已被微型服務架構及其他技術取代。
微型服務架構由非常小且完全獨立的軟體元件組成,具有自己透過輕量級 API 公開的通訊協定。基本上是由使用者透過其 API 使用微型服務,以此免除集中 ESB 的需要。
如需詳細資訊,您可以閱讀有關微型服務的內容及閱讀有關 API 的內容。
雲端運算和微型服務架構的興起,導致了新技術的出現,這些技術通常被視為 ESB 的替代方案。我們接下來討論其中一些技術。
API 閘道
API 閘道是輕量級元件,提供用戶端存取多個服務的單一入口點。它們通常用於管理 API、強制執行安全性和處理流量。
服務網格
服務網格是專用基礎設施層,用於管理微型服務架構中的服務對服務通訊。它提供服務探索、負載平衡和流量管理等功能。
事件驅動型架構
在事件驅動型架構中,服務透過非同步事件處理而不是同步請求進行通訊。事件是狀態的變更或更新,就好像電子商務網站上放置在購物車中的商品。事件可以帶有狀態 (購買的商品、商品價格和送貨地址),也可以是識別碼 (訂單已發貨的通知)。
什麼是事件匯流排?
許多組織已從企業服務匯流排 (ESB) 轉移到事件匯流排。事件匯流排是接收事件的管道。它會根據事件將應用程式元件連接在一起,讓您更輕鬆建置可擴展的事件驅動應用程式。
與事件匯流排相關聯的規則會在事件抵達時評估事件。每個規則都會檢查事件是否符合規則的條件。您可以將規則與特定事件匯流排相關聯,因此規則僅適用於該事件匯流排所接收的事件。
生產者將事件發佈至事件匯流排。事件匯流排會根據預先設定的規則在事件抵達時篩選並評估事件,然後將事件推送給使用者。生產者服務和使用者服務是解耦的,這使它們可以獨立擴展、更新和部署。
AWS 如何支援您的應用程式整合需求?
Amazon Web Services (AWS) 提供一套應用程式整合服務。它們可讓微型服務、分散式系統和無伺服器應用程式中的解耦元件互相通訊。如果您感興趣,請在 AWS 上的應用程式整合中閱讀更多資訊。
例如,您可以使用這些服務來滿足您的需求:
- Amazon API Gateway 可為無伺服器工作負載和 Web 應用程式建立、發佈、維護、監控和保護各種規模的 API
- Amazon EventBridge 可建立事件匯流排,連接來自您自己的應用程式、軟體即服務 (SaaS) 和 AWS 服務的應用程式資料
- Amazon Simple Queue Service (Amazon SQS) 可建立在任何數量的應用程式元件之間傳送、儲存和接收訊息的訊息佇列
立即建立帳戶,開始在 AWS 上進行應用程式整合。