




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Mule是一個(gè)企業(yè)服務(wù)總線(ESB)消息框架.它的主要特性包括:1.基丁J2EE1.4的企業(yè)消息總線(ESB)和消息代理(broker).2.可插入的連接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3, file,xmpp等.3.支持任何傳輸之上的異步,同步和請求響應(yīng)事件處理機(jī)制4.支持Axis或者Glue的Web Service.5.靈活的部署結(jié)構(gòu)Topologies包括Client/Server, P2P, ESB和Enterprise ServiceNetwork.6.與Spring框架集成:可用作ESB容器,也可以很容易的嵌入
2、到Spring應(yīng)用中.7.使用基丁SED礎(chǔ)理模型的高度可伸縮的企業(yè)服務(wù)器.8.強(qiáng)大的基丁EIP模式的事件路由機(jī)制等.Portais / nch dhamaTrftaing pinoentDetasaurDBS.CofYiectivity urvmsi Adapi&rsBusrwsfiappiScmsMtile tran$port$ /(xnnector$Mule integration servicesRouting7knuc!ion managamerrt TranaforniBtkxiMassac broker THnApcfSecurityServiceCustoiTwr Dat
3、aServiceComponent附-學(xué)習(xí)資料:Mule in Action , by David Dossot & John DEmicMule官方文檔AflicationLjyorrp-J 0HTTPFiJu:il-rV 11111-9-InbaundRJDBC SMTPDZone Refcardz #40: Core Mule1.簡介Mule ESB是一個(gè)基于Java的輕景級企業(yè)服務(wù)總線和集成平臺(tái),允許開 發(fā)人員快速便利地連接多個(gè)應(yīng)用,并支持應(yīng)用間的數(shù)據(jù)交換。Mule ESB支持集成現(xiàn)有系統(tǒng)而無論其底層采用何種技術(shù),如JMS、Web Services、JDBC、HTTP以及其他技
4、術(shù)。2.整體結(jié)構(gòu)圖整體結(jié)構(gòu)Mule integration services從上圖可見,Mule通過Transports/Connectors與外圍的異構(gòu)系統(tǒng)連接, 提供Routing(路由)、Transaction Management事務(wù)管理)、Transformation(轉(zhuǎn)換)、Message Broker(消息代理)、Transportation Management(傳輸管理)、Security(安全)等核心模塊。Mule可以單獨(dú)使用,也可以 架設(shè)在常用的應(yīng)用服務(wù)器上。圖架構(gòu)簡圖夕卜圍系統(tǒng)的服務(wù)請求通過Mule ESB的Transport接入,Mule通過Transformer進(jìn)行
5、數(shù)據(jù)的格式轉(zhuǎn)換,然后經(jīng)過Inbound Router進(jìn)行消息過 濾(內(nèi)部通過配置filter實(shí)現(xiàn)) 后交給Mule的Component進(jìn)行業(yè)務(wù)邏輯 處理, 處理后的結(jié)果通過OutboundRouter確定傳遞給哪個(gè)接收方,然 后通過Transformer進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,通過Transport連接至接收方, 傳遞信息。此圖描述的是Mule中的一個(gè)典型場景的處理過程, 涵蓋了Mule中的各 個(gè)關(guān)鍵組件。其中某些處理步驟不是必須的,如Inbound Router、Transformero后續(xù)可以看到一些其他場景的處理。3.功能a.服務(wù)中介將業(yè)務(wù)邏輯和消息發(fā)送分離 TransportTranspor
6、tComporent一云In。PLInoqc-mnsformmrOLI亍Qurldocsr屏蔽服務(wù)的消息格式和協(xié)議提供任意位置的服務(wù)調(diào)用提供協(xié)議橋接b.數(shù)據(jù)轉(zhuǎn)換,在應(yīng)用間交換不同格式的信息操作消息的負(fù)載內(nèi)容,包括加密、壓縮和編碼轉(zhuǎn)換在異構(gòu)的傳輸協(xié)議的數(shù)據(jù)類型間格式化消息c.消息路由基于消息內(nèi)容和復(fù)雜規(guī)則路由消息消息的過濾、聚合以及重新排列序號d.服務(wù)創(chuàng)建和托管暴露端點(diǎn)、EJB、Spring Bean以及POJ。作為服務(wù)作為輕景級的服務(wù)容器進(jìn)行服務(wù)托管Mule ESB中有一些基本的概念,理解這些基本概念后才能理解Mule的內(nèi)部機(jī)制。從中也可以看到Mule解決問題的基本思路。4.基本概念4.1 M
7、odel.圖Model, 4.2 Service Service是用來處理服務(wù)請求的基本單位,它調(diào)用各個(gè)組件進(jìn)行服務(wù)請求的處理。ServiceExceptionlistener圖Service4.3 TransportTransport管理消息的接收和發(fā)送,數(shù)據(jù)轉(zhuǎn)換的過程也是在Transport中通過調(diào)用Transformer完成的。 Model表示托管各個(gè)服務(wù)的運(yùn)行時(shí)環(huán)境。T ransportInboundrouterComponentOutboundrouterTransport.圖Transport4.3.1 ConnectorConnector用于管控特定協(xié)議的使用,如HTTP Con
8、nector、JMSConnector等。4.3.2 End-PointEndpoint用于表示一種協(xié)議的特定使用方式,如listening/polling、 從中讀取、向指定地址寫入等,定義了發(fā)送和接收消息的通道。Endpoint控制的是底層的實(shí)體在Connector中如何被使用。Endpoint定義于Inbound和Outbound Router中。4.4 TransformerTransformer用于轉(zhuǎn)換消息的內(nèi)容。bytell一bvtellXEI transformer 圖TransformerTransportE nd-oin:ExceptionlistenerXSL-TObjec
9、: tostnng 4.5 Router Router使用Filter基于消息中的屬性信息進(jìn)行消息的分發(fā)。圖RouterRouter在Service中的位置決定了Router的性質(zhì)(inbound、outbound和response和擔(dān)任的角色(pass-througK aggregator等)。4.6 ComponentComponent是Service的核心部件,是Service的業(yè)務(wù)邏輯的實(shí)現(xiàn)。 圖Component: implicit bridge componentComponent可以是Java Class(POJO、Spring Bean)、Web Service ScriptC
10、omponent可定義自己的生命周期:initialise、start、stop、dispose不過 需要OutermphciincgeOutaotinclpais-thrDL ghrnjterPubUcatOEi confjguratjoriModelInboJUGendsD-ntKTTP oortJ0jtDauia endaidesrinatJ實(shí)現(xiàn)Mule的LifeCycle接口。Mule 3.0版本開始提供PostConstruct和PreDestroy的注解,對應(yīng)生命周期的initialise和dispose階段,不需 要實(shí)現(xiàn)Mule的LifeCycle接口了。4.7 Flow (si
11、nce 3.0)Flow是Mule 3.0新引入的,包含一個(gè)消息源(Message Source和多個(gè)消 息處理器組成的處理器鏈。Flow.圖Flow*根據(jù)實(shí)際需求著重檢查了一下Mule ESB的消息傳遞方式。Mule支持常用的幾種消息傳遞方式,能夠滿足要求。 5.消息傳遞方式 5.1異步方式異步方式是一種單向調(diào)用,調(diào)用者不需要獲得響應(yīng)。MessageProcessorMessaqeiIiiiIiiiIiirocessoiiiiiiiiiiii異步方式通過inbound和outbound endpoint的exchangepattern= ” -wey”使用基本的Stdio Transport
12、驗(yàn)證,通過標(biāo)準(zhǔn)輸入傳輸字符申,將其原樣傳 遞給標(biāo)準(zhǔn)輸出進(jìn)行顯示。相應(yīng)配置如下:, , 運(yùn)行服務(wù),控制臺(tái)顯示結(jié)果如下:Please enter: Hello, world!INFO 2010-12-07 19:21:18,877 ConsoleConnector.dispatcher.1org.mule.lifecycle.AbstractLifecycleManager: Initialising:ConsoleConnector.dispatcher.23255376. Object is: StdioMessageDispatcherINFO 2010-12-07 19:21:18,877
13、 ConsoleConnector.dispatcher.1org.mule.lifecycle.AbstractLifecycleManager: Starting:ConsoleConnector.dispatcher.23255376. Object is: StdioMessageDispatcherHello, world!其中INFO輸出是Mule第一次初始化相應(yīng)Connector打印出來的,之后調(diào)用服務(wù)不會(huì)再次顯示。圖Asynchronous異步方式適用于 簡單的消息傳遞 的場景。,因?yàn)楸菊静┛途庉嫊r(shí)的問題,含有代碼的內(nèi)容只好單獨(dú)發(fā)布了,否則編輯時(shí)所有插入的代碼都丟失,修改起來太
14、麻煩了。希望此問題能夠解決 5.2請求-響應(yīng)方式上邊是通過service配置的,通過flow配置如下:.圖Request-Response 請求-響應(yīng)方式通過input endpoint的exchangepattern=requrestponse實(shí)現(xiàn),相應(yīng)配置如下:請求-響應(yīng)方式即請求方調(diào)用服務(wù)后,服務(wù)立即處理并返回響應(yīng)結(jié)果,不 需將消息再次傳遞。Mule Servtee:Request / Response在瀏覽器中輸入“ http:/localhost:7007/services/Echo/echo/text/hello,world,瀏覽器 中會(huì)顯示“hello,world的輸出信息。請求
15、-響應(yīng)方式適用于 單次服務(wù)調(diào)用 的場景。 5.3同步方式同步方式即請求方調(diào)用服務(wù)后,component將處理結(jié)果發(fā)送給另 一個(gè)外部服務(wù)處理,并將處理結(jié)果反方向返回。圖Synchronous 同步方式通過inbound和outbound endpoint的exchangepattern=requronse實(shí)現(xiàn),相應(yīng)配置如下:同步方式適用于通過Mule調(diào)用遠(yuǎn)程服務(wù) 的場景。, 5.4異步請求-響應(yīng)方式異步請求-響應(yīng)方式即請求方調(diào)用服務(wù)后不需要立即獲得返回結(jié)果,component將請求發(fā)送給其他外圍系統(tǒng)處理(可能有多個(gè)),全部處理完畢后通過指定的異步應(yīng)答Router返回給請求方。 圖Asynchro
16、nous Request-Response異步請求-響應(yīng)方式通過在OutBound Endpoint中增加reply-to以及增加async-reply節(jié)點(diǎn)實(shí)現(xiàn),響應(yīng)配置如下:,異步請求-響應(yīng)方式適用于請求需要被多個(gè)遠(yuǎn)程服務(wù)并行處理,結(jié)果需要匯總處理后返回的場景。注:上述代碼未運(yùn)行通過,queue1和queue2獲得了請求消息并正常處理,但返回至async-reply時(shí)拋出異常,暫未定位到問題。后將collection-async-reply-router改為single-async-reply-router未報(bào)異常,代碼示例如下:, 等有空看看collection-async-reply-r
17、outer吧,或者白定義router。6.配置模式 Mule 3.0版本提供了“patter簡機(jī)制。Pattern總結(jié)了實(shí)際使用過程中的常見場景,以簡化的服務(wù)配置方式提供。 6.1簡單服務(wù)模式(simple service pattern ),簡單服務(wù)模式用于簡化同步服務(wù)調(diào)用的配置, 對應(yīng)消息傳遞方式 中的請求-響應(yīng)方式。圖簡單服務(wù)模式簡單服務(wù)模式通過simple-service元素配置,主要的元素屬性包括:屬性說明address服務(wù)監(jiān)聽的地址,如vm:in component-classComponent的實(shí)現(xiàn)類direct:默認(rèn);jax-ws:將component暴露為soap式的web
18、service(component必須基于jax-ws的注解),address一般為typeHttp Transport;jax-rs:將component暴露為rest式的web service(component必須基于Path的注解),address一般為Http或Servlet Transport代碼示例:Mule針對服務(wù)請求接入可以做額外的處理,比如增加Transformer配置進(jìn)行數(shù)據(jù)轉(zhuǎn)換。6.2橋接模式(bridge pattern )橋接模式用于在inbound endpoint和outbound endpoint之間建立直接連接,不需要component提供業(yè)務(wù)邏輯。圖橋接模式橋接模式通過bridge元素配置,主要屬性包括:屬性說明inboundAddress服務(wù)請求接入地址outboundAddress月艮務(wù)接出的實(shí)際地址request-response默認(rèn),返回處理結(jié)果;exchange-patternone-way:單向true:在向outbound endpoint分發(fā)時(shí)使用事務(wù)transactedfalse:不使用事務(wù)代碼示例:0斜、頃“以E扇卜W, Mule在接入、接出的過程中可以做額外的處理,比如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級生物上冊《嘗試對生物進(jìn)行分類》教學(xué)反思
- 標(biāo)桿學(xué)習(xí)之華為流程管理體系
- 北京市收養(yǎng)評估實(shí)施細(xì)則
- 先天性甲減診治指南
- 工業(yè)促銷活動(dòng)策劃方案
- 巡回畫展活動(dòng)方案
- 少隊(duì)部活動(dòng)方案
- 小孩玩具活動(dòng)方案
- 布依春節(jié)活動(dòng)方案
- 工會(huì)活動(dòng)冬季活動(dòng)方案
- 《建筑施工安全檢查標(biāo)準(zhǔn)》JGJ
- 建筑陶瓷磚檢測報(bào)告及原始記錄
- 施工現(xiàn)場安全生產(chǎn)(文明施工)檢查評價(jià)表
- 液氧試題(試題復(fù)習(xí))
- 中國急診重癥肺炎臨床實(shí)踐專家共識
- RAL色卡顏色對照表
- (新)全國LNG加氣站分布統(tǒng)計(jì)
- 初二地理會(huì)考答題卡模板
- 分?jǐn)?shù)加減法計(jì)算常見錯(cuò)誤及分析
- 婦產(chǎn)科學(xué)智慧樹知到答案章節(jié)測試2023年浙江大學(xué)
- 去極端化教育課件
評論
0/150
提交評論