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