版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向服務的體系架構(基于ESB的SOA實現(xiàn))目錄面向服務的體系架構(基于ESB的SOA實現(xiàn))11.摘要22.國內外研究現(xiàn)狀42.1.國外研究狀況42.2.國內研究進展43.SOA框架63.1.SOA概念及框架模型63.2.SOA特性73.3.實現(xiàn)SOA的相關技術83.4.SOA解決方案的缺陷104.ESB模型114.1.ESB的定義和模型114.2.ESB的功能和優(yōu)點114.3.ESB的設計原則和實現(xiàn)技術125.基于ESB的SOA框架設計145.1.ESB在SOA中的角色145.2.基于ESB的SOA框架145.3.ESB總線各模塊功能155.4.ESB總線的模塊設計175.4.1.總線適配器
2、的設計175.4.2.總線與外部應用/服務的通信方式185.4.3.其他模塊的設計191. 摘要面向服務體系結構(service oriented Architecture, SOA)是一個組件模型,用開放的標準把企業(yè)的業(yè)務功能包裝成標準的服務。這種服務通過明確的、與實現(xiàn)無關的接口來定義,服務被松散綁定,并且可以通過強調位置透明性和互操作性的通信協(xié)議進行調用。為了優(yōu)化企業(yè)的信息系統(tǒng)基礎架構,降低服務重用的復雜性,并可靠地集成企業(yè)信息系統(tǒng)中存在的各種技術、協(xié)議和應用,以實現(xiàn)面向服務的體系結構,需要建立一個以服務為中心的抽象層,以隱藏各種應用和技術帶來的底層復雜性,這個服務中間層就是企業(yè)服務總線(
3、Enterprise Service Bus, ESB)。基于SOA進行企業(yè)應用系統(tǒng)集成是當前業(yè)務集成的主流方式,ESB是廣義企業(yè)實現(xiàn)面向服務整合的關鍵。ESB是SOA架構的解決方案之一,是受到業(yè)內人士普遍認可追捧的一種基于SOA的架構實現(xiàn)方式。這是一個基于標準的、面向消息的、高度分布式的、具有動態(tài)路由功能的系統(tǒng)整合平臺。ESB的使用,正在使企業(yè)應用服務整合領域內發(fā)生新的變革?,F(xiàn)代信息技術的飛速發(fā)展,把企業(yè)信息化建設帶入了自動化與網(wǎng)絡化的新階段。在過去的幾年中,大量企業(yè)信息化管理系統(tǒng)諸如ERI,、PDM、SCM、OA、CRM等的出現(xiàn),在降低生產(chǎn)成本,縮短研發(fā)周期,提高產(chǎn)品創(chuàng)新性等方面起到了很大
4、作用。所有這些為PLM(產(chǎn)品生命周期管理)建設提供了有利條件和強有力的技術保證。隨著企業(yè)信息化管理的進一步深入和企業(yè)對信息化的更高的要求,企業(yè)越來越關注將各類信息化管理軟件集成到一個自適應的軟件集成平臺中。這就是PLM(產(chǎn)品生命周期管理)軟件開發(fā)的目的所在。圖1-1 概念中的PLM系統(tǒng)模型圖本文首先介紹了面向服務架構的相關技術和理論基礎,分析了SOA的主要特性,這些特性包括了SOA框架下服務的松散耦合性、服務的粗粒度設計、基于標準的接口以及所有服務的具體實現(xiàn)、位置和傳輸協(xié)議對調用者來說都是透明的。其次,介紹了企業(yè)服務總線的概念和模型,探討了它的核心原則,并對ESB服務總線的功能進行了研究。服務
5、的請求者和服務提供者之間是通過一個ESB總線來進行交互的。ESB提供了服務請求者和服務提供者之間的松散耦合互連,ESB總線充當邏輯中介。ESB是一種中間件,可以為松散耦合的服務和應用提供標準的集成方式。面向服務的解決方案包括了諸如安全性、日志記錄、管理和審核等服務,ESB可以代表參與者各方來實現(xiàn)或者執(zhí)行這些基礎服務,使得交互的參與者不再關注此類事項。再次,設計了一種基于ESB的SOA架構參考模型,采用交互模式設計了一種輕量級的框架,它是符合SOA的一個框架,同時是符合ESB技術實現(xiàn)的框架。其主要優(yōu)點在于:服務透明化和服務的松散耦合。本文詳細介紹了該架構的設計。其中包括:客戶層、服務端和ESB總
6、線部分。ESB總線部分主要職責是負責服務的路由和交互。主要由總線適配器、服務處理器、業(yè)務代理器、服務管理器、服務注冊中心、服務代理等模塊組成。日記管理組件和安全管理組件都為服務處理器工作。2. 國內外研究現(xiàn)狀2.1. 國外研究狀況在國外,SOA早就已經(jīng)被提出,但是鑒于當時計算機技術水平有限,沒能引起廣泛的關注。隨著Web技術和WebService技術的逐漸發(fā)展成熟,SOA開始受到更多專業(yè)廠商的支持。很多著名的IT企業(yè)開始加入到SOA技術的開發(fā)及實現(xiàn)技術的研究隊伍當中,其中有IBM、BEA這類先行開發(fā)商,也有Microsoft、Oracle等后來開發(fā)商。一些大的開發(fā)公司己經(jīng)能夠開發(fā)出自己獨立完善
7、的ESB平臺,例如:l、IBM websphere的ESB(Enterprise services Bus,企業(yè)服務總線)平臺IBM開發(fā)出基于WebSphere產(chǎn)品族的ESB平臺,構成了IBM SOA的基礎架構,提供了ESB的包括消息傳遞模式、傳輸協(xié)議、中介、消息轉換、服務路由、服務集成方式等在內的基本功能,以及對ESB的事務、可靠性、安全性等非功能屬性的支持。2、Microsoft的Indigo平臺Microsoft用于構建面向服務應用程序的代號為Indigo的框架,使得專門用于創(chuàng)建SOA應用程序的技術得到廣泛應用。Indigo允許采用.NET Framework創(chuàng)建面向服務的應用程序,實現(xiàn)
8、了SOAP和其他web服務技術。Indigo在擴展的.NET Framework 2.0基礎上,提供了客戶端訪問服務的創(chuàng)建支持,主要由一組運行于公共語言運行庫(CLR)上的類來實現(xiàn)。客戶端與服務通過Indigo的內置協(xié)議SOAP進行交互。Indigo有三項突出的特性:與多種現(xiàn)有Microsoft技術的統(tǒng)一性,對跨供應商互操作性的支持,以及顯式的面向服務特性。3、BEA的AquaLogic Service BusAquaLogic Service Bus(ASB)是BEA公司架構于SOA技術和web服務技術上的ESB產(chǎn)品。主要有五部分組成:配置框架、服務管理、服務安全總線、消息代理和協(xié)議。Aqu
9、aLogic使用面向服務的方法來支持應用程序利用共享的企業(yè)安全服務,把分布式的策略決策與集中式的策略控制結合了起來,有效地提高了服務總線的安全性2.2. 國內研究進展國內對于SOA的研究主要體現(xiàn)在部分中間件產(chǎn)品上,基于SOA的ESB整體解決方案太少,大多數(shù)的產(chǎn)品屬于協(xié)同軟件產(chǎn)品或中間件產(chǎn)品?,F(xiàn)在,己經(jīng)有一些公司開發(fā)出了與SOA緊密相關的軟件產(chǎn)品。如:1、Inter Bus是由中和威公司推出的國內第一個支持SOA架構的ESB產(chǎn)品,給企業(yè)級的信息系統(tǒng)的應用整合和服務帶來了方便。2、上海(復旦)協(xié)達軟件科技有限公司也在2008年初推出了基于SOA的協(xié)同軟件和解決方案。3、普元EOS通過采用XML企業(yè)
10、總線技術、構件技術和可視化開發(fā)技術利用己有的構件庫來快速的搭建應用系統(tǒng)。EOS包括五個部分:EOS構件庫、運行管理環(huán)境、開發(fā)環(huán)境、EOS工作流和EOS可視化頁面開發(fā)環(huán)境。這些基于SOA的系統(tǒng)平臺共同特性在于,都是基于原有的中間件產(chǎn)品,在外圍增加了一些Web服務包裝器,再把相關的消息處理機制整合到原有的系統(tǒng)中,實現(xiàn)在面向服務的開發(fā)中模塊的松散藕合。這與基于SOA原理設計的系統(tǒng)解決方案的企業(yè)化、完整性、規(guī)?;兄^大的差距。3. SOA框架3.1. SOA概念及框架模型Gartner Group在1996年第一次明確地提出了SOA(Service一oriented Architecture)的理念
11、,但當時的軟件技術水平和信息化程度還達不到使SOA思想變成實現(xiàn)的地步,SOA只能成為一個美好的遠景。Gartner對SOA的描繪是這樣的:“面向服務的架構是一種基于客戶機/服務器模式的軟件設計方法,其中的應用由服務提供者和服務使用者(也稱客戶機或服務請求者)雙方組成。目前,關于SOA還沒有一個統(tǒng)一的、業(yè)界廣泛接受的定義。從不同的角度,不同的市場策略,會得到不同的關于SOA的解釋。一般來講,比較認同的一種說法是IBM關于SOA的定義:面向服務的體系結構是一個組件模型,它將應用程序的不同單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義,它應該獨立于實現(xiàn)服務
12、的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。SOA的模型中有三種角色:服務提供者、服務注冊庫和服務請求者。SOA模型中還包含三種操作即發(fā)布、查找、綁定。具有簡單、開放和動態(tài)的特性。如圖3-1所示,常見的SOA參考模型:圖3-1 SOA架構參考模型l 服務請求者:可以看作是需要其他服務提供給自己服務的一個服務、一個應用程序或者是一個軟件模塊。它到服務注冊中心去查詢自己需要的服務,然后通過傳輸綁定服務,并且獲得執(zhí)行服務功能。l 服務提供者:可以看作是能夠通過網(wǎng)絡尋址找到的應用或服務實體,能夠接受和執(zhí)行來自服務請求者的請求,它把自己的服務和接
13、口契約發(fā)布到服務注冊中心,為服務請求者發(fā)現(xiàn)和訪問該服務做好準備。l 服務注冊中心:可以看作是服務發(fā)現(xiàn)的中介,通過它里面包含的所有可用服務的存儲庫,為服務請求者提供查找服務提供者提供的服務接口功能。SOA中的這三種角色不是絕對固定的。一個服務提供者也可能會成為另外一個服務的請求者。每個角色都可以成為服務提供者、服務請求者和服務注冊中心中的某一種或多種。3.2. SOA特性根據(jù)業(yè)界對SOA的普遍認識,SOA不是一種語言技術,而是一種組件模型,一種粗粒度、松耦合的軟件架構,通過服務間定義良好的接口和契約把服務聯(lián)系起來。這與傳統(tǒng)的軟件架構相比較可以得出SOA架構的幾點鮮明的特性:l 松散耦合性。SOA
14、架構中定義的接口是具有中立性的接口(沒有強制性的綁定到特定的實現(xiàn)上),它的這種特征稱之為服務的松散耦合。松散耦合系統(tǒng)的好處有兩點:一點是它的靈活性,另外一點是當組成整個應用程序的每個服務的內部結構和實現(xiàn)逐漸地發(fā)生改變時,它能夠繼續(xù)存在。l 粗粒度的服務。服務粒度指的是服務所公開功能的范圍,一般分為細粒度和粗粒度。其中細粒度服務是那些能提供少量商業(yè)流程可重用性的服務,粗粒度服務是那些能夠提供高層商業(yè)邏輯的可重用性服務。選擇正確的抽象級別是SOA建模的一個關鍵問題,設計中應該在不損失相關性、一致性和完整性的情況下,盡可能地進行粗粒度的建模。l 基于標準的服務接口。SOA的關鍵在于“服務”。服務是一
15、種部署在網(wǎng)絡應用服務器上的實現(xiàn)了一定功能的應用邏輯模塊。它本身可以包含一組操作集(一個或多個操作)并向外界提供訪問操作的接口,所有的服務都要發(fā)布一個標準的接口,將服務和服務客戶端都能夠理解的并且同意遵守的通信規(guī)則。當服務請求者查找所需服務時,它查找到的結果也是那個服務的接口。接口里應包含使用該服務的所有的必要信息。把服務要求的信息傳遞給服務來利用服務的過程,稱之為綁定。l 服務位置、傳輸協(xié)議以及具體實現(xiàn)的透明性。服務請求者在需要使用他人提供的服務時,完全不需要知道對方提供的服務的位置,也不需要知道該服務的具體實現(xiàn)方式,服務方是不是與其異構等對于請求者來講都是不需了解的。所有的消息都通過查詢服務
16、注冊中心這個中介來發(fā)送和接收,由中介來負責告訴請求方所需服務的位置、相關參數(shù)等信息并且可以把相關信息進行請求者和服務之間相互傳遞,其具體實現(xiàn)細節(jié)服務請求者也不需知道?;赟OA的各種特性,來整合企業(yè)應用業(yè)務服務,以松散的,靈活的方式隨時隨地根據(jù)業(yè)務需要,來不斷進行業(yè)務數(shù)據(jù)或企業(yè)產(chǎn)品生產(chǎn)資源的交流,動態(tài)地使企業(yè)的生產(chǎn)、運行方式發(fā)生變革,會給企業(yè)以最快的、靈活的、最節(jié)省成本的方式來適應并滿足當前瞬息萬變的業(yè)務需求。3.3. 實現(xiàn)SOA的相關技術上面講過,SOA的關鍵就在于服務。所有的功能都是以服務的形式來展現(xiàn)出來的。服務就是應用系統(tǒng)的基本單元。廣義上來講,SOA的實現(xiàn)技術有多種方式,如:COM、C
17、ORBA、Web服務等都是實現(xiàn)SOA的技術。但使用最廣泛的仍是Web服務技術。1.Web服務的定義W3C給Web服務下的定義:Web服務是由URL識別的軟件應用,它的接口和綁定可以由XML構件進行定義、描述和發(fā)現(xiàn)。Web服務支持使用通過因特網(wǎng)協(xié)議交換的基于XML的消息與其他軟件代理直接交互。2.Web服務的體系結構Web服務采用了SOA的體系結構,通過服務提供者、請求者和注冊中心等實體之間的交互完成服務調用。IBM提出了由服務級別協(xié)議(Service Level Agreement, SLA)保證的web服務體系結構,如圖3-2所示。圖3-2 SLM保證的第二代Web體系結構Web服務是基于開
18、放的因特網(wǎng)標準的,它所依賴的開放標準主要有XML、SOAP、WSDL和UDDI等。下面簡述這些相關的協(xié)議標準:(l)XMLXML(Extensible Markup Language)全稱是可擴展的標記語言,它為web服務提供了統(tǒng)一的數(shù)據(jù)格式,它可以用來作為定義數(shù)據(jù)描述語言的語言,如標記交換格式、通信協(xié)議和標記語法或詞匯等。因而,用來解決系統(tǒng)之間的數(shù)據(jù)表達的異構性問題,可以實現(xiàn)跨平臺互操作,也能夠保SOA實現(xiàn)的松散耦合。(2)SOAP雖然統(tǒng)一的數(shù)據(jù)格式由XML來保證,但真正實現(xiàn)服務實體之間通信的協(xié)議卻是SOAP(sample object Access protocol)簡單對象訪問協(xié)議。SO
19、AP是運行在任何其他傳輸協(xié)議之上的用于交換XML編碼信息的協(xié)議。SOAP規(guī)定了傳遞信息的格式是XML的,還規(guī)定了遠程對象方法調用的格式、參數(shù)類型和XML格式之間的映像等內容。(3)WSDLWSDL(Web service description Language)web服務描述語言是一種關于web服務的基于XML格式的描述語言。它用來描述遠程方法調用的請求信息和相應的消息格式??梢宰學eb服務提供者把web服務的接口方法、接口參數(shù)、服務的傳輸方式等相關內容,生成相應的文檔,發(fā)布給服務使用者。Web文檔在web服務定義中包含7個重要元素:types, import, portType, oper
20、ation, binding, message, service元素。(4)UDDIUDDI(Universal Description, Discovery and Integration)統(tǒng)一描述、發(fā)現(xiàn)與集成, 是一套分布式的、基于web的規(guī)范,是可以使企業(yè)發(fā)布的Web服務注冊被其他企業(yè)服務發(fā)現(xiàn)的訪問協(xié)議實現(xiàn)規(guī)范。UDDI實現(xiàn)將發(fā)布和發(fā)現(xiàn)服務的SOAP請求解釋為用于基本數(shù)據(jù)存儲的數(shù)據(jù)管理功能調用。SOA并不是必須使用UDDI,而UDDI是建立在SOA上來完成自身工作的,所以UDDI是服務發(fā)現(xiàn)的一個好的解決方案(5)XSLTXSLT是一種用于轉換XML文檔結構的語言,使得XML能夠從根本上解
21、決應用系統(tǒng)之間的信息交換(6)Schemaschema是描述XML數(shù)據(jù)結構的數(shù)據(jù)模型,也稱作元數(shù)據(jù)。schema是XML世界中的標準建模語言,SOAP、WSDL、UDDl的XML語法都是采用Schema進行描述的。(7)XPathXPath是XSLT的重要組成部分。xPath是一門在XML文檔中查找信息的語言,XPath基于XML的樹狀結構,提供在數(shù)據(jù)結構樹中找尋節(jié)點的能力。用于在XML文檔中通過元素和屬性進行導航。(8)業(yè)務流程執(zhí)行語言BPEL(Business process Execution Language,業(yè)務流程執(zhí)行語言)提供了一種XML注釋和語義,用于指定基于Web服務的業(yè)務流
22、程行為。使用合作伙伴的交互方式,定義了該BPEL4wS流程。合作伙伴可以將服務提供給流程,也可以向流程請求服務,或者參與到流程的雙向交互中。BPEL通過指定順序來編排WEB服務,這對服務集合的調用意義深遠3.4. SOA解決方案的缺陷傳統(tǒng)的SOA使用方式是將各種舊系統(tǒng)使用各種分布式組件技術,如CORBA、COM、EJB等,把系統(tǒng)集成起來。但是各種技術之間的規(guī)范不一致導致了各種組件之間的互連難度很大,進而導致企業(yè)系統(tǒng)形成一個個信息“孤島”。WEB服務技術的出現(xiàn)較好地解決了企業(yè)系統(tǒng)間互連的問題。不論什么樣的組件,只要能夠支持與web服務映射,則都能夠發(fā)布成web服務。生成WSDL文檔,并且可以根據(jù)
23、WSDL文檔的描述來調用We b服務。但是這種使用web服務的傳統(tǒng)SOA存在缺點:當采取點對點的連接時,由于每增加一個組件,則需要該組件和其他組件之間都要建立接口,這大大增加了新系統(tǒng)的開發(fā)時間,對舊系統(tǒng)的維護難度也大大增加。組件與Web服務的映射高度依賴于實際的分布式組件技術,當涉及到多個組件時,處理方式不夠靈活4. ESB模型4.1. ESB的定義和模型企業(yè)服務總線(Enterprise Service Bus, ESB),從面向服務的架構發(fā)展而來,是以“軟總線”的方式提供服務之間的相互協(xié)作、管理和控制的分布式架構,支持異構環(huán)境下的服務、消息以及基于事件的交互,具有適當?shù)姆占墑e的可管理性。
24、可以用來構建、集成、部署和監(jiān)控管理各種企業(yè)的分布式資源,是一種可以實現(xiàn)統(tǒng)一并連接服務、應用和資源的中間件模式 (見圖4-1)。通常的說法是:ESB是一種中間件,可以為松散耦合的服務和應用提供標準的集成方式。一個企業(yè)服務總線是一個預先組裝的SOA的實現(xiàn),包含著實現(xiàn)SOA目標所必需的基礎功能部件,它集Web服務、通信、XML和數(shù)據(jù)傳輸于一體,管理相關連接并協(xié)調應用交互。圖4-1基于SOA的ESB總線模型示意圖4.2. ESB的功能和優(yōu)點企業(yè)服務總線實現(xiàn)的基本功能有:l 以總線為中介,保證服務請求端和服務端的通信,并提供位置透明的服務路由和尋址服務;l 在總線的范疇內對服務的注冊命名及尋址管理;l
25、使用多種傳輸協(xié)議并支持多種消息傳遞形式;l 還可以提供事務、日志、安全和監(jiān)控等基礎服務;l 能夠支持web服務、消息和適配器等多種服務集成方式;l 可以有效地管理ESB的元數(shù)據(jù)與服務元數(shù)據(jù)。l 此外,ESB還有許多擴展的功能:集成、通信、服務的交互、服務的質量、服務的安全、服務的等級,最常提到的兩個功能是消息轉換和消息路由。ESB技術的優(yōu)點:l 通過ESB的使用,使得企業(yè)可以在幾乎不需要改寫代碼的情況下,使自己企業(yè)己有的系統(tǒng)獲得全新的服務接口,從而可以向所部署的環(huán)境提供服務,而且不受使用服務方與企業(yè)服務標準不一致的影響。在此,ESB總線成為了“緩沖器”和“轉換器”,但是與服務的使用方和服務之間
26、沒有任何邏輯相關。ESB使得不同的應用服務程序可以同時使用同一服務,并不需要在應用程序或數(shù)據(jù)發(fā)生變化時,改動服務的代碼。可以充分利用遺留系統(tǒng)資源。4.3. ESB的設計原則和實現(xiàn)技術IBM給出了ESB設計的核心原則,第一條就是服務的虛擬化(services Virtualization)。如下圖2-4。圖4-2服務的虛擬化服務的請求者和服務提供者之間是通過一個ESB總線來進行交互的。ESB提供了服務請求者和服務提供者之間的松散耦合互連,ESB總線充當邏輯中介。服務虛擬化指的是ESB將下面內容虛擬化的能力:l 協(xié)議和模式。交互各方所使用的通信協(xié)議和交互的模式不需要一致。由ESB來提供所需的轉換,
27、屏蔽不同協(xié)議或模式的差異,使交互參與者能夠自由的進行交流。l 接口。參與交互者不需要就用于交互的接口達成一致。l 身份。交互中的參與者不需要知道交互中其他參與者的身份(如位置,標識等)。而這些內容只有ESB知道。l 另外一個核心原則是面向方面的連接。面向方向的解決方案包括了諸如安全性、日志記錄、管理和審核等服務,ESB可以代表參與者各方來實現(xiàn)或者執(zhí)行這些基礎服務,使得交互的參與者不再關注此類事項。ESB的實現(xiàn)技術:ESB總線是服務請求者和服務提供者之間的中介,需要其對消息的傳輸、路由選擇以及數(shù)據(jù)轉換等重要功能。因此,ESB總線所涉及到的技術有消息路由、消息轉換。ESB操作的是元數(shù)據(jù)是服務,服務
28、封裝、服務代理技術是必不可少的。另外異構數(shù)據(jù)集成技術、安全管理等技術也是不可或缺的。其中,消息路由、服務代理等是特別重要的。5. 基于ESB的SOA框架設計在實際的軟件開發(fā)工作中,根據(jù)一個己有的設計合理的、可復用的開發(fā)框架去開發(fā),會起到事半功倍的效果。本章將提出一個基于企業(yè)服務總線(ESB)技術的SOA框架參考實現(xiàn),該框架的設計遵循SOA的概念原則,對開發(fā)人員理解SOA、實現(xiàn)SOA有參考價值和指導意義。5.1. ESB在SOA中的角色為了體現(xiàn)ESB在面向服務架構中的角色,我們將服務引入進來。如下圖5-1圖5-1 ESB在SOA架構中的角色借用此圖我們很容易理解,在各種服務中ESB總線所起的作用
29、和扮演的角色。ESB在此成為各種服務的集成平臺??偩€和服務之間是一種相互平等的關系,兩者都可以無限地擴展。5.2. 基于ESB的SOA框架根據(jù)以上對SOA框架和ESB技術做出的研究,我們可以采用交互模式設計這樣一種輕量級的框架,它是符合SOA的一個框架,同時是符合ESB技術實現(xiàn)的框架。如圖5-2圖5-2基于ESB的SOA框架結構圖框架中各部分的說明:l 客戶層:既可以是服務請求者,也可以是服務提供者。l 服務層:包含服務提供者所提供的各種服務。這里的服務有完整的業(yè)務功能,也包含各種基層數(shù)據(jù)庫。l ESB總線部分:是ESB總線中的核心模塊,主要職責是負責服務的路由和交互。主要由總線適配器、服務處
30、理器、業(yè)務代理器、服務管理器、服務注冊中心、服務代理等模塊組成。日記管理組件和安全管理組件都為服務處理器工作。5.3. ESB總線部分模塊功能下面是對該設計的總線部分各項的功能介紹:l 總線適配器:是總線的重要功能部分,承擔著對服務數(shù)據(jù)和消息的協(xié)議轉換工作,實現(xiàn)了不同協(xié)議格式的服務之間的數(shù)據(jù)和消息交互。舉例說明:可以將客戶端服務調用者的各種請求使用基于ajax引擎實現(xiàn)數(shù)據(jù)傳遞,而服務返回的相應信息由適配器將數(shù)據(jù)標準化轉換成XML字符串封裝,在客戶端可以通過使用DOM(Document object Model)技術進行方便的解析和綁定。如圖5-3:圖5-3總線適配器功能示例l 服務處理器:其作
31、用是解析SOAP消息,對SOAP消息進行安全方面的操作、序列化、反序列化操作以及接收總線適配器傳輸過來的消息并轉發(fā)給業(yè)務代理器處理,并從業(yè)務代理器獲得響應消息,再轉發(fā)給總線適配器等。可以驗證客戶端請求的合法性;可以調用日志管理模塊,記錄需要登記的日志信息。l 業(yè)務代理器:任何業(yè)務請求都要經(jīng)過業(yè)務代理器來調用服務管理器來完成,用于對業(yè)務調用的控制,在此可以對業(yè)務流程編排文件中的業(yè)務流程進行異步的消息調用,也可以對單個業(yè)務進行提交到服務管理器。l 服務管理器:用于查找,綁定,調用服務過程的統(tǒng)一封裝,屏蔽了調用不同服務的細節(jié)。在此設計了面向對象的數(shù)據(jù)類型PCO,用來保存服務請求中的參數(shù)和其他重要的數(shù)
32、據(jù)。l 服務代理器:于具體的服務應用聯(lián)系。由服務接口來實現(xiàn),調用不同服務都要經(jīng)過服務代理。對于新提交的服務,能夠自動的根據(jù)服務注冊信息來生成相應的接口。l 服務注冊中心:用于提供對服務配置信息的添加、查詢、綁定和刪除等業(yè)務功能。l 服務描述配置文件:存放己發(fā)布服務的綁定信息和相關位置等。整個ESB的功能流程如下:l 服務請求者將請求發(fā)送到ESB服務總線。l 在服務總線的總線適配器中完成協(xié)議轉換。然后,將轉換后的請求發(fā)送到服務處理器中。根據(jù)需要由處理器調用日志管理模塊和安全管理模塊進行安全方面的檢查和記錄。l 在服務處理器和業(yè)務代理器中對整個請求進行解析,將已被解析的請求傳遞給服務管理器。l 服
33、務管理器將己經(jīng)解析過的請求中的參數(shù)以及重要的數(shù)據(jù)保存在一種面向服務的數(shù)據(jù)類型中(PCO,參數(shù)容器類,可以存放Object類的派生類)。l 服務管理器查詢服務注冊表來獲得服務的綁定信息及相對位置,如果沒有相應信息,則返回錯誤消息給服務消費者。l 將查詢出來的結果返回到服務管理器,由服務管理器將結果作為參數(shù)連同PCO中保存的請求參數(shù)全部傳遞給服務代理模塊。l 服務代理模塊調用相應的服務實現(xiàn),并把調用服務的結果傳遞給PCO并且重置參數(shù)。l 服務管理器將結果響應返回給服務處理器和業(yè)務代理。l 服務處理器將響應返回總線適配器,并由總線適配器返回給服務請求者。l 當有服務提供者向ESB總線提交服務注冊請求
34、時,其過程與上述過程相似:服務注冊請求到達總線適配器,經(jīng)轉換發(fā)送至服務處理器,對其進行安全方面的檢驗無誤后,將請求提交給服務管理器,由服務管理器分析其發(fā)送服務的名稱,參數(shù)以及發(fā)布位置等,并將發(fā)布的服務由服務注冊中心到服務描述配置文件中。5.4. ESB總線的模塊設計5.4.1. 總線適配器的設計總線適配器是連接服務請求端和服務庫的中間模塊。它主要包含四個模塊:消息接收器、消息分派器、消息轉換器和連接器。如圖5-4所示的總線適配器的模塊描述圖。圖5-4總線適配器的模塊描述圖l 外部應用程序或服務發(fā)來的請求消息由消息接收器負責接收,請求消息通過它進入消息轉換器進行處理。l 將經(jīng)過處理的請求消息將會
35、被消息分派器發(fā)送到外部的應用程序或者是服務端。請求消息被消息轉換器的轉換后,消息接收者已經(jīng)能夠識別并處理的消息格式。l 消息轉換器把請求消息的格式轉換成消息接收端可以支持的數(shù)據(jù)格式。參考路由器上配置的URL就可以知道消息接收或者分派的目的地址。l ESB總線中的請求消息是基于XML的,這樣消息轉換器就可以方便地采用XSLT和XQuery等技術來實現(xiàn)消息的轉換。l 連接器是用來定義消息接收器和消息分派器的端點綁定位置的。以此來確定消息的來處和去處。連接器所使用的消息轉換由消息轉換器來負責。5.4.2. 總線與外部應用/服務的通信方式總線適配器提供ESB內的消息通信服務,采用了成熟的面向消息的中間
36、件,如JMS,這時消息總線就是JMS總線。JMS(Java Message Service)是一種面向消息的中間件,它是SUN為了對各種MOM(消息中間件)系統(tǒng)進行統(tǒng)一而提出的接口規(guī)范?;贘MS來提供ESB內消息通信服務,它包含點對點(Point to Point, PTP)和發(fā)布/訂閱(Public subscribe, pub/sub)兩種消息模型,可以為連接到ESB上的服務提供可靠消息傳輸、事務和消息過濾等機制。JMS消息的發(fā)送者將消息發(fā)送給消息接收器,消息接收器將消息存放在若干隊列中,在適當?shù)臅r機會將消息轉發(fā)給消息轉換器。經(jīng)過轉換后的消息交給消息分派器,由消息路由對消息進行辨識后,發(fā)
37、給消息分派器或者消息接收器,由此轉發(fā)給外部程序或服務。這種模式下,發(fā)送和接收是異步的,兩者的生命周期不一定相同:發(fā)送消息的時候接收者不一定運行,接收消息的時候發(fā)送者也不一定運行;一對多通信:對于一個消息可以有多個接收者。由于ESB對JMS標準的支持,這使得JMS接口具有通用性。ESB體系結構模式強調組件間面向消息和基于事件的通信。在基于遠程過程調用協(xié)議的web服務中,我們使用在面向對象的方法調用中經(jīng)常使用的同步請求/響應模式。不過,對于ESB總線,推薦使用異步消息總線樣式的交互模式。如圖5-5圖5-5 ESB消息總線異步交互模式5.4.3. 其他模塊的設計. 服務處理器設計服務處理器的作用是接收服務請求消息,將消息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州市增城區(qū)教育學會
- 2024年稅務師題庫附完整答案(網(wǎng)校專用)
- 《房地產(chǎn)全案營銷》課件
- 《清華大學介紹》課件
- 生命的意義及人生哲學導讀
- 2025代理商供銷合同范文
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師題庫綜合試卷B卷附答案
- 2024年度四川省公共營養(yǎng)師之四級營養(yǎng)師自測模擬預測題庫
- 2024年度四川省公共營養(yǎng)師之三級營養(yǎng)師模擬試題(含答案)
- 2025關于借款合同的還款期限規(guī)定
- 2024年北京石景山初三九年級上學期期末數(shù)學試題和答案
- 智慧管網(wǎng)建設整體解決方案
- Siemens WinCC:WinCC趨勢圖與歷史數(shù)據(jù)技術教程.Tex.header
- 【長安的荔枝中李善德的人物形象分析7800字(論文)】
- CJT 288-2017 預制雙層不銹鋼煙道及煙囪
- 生物安全風險評估報告
- 戈19商務方案第十九屆玄奘之路戈壁挑戰(zhàn)賽商務合作方案
- 廣西河池市宜州區(qū)2023-2024學年七年級上學期期末考試數(shù)學試卷(含解析)
- 2024高考政治真題-哲學-匯集(解析版)
- 對承租方有利的商鋪租賃合同
- 2024云南大學滇池學院教師招聘考試筆試試題
評論
0/150
提交評論