ESB 的設(shè)計(jì)模仿了計(jì)算機(jī)硬件架構(gòu)中的硬件總線,充當(dāng)多個(gè)外圍設(shè)備之間的通信橋梁。從長(zhǎng)遠(yuǎn)來(lái)看,ESB 充當(dāng)服務(wù)之間穩(wěn)定的通信總線。它不是一個(gè)標(biāo)準(zhǔn)或有形產(chǎn)品,而是一種架構(gòu)和通信模式。它提供了一個(gè)概念藍(lán)圖,其中包含一組通過(guò)確保充分解耦來(lái)在代表業(yè)務(wù)服務(wù)的軟件組件之間進(jìn)行編排和調(diào)解的指南。

  ESB 的用例

ESB 被設(shè)想為 SOA 的內(nèi)部組件。因此對(duì)于最終用戶來(lái)說(shuō),它是一個(gè)看不見(jiàn)的黑匣子。與 ESB 交互的唯一角色是應(yīng)用程序開(kāi)發(fā)人員和 IT 工程師。

應(yīng)用程序開(kāi)發(fā)人員負(fù)責(zé)定義他們開(kāi)發(fā)的服務(wù)的接口。這些接口成為其他服務(wù)通過(guò) ESB 與它們通信的服務(wù)訪問(wèn)點(diǎn)。 IT 工程師負(fù)責(zé)部署、維護(hù)和監(jiān)控 ESB 基礎(chǔ)設(shè)施,以確保其附帶的服務(wù)數(shù)量不斷增加時(shí)達(dá)到最佳性能。

如果您查看一家擁有少量服務(wù)和應(yīng)用程序的小公司的 IT 部署,那么客戶端-服務(wù)器或點(diǎn)對(duì)點(diǎn)通信模型就可以滿足您的需要。然而,在大型企業(yè)中,事情變得太復(fù)雜太快了。在這種情況下,ESB 的優(yōu)點(diǎn)在處理與以下相關(guān)的復(fù)雜性時(shí)脫穎而出:

  1. 集成多個(gè)服務(wù):當(dāng)一個(gè)應(yīng)用程序上的多個(gè)服務(wù)集成時(shí),存在很高的依賴性。在代碼實(shí)現(xiàn)級(jí)別反映這種依賴性會(huì)導(dǎo)致嚴(yán)重的問(wèn)題,例如業(yè)務(wù)邏輯的糾纏或意大利面條式代碼。 ESB 通過(guò)簡(jiǎn)化集成、提供可靠、安全且通常是即時(shí)的連接來(lái)解決這個(gè)問(wèn)題。
  2. 與外部服務(wù)集成:當(dāng)需要與外部服務(wù)連接時(shí),ESB 提供可靠的連接,同時(shí)管理和控制服務(wù)級(jí)別承諾,以最大限度地減少服務(wù)協(xié)議調(diào)整的影響。
  3. 協(xié)議和消息轉(zhuǎn)換: ESB 特別擅長(zhǎng)將多種協(xié)議轉(zhuǎn)換為一種協(xié)議,例如將 FTP 和 HTTP 轉(zhuǎn)換為 SOAP,或者將 SMTP、IIOP、MQ/JMS 編織在一起。同樣,消息轉(zhuǎn)換是 ESB 最重要的功能之一。它用于使用 XPath 和 XSLT 等標(biāo)準(zhǔn)將消息從一種格式轉(zhuǎn)換為另一種格式。
  4. 集成遺留應(yīng)用程序:ESB 在集成遺留應(yīng)用程序方面非常有用。它們包括各種預(yù)構(gòu)建的適配器,用于將遺留應(yīng)用程序與現(xiàn)代應(yīng)用程序和服務(wù)集成。

ESB 的替代方案和完善技術(shù)

在兩個(gè)或多個(gè)應(yīng)用程序之間提供無(wú)縫通信的挑戰(zhàn)并不新鮮。多年來(lái),人們提出了許多標(biāo)準(zhǔn),并建立了專(zhuān)有應(yīng)用程序和協(xié)議。 ESB 的發(fā)展與基于 SOA 的企業(yè)應(yīng)用程序部署趨勢(shì)相一致,這種趨勢(shì)幾乎可以追溯到萬(wàn)維網(wǎng)誕生之初。因此它早于當(dāng)前的云時(shí)代技術(shù)。

盡管 EBS 可能被認(rèn)為已經(jīng)過(guò)時(shí),但它仍然與 IT 集成和數(shù)字化轉(zhuǎn)型相關(guān)。然而,隨著新一代技術(shù)的出現(xiàn),有必要進(jìn)行比較以闡明 ESB 的優(yōu)點(diǎn)和局限性。

ESB 與服務(wù)網(wǎng)格– 服務(wù)網(wǎng)格與微服務(wù)架構(gòu) (MSA) 的當(dāng)前趨勢(shì)更相關(guān),微服務(wù)架構(gòu)使用容器通過(guò)云原生技術(shù)定義更細(xì)粒度的服務(wù)編排。在較高層面上,ESB 實(shí)現(xiàn)了與服務(wù)網(wǎng)格相同的功能。然而,它主要是作為一組整體的應(yīng)用程序組件構(gòu)建的。在過(guò)去幾年中,出現(xiàn)了利用云的混合部署模型。因此,ESB 和服務(wù)網(wǎng)格之間的界限現(xiàn)在變得模糊。

ESB 與集成平臺(tái)即服務(wù) (iPaaS) :iPaaS 是一套云服務(wù),支持集成流程的開(kāi)發(fā)、執(zhí)行和治理,將本地和基于云的流程、服務(wù)、應(yīng)用程序和數(shù)據(jù)的任意組合連接起來(lái)或跨多個(gè)組織。它是一個(gè)用于在云內(nèi)以及云與企業(yè)之間構(gòu)建和部署集成的平臺(tái)。從功能上講,ESB 和 iPaaS 提供相同的解決方案。與整體 ESB 相比,iPaaS 成本更低且擴(kuò)展更靈活。在某些情況下,ESB 是首選,例如支持傳統(tǒng)的、流程繁重的軟件系統(tǒng),這些系統(tǒng)支撐敏感公司數(shù)據(jù)的安全管理。

ESB 與 Pub/Sub :Pub/Sub 是一個(gè)通用概念。它是一種抽象通信模式,用于構(gòu)建需要解耦消息中間件的互聯(lián)網(wǎng)規(guī)模應(yīng)用程序。它可以被視為 ESB 的子系統(tǒng),因?yàn)?ESB 還需要服務(wù)之間的解耦消息傳遞層。然而,與 ESB 不同,Pub/Sub 是一個(gè)理論概念。

ESB 與 Apache Kafka – Apache Kafka 是一個(gè)真正的產(chǎn)品。它最初是在 Linkedin 內(nèi)構(gòu)思的,由于其大規(guī)模處理系統(tǒng)間消息傳遞的獨(dú)特方式,在過(guò)去十年中獲得了巨大的受歡迎。您可以將 Apache Kafka 視為抽象 Pub/Sub 模式的現(xiàn)實(shí)實(shí)現(xiàn)。與 ESB 相比,Apache Kafka 的職責(zé)范圍較小,僅限于消息交換。

ESB 與 ETL :ETL(提取、轉(zhuǎn)換、加載)是一種數(shù)據(jù)管道,主要用作機(jī)器學(xué)習(xí)模型執(zhí)行的數(shù)據(jù)預(yù)處理階段的一部分。 它主要是一個(gè)線性過(guò)程,其中數(shù)據(jù)從一側(cè)饋送并從另一側(cè)檢索。因此,它是與 ESB 完全不同的概念。

  ESB 的組成部分

由于缺乏標(biāo)準(zhǔn)化,ESB 沒(méi)有統(tǒng)一的架構(gòu)。不同的供應(yīng)商有自己的方法將 ESB 系統(tǒng)劃分為其子系統(tǒng)。因此,將一組標(biāo)準(zhǔn)組件組合在一起以呈現(xiàn)跨供應(yīng)商的一致架構(gòu)并不容易。

考慮到 SOA 支持者設(shè)想的功能,以下是 ESB 的關(guān)鍵組件。

ESB Component View
  1. Broker :與任何編排層一樣,ESB 遵循中心輻射模型的通信。中央組件充當(dāng)樞紐。輻條由服務(wù)生產(chǎn)者和消費(fèi)者組成。根據(jù)可擴(kuò)展性要求,多層集線器模型也是可能的。但是,請(qǐng)注意,這只是通信的邏輯層次結(jié)構(gòu)。它與星形拓?fù)洳煌?,星形拓?fù)渲卸鄠€(gè)輻條物理連接到中央集線器。代理的主要功能是管理參與服務(wù)之間的訂閱和消息路由。
  2. 消息傳遞服務(wù):ESB 依賴于消息傳遞系統(tǒng)。它傳輸已發(fā)布的消息,并通過(guò)以隊(duì)列的形式模擬硬件總線來(lái)工作。消息傳遞組件創(chuàng)建多個(gè)傳入和傳出隊(duì)列,并遵循輪詢機(jī)制在隊(duì)列之間交換消息以傳遞它們,直到它們到達(dá)目的地端點(diǎn)。 
  3. 中介者:ESB 旨在與多種服務(wù)進(jìn)行互操作,包括內(nèi)部和第三方應(yīng)用程序。因此,確保所有參與服務(wù)的神圣性至關(guān)重要。中介組件通過(guò)一組預(yù)定義的檢查來(lái)對(duì)服務(wù)和服務(wù)訂閱進(jìn)行身份驗(yàn)證和授權(quán)來(lái)實(shí)現(xiàn)此目的。 ESB 中可能存在多個(gè)中介組件,以處理額外的審計(jì)職責(zé)并管理 ESB 的整體安全方面。 
  4. 適配器:如前所述,協(xié)議和消息轉(zhuǎn)換是 ESB 與外部服務(wù)交互的關(guān)鍵要求。適配器提供此功能。多個(gè)基于軟件的適配器組件使用一致的格式(例如 XML)執(zhí)行特定功能,例如與 ESB 之間的消息格式轉(zhuǎn)換。

  ESB 的未來(lái)

作為老一代技術(shù)的一部分,ESB 的作用很大程度上已被更新的架構(gòu)框架所取代。然而,遺留應(yīng)用程序運(yùn)行在 SOA 模型上,ESB 仍然可以很好地發(fā)揮作用。只要這些應(yīng)用程序不進(jìn)行技術(shù)更新,ESB 就會(huì)發(fā)揮關(guān)鍵作用。

雖然可以公平地說(shuō),ESB 將在未來(lái)幾年內(nèi)走向衰落,但它在塑造分布式計(jì)算的新架構(gòu)模型方面的影響不容忽視。作為 ESB 的一部分提出的用于處理服務(wù)間通信的概念和機(jī)制在當(dāng)前的云時(shí)代仍然有效。因此,可以說(shuō),當(dāng)前這一代概念,如Service Mesh、iPaaS,是站在ESB這個(gè)巨人的肩膀上。

原文鏈接:https://rapidapi.com/blog/enterprise-service-bus/

上一篇:

為您的 Google Cloud 環(huán)境引入 Shadow API 檢測(cè)

下一篇:

TPG Telecom 利用 Apigee 將 API 交付時(shí)間縮短了 50%
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)