ESB(Enterprise Service Bus,即企業(yè)服務(wù)總線)是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB提供了網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。 企業(yè)服務(wù)總線ESB就是一種可以提供可靠的、有保證的消息技術(shù)的最新方法。ESB中間件產(chǎn)品利用的是Web服務(wù)標(biāo)準(zhǔn)和與公認(rèn)的可靠消息MOM協(xié)議接口(例如 IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ)。ESB產(chǎn)品的共有特性包括:連接異構(gòu)的MOM、利用Web服務(wù)描述語(yǔ)言接口封裝MOM協(xié)議,以及在MOM傳輸層上傳送簡(jiǎn)單對(duì)象應(yīng)用協(xié)議(SOAP)傳輸流的能力。大多數(shù)ESB產(chǎn)品支持在分布式應(yīng)用之間通過(guò)中間層如集成代理實(shí)現(xiàn)直接對(duì)等溝通。 企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)的概念是從面向服務(wù)體系架構(gòu)(Service -Oriented Architecture, SOA)發(fā)展而來(lái)的。SOA描述了一種IT基礎(chǔ)設(shè)施的應(yīng)用集成模型,其中的軟構(gòu)件集是以一種定義清晰的層次化結(jié)構(gòu)相互耦合,其中,一個(gè)ESB是一個(gè)預(yù)先組裝的SOA實(shí)現(xiàn),它包含了實(shí)現(xiàn)SOA分層目標(biāo)所必需的基礎(chǔ)功能部件。 一、ESB的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu) ESB 是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)相互結(jié)合的產(chǎn)物,ESB的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動(dòng)和文檔導(dǎo)向的處理模式,以及分布式的運(yùn)行管理機(jī)制,它支持基于內(nèi)容的路由和過(guò)濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。 二、企業(yè)服務(wù)總線(ESB)的用處 ESB 不是萬(wàn)能的,他不是一個(gè)應(yīng)用程序框架,也不是一個(gè)企業(yè)應(yīng)用的解決方案.它只是一個(gè)基于消息的調(diào)用企業(yè)服務(wù)的通信模塊!你可以把它嵌入到你的應(yīng)用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系統(tǒng)中.它的作用是對(duì)企業(yè)里面的SOA服務(wù)的調(diào)用提供一個(gè)框架和簡(jiǎn)便的方法. 三、企業(yè)服務(wù)總線(ESB)的應(yīng)用特征 大規(guī)模分布式的企業(yè)應(yīng)用需要相對(duì)簡(jiǎn)單而實(shí)用的中間件技術(shù)來(lái)簡(jiǎn)化和統(tǒng)一越來(lái)越復(fù)雜、繁瑣的企業(yè)級(jí)信息系統(tǒng)平臺(tái)。面向服務(wù)體系架構(gòu)(SOA)是能夠?qū)?yīng)用程序的不同功能單元通過(guò)服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。SOA使用戶(hù)可以不受限制地重復(fù)使用軟件、把各種資源互連起來(lái),只要IT人員選用標(biāo)準(zhǔn)接口包裝舊的應(yīng)用程序、把新的應(yīng)用程序構(gòu)建成服務(wù),那么其他應(yīng)用系統(tǒng)就可以很方便的使用這些功能服務(wù)。 支撐SOA的關(guān)鍵是其消息傳遞架構(gòu)-企業(yè)服務(wù)總線(ESB)。ESB是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)相互結(jié)合的產(chǎn)物,用于實(shí)現(xiàn)企業(yè)應(yīng)用不同消息和信息的準(zhǔn)確、高效和安全傳遞。ESB的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)不同服務(wù)之間的通信與整合。ESB在不同領(lǐng)域具有非常廣泛的用途: 電信領(lǐng)域:ESB能夠在全方位支持電信行業(yè)OSS的應(yīng)用整合概念。是理想的電信級(jí)應(yīng)用軟件承載平臺(tái)。 電力領(lǐng)域:ESB能夠在全方位支持電力行業(yè)EMS的數(shù)據(jù)整合概念,是理想的SCADA系統(tǒng)數(shù)據(jù)交換平臺(tái)。 金融領(lǐng)域:ESB能夠在全方位支持銀企間業(yè)務(wù)處理平臺(tái)的流程整合概念,是理想的B2B交易支撐平臺(tái)。 電子政務(wù):ESB能夠在全方位支持電子政務(wù)應(yīng)用軟件業(yè)務(wù)基礎(chǔ)平臺(tái)、信息共享交換平臺(tái)、決策分析支撐平臺(tái)和政務(wù)門(mén)戶(hù)的平臺(tái)化實(shí)現(xiàn)。 四、幾種ESB的結(jié)構(gòu)和功能 ESB提供了一種開(kāi)放的、基于標(biāo)準(zhǔn)的消息機(jī)制,通過(guò)簡(jiǎn)單的標(biāo)準(zhǔn)適配器和接口,來(lái)完成粗粒度應(yīng)用(服務(wù))和其他組件之間的互操作,能夠滿(mǎn)足大型異構(gòu)企業(yè)環(huán)境的集成需求。它可以在不改變現(xiàn)有基礎(chǔ)結(jié)構(gòu)的情況下讓幾代技術(shù)實(shí)現(xiàn)互操作。 通過(guò)使用ESB,可以在幾乎不更改代碼的情況下,以一種無(wú)縫的非侵入方式使企業(yè)已有的系統(tǒng)具有全新的服務(wù)接口,并能夠在部署環(huán)境中支持任何標(biāo)準(zhǔn)。更重要的是,充當(dāng)“緩沖器”的ESB(負(fù)責(zé)在諸多服務(wù)之間轉(zhuǎn)換業(yè)務(wù)邏輯和數(shù)據(jù)格式)與服務(wù)邏輯相分離,從而使得不同的應(yīng)用程序可以同時(shí)使用同一服務(wù),用不著在應(yīng)用程序或者數(shù)據(jù)發(fā)生變化時(shí),改動(dòng)服務(wù)代碼。 1. IBM WebSphere ESB IBM 提供了三種 ESB 產(chǎn)品:IBM WebSphere ESB、IBM WebSphere Message Broker、IBM WebSphere DataPower Integration Appliance XI50。根據(jù)您的需求選擇 ESB 來(lái)增強(qiáng)您的 SOA。WebSphere ESB 是一種基于平臺(tái)的 ESB,作為集成的 SOA 平臺(tái),針對(duì) WebSphere 應(yīng)用服務(wù)器進(jìn)行了優(yōu)化。WebSphere Message Broker 是跨平臺(tái)的 ESB,是為異構(gòu) IT 環(huán)境中的統(tǒng)一連接和轉(zhuǎn)換而構(gòu)建的。WebSphere DataPower Integration Appliance XI50 是一種基于設(shè)備的 ESB,是為簡(jiǎn)化的部署和更強(qiáng)的安全性而構(gòu)建的??蛻?hù)面臨著從簡(jiǎn)單到復(fù)雜的各式各樣的 ESB 需求。WebSphere ESB的結(jié)構(gòu)如圖一所示。 圖一 WebSphere ESB 微軟通過(guò)其應(yīng)用平臺(tái)提供了全面的ESB服務(wù),包括:Windows Server® 2003,.NET Framework, BizTalk® Server 2006 R2. 應(yīng)用平臺(tái)提供了一個(gè)基礎(chǔ)架構(gòu),基于此可以靈活和安全地重復(fù)使用架構(gòu)和商業(yè)服務(wù),并具有協(xié)調(diào)原有的服務(wù)整合到新的端到端的業(yè)務(wù)流程中的能力。如圖二所示。 圖二 Microsoft ESB l Message routing (消息路由) l Message validation (消息驗(yàn)證) l Message transformation (消息轉(zhuǎn)換) l Centralized exception management(集中的異常管理) l Extensible adapter framework(可擴(kuò)展的適配器框架) l Service orchestration(服務(wù)的編制支持) l Business rules engine(業(yè)務(wù)規(guī)則引擎) l Business activity monitoring(業(yè)務(wù)活動(dòng)監(jiān)視) 微軟 ESB 指南提供了架構(gòu)指導(dǎo),模式和實(shí)踐,以及一套BizTalk Server 和 .NET Framework 組件來(lái)簡(jiǎn)化基于微軟平臺(tái)的大型或小規(guī)模的ESB解決方案的開(kāi)發(fā)。它還可以幫助開(kāi)發(fā)人員擴(kuò)展現(xiàn)有的信息和集成解決方案,包括的一些服務(wù)和組件。 3. JBOSS SOA Platform JBoss Enterprise SOA Platform提供了一個(gè)基于標(biāo)準(zhǔn)的平臺(tái),用以集成應(yīng)用、SOA服務(wù)、業(yè)務(wù)事件和自動(dòng)化業(yè)務(wù)流程。這一SOA平臺(tái)集成了特定版本的JBoss ESB、jBPM、Drools、和已得到驗(yàn)證的JBoss企業(yè)應(yīng)用平臺(tái),把它們組織在一起形成一個(gè)單一的企業(yè)級(jí)發(fā)布。如圖三所示。 圖三 JBOSS SOA Platform JBoss Enterprise SOA Platform打包了不少流行組件如: l JBoss ESB l JBoss jBPM jPDL l JBoss Rules (Drools) l JBoss Application Server l Hibernate l Hibernate Entity Manager l Hibernate Annotations l JBoss Seam l JBoss Web (嵌入式Tomcat 6.0) l JBoss Cache l JGroups l JBoss Messaging l JBoss Transactions l JBoss Web Services (JBossWS) l JBossXB l JBoss AOP l JBoss Remoting l JBoss Serialization l JacORB ServiceMix是一個(gè)建立在JBI (JSR 208)語(yǔ)法規(guī)則和APIs上的開(kāi)源ESB(Enterprise Service Bus:企業(yè)服務(wù)總線)項(xiàng)目。 ServiceMix是基于JBI的ESB。它是開(kāi)源的基于JBI語(yǔ)義和API的ESB和SOA工具包,以Apache許可證方式發(fā)布。 它是輕量的ESB實(shí)現(xiàn),易于作為嵌入式ESB使用;集成了對(duì)Spring技術(shù)的支持;可以在客戶(hù)端或服務(wù)器端運(yùn)行;可以作為獨(dú)立的ESB提供者,也可以作為另外ESB的服務(wù)組件; 可以在JavaSE或JavaEE服務(wù)器中使用;ServiceMix同Apache Geronimo以及JBoss服務(wù)器完全集成,并且在Apache Geronimo服務(wù)器中可以直接部署JBI組件和服務(wù)。 Java Business Integration (JBI,Java業(yè)務(wù)集成)技術(shù)規(guī)范定義了SOA的服務(wù)導(dǎo)向集成的內(nèi)核和組成架構(gòu)。它對(duì)公共訊息路徑架構(gòu)、服務(wù)引擎與捆綁的插件程序接口,以及復(fù)合型服務(wù)描述機(jī)制等都進(jìn)行了標(biāo)準(zhǔn)化,這樣就將多種服務(wù)結(jié)合成為一個(gè)單一的可執(zhí)行的和可審核的工作單元。 參見(jiàn)圖四。 圖4 JBI和ServiceMix關(guān)系圖 ServiceMix 中包含完整的JBI容器,支持JBI規(guī)范的所有功能要求: l 規(guī)范化消息服務(wù)和路由 l JBI管理Beans (MBeans) l 組件管理和安裝的Ant任務(wù) l 對(duì)JBI部署單元的完全支持,支持JBI組件的熱部署
|
|