什麼是ESB

    究竟什麼纔是ESB,一直沒有很詳細的一個定義:ESB(Enterprise Service Bus,即企業服務總線)是傳統中間件技術與XML、Web服務等技術結合的產物。ESB提供了網絡中最基本的連接中樞,是構築企業神經系統的必要元素。

    企業服務總線ESB就是一種可以提供可靠的、有保證的消息技 術的最新方法。ESB中間件產品利用的是Web服務標準和與公認的可靠消息MOM協議接口(例如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ)。ESB產品的共有特性包括:連接異構的MOM、利用Web服務描述語言接口封裝MOM協議,以及在MOM傳輸層上傳 送簡單對象應用協議(SOAP)傳輸流的能力。大多數ESB產品支持在分佈式應用之間通過中間層如集成代理實現直接對等溝通。

    企業服務總線(Enterprise Service Bus,ESB)的概念是從面向服務體系架構(Service -Oriented Architecture, SOA)發展而來的。SOA描述了一種IT基礎設施的應用集成模型,其中的軟構件集是以一種定義清晰的層次化結構相互耦合,其中,一個ESB是一個預先組裝的SOA實現,它包含了實現SOA分層目標所必需的基礎功能部件。 

    ESB是傳統中間件技術與XML、Web服務等技術相互結合的產物

    計算機技術和軟件技 術應用於企業已經有30年的歷史了,這也是軟件技術發展的主要動力,目前它已經進入到一個新的發展階段。由於各個企業持續的對內外部的整個價值鏈的業務操 作進行流程化和智能化的改進,業務整合有了非常重要的成長。無處不在的IT技術將以前只能想象的事情變成了現實,它可以幫助實現從後臺到前臺,到合作夥 伴,及到客戶的業務市場的擴展,這種IT應用整合需求趨勢爲ESB平臺的興起着重要的鋪墊作用。 

    ESB的出現改變了傳統的軟件架構,可以提供比傳統中間件產品更爲廉價的解決方案,同時它還可以消除不同應用之間的技術差異,讓不同的應用服務器協調運作,實現了不同服務之間的通信與整合。從功能上看,ESB提供了事件驅動和文檔導向的處理模式,以及分佈式的運行管理機制,它支持基於內容的路由和過濾,具備了複雜數據的傳輸能力,並可以提供一系列的標準接口。

    一、企業服務總線(ESB)可以有那些用處

    ESB不是萬能的,他不是一個應用程序框架,也不是一個企業應用的解決方案.它只是一個基於消息的調用企業服務的通信模塊!你可以把它嵌入到你的應用程序框架中,例如嵌入到spring容器裏面,或者嵌入到工作流系統中.它的作用是對企業裏面的SOA服務的調用提供一個框架和簡便的方法.

    二、企業服務總線(ESB)的應用特徵 

    大規模分佈式的企業應用需要相對簡單而實用的中間件技術來簡化和統一越來越複雜、繁瑣的企業級信息系統平 臺。面向服務體系架構(SOA)是能夠將應用程序的不同功能單元通過服務之間定義良好的接口和契約聯繫起來。SOA使用戶可以不受限制地重複使用軟件、把 各種資源互連起來,只要IT人員選用標準接口包裝舊的應用程序、把新的應用程序構建成服務,那麼其他應用系統就可以很方便的使用這些功能服務。 

     支撐SOA的關鍵是其消息傳遞架構-企業服務總線(ESB)。ESB是傳統中間件技術與XML、Web服務等技術相互結合的產物,用於實現企業應用不同消 息和信息的準確、高效和安全傳遞。ESB的出現改變了傳統的軟件架構,可以提供比傳統中間件產品更爲廉價的解決方案,同時它還可以消除不同應用之間的技術 差異,讓不同的應用服務協調運作,實現不同務之間的通信與整合。ESB在不同領域具有非常廣泛的用途: 

    電信領域 

    ESB能夠在全方位支持電信行業OSS的應用整合概念。是理想的電信級應用軟件承載平臺。 

    電力領域 

    ESB能夠在全方位支持電力行業EMS的數據整合概念,是理想的SCADA系統數據交換平臺。 

    金融領域 

    ESB能夠在全方位支持銀企間業務處理平臺的流程整合概念,是理想的B2B交易支撐平臺。 

    電子政務 

    ESB能夠在全方位支持電子政務應用軟件業務基礎平臺、信息共享交換平臺、決策分析支撐平臺和政務門戶的平臺化實現。

 

    三、企業服務總線(ESB)的結構和功能 

    ESB提供了一種開放的、基於標準的消息機制,通過簡單的標準適配器和接口,來完成粗粒度應用(服務)和其他組件之間的互操作,能夠滿足大型異構企業環境的集成需求。它可以在不改變現有基礎結構的情況下讓幾代技術實現互操作。InterESB專門用於異構環境,既可以幫助企業遷移到SOA,又能夠讓企業繼續利用現有的已部署的軟件投資。 

    通過使用ESB,可以在幾乎不更改代碼的情況下,以一種無縫的非侵入方式使企業已有的系統具有全新的服務接口,並能夠在部署環境中支持任何標準。更重要的 是,充當“緩衝器”的ESB(負責在諸多服務之間轉換業務邏輯和數據格式)與服務邏輯相分離,從而使得不同的應用程序可以同時使用同一服務,用不着在應用 程序或者數據發生變化時,改動服務代碼。 

    四、InterESB的功能特點 

    多種通信技術的綜合應用 

    InterESB利用了多種公認、成熟和可靠的通信技術,來支撐上層數據傳輸的多種模式。在CORBA以及JMS技術的基礎上,InterESB能夠同時支持同步通信、異步通信模式。 

    在異步模式中,InterESB創新地將多種通信模式融爲一體,其中包括目標通信模式(Message Channel)、點對點通信模式(Point-to-Point)、發佈/訂閱通信模式(Publish-Subscribe)、擴展的發佈/訂閱集羣 模式(P/S Cluster),並支持通信過程中的加密、壓縮、斷點續傳等重要保障功能。 

     InterESB將上述多種通信方式有機封裝成一個整體,並通過CORBA IDL、SOAP、JMS等標準接口方式對外進行發佈,從而使得基於InterESB構建的企業應用能夠以透明、一致、高效的方式應用不同的底層通信機制。 

    高度靈活、可分佈部署的信息總線 

    在InterESB內部,由部署在不同節點和計算域下的多種消息通信服務實現靈活的企業應用通信功能。同時,InterESB支持對這些通信服務的面向問題領域可不斷優化的分佈式部署功能,包括有以下三種模式: 

    全連接的總線模式,在InterESB內部部署全連接方式的消息服務器; 

    集中可拔插方式的總線模式,在InterESB內部部署一臺超級轉發服務器; 

    “雪花狀結構”的分佈級聯方式,在InterESB內部分區域部署多個超級轉發服務器。這種模式在大型SOA系統中部署具有很強的動態增長性、可管理性、可維護性和極高的效率。 

    便捷、標準的企業應用集成模式 

    InterESB提供了簡單、快速、基於標準的多點集成功能。InterESB爲企業應用開發和集成提供了一套完善的開發模式來幫助客戶端應 用連接到服務上。這些模式定製了系列機制用於描述服務、通知及發現服務、與服務進行通信。在InterESB中,基於標準的服務成了應用間的集成點。也即 圍繞服務的所有模式都是以基於標準的技術實現的。這使得InterESB可適應於任何現有系統,並使得系統在集成時不必刻意遵循任何特殊定製。

 

     InterESB在面向企業應用集成需求時,可以表述爲數據傳輸和應用集成兩部分的內容。其中,數據傳輸涵蓋了用戶應用系統中的文件、數據庫、消息、事件、指令等全方位的數據傳輸內容;應用集成涵蓋了數據集成、應用集成、設備集成、協議系統封裝等多方面的應用集成內容。

    靈活的適配器技術 

     一個設計良好的適配器的作用好比是一個設計良好的SOA服務,它提供了一個抽象層,把應用基礎設施的其餘部分與各種棘手問題隔離開來。 

     通用適配器是InterESB爲解決系統之間的連接而開發的可重用的、統一的接口,通過該接口每一個應用系統僅需要與業務整合平臺相連,而不需要與每個與之交互的應用系統相連。InterESB適配器一般包括遺留系統適配器、技術標準類適配器和適配器開發工具。 

     與CORBA、J2EE技術的結合 

    InterESB底層基於CORBA分佈計算中間件InterBus以及遵照JMS規範的InterMQ消息通信中間件,因此,可以說InterESB與CORBA、J2EE具有天然的結合優勢。

 

    但InterESB並不等同於CORBA。與CORBA技術相比,InterESB繼承了CORBA技術的開放標準、分佈式架構、組件技術以及高性能,適合於複雜的應用集成等優點;同時,InterESB還提供了CORBA技術所不具備的SOA功能,即: 

    InterESB支持更多種技術標準; 

    InterESB支持更廣泛的互操作性; 

    InterESB具有更好的可擴展性; 

    InterESB對專有系統的支持; 

    InterESB對未來標準的支持。 

    通過J2EE支持的MDB/JDO,InterESB也能夠很容易的和J2EE應用系統相連接,形成有效的功能集成。 

    廣泛的平臺支持 

    InterESB插件式體系結構在 每個層次上都是開放式的,這樣就可以與現有的基礎組件實現透明的互操作,讓用戶能夠對速度、成本和使用技巧方面的因素加以權衡。InterESB能夠在忽 略傳輸系統的情況下,使用包括XML和二進制在內的任何格式發送數據,並能夠在任何開發平臺(C++和Java)上實現,而不是強制所有應用程序都使用相 同的開發語言。 

    InterESB包括全連接的總線模式、集中可拔插方式的總線模式和“雪花狀結構”的分佈級聯方式。

五、企業服務總線(ESB)距離實際的企業應用還有哪些不足?

    ESB目前有很多商業方案,也有很多開源產品,例如ObjectWeb,CodeHaus,Sourceforge都有這樣的開源項目.距離真正成熟還有一段距離,另外各家廠商都各自爲陣,目前JCP還沒有這項技術的草案,標準的指定也還有很長的距離.當然,目前的狀態和SOA一樣.相信等SOA真正普及的時候,ESB會更加的成熟.

    六、企業服務總線(ESB)技術與革新 

    由於更大任務所帶來的要求,消息傳遞技術現在正處於發展之中。爲了給當今的實時企業提供其所需的靈活性,就需要一種混合的消息傳遞模型將 Web 服務的優點與傳統的異步消息傳送結合在一起。

  傳統消息排隊中間件將很快被企業服務總線(ESB)技 術所取代,從而將消息傳遞帶到新的高度。新的ESB骨幹(催生了下一代集成和應用平臺產品)將顯著改善多數企業的軟件基礎架構。行業正轉向消息傳遞和 ESB,並以此作爲核心應用平臺基礎架構模型,這將標誌着一個轉折點:圍繞企業對其信息資源的使用而觸發了新的一輪巨大的革新浪潮;企業都正在利用事件架 構。這都將消除最近人們對 IT 在戰略性業務區分中可扮演關鍵角色的所有疑慮。

    簡介 

    在過去的10年中,競爭壓力和日新月異的技術根本地改 變了企業的運行節奏。在過去,企業可以根據月底的成批報告來進行決策。現在,實時流程意味着如果原材料在早上出現問題,或者有停電事故發生,那麼就會造成 下午無法交付和託運成品。於是,企業不得不以越來越快的速度應對突發事件――否則,它就要靠邊站了。“零時延企業(zero latency enterprise)”的時代已經來臨。

    當今的企業環境正在一點一點的發展以應對這個挑戰。異 構存儲、網絡和硬件支持着“孤島計算”(應用程序與數據相互孤立或者條塊分割),這導致環境的利用和管理都過度複雜,並使之變爲資源密集型。對於企業所必 須面對的大多數關鍵挑戰而言,這種複雜性無疑是一種障礙,這些挑戰包括: 

    滿足對利用多渠道傳遞大量信息服務的不斷增長的需求。 

    實時管理基礎架構以滿足不斷變化的業務需求。 

    使業務多樣化以促進業務靈活地增長,並降低與固定產品線相關的經濟風險。 

    確保對客戶、合作伙伴和僱員的信息服務請求做出快速且高質量的響應。 

    在過去幾年中,EAI、B2B和應用開發等方面的迅速發展推動了幾種關鍵技術和標準的發展,這些技術和標準又推動了基礎架構領域的顯著進步: 

    XML 作爲通用的、自解釋的數據交換格式,已經爲大多數應用程序所採用。面向 Web 的信息交換以及其後的基礎架構,與 XML 一起使 Web 服務的使用成爲不可避免的事情。
 
    已經作爲用於服務器端的一個主要技術而被接受,並且J2EE 已經作爲應用服務器的標準而被接受。
 
    企業服務總線在事務性消息交換和實時事件通知領域的使用已經圍繞 Java 消息服務(JMS)而被標準化了。
 
    通過 Java 管理擴展(JMX)標準已經實現了服務器端組件的公共管理框架。 

    基礎架構必須像業務一樣運轉 

    瞬息萬變的市場需要通過多渠道傳遞大量的信息服務。下 一代的企業要求鬆散耦合的資源能夠共享跨越多領域的公共通信和管理基礎架構。企業基礎架構不得不像有形的業務那樣運轉,允許對資源進行動態管理以應對客戶 和合作伙伴的需求波動,同時處理系統資源的供應和可用性變化。企業應用程序也需要一個基於標準的協作模型以最大程度地利用該基礎架構。爲此,實時企業使用 了來自實時基礎架構的最好做法和服務器端的網格技術(gridtEChnology)。 

    實時企業的組件 

    形成實時企業的一些概念與用於定義服務器端網格環境的概念相同,用來描述其核心組件(見表1)的結構類似於GArtner的 5 層網格技術模型。 

    一個建立在現有的而且是被廣泛採用的技術和開放標準之 上的ESB可爲服務協作、管理和控制提供一個可適應的分佈式架構。ESB支持在企業內部的任何地方進行業務服務的運行時部署,並提供協作和通知服務作爲其 核心基礎架構的一部分。讓我們看一下 ESB 技術是如何映射到 Gartner 的 5 層模型的。 
 
    基礎架構資源和虛擬操作系統 

    第0層由基礎架構資源組成,包括網絡、服務器、存儲和每臺服務器的操作系統環境。第1 層位於基礎設施層之上,並建立了一個多資源的分佈式操作系統,它支持的功能如進行工作計劃、將資源名集成到總體結構中以及確保不同系統間的一致認證。
 
    儘管Gartner將J2EE 作爲一個第 2 層的技術,我們相信分佈式 JMX 和一臺基於 J2EE 的應用服務器的結合會具有虛擬操作系統的特點。使用對所有組件和服務提供部署和完全 JMX 管理的容器或者微內核,從而允許對服務進行遠程激活和管理。
 
    JMX作爲一種技術最初設計用於管理單個代理,如一臺 應用服務器。JMX通過與JMS 的結合,其範圍就可以擴展到管理單個代理、羣集或鬆藕合的聯合體(如果您喜歡,亦可稱之爲超級羣集),允許對聯合的 ESB 基礎架構進行全生命週期和部署管理。由於 JMX 同時也集成了許多傳統的管理協議,如 SNMP,因此ESB 基礎架構可以爲 Java、Web 服務和傳統平臺提供隨需應變的(on-DEMand)的熱部署和自我修復(self-annealing)式的基礎架構。 

    分佈式編程模型 

    分佈式編程模型構成了實時企業的第1層:可在應用程序和服務(無論是內部還是外部)之間進行協作和通知的核心基礎架構。ESB提供事件通知、動態路由選擇和事務性確保傳遞;並且使用一個定義明確的過程語言以使應用程序通過一個公共 API 進行活動協調。

    實時企業要求在恰當的時間將正確的數據傳遞到正確的位置;JMS(Java消息服務)提供事件分佈和事務性確保傳遞的方法。同時也需要智能數據結構(datafabric),它可以在需要的時候在網絡範圍內進行信息分發,目的是提高吞吐量和降低寶貴的後臺系統的負載。該結構的骨幹是通過JCache (Java 通用緩衝框架)所形成的。
 
    一個類似於Linda的元組空間 (tuplespace)將消息隊列的“一個且只有一個”傳遞語義與發佈/訂閱的廣播功能和對等系統的鬆藕合結合到一起。元組空間就如同由無限數目的進程 所共享的相連內存。進程可以向該空間中添加元組(本質上就是數據對象),或者從中取出元組來以獨佔的方式工作――如果需要的話,可以一直處於等待狀態,直 到匹配對象的出現。進程也可以讀取元組而不需要將其從空間中刪除。該範例(將消息隊列的“一個且只有一個”傳遞語義與發佈/訂閱的廣播功能和對等系統的鬆 藕合結合到一起)被映射到 Jcache 的頂部,它提供一個該概念的高性能分佈式實現。

    這也可以和一個業務流程模型引擎(例如,jBpm: www.jbpm.org)結合起來以提供一套豐富的分佈式編程域。進程之間獨立工作——從元組空間那裏獲得適當的輸入,並將輸出放回元組空間以便進行後 續任務。進程在元組上的執行順序比在傳統工作流系統上的執行順序所受到的約束要少。該模型提供分佈式共享內存、通用的羣集、並行計算以及分佈式工作流和 BPM 的基礎。 

    應用程序 

    構成實時企業第3層的應用程序依賴於企業基礎架構的資源,以及使用協作編程模型進行相互通信。架構師們已經意識到更鬆散藕合的和多層組件模型的優越性,而不是開發獨立的或簡單的兩層客戶/服務器(C/S)應用程序。爲定義、發現和實際執行該模型(例如WSDL、UDDI 以及用於 Web 服務的 SOAP)而採用的標準有助於面向服務架構的實現。 

    作爲虛擬操作系統基礎的J2EE應用服務器爲 基礎架構提供了一個基於事務性的安全服務的集成點。由於分佈式ESB 是一個像網格一樣的使能技術,所以基於 OGSI 源代碼組織定義的 Web 服務接口是一個很自然的選擇。OGSI 當前是外化網格技術的事實標準,它允許在一個環境下所書寫的網格服務可以很容易地部署在其他環境中。 

    此外,ESB可以提供一個基於優化Tete算法的可擴 展規則引擎。外化業務規則使得在較低層對迅速變化的業務流程、決策機制進行管理以及使消息過濾和路由選擇變得可能,而不需要對基礎應用程序進行代碼級的改 變。它將業務從對緩慢的代碼開發週期的依賴中解放出來,允許精通業務的分析師進行必要的變化以支持新產品或法規需求的引進,而無需中斷系統的運行。
 
    “在過去的10年中,競爭壓力和日新月異的技術根本性地改變了企業運營節奏” 

    管理支持 

    實時企業要求服務在宏觀和微觀兩個層面上管理和協調應用程序及其服務。第4層提供了實現安全策略、定義資源使用指南和集成操作流程所需的管理支持。基本功能包括: 

    監視:整理事件和統計數據以瞭解應用程序的性能、資源使用情況和操作行爲。它允許對整個基礎架構進行模擬、錯誤判定以及對資源利用進行手動和自動平衡。 

    反應協調:需要通過啓發分析、動態規則和靈活的工作流對應用程序進行智能管理、控制、自我修復以及微調。通過使用有效的動態拓撲佈局(在正確的位置運行正確數量的應用程序)、實時企業管理利用負載,並選擇正確的硬件和位置來運行應用程序。 
   
    ESB管理結構將分佈式JMX與統計事件收集和對比與 用在應用級的基於相同標準的 Java 規範框架進行了結合。這爲資源使用、性能監視和警告通知提供了位置透明性、發現、遠程控制和統計數據的整理。這些技術允許對在整個實時企業中的智能性資源 可視化、協同合作和供應環境進行預言性的決策,從而爲 IT 經理和業務經理賦予了洞察力。

    結束語 

    使用一個分佈式企業服務總線,企業可以通過利用標準以提供靈活實時的“按需服務”基礎架構來最大化利用其在硬件和軟件的現有投資。該靈活的基礎架構包括: 

    提供可主動調整 IT 資源的技術,使業務領導可以轉變核心信息服務以滿足不斷變化的市場 

    創建一個基於開放標準的統一 IT 基礎,它可靈活變化以滿足未來的需求。 

    降低 IT 基礎架構的成本,同時保持高水平的性能。 

    這些目標是通過企業消息傳遞、實時緩衝以及分佈式主動 管理技術的大量結合而實現的。結果就是一個具有更低總體成本和具有更高應對業務變化能力的IT基礎。通過依賴於標準,實時基礎架構將不同的技術結合到一個 連續的結構中,這個結構提供了快速調整軟件和硬件基礎架構以滿足企業實時業務需求的方法。

    七、ESB的幾種模式

     John Reynolds 提出了ESB的幾種模式,在選擇ESB進行企業應用開發的時候,先要確定自己的業務模型適合於哪一種ESB模式。

     對於Web Service,只有理解了異步服務調用才能真正理解WS的好處。異步調用就是用戶發出一次請求,然後過一會回頭檢查這個請求是否返回了。使用異步調用, 用戶不需要發出請求後立即等待請求返回,這樣就增強了用戶體驗性。其實現在很多服務,例如郵件服務,消息服務,在線支付都是異步調用的服務。

     八、企業服務總線(ESB)的應用前景 

     企業級應用系統一直是中國軟件產業發展的主要方向之一,佔有至關重要的地位。同時,它也受到整個世界IT發展潮流的影響,當前IT軟件領域的主要技術趨勢 是SOA和ESB,原因是信息技術的不斷髮展和成熟使各個企業有機會在更大的範圍內整合自己的資源,提高經營運行效率。 

     二十一世紀信息共享與整合對企業的變革發展日趨重要,而企業對網絡環境的依賴及應用創新的追求,將是我們面臨的主要挑戰。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章