什么是企業服務總線ESB|選擇ESB平臺的三個原則
企業服務總線(ESB)從根本上是一種架構。是一套規則和原則,用于在類似總線的基礎設施上將許多應用程序集成在一起。ESB產品使用戶能夠構建這種類型的架構,但他們的方式和提供的功能各不相同。ESB架構的核心概念是,您通過在它們之間放置通信總線來集成不同的應用程序,然后使每個應用程序能夠與總線通信。這使系統彼此分離,允許它們在不依賴或了解總線上其他系統的情況下進行通信。ESB的概念誕生于擺脫點對點集成的需要,隨著時間的推移,點對點集成變得脆弱且難以管理。點對點集成導致自定義集成代碼在應用程序之間傳播,沒有集中的監控或故障排除方法。這通常被稱為“意大利面代碼”,不會擴展,因為它在應用程序之間造成了緊密的依賴性。
為什么要使用ESB?
通過縮短實施時間來提高組織敏捷性,是公司實施ESB作為其IT基礎設施骨干的最常見原因之一。ESB架構通過提供一個簡單、定義明確、可擴展的“可插拔”系統來促進這一點。此外,ESB提供了一種利用現有系統的方法,并使用其通信和轉換功能將它們暴露給新應用程序。
ESB實施
ESB架構有一些關鍵原則,允許業務敏捷性和規模。關鍵重點是將系統彼此分離,同時允許它們以一致和可管理的方式進行通信。
“ESB總線”概念將應用程序彼此解耦。這通常使用JMS或AMQP等消息服務器來實現。
在總線上傳輸的數據是一種規范格式,幾乎總是XML。
應用程序和總線之間有一個“適配器”,可以在雙方之間編排數據。
適配器負責與后端應用程序對話,并將數據從應用程序格式轉換為總線格式。適配器還可以執行許多其他活動,如消息路由事務管理、安全性、監控、錯誤處理等。
ESB通常是無狀態的;狀態嵌入在通過總線的消息中。
規范消息格式是系統之間的合同。規范格式意味著在總線上有一個一致的消息格式,并且總線上的每個應用程序都可以相互通信
ESB整合核心原則
讓我們看看ESB架構如何映射到我們的五個核心集成原則:
編排:將幾個現有的細粒度組件組合成一個高階復合服務。這樣做可以實現適當的服務“粒度”,并促進底層組件的重用和可管理性。
轉換:規范數據格式和每個ESB連接器所需的特定數據格式之間的數據轉換。這方面的一個例子是將CSV、Cobol copybook或EDI格式轉換為SOAP/XML或JSON。Canoncial數據格式可以極大地簡化與大型ESB實施相關的轉換要求,因為那里有許多消費者和提供商,每個都有自己的數據格式和定義。
傳輸:多種格式(如HTTP、JMS、JDBC)之間的傳輸協議協商。注意:Mule將數據庫視為另一個“服務”,使JDBC成為可以訪問數據的另一個傳輸(或端點)。
調解:提供多個接口,用于a)支持多個版本的服務,以實現向后兼容性,或者,b)允許多個通道實現相同的底層組件。第二個要求可能涉及為同一組件提供多個接口,一個遺留接口(平面文件)和一個符合標準(SOAP/XML)的接口。
非功能一致性:對于典型的ESB倡議,這可以包括圍繞安全和監控策略的應用和實施方式的一致性。此外,通過使用ESB的多個實例來增加吞吐量(可擴展性)并消除單故障點(SPOFs),可以實現可擴展性和可用性的目標,這是高可用性系統的關鍵目標。
選擇ESB平臺
有許多ESB平臺,從大型專有供應商到利基和開源供應商。在表面上,有很多相似之處。以下是在選擇ESB時需要考慮的一些要點。
1.輕量級
在選項過程中,我們需要充分考慮ESB集成平臺部署成本和現有集成進行遷移的成本,以及進行遷移所需的繁重工作量。能否提供模塊化和超快的熱部署,以及易于重新排序和添加/更改功能的配置模型至關重要。
2.不僅僅是中間件
大多數供應商認為ESB純粹是系統之間的中間件,并擁有單獨的產品來托管業務邏輯和發布服務。但在上線使用環節,提供一個輕巧且可擴展的服務容器,用于發布REST和SOAP服務也很關鍵。
3.易用性
平臺上線后,組織內部開發人員能否快速學習使用很關鍵,這要求ESB盡可能使用所有Java開發人員都熟悉的常用工具,如Maven、Eclipse、JUnit和Spring。用XML配置模型(類似于Spring)來定義邏輯,自定義代碼可以用各種語言編寫,包括Java、Groovy、JavaScript、Ruby或Python。此外,新開發人員能否通過快速掌握可視化開發環境。
4.擴展性
優秀ESB往往能夠在環境中進行水平擴展,無需重復投入。例如:國外知名得Mule 的運行時環境可以輕松地嵌入到應用程序中,或者嵌入到應用服務器中。除此之外,還提供了對 JUnit 的支持,使其可以嵌入到 JUnit 測試用例中。這些功能非常有用,因為它意味著您可以為將在開發人員筆記本電腦上運行且可以集成到持續構建過程中的集成創建可重復的單元測試。
5.通用性
雖然 XML 十分常見,但在許多場景下,您可能會希望使用 JSON、文件、 Java 對象等。不同類型數據映射、轉化和處理等能力需要健全。
新一代混合集成平臺
如果您希望一站式解決組織內外部所有應用和數據集成需求,那么數環通更適合。數環通是一個集成平臺即服務(iPaaS),可讓您更高效的實現集成開發。并提供了一個多租戶的彈性平臺,目前已經連接到1000多個應用和服務,并支持連接到您的本地應用程序。
關于ESB與iPaaS差異,詳見:iPaaS VS ESB總線 | 差異及優劣勢分析