企業(yè)級(jí)的IT系統(tǒng)往往是非常復(fù)雜的。但某件事情是否復(fù)雜并不一定是一個(gè)獨(dú)立的推動(dòng)力,重要的是系統(tǒng)是否以應(yīng)有的方式運(yùn)行。企業(yè)服務(wù)總線(ESB)看起來非常復(fù)雜,但事實(shí)上,它可以非常有效地執(zhí)行幾個(gè)關(guān)鍵功能,協(xié)助開發(fā)人員進(jìn)行應(yīng)用集成。
一、什么是ESB(企業(yè)服務(wù)總線)?
ESB是一種IT架構(gòu)方法。ESB旨在通過”總線式”基礎(chǔ)設(shè)施將各種應(yīng)用集成在一起。ESB通常位于框架和套件之間,作為執(zhí)行應(yīng)用集成的另一種方式。ESB是一個(gè)中間件工具,它在構(gòu)成應(yīng)用程序的不同連接組件之間分配任務(wù)。
它為完成一些任務(wù)奠定了基本的基礎(chǔ)架構(gòu),例如:實(shí)現(xiàn)路由選擇、翻譯、提供一個(gè)移動(dòng)任務(wù)的總體方法、提供應(yīng)用程序連接到”總線”的能力、訂閱基于結(jié)構(gòu)和業(yè)務(wù)政策規(guī)則發(fā)送的消息、其他集成能力。
二、ESB如何工作
ESB的建立是為了簡化從服務(wù)和應(yīng)用程序到大型機(jī)等不同格式想要相互集成時(shí)可能出現(xiàn)的混亂。然而,問題是ESB究竟是如何工作的?
1.企業(yè)服務(wù)總線是一組交換機(jī),在應(yīng)用程序和/或組件之間的特定路線上直接發(fā)送消息。
2.每個(gè)企業(yè)都有特定的業(yè)務(wù)策略,決定ESB將采取哪條路徑來處理這些消息。
無論是客戶端還是業(yè)務(wù)流程,任何連接到ESB的系統(tǒng)都不會(huì)直接相互通信,因?yàn)樗鼈兺ㄟ^ESB本身進(jìn)行通信。本質(zhì)上,ESB向潛在的客戶機(jī)暴露了相同的服務(wù)接口,而連接的服務(wù)則向ESB暴露。
ESB的一個(gè)主要好處是圍繞著ESB是一個(gè)單一的訪問點(diǎn)。通過ESB連接客戶和服務(wù),公司只需要在一個(gè)單一的位置,即ESB中尋找服務(wù)。即使一個(gè)業(yè)務(wù)流程更換了服務(wù)器,只需要重新配置ESB,公司仍然可以通過ESB訪問服務(wù)。
ESB還可以作為事務(wù)管理器工作,這意味著它可以協(xié)調(diào)多個(gè)服務(wù)參與的分布式事務(wù)。當(dāng)許多不同的業(yè)務(wù)流程和服務(wù)需要在一個(gè)事務(wù)中一起工作時(shí),通常需要一個(gè)配置來協(xié)調(diào)事務(wù)。然而,通過ESB,這就不再需要了,公司可以訪問ESB來順利地處理交易。
ESB還可以作為一個(gè)安全管理器,集中處理認(rèn)證和授權(quán)等流程。無論應(yīng)用程序中的一個(gè)業(yè)務(wù)流程是否具有認(rèn)證或授權(quán),ESB都可以調(diào)整它的設(shè)置,在它暴露給使用它的客戶端的服務(wù)界面中要求這樣做。
ESB 的另一種工作方式是作為服務(wù)代理,為沒有暴露在標(biāo)準(zhǔn)化服務(wù)接口上的應(yīng)用程序充當(dāng)網(wǎng)關(guān)。舉個(gè)例子,如果一個(gè)應(yīng)用程序暴露了一個(gè)Java RMI服務(wù),但網(wǎng)絡(luò)的其他部分運(yùn)行在.NET上,因此它不能直接調(diào)用RMI服務(wù)。通過利用ESB,公司可以很容易地在Java中實(shí)現(xiàn)一個(gè)可以調(diào)用RMI服務(wù)的服務(wù)代理。然后,服務(wù)代理通過ESB向.NET應(yīng)用暴露出Web服務(wù)接口,如SOAP和WSDL。
三、ESB有哪些實(shí)際用途?
我們已經(jīng)討論了ESB的工作原理,現(xiàn)在我們來深入探討企業(yè)如何利用ESB在公司內(nèi)部執(zhí)行不同的任務(wù)。如果使用得當(dāng),ESB可以成為一個(gè)有價(jià)值的工具。
有一些核心功能是在ESB的外殼下的。這些功能結(jié)合起來構(gòu)成了ESB架構(gòu)。這些功能包括:
解耦
ESB的一個(gè)非常有價(jià)值的功能是圍繞著客戶與服務(wù)提供商的解耦。
傳輸協(xié)議轉(zhuǎn)換
使用ESB還可以接受一個(gè)輸入?yún)f(xié)議,并與不同的服務(wù)提供商進(jìn)行通信,即使服務(wù)提供商使用的是單獨(dú)的協(xié)議。
消息增強(qiáng)
通過ESB,用戶可以在隔離客戶端的同時(shí),對(duì)消息進(jìn)行一些一般性的修改。
消息轉(zhuǎn)換
此外,通過ESB,用戶可以將任何潛在的傳入消息轉(zhuǎn)化為傳出格式和結(jié)構(gòu)。
除了企業(yè)服務(wù)總線的這些關(guān)鍵成分外,附加功能還包括增加安全性以保護(hù)任何未經(jīng)授權(quán)的訪問,路由能力以將請(qǐng)求重定向到不同的服務(wù)提供商,以及事務(wù)管理。
安徽寶信信息科技有限公司自主研發(fā)ESB中間件,采用微服務(wù)架構(gòu)、實(shí)現(xiàn)企事業(yè)內(nèi)部異構(gòu)系統(tǒng)接口自動(dòng)注冊、服務(wù)化編排、結(jié)合數(shù)據(jù)治理平臺(tái),打造數(shù)據(jù)業(yè)務(wù)中臺(tái),服務(wù)企事業(yè)單位。