理解SOA體系結(jié)構(gòu)中ESB場景和解決方案_第1頁
理解SOA體系結(jié)構(gòu)中ESB場景和解決方案_第2頁
理解SOA體系結(jié)構(gòu)中ESB場景和解決方案_第3頁
理解SOA體系結(jié)構(gòu)中ESB場景和解決方案_第4頁
理解SOA體系結(jié)構(gòu)中ESB場景和解決方案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

引言最新的IT集成是使用Web服務(wù)技術(shù)實現(xiàn)面向服務(wù)的體系結(jié)構(gòu)(SOA),有許多優(yōu)秀的文章講述了該技術(shù)的好處和相關(guān)的實踐。最近,企業(yè)服務(wù)總線(EnterpriseServiceBus,ESB)的概念被表述為SOA基礎(chǔ)架構(gòu)的關(guān)鍵組件。然而,有必要闡明ESB究竟是一個產(chǎn)品、技術(shù)、標(biāo)準(zhǔn),還是別的什么。特別是當(dāng)前是否可以構(gòu)建ESB?如果這樣,該如何構(gòu)建?本文將ESB描述為由中間件技術(shù)實現(xiàn)并支持SOA的一組基礎(chǔ)架構(gòu)功能。ESB支持異構(gòu)環(huán)境中的服務(wù)、消息,以及基于事件的交互,并且具有適當(dāng)?shù)姆?wù)級別和可管理性。為了達(dá)到此目的,需要將多種功能集中起來并加以分類。然而,并不是ESB能夠傳遞值的每一種情形都需要所有的功能。本文確定了一組最低功能,可以滿足ESB與SOA的原則保持一致的基本需要。通過確定這些最低功能,您可以確定利用何種現(xiàn)有技術(shù)來實現(xiàn)支持SOA的ESB。通過考慮特定情形下的需求如何確定對額外功能的需要,您可以選擇最適合這種情形的實現(xiàn)技術(shù)。隨著ESB解決方案的發(fā)展和成熟,它所需要的功能也在不斷地發(fā)展。同樣,可見的ESB產(chǎn)品的可用性和功能也日趨完善。因此,在本系列的最后一篇文章中,我將考慮SOA和ESB的發(fā)展路線,以指導(dǎo)ESB功能和技術(shù)的最初應(yīng)用,并且闡述如何選擇循序漸進(jìn)的方法。ESB在SOA內(nèi)的工作角色雖然我不打算深入討論SOA的定義,但是在這里概括一下大部分對SOA的描述所適用的原則是很有用的:利用顯式的與實現(xiàn)無關(guān)的接口來定義服務(wù)。利用強調(diào)位置透明性和可互操作性的通信協(xié)議。封裝可重用業(yè)務(wù)功能的服務(wù)的定義。圖1說明了這些原則。注意,雖然Web服務(wù)技術(shù)非常符合這些原則,但它并不是唯一符合這些原則的技術(shù)。SYSSYS-EM1lrternalcodeEirdpnoc&ssesInlerfaceCodeexposingwell

encapsulatedservices

interoperableprotocolswith

kicatiDnl^nsparencyCONTRACTQon*|Sharedprocessand

interfaced&finitions

interoperableprotocolswith

kicaliDnl^nsparencyQon*|InlerfaeeCodeexposingwell

encapsulatedserviceslrternalcodeEirdpnoc&ssesSYS-EM2圖1:SOA的原則為了實現(xiàn)SOA,應(yīng)用程序和基礎(chǔ)架構(gòu)都必須支持S0A原則。啟用S0A應(yīng)用程序涉及到創(chuàng)建服務(wù)接口,服務(wù)接口可以直接也可以間接地通過使用適配器用于現(xiàn)有的或新的功能。從最基本的級別來看,啟用該基礎(chǔ)架構(gòu)涉及到規(guī)劃功能來將服務(wù)請求路由和傳遞給正確的服務(wù)提供者。然而,基礎(chǔ)架構(gòu)支持在不影響服務(wù)的客戶端的情況下由另一個服務(wù)實現(xiàn)替代原有的服務(wù)實現(xiàn)也是至關(guān)重要的。這不僅需要根據(jù)SOA原則指定服務(wù)接口,而且需要基礎(chǔ)架構(gòu)允許客戶端代碼以獨立于所涉及的服務(wù)位置和通信協(xié)議的方式來調(diào)用服務(wù)。這樣的服務(wù)路由和替代是ESB的許多功能中的一部分。ESB支持這些服務(wù)交互功能,并提供集成的通信、消息傳遞以及事件基礎(chǔ)架構(gòu)來支持這些功能。因此,它將當(dāng)今正在使用的主要企業(yè)集成模式組合成一個實體。ESB為SOA提供與企業(yè)需要保持一致的基礎(chǔ)架構(gòu),從而提供合適的服務(wù)級別和可管理性、以及異構(gòu)環(huán)境中的操作。本文剩余部分將討論ESB在SOA中的角色,包括它提供的除了基本的路由和傳輸以外的功能,如下面的ESB功能模型部分中所述。ESB結(jié)構(gòu)ESB有時被描述為分布式基礎(chǔ)架構(gòu),這與其他的解決方案形成了對比,比如消息代理技術(shù)一般被描述為中心輻射型(hub-and-spoke)。然而,這并不是真正的差別。正在研究兩個不同的問題:控制的集中和基礎(chǔ)架構(gòu)的分布。ESB和中心輻射型(hub-and-spoke)解決方案都集中控制配置,比如服務(wù)交互的路由、服務(wù)命名等等。同樣,這兩個解決方案可能部署在簡單的集中式基礎(chǔ)架構(gòu)中,也可能采用更復(fù)雜的分布式方式進(jìn)行部署。圖2展示了這一點。毫無疑問,不同的技術(shù)對它們所支持的物理部署模式有不同的約束——有些可能適合于非常廣泛的分布,以支持在很大的地理范圍內(nèi)進(jìn)行的集成,而其他的可能更適合于部署在本地群集中,以支持高可用性和可伸縮性。使物理分布需求與候選技術(shù)的功能相匹配是ESB設(shè)計的一個重要方面。另外的一種能力也是非常重要的,就是以增量方式擴展最初的部署來反映不斷變化的需求、集成附加的系統(tǒng)或擴展基礎(chǔ)架構(gòu)的物理范圍。DistribulionInterfaceorAdaptorInterfaceorAdaptorCientInterfacenrAdaptorAdminislralionandconlnal〉一- -ICDnliguration□islri^utedInfnastrjctureRunlimeEngineDistribulionInterfaceorAdaptorInterfaceorAdaptorCientInterfacenrAdaptorAdminislralionandconlnal〉一- -ICDnliguration□islri^utedInfnastrjctureRunlimeEngineCientInterfaceorAdaptorCientInterfaceorAdaptorInterfaceorAdaptor°navider°noviderInterfaceorAdaptorDnavider°naviderRunlimeEngineRunlimeEngineRunlimeEngine圖2:分布式ESB基礎(chǔ)架構(gòu)的集中控制我還應(yīng)該定位在SOA基礎(chǔ)架構(gòu)中ESB與其他組件之間的關(guān)系,特別是與ServiceDirectory、BusinessServiceChoreography、以及Business-to-Business(B2B)Gateway這些組件之間的關(guān)系。由于上述SOA原則對這些組件并沒有嚴(yán)格的要求,所以我們可以將它們視為可選組件圖3展示的SOA說明了這些組件之間的關(guān)系。圖3:SOA中的ESB角色ESB需要某種形式的服務(wù)路由目錄(serviceroutingdirectory)來路由服務(wù)請求。然而,SOA可能還有單獨的業(yè)務(wù)服務(wù)目錄(businessservicedirectory),其最基本的形式可能是設(shè)計時服務(wù)目錄,用于在組織的整個開發(fā)活動中實現(xiàn)服務(wù)的重用。Web服務(wù)遠(yuǎn)景在業(yè)務(wù)服務(wù)目錄和服務(wù)路由目錄的角色中都放置了一個UDDI目錄,因而使得可以動態(tài)發(fā)現(xiàn)和調(diào)用服務(wù)。這樣的目錄可以視為ESB的一部分;然而,在這樣的解決方案變得普遍之前,業(yè)務(wù)服務(wù)目錄可能與ESB是分離的。BusinessServiceChoreographer的作用是通過若干業(yè)務(wù)服務(wù)來組合業(yè)務(wù)流程;因此,它將通過ESB調(diào)用服務(wù),然后再次通過ESB將業(yè)務(wù)流程公開為客戶端可用的其他服務(wù)。然而,BusinessServiceChoreographer在編排業(yè)務(wù)流程和服務(wù)中所扮演的角色確定了這種業(yè)務(wù)工作流技術(shù)是一種與基礎(chǔ)架構(gòu)技術(shù)ESB分離的技術(shù)。最后,B2BGateway組件的作用是使兩個或多個組織的服務(wù)在受控且安全的方式下對彼此可用。這有助于查看這些連接到ESB的組件,但它們并不是ESB的一部分。雖然有一些網(wǎng)關(guān)技術(shù)可以提供適合于實現(xiàn)B2BGateway組件和ESB的功能,但是B2BGateway組件的用途是將其與ESB分離。事實上,這種用途可能需要附加的功能(如合作伙伴關(guān)系管理),這些功能不是ESB的一部分,并且不一定受到ESB技術(shù)的支持。ESB的功能模型表1對現(xiàn)有文獻(xiàn)中確定的一些ESB功能進(jìn)行了總結(jié)和分類。雖然有一些功能非?;A(chǔ),但是其他的功能(如自動化功能或智能化功能)代表著向按需操作環(huán)境轉(zhuǎn)變的重要步驟。重要的是認(rèn)識到,當(dāng)前的大多數(shù)場景只需要部分類別中的

部分功能°ESB實現(xiàn)所需的最低功能將在下面支持S0A的最低功能的ESB實現(xiàn)部分中進(jìn)行探討。通信巌務(wù)交互1.路由1.服務(wù)接口定丈(例如xWeb服務(wù)描述語言2.尋址(WebServicesDescripti.unL^Lpiagej3.通信技術(shù)、協(xié)謖和耘準(zhǔn)(例貳WS3L))IBM?WebSphere?MQ-,HTTP2.支持替代服務(wù)實現(xiàn)和KTTFS)3.逋信和集成所需的服務(wù)消息借遞樓型(例如4.戎布/■訂閱30AF或企業(yè)應(yīng)用程序集成(EAI)中間件模5.響應(yīng)#諳求型)6.Fire-:elthI-For巨己t■爭f半4.服務(wù)目錄和發(fā)現(xiàn)7.同步和異涉消息傳遇集慮監(jiān)務(wù)崗星1.數(shù)據(jù)庫1.爭務(wù)(原子爭冬押償.Web服務(wù)事務(wù)(船-2.服務(wù)聚合Tr:=LTLsaction))3.遺留系統(tǒng)和應(yīng)用程序適配器2.各種確定的倍遞范例(例如Web服務(wù)可靠消4.EAI中間件的連接性息傳謹(jǐn)(W5-ReliableMessaging)或?qū)AI5.服務(wù)映射中間件的支持)6.協(xié)議轉(zhuǎn)換7.應(yīng)用程序服務(wù)盟環(huán)境(例如J2EE和.NET)8.服務(wù)調(diào)用的語言接口(例如Java和C/C++/C#)寶全性1.身份驗證1.性能2.2.吞吐量3.不可抵賴性3.可用性4.機密性4.苴他可減構(gòu)成契約或協(xié)定的持気評怙方法5.安全標(biāo)準(zhǔn)(例拒Kerberos和Web服務(wù)安全性(WS-Security))消息牡理管邂和自治1.編碼的邏輯1.服務(wù)預(yù)置和注冊2.基于內(nèi)客的邏輯2.記錄、測星和監(jiān)控3.消息和數(shù)據(jù)轉(zhuǎn)換3.發(fā)現(xiàn)4.有效性4.丟統(tǒng)管理和管理工具的集成5.中介5.自監(jiān)控和自管理6.對象標(biāo)識映射7.數(shù)堆壓縮建?;A(chǔ)架構(gòu)智能1.對象建模1.業(yè)務(wù)規(guī)則2.通用業(yè)務(wù)對象連模2.策略馳動的行為,特別是對于服務(wù)級別、服務(wù)3.數(shù)踣格式庫功能的安全和質(zhì)量(例如壯匕服務(wù)策略(vs-4.B2B集成的公共與私有樣型Fulicy))5.開發(fā)和部雪工旦3.模式識別

表1:在現(xiàn)有的文獻(xiàn)中定義的ESB功能上面的許多功能既可以使用專有技術(shù)實現(xiàn),也可以通過利用開放標(biāo)準(zhǔn)實現(xiàn)。然而,使用不同的技術(shù)來實現(xiàn)ESB可能會使它們的性能、可伸縮性和可靠性這些特性顯著不同,同時ESB功能和所支持的開放標(biāo)準(zhǔn)也會有所不同。由于這些原因,再加上最近制訂和正在興起的一些相關(guān)標(biāo)準(zhǔn),當(dāng)今實現(xiàn)ESB的許多關(guān)鍵決策都涉及到成熟的專有技術(shù)和不成熟的開放標(biāo)準(zhǔn)之間的權(quán)衡。在本系列文章中,我們不打算詳細(xì)討論上面的每一個功能類別。相反,我們將集中討論采用或?qū)崿F(xiàn)ESB的不同方法之間的驅(qū)動策略。特別是在下一部分,我們將討論ESB為支持SOA所需的最低功能由什么構(gòu)成。支持SOA的最低功能的ESB實現(xiàn)如果在前面確定的功能中只有一部分和大多數(shù)SOA場景相關(guān),我們可能會問:實現(xiàn)ESB所需的一組最低功能由什么構(gòu)成?為此,考慮最被普遍認(rèn)同的ESB定義的原理:ESB是一種邏輯體系結(jié)構(gòu)組件,它提供與SOA的原則保持一致的集成基礎(chǔ)架構(gòu)。2.SOA原則需要使用與實現(xiàn)無關(guān)的的接口、強調(diào)位置透明性和可互操作性的通信協(xié)議、相對粗粒度和封裝可重用功能的服務(wù)定義。ESB可以作為分布式的異構(gòu)基礎(chǔ)架構(gòu)進(jìn)行實現(xiàn)。ESB提供了管理服務(wù)基礎(chǔ)架構(gòu)的方法和在分布式異構(gòu)環(huán)境中進(jìn)行操作的功能。表2展示了根據(jù)這些原則定義的最低ESB功能1.提供位置透明性的路由和尋址服1. 支持服務(wù)提供的爹種集成方式,比如Java2連接器、昭服務(wù)、異歩通信、適配器2.控制服務(wù)尋址和命名的昔理功能等等3..至忙種形式的消息隹遞范型(洌如,諳求/響應(yīng)、發(fā)布/■訂閱等等)4.支持至少一種可旦廣泛使用的隹輸協(xié)議巌務(wù)交互一令開放且與實現(xiàn)無關(guān)的服務(wù)消息隹遞與接口棣型,它應(yīng)讀將應(yīng)用程序代碼從路由服務(wù)和傳輸協(xié)徴中分離出來,并允許替代版務(wù)的實現(xiàn)U表2:最低的ESB功能請注意這些最低功能并不需要使用特別的技術(shù),比如EAI中間件、Web服務(wù)、J2EE或XML。這些技術(shù)的使用非常接近也非常符合需求,但是不必強制要求使用它們。相反,最低功能幾乎只需簡單地使用SOAP/HTTP和WSDL就可以實現(xiàn)(當(dāng)然不是所有的情況都這樣):URL尋址和現(xiàn)有的HTTP和DNS基礎(chǔ)架構(gòu)提供了一個具有路由服務(wù)和位置透明性的“總線(bus)”。2.S0AP/HTTP支持請求-響應(yīng)(Request-Response)通信規(guī)范。HTTP傳輸協(xié)議被廣泛地使用。4.SOAP和WSDL是開放、與實現(xiàn)無關(guān)的服務(wù)通信和連接模型。然而,這些SOAP/HTTP和WSDL的基本應(yīng)用只是點到點(point-to-point)的集成,并不能實現(xiàn)一些ESB需要的關(guān)鍵功能:目前還沒有用于控制服務(wù)尋址和命名的管理功能。服務(wù)名稱通過每個適配器單獨進(jìn)行控制的,服務(wù)路由控制則分散在由服務(wù)客戶端調(diào)用的地址、HTTP基礎(chǔ)架構(gòu)和分配給適配器的服務(wù)名稱之間。雖然這種方法依賴于實現(xiàn)細(xì)節(jié),但是它往往并不能使服務(wù)實現(xiàn)的替代變得簡單;服務(wù)請求者代碼(也可能是開發(fā)工具生成的)通常通過特定地址的特定協(xié)議直接綁定到具體的服務(wù)提供者實現(xiàn)。如果想要用另一個服務(wù)實現(xiàn)來替代原來的服務(wù)實現(xiàn),就需要修改應(yīng)用程序代碼并重新部署這些代碼。當(dāng)然,在許多甚至是大多數(shù)情形中往往需要其他的功能,并且這種需要變得越來越常見。特別地,不管是現(xiàn)在還是以后,下面的需求類型可能會導(dǎo)致更復(fù)雜高級的技術(shù)的使用:1.服務(wù)質(zhì)量和服務(wù)級別功能。高級SOA概念,例如服務(wù)編排、目錄、轉(zhuǎn)換等等。按需操作環(huán)境需求,比如管理與自治功能以及基礎(chǔ)架構(gòu)智能功能??缭骄哂胁煌袡?quán)的多個網(wǎng)絡(luò)、多個協(xié)議以及多個域的真正意義上的異步操作。影響ESB的安全問題我不想在這里直接提出安全需求,不過它們對選擇ESB的實現(xiàn)技術(shù)非常重要。例如,如果服務(wù)請求不需要提供身份驗證或授權(quán),實現(xiàn)技術(shù)的選擇就可以非常的廣泛。更有可能的情況是,如果需要一些安全級別,則評估什么形式的安全是可以接受的就非常重要。例如:1?是否可以接受通信基礎(chǔ)架構(gòu)中的安全性,例如,是否在EAI中間件服務(wù)器之間使用安全套接字層(SecureSocketLayer,SSL)互相驗證,或者是否在使用HTTPS協(xié)議?2?是否可以接受在參與系統(tǒng)之間單獨的點到點(point-to-point)安全性,或者是否需要端到端(end-to-end)模型?例如,是否有必要通過類似于代理的中間件系統(tǒng)來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論