李珉, 高級軟件工程師,技術(shù)經(jīng)理, IBM 中國軟件開發(fā)實驗室 SOA設(shè)計中心 2005 年 8 月 01 日 本文作為ESB系列文章的第一篇,介紹了面向服務(wù)的體系結(jié)構(gòu)(service-oriented architecture,SOA)和企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)的基本知識,ESB的技術(shù)沿革,以及ESB與SOA之間的關(guān)系。 "一切都在流動,沒有什么是持久的。一切都在融化,沒有什么是固定不變的" - 赫拉克利特(Heracleitus) 大約在2003年中的時候,SOA的概念逐漸進入人們的視野,一時間眾人樂此不疲的發(fā)表各自對SOA的見解。SOA已經(jīng)成為IT業(yè),尤其是軟件開發(fā)及系統(tǒng)集成領(lǐng)域從業(yè)者的熱門話題。很多的權(quán)威機構(gòu)也紛紛預(yù)測SOA的美妙前景,例如,Gartner 預(yù)言,到了 2008 年,至少 60% 的企業(yè)將使用 SOA 作為其IT架構(gòu)。拋開喧囂躁動以及隨聲附和,對于軟件開發(fā)者而言,經(jīng)過了一年多的概念灌輸,伴隨著不斷增長的困惑,更多的人希望能靜下心來看一看:究竟怎樣的系統(tǒng)架構(gòu)是符合SOA設(shè)計的,而又有哪些技術(shù)可以用來實現(xiàn)SOA呢?特別是企業(yè)服務(wù)總線(Enterprise Service Bus, ESB), 看起來更是SOA中一個玄虛的概念,本系列文章將通過實際的案例分析來詳細講解在SOA系統(tǒng)中是怎樣實施ESB的。 本系列文章將直接面向廣大的軟件開發(fā)人員, 首先以直觀的方式介紹什么是ESB, 然后引入一個實際案例,以此為基礎(chǔ),詳細介紹怎樣一步一步實現(xiàn)ESB。現(xiàn)在我們談?wù)揝OA和ESB的時候都不再是空中樓閣,IBM作為SOA的倡導(dǎo)者,已經(jīng)提供了很好的產(chǎn)品來實現(xiàn)我們的設(shè)想。我們會在本系列中的第二、第三部分中分別介紹基于WebSphere 6 和IBM EAI產(chǎn)品的兩種實現(xiàn)方式, 然后在第四部分中介紹在復(fù)雜的企業(yè)應(yīng)用場景中總線(Bus)怎樣互聯(lián), 怎樣擴展。希望通過本系列文章,能讓廣大讀者朋友快速掌握ESB的實際開發(fā)技巧。
關(guān)于SOA的概念,你可以找到很多的文章從不同的角度來描述它,不同的軟件提供商也有不同的定義方式。BEA有流體計算,微軟有Indigo 和SOA-building, SAP有ESA。 每個人都可以從不同的視角來理解SOA,從程序員的角度,SOA是一種全新的開發(fā)技術(shù),新的組件模型,比如說Web Service;從架構(gòu)設(shè)計師的角度,SOA就是一種新的設(shè)計模式,方法學(xué);從業(yè)務(wù)分析人員的角度,SOA就是基于標準的業(yè)務(wù)應(yīng)用服務(wù)。從概念的角度,IBM對SOA的定義是最為全面的,既SOA是一種構(gòu)造分布式系統(tǒng)的方法,它將業(yè)務(wù)應(yīng)用功能以服務(wù)的形式提供給最終用戶應(yīng)用或其他服務(wù)。SOA包括如下要素: ![]()
本文針對的讀者是軟件開發(fā)人員,站在開發(fā)人員的角度,往往希望軟件開發(fā)能夠滿足對于開發(fā)效率、可靠性、易維護性、易管理等多方面的更高要求。讓我們通過回顧軟件開發(fā)的演化過程來看一看SOA出現(xiàn)的必然性:
我們注意到,SOA同樣也強調(diào)重用(Reuse), 但是相對于傳統(tǒng)的代碼重用,對象重用,和部件重用,SOA的重用粒度更粗。SOA的重用在于業(yè)務(wù)級的應(yīng)用,即服務(wù)的重用,這與軟件的發(fā)展規(guī)律是相一致的。在軟件發(fā)展的過程中,軟件重用的對象越來越接近我們的現(xiàn)實生活。通過部件的重用,軟件的開發(fā)更具效率,并且開始試圖用組件表達業(yè)務(wù)模式。但是,IT人員仍很難對業(yè)務(wù)人員解釋清楚IT結(jié)構(gòu)怎樣映射到業(yè)務(wù)模型上。然而,IT架構(gòu)與業(yè)務(wù)模型的彌合是不可避免的方向?,F(xiàn)代企業(yè)的業(yè)務(wù)環(huán)境所面臨的最大挑戰(zhàn)就是變化,規(guī)則在變,需求在變,而對變化做出最快的反應(yīng),盡快地適應(yīng)變化,成為企業(yè)占得先機,成功運作的關(guān)鍵。很多企業(yè)的業(yè)務(wù)環(huán)境依賴于他們的IT架構(gòu),因此,IT部門往往直接承載了業(yè)務(wù)變化帶來的壓力。每一個具體的業(yè)務(wù)變化,都直接反應(yīng)到對現(xiàn)有的IT平臺的要求:要么企業(yè)IT架構(gòu)本身對變化自適應(yīng),要么IT架構(gòu)能夠在短時間內(nèi)根據(jù)新的業(yè)務(wù)規(guī)則做出調(diào)整。這就是SOA架構(gòu)提出的根本原因,我們需要一種更加貼近業(yè)務(wù)的IT架構(gòu),能夠直接描繪業(yè)務(wù),對那些不懂IT技術(shù)的業(yè)務(wù)領(lǐng)域?qū)<襾碚f,業(yè)務(wù)服務(wù)卻是他們最熟悉的,也就是說是SOA把軟件重用的對象從IT人員上升到了業(yè)務(wù)人員。因此,我們可以說SOA與其它的模式相比,最大的進步在于它與業(yè)務(wù)的關(guān)聯(lián)性,"服務(wù)"對應(yīng)到實際業(yè)務(wù)。IT通過"服務(wù)"與業(yè)務(wù)發(fā)生了密切的關(guān)系,業(yè)務(wù)人員和IT人員都可以專注于業(yè)務(wù)邏輯的實現(xiàn),而共同的語言就是"服務(wù)"。 但不是什么場合都適用SOA。通常來講,SOA適用于較為復(fù)雜的IT架構(gòu),經(jīng)常需要與外部復(fù)雜的IT環(huán)境交互,并且需要快速地應(yīng)對頻繁發(fā)生的業(yè)務(wù)變化。就像你不可能在控制洗衣機的芯片上使用EJB開發(fā)一樣,如果你的IT環(huán)境規(guī)模很小,足以靈活地應(yīng)對變化,不需要與其他的異構(gòu)IT環(huán)境頻繁交互,那么SOA帶來的好處就不足以抵消它給你帶來的系統(tǒng)復(fù)雜性。但是,即令如此,你也并沒有被完全排除在SOA的大趨勢之外。SOA是如此地倍受矚目,我們可以預(yù)見到它的迅猛發(fā)展,因此即使你的內(nèi)部IT架構(gòu)本身并不是基于SOA的,你也還有機會參與到未來的SOA架構(gòu)中去。例如,將你的某個業(yè)務(wù)以服務(wù)的形式發(fā)布到某個外部SOA平臺上供別人使用,作為第三方SOA平臺的一個服務(wù)提供者(Service Provider)存在。 在選擇SOA的實施方案時,要記住,軟件的具體實現(xiàn)技術(shù)諸如Web 服務(wù)與SOA是兩回事,SOA是一個概念,方法學(xué), 或者用一個更時髦的詞:一種模型。而Web 服務(wù)呢?它是一種具體的實現(xiàn)技術(shù),就像EJB一樣。SOA ≠ Web服務(wù)。不過公平地講,Web 服務(wù)倒確實是目前最適合實現(xiàn)SOA的技術(shù)之一,用Web 服務(wù)來封裝業(yè)務(wù)服務(wù)是個不錯的選擇。因為Web服務(wù)是標準的,WS-I協(xié)議保證了來自不同廠商的Web服務(wù)即使運行在不同的平臺上,底層的實現(xiàn)機理不同也可以順利交互,這是以前的任何一種技術(shù)如CORBA,EJB,或DCOM都不能做到的。而且,Web服務(wù)的定義與實現(xiàn)是分開描述的,即松散耦合,因此,可以很方便地替換服務(wù)的內(nèi)在實現(xiàn)而不會對現(xiàn)有的系統(tǒng)造成任何沖擊,這也極大地促進了IT架構(gòu)的靈活性。 對于SOA更進一步的了解,可以參考IBM developerWorks上其他SOA相關(guān)的文章(請參見參考資料),我們的系列文章將主要討論ESB,因此不再此過多地論述SOA了。為了使我們下面的論述更順暢,請先牢記典型的SOA架構(gòu)有哪些基本的要求:
讓我們暫時回到網(wǎng)絡(luò)技術(shù)不普及的時代,你怎樣在兩臺機器之間傳遞文件?我還記得為了給實驗室的每臺機器安裝Borland C++的環(huán)境,猜猜我動用了什么:一根"串口線"。不過,我仍然覺得慶幸,好在每臺機器都運行同樣的操作系統(tǒng)- DOS(很少有人還記得DOS中有Interlnk這樣一個命令吧), 用來通過串口線在兩臺機器間傳遞流文件。否則我將不得不用軟盤來拷貝所有的安裝文件。我那個時候的夢想就是,哪一天有這么一個叫做"網(wǎng)絡(luò)"的東西能夠把實驗室里面所有機器都連接起來,而不用我在各機器之間跑來跑去。 讓我們回歸主題,你現(xiàn)在已經(jīng)基本明白了什么是SOA。假定你已經(jīng)按照SOA的思想提煉出了各種業(yè)務(wù)服務(wù),公布出來,同樣,你發(fā)現(xiàn)其他很多人也做了同樣的事情。大家都很振奮,開始踴躍的嘗試,我調(diào)用你的一個服務(wù),你調(diào)我的一個服務(wù)。啊哈!大家都SOA了。且慢,那么這個SOA給你們帶來了什么好處呢?Ok,現(xiàn)在我可以在J2EE環(huán)境里調(diào)用.Net的組件了,但是原來沒有SOA的時候也可以做到的呀。只要兩個節(jié)點之間互相認可對方的方式,即使不存在公開/統(tǒng)一的服務(wù)界面也可以實現(xiàn)點到點的互聯(lián)。因此我們不得不承認,如果我們只有服務(wù),而服務(wù)的請求者和服務(wù)的提供者之間仍然需要這種顯式的點到點的調(diào)用,那么這就不是一個典型的SOA架構(gòu)。請看圖二,服務(wù)的參與雙方都必須建立1對1 的聯(lián)系。這樣一個結(jié)構(gòu)與我十幾年前的那種互聯(lián)的方式何其相似!但是,還記得我們上面提到的SOA三個基本要素嗎?顯然第三點沒有做到。 ![]() ![]() 因此,在SOA中,我們還需要這樣一個中間層,能夠幫助實現(xiàn)在SOA架構(gòu)中不同服務(wù)之間的智能化管理。最容易想到的是這樣一個HUB-Spoke結(jié)構(gòu),在SOA架構(gòu)中的各服務(wù)之間設(shè)置一個類似于Hub的中間件,由它充當整個SOA架構(gòu)的中央管理器的作用。請看圖三,現(xiàn)在服務(wù)的請求者和提供者之間有了一個智能的中轉(zhuǎn)站, 服務(wù)的請求者不再需要了解服務(wù)提供者的細節(jié)。不錯!看上去是一個好的SOA結(jié)構(gòu)。事實上,傳統(tǒng)的EAI就是通過這樣一種方式來試圖解決企業(yè)內(nèi)部的應(yīng)用整合問題。 EAI的目標是支持對現(xiàn)有IT系統(tǒng)的重新利用,通過EAI技術(shù)能夠?qū)⒉煌能浖拖到y(tǒng)串聯(lián)起來,延長這些應(yīng)用系統(tǒng)的生命周期。傳統(tǒng)的EAI,往往使用如CORBA和COM等的消息中間件進行分布式,跨平臺的程序交互,修改企業(yè)資源規(guī)劃以達到新的目標,使用中間件、XML等方法來進行數(shù)據(jù)分配。因此,實際上傳統(tǒng)的EAI是部件級的重用。很不幸的是,基于部件的架構(gòu)沒有統(tǒng)一的標準,因此,各個廠商都有各自不同的EAI解決方案,你會看到各種各樣的中間件平臺。如果EAI碰到了異構(gòu)的IT環(huán)境,就必須分別考慮怎樣在各個不同的中間件之間周旋,來實現(xiàn)合理的互聯(lián)方式,你不得不考慮各種復(fù)雜的可能性。因此,你所見過的大多數(shù)傳統(tǒng)EAI解決方案都比較笨重。 再回顧一下我們上面介紹過的SOA的應(yīng)用場景:復(fù)雜的企業(yè)級架構(gòu)。如果我們選擇Hub的模式來構(gòu)建SOA基礎(chǔ)架構(gòu),從純粹邏輯的角度,可能會出現(xiàn)哪些問題呢?首先,整個SOA架構(gòu)的性能,如果每個服務(wù)的請求都經(jīng)過中央Hub的中轉(zhuǎn),那么Hub的負擔會很重,速度會隨著參與者的增多而愈來愈慢;其次,這樣的系統(tǒng)會很脆弱,一旦Hub出錯,整個SOA架構(gòu)都會癱瘓;最后,這樣的架構(gòu)會破壞SOA的開放性原則,參與者運行在一個相對封閉的環(huán)境中,擴展起來十分麻煩。因此,這也不是理想的SOA架構(gòu)。 好了,現(xiàn)在該ESB登場了,請看我們的正解: ![]() 它與前面的Hub結(jié)構(gòu)有什么不同呢?首先,它比單一Hub的形式更開放,總線結(jié)構(gòu)有無限擴展的可能;其次,真正體現(xiàn)了SOA的理念, 一切皆為服務(wù),服務(wù)在總線(BUS)中處于平等的地位。即使我們需要一些Hub,那么它們也是以某種服務(wù)的形式部署在總線上,相比上面的結(jié)構(gòu)要靈活的多。這就是ESB,我們需要給它一個明確的定義:ESB是一種在松散耦合的服務(wù)和應(yīng)用之間標準的集成方式。它可以作用于:
很不幸,上面的定義看上去很拗口,我們暫且用一句較通俗的話來描述它:ESB就是在SOA架構(gòu)中實現(xiàn)服務(wù)間智能化集成與管理的中介。而它與SOA的關(guān)系要相對好理解一些:ESB是邏輯上與SOA 所遵循的基本原則保持一致的服務(wù)集成基礎(chǔ)架構(gòu),它提供了服務(wù)管理的方法和在分布式異構(gòu)環(huán)境中進行服務(wù)交互的功能??梢赃@樣說,ESB是特定環(huán)境下(SOA架構(gòu)中)實施EAI的方式:首先,在ESB系統(tǒng)中,被集成的對象被明確定義為服務(wù),而不是傳統(tǒng)EAI中各種各樣的中間件平臺,這樣就極大簡化了在集成異構(gòu)性上的考慮,因為不管有怎樣的應(yīng)用底層實現(xiàn),只要是SOA架構(gòu)中的服務(wù),它就一定是基于標準的。 其次,ESB明確強調(diào)消息(Message)處理在集成過程中的作用,這里的消息指的是應(yīng)用環(huán)境中被集成對象之間的溝通。以往傳統(tǒng)的EAI實施中碰到的最大的問題就是被集成者都有自己的方言,即各自的消息格式。作為基礎(chǔ)架構(gòu)的EAI系統(tǒng),必須能夠?qū)ο到y(tǒng)范疇內(nèi)的任何一種消息進行解析。傳統(tǒng)的EAI系統(tǒng)中的消息處理大多是被動的,消息的處理需要各自中間件的私有方式支持,例如API的方式。因此盡管消息處理本身很重要,但消息的直接處理不會是傳統(tǒng)EAI系統(tǒng)的核心。ESB系統(tǒng)由于集成對象統(tǒng)一到服務(wù),消息在應(yīng)用服務(wù)之間傳遞時格式是標準的,直接面向消息的處理方式成為可能。如果ESB能夠在底層支持現(xiàn)有的各種通訊協(xié)議,那么對消息的處理就完全不考慮底層的傳輸細節(jié),而直接通過消息的標準格式定義來進行。這樣,在ESB中,對消息的處理就會成為ESB的核心,因為通過消息處理來集成服務(wù)是最簡單可行的方式。這也是ESB中總線(Bus)功能的體現(xiàn)。其實,總線的概念并不新鮮,傳統(tǒng)的EAI系統(tǒng)中,也曾經(jīng)提出過信息總線的概念,通過某種中間件平臺,如CORBA來連接企業(yè)信息孤島,但是,ESB的概念不僅僅是提供消息交互的通道,更重要的是提供服務(wù)的智能化集成基礎(chǔ)架構(gòu)。 最后,事件驅(qū)動成為ESB的重要特征。通常服務(wù)之間傳遞的消息有兩種形式,一種是調(diào)用(Call), 即請求/回應(yīng)方式,這是常見的同步模式。還有一種我們稱之為單路消息(One-way),它的目的往往是觸發(fā)異步的事件, 發(fā)送者不需要馬上得到回復(fù)??紤]到有些應(yīng)用服務(wù)是長時間運行的,因此,這種異步服務(wù)之間的消息交互也是ESB必須支持的。除此之外,ESB的很多功能都可以利用這種機制來實現(xiàn),例如,SOA中服務(wù)的性能監(jiān)控等基礎(chǔ)架構(gòu)功能,需要通過ESB來提供數(shù)據(jù),當服務(wù)的請求通過ESB中轉(zhuǎn)的時候,ESB很容易通過事件驅(qū)動機制向SOA的基礎(chǔ)架構(gòu)服務(wù)傳遞信息。
首先,我們來看一看ESB有哪些基本的功能。既然ESB會以中介的身份出現(xiàn),它就必須有兩方面的考慮,首先它必須了解被它中介的兩個端點:1)服務(wù)的請求者以及請求者對服務(wù)的要求,2)服務(wù)的提供者和它所提供服務(wù)的描述;其次,它必須具有某種機制能夠完成中介的任務(wù)。我們把這兩類考慮歸納為ESB的兩個基本功能:面向服務(wù)的原數(shù)據(jù)(MetaData)管理功能 和中介(Mediation)功能。 作為SOA的重要構(gòu)成部分,ESB承擔的重任還包括怎樣將企業(yè)架構(gòu)中已存在的業(yè)務(wù)服務(wù)連接到總線上來,我們稱之為適配器(Adapter)功能。盡管服務(wù)本身已經(jīng)用公開的接口來描述,但具體的實現(xiàn)還是運行在不同的環(huán)境中,因此,ESB還應(yīng)該提供對服務(wù)底層協(xié)議的支持,譬如應(yīng)用協(xié)議J2ee,.Net, 通訊協(xié)議如Http,JMS等等。除此之外,還需要對具體應(yīng)用中涉及到的服務(wù)加以管理,如性能,可靠性,安全性等等。 ESB 提供了最基本的功能來保障SOA系統(tǒng)的運行,這些功能應(yīng)該包含下列內(nèi)容:
很多時候,很難界定哪些功能是應(yīng)該由SOA的基礎(chǔ)架構(gòu)(infrastructure)提供的,而哪些應(yīng)該放在ESB的范疇內(nèi)來解決。筆者認為,放大或突出ESB在SOA架構(gòu)中的地位并不很恰當。比較合理的解釋是:ESB應(yīng)該構(gòu)筑在完善的SOA架構(gòu)上,做它應(yīng)該做的事-服務(wù)集成。至于怎樣集成,應(yīng)該根據(jù)你的上下文環(huán)境,考慮有哪些SOA的基礎(chǔ)設(shè)施可供你使用,然后再基于SOA的基礎(chǔ)架構(gòu)來實現(xiàn)你的ESB設(shè)計。 在更高的層次,ESB還提供諸如服務(wù)代理,協(xié)議轉(zhuǎn)換等等功能,我們稱之為ESB的應(yīng)用模式(ESB usage pattern)。作為SOA架構(gòu)的服務(wù)集成功能提供者,我們可以總結(jié)出的一些比較常用的應(yīng)用模式,例如: 1)協(xié)議轉(zhuǎn)換模型,用于當服務(wù)的請求者與服務(wù)提供者基于不同協(xié)議時的消息轉(zhuǎn)換情形 ![]() 2)消息廣播模式,用于事件驅(qū)動多個動作或者消息廣播的情形 ![]() 3)服務(wù)匹配模式,用于需要動態(tài)選擇服務(wù)提供者的情形,例如可以根據(jù)消息的內(nèi)容,或負載情況,或服務(wù)級別約定(SLA),來為服務(wù)請求者選擇合適的服務(wù)。 ![]() 這里我們只列舉了3個典型的模式,而這樣的例子實在太多了,發(fā)揮你的創(chuàng)造性,你還會想出來更多的,這也是ESB的魅力所在。但是,在ESB的設(shè)計上,注意不能喧賓奪主,ESB的功能在于幫助服務(wù)的集成,而不是參與業(yè)務(wù)邏輯。業(yè)務(wù)邏輯應(yīng)該封裝在業(yè)務(wù)服務(wù)中,或通過業(yè)務(wù)編排服務(wù)(Process Service)來組織。
關(guān)于ESB,目前還沒有被一致接受的標準。我們可以通過選擇成熟的EAI 中間件來實現(xiàn)服務(wù)的集成與互操作性。這樣做的好處是你的開發(fā)過程會很順暢,因為它已經(jīng)足夠穩(wěn)定且有豐富的工具支持。通常這樣的EAI產(chǎn)品在目前階段都還不是基于開放的標準,例如IBM的WebSphere MQ5.3,作為IBM EAI實現(xiàn)ESB的消息平臺,就不是開放的標準。如果一定要選擇開放標準的ESB實現(xiàn)方式,Web 服務(wù)加上WS-* 協(xié)議幾乎是我們唯一的選擇,但畢竟SOA、ESB仍處于起步的階段,一方面我們還沒有很成熟的產(chǎn)品支持所有的WS-*協(xié)議,另一方面這些WS-* 協(xié)議本身還處在頻繁變化的階段。因此當你選擇ESB實施方案的時候,最好考慮平衡ESB實施、開發(fā)的工作量。 這里你可能會有疑問,既然SOA架構(gòu)追求開放性,為什么我們要容忍用私有的ESB產(chǎn)品如IBM WBI/MQ來構(gòu)建SOA架構(gòu)的集成環(huán)境?這是一個好問題。SOA始終是我們追求的大目標,開放是必然的趨勢,這是毋庸置疑的。但是,請注意ESB的定義,至少到目前為止,還沒有明確的要求它的實現(xiàn)一定是開放的,每一個軟件供應(yīng)商對它都可能有不同的理解和實現(xiàn)的策略。我們不用懷疑ESB將來的開放之路,但至少在目前階段,我們不能坐下來等待它的到來。 其實,ESB充當?shù)氖荢OA中的中介角色,因此,即使將來ESB變化了,對服務(wù)的請求者和服務(wù)的提供者都不會造成很大的沖擊,因為它本來就是對用戶透明的。舉個例子,J2EE,它的標準一直在變化中,但是大家通常都能接受它的變化,社會總是要進步的,IT也一樣。你不可能因為J2EE 兩年以后要出1.6就不再使用現(xiàn)在的1.4了。 IBM目前可以用于ESB實施的產(chǎn)品也可以分為兩大陣營:
現(xiàn)有的EAI解決方案,可能涉及如下的IBM軟件產(chǎn)品:
WAS6 中提供了嶄新的消息服務(wù)平臺WPM(WebSphere platform messaging),并基于這一平臺提供了ESB的一個具體實現(xiàn)- SIBus(Service Integration Bus) 它可以支持同步和異步的消息通信??偩€(Bus)通過互聯(lián)的消息引擎管理消息源。同時支持基于Web服務(wù)和JMS,MQ格式的消息交互。你可以從WAS6身上看到IBM戰(zhàn)略的變化,SIBus只是IBM加大對于SOA支持的一步,你還會很快看到更多的變化,例如獨立的ESB產(chǎn)品,ESB的開發(fā)工具等等。但是,你完全不必擔心,這些變化都會保持兼容性,現(xiàn)在SOA的投入,無論是以哪一種方式,都會在IBM的SOA整體考慮之中。 上述的兩種方案并不是對立的,你可以選擇基于成熟產(chǎn)品實現(xiàn)ESB,也可以嘗試一下IBM的最新技術(shù)。這兩種方案甚至可以互聯(lián),見圖八。我們將在系列的第四部分講解這一較為復(fù)雜的場景。 ![]() 在本系列文章接下來的三部分中,我們將繼續(xù)詳細描述ESB的具體實現(xiàn)步驟。
本文向您介紹了SOA以及ESB 的基本知識,確定了一些 ESB 實現(xiàn)中最常見的基本功能,論述了ESB產(chǎn)生的必要性,以及ESB在SOA中的地位。
|