欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Mule 介紹及架構(gòu)理解 Getting Started

系統(tǒng) 1992 0
Mule是什么?(What is Mule?)
??? Mule 框架是高度可擴(kuò)展的,允許你以很小的規(guī)模開始,隨著時(shí)間的推移,連接更多的應(yīng)用系統(tǒng)。 Mule管理應(yīng)用系統(tǒng)和組件之間的交互,不管它們是否在同一個(gè)VM(Visual Machine-虛擬機(jī),即JVM-Java虛擬機(jī))或在Internet上,不管底層使用的傳輸協(xié)議。
Mule 介紹及架構(gòu)理解 Getting Started

?? Mule相比同類框架而言,提供很多優(yōu)勢(shì),包含:Mule ESB是基于Java的輕量級(jí)消息框架,它允許你簡(jiǎn)單 快速的連接應(yīng)用系統(tǒng),使得他們(應(yīng)用系統(tǒng))可以交換數(shù)據(jù)。Mule使用SOA(Service-Oriented Architecture-面向服務(wù)架構(gòu)),使得簡(jiǎn)單集成已存應(yīng)用系統(tǒng)成為可能。不管應(yīng)用系統(tǒng)使用的是哪些不同的技術(shù),包括:JMS Web Services JDBC HTTP 等,Mule可以無縫的在他們之間進(jìn)行處理交互動(dòng)作。??
??? Mule基于Enterprise Service Bus(ESB)架構(gòu)思想。ESB的主要特性是通過扮演一個(gè)中轉(zhuǎn)系統(tǒng)的角色,允許不同的應(yīng)用系統(tǒng)交互,中轉(zhuǎn)系統(tǒng)在內(nèi)網(wǎng)或Internet上的應(yīng)用系統(tǒng)間搬運(yùn)數(shù)據(jù)。 目前市場(chǎng)上有一些商業(yè)的ESB實(shí)現(xiàn)。盡管如此,大部分提供有限的功能,或在已存應(yīng)用服務(wù)器/消息服務(wù)器之上構(gòu)建,將你鎖定在特定的供應(yīng)商(將你固定的ESB廠商)。Mule是供應(yīng)商中立的,因此不同廠商的實(shí)現(xiàn)可以插入進(jìn)來。當(dāng)你使用Mule時(shí),永遠(yuǎn)不會(huì)鎖定的特定的供應(yīng)商。
??? Mule相比同類框架而言,提供很多優(yōu)勢(shì),包含:
? Mule 組件可以是任何你想要的類型。你可以簡(jiǎn)單的集成任何東西, 從POJO到其他框架的組件。
? Mule 和 ESB 模型使得重大的組件重用。不象其他的框架,Mule允許你在不做任何變化的情況下使用已存組件。組件不強(qiáng)制要求有Mule特性的代碼,就可以在Mule中運(yùn)行,沒有程序式的API強(qiáng)制要求。業(yè)務(wù)邏輯和消息邏輯完全分離。
? 消息(Messages)可以是任何格式,從SOAP到二進(jìn)制圖片文件(binary image files)。Mule沒有強(qiáng)制任何架構(gòu)上的設(shè)計(jì)約束,例如XML消息或 WSDL服務(wù)約束。
? 可以一些拓?fù)浣Y(jié)構(gòu)上部署Mule,不僅僅是ESB。因?yàn)樗禽p量級(jí) 和 嵌入式的,Mule能降低上線時(shí)間,提高生產(chǎn)力,為工程提供安全 可伸縮的應(yīng)用系統(tǒng),它適應(yīng)變化,在需要時(shí)提高或降低系統(tǒng)規(guī)模。
??? MuleSoft也提供管理工具,允許你管理你的部署(Mule HQ),并控制你得基礎(chǔ)結(jié)構(gòu)(Mule Galaxy)。

理解消息框架
??? 將你的應(yīng)用系統(tǒng)聯(lián)網(wǎng)的優(yōu)勢(shì)是一個(gè)應(yīng)用系統(tǒng)可以向另一個(gè)應(yīng)用系統(tǒng)發(fā)送數(shù)據(jù)。然而,很多應(yīng)用系統(tǒng)沒有讀取和處理從其他系統(tǒng)發(fā)送過來的數(shù)據(jù)的能力。 Mule ESB通過提供一個(gè)消息框架讀取、轉(zhuǎn)換、并以消息的形式在應(yīng)用間發(fā)送數(shù)據(jù)。消息僅僅就是一個(gè)數(shù)據(jù)包,它在應(yīng)用間的一個(gè)特定的通道(渠道)上可以被處理和發(fā)送。


?? 在最簡(jiǎn)單的情況, 當(dāng)你的系統(tǒng)連接到Mule時(shí), Mule從一個(gè)源系統(tǒng)讀取數(shù)據(jù),需要時(shí)Mule轉(zhuǎn)換數(shù)據(jù)到目標(biāo)系統(tǒng)可以讀取的格式上, 然后發(fā)送數(shù)據(jù)到目標(biāo)系統(tǒng)。這允許你幾成所有類型的應(yīng)用系統(tǒng),甚至那些沒有內(nèi)置集成的。

??? Mule是一個(gè)基于企業(yè)服務(wù)總線(Enterprise Service Bus(ESB))思想的消息框架。ESB的關(guān)鍵優(yōu)勢(shì)是通過扮演一個(gè)在內(nèi)網(wǎng)或公網(wǎng)應(yīng)用系統(tǒng)間搬運(yùn)數(shù)據(jù)的傳輸系統(tǒng),使得不同的應(yīng)用系統(tǒng)可以交互。Mule的核心是消息總線(Message Bus), 它在應(yīng)用系統(tǒng)間路由消息。
Mule和傳統(tǒng)ESB的不同點(diǎn)之一在于Mule只在需要時(shí)才轉(zhuǎn)換數(shù)據(jù)。典型的ESB, 你必須為每個(gè)你連接到總線(Bus)上的應(yīng)用系統(tǒng)創(chuàng)建一個(gè)適配器(Adapter), 適配器轉(zhuǎn)換應(yīng)用的數(shù)據(jù)到一個(gè)公共的消息格式上。這些Adapter的開發(fā)和處理每個(gè)消息所需的時(shí)間,需要干的時(shí)間和努力。
??? Mule剔除了單個(gè)消息格式的需要。信息被發(fā)送到任何溝通通道(如:HTTP或JMS), 并只在通道上需要時(shí)才進(jìn)行轉(zhuǎn)換。因此,Mule相比于傳統(tǒng)ESB, 提高性能并減少開發(fā)時(shí)間。
??? Mule架構(gòu)和術(shù)語使用Gregor Hohpe和Bobby Woolf寫的< Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions >一書中的描述原理。這本書對(duì)于任何工作中涉及到企業(yè)消息解決方案的人,強(qiáng)烈建議閱讀<譯者注:隨后會(huì)進(jìn)行本書的翻譯工作>。

理解Mule 架構(gòu)
?? 這一部分描述Mule ESB架構(gòu)的不同部分,以及它如何處理消息和消息的數(shù)據(jù)。 以下圖解,使用一個(gè)公司的例子,要為客戶訂單生成發(fā)貨單,在這些發(fā)貨單上有一些操作,然后為了完成訂單,發(fā)送它們到發(fā)貨部門。

這一部分包含如下主題:
? 關(guān)于 SOA
? 處理數(shù)據(jù)
? 服務(wù)組件間路由消息
? 從消息中分離業(yè)務(wù)邏輯
? 將全部融合到一起

關(guān)于 SOA

??? Mule ESB 是基于Service-Oriented Architecture(SOA)概念的。使用SOA方法開發(fā),允許IT組織將應(yīng)用功能組件或服務(wù)融合在一起來開發(fā)應(yīng)用系統(tǒng)。服務(wù)是不連續(xù)的功能集合,彼此完全分離,并能在同一對(duì)象上協(xié)同工作。例如:如果你需要處理發(fā)貨單,你可能有一個(gè)服務(wù),它將數(shù)據(jù)庫(kù)的客戶數(shù)據(jù)合并到發(fā)貨單中,另外一個(gè)服務(wù)檢查存貨數(shù)據(jù)庫(kù),看看發(fā)貨單中的項(xiàng)目是否有存貨。
??? 因?yàn)槊總€(gè)服務(wù)是獨(dú)立的,服務(wù)可以被用來構(gòu)建多個(gè)處理的處理塊,而不需要重新創(chuàng)建每種類型的處理或消息。例如:合并客戶數(shù)據(jù)到發(fā)貨單的服務(wù)也能用來合并客戶數(shù)據(jù)到報(bào)表、信件或其他的文檔。 這個(gè)模塊化的方法允許你一次創(chuàng)建功能,重用多次,流水線式的開發(fā)。
使用SOA, 企業(yè)可以實(shí)現(xiàn)開發(fā)成本大大節(jié)省,在開發(fā)新的應(yīng)用系統(tǒng)時(shí),可以通過重用和重新配置現(xiàn)有服務(wù),快速的適應(yīng)業(yè)務(wù)條件的變化。
??? SOA還可以更好的整合企業(yè)IT資源,包括先前孤立的應(yīng)用系統(tǒng)和遺留系統(tǒng)。 Mule全面支持SOA方式,并使服務(wù)間協(xié)調(diào)的協(xié)作, 讓你很容易就將應(yīng)用系統(tǒng)捆綁在一起。

處理數(shù)據(jù)

??? 當(dāng)消息從應(yīng)用系統(tǒng)被發(fā)送時(shí),Mule ESB獲取到消息,發(fā)送到使用特定業(yè)務(wù)邏輯處理它的服務(wù)中, 接著將它路由到正確的應(yīng)用系統(tǒng)。 Mule包含很多獨(dú)立的部分,它們處理數(shù)據(jù)并路由消息。 服務(wù)的關(guān)鍵部分是服務(wù)組件(service component)。Service Component 在消息上執(zhí)行業(yè)務(wù)邏輯,例如讀取發(fā)貨單對(duì)象,從客戶數(shù)據(jù)庫(kù)中添加信息到發(fā)貨單對(duì)象,然后將它轉(zhuǎn)交給訂單完成應(yīng)用系統(tǒng)。

Mule 介紹及架構(gòu)理解 Getting Started

??? Service Component 的重要特性是它不需要有任何Mule特性(如:Mule的某一個(gè)接口)的代碼; 它可以簡(jiǎn)單到是一個(gè)POJO, Spring Bean, Java Bean 或以特定方式處理數(shù)據(jù)的業(yè)務(wù)邏輯。Mule管理Service Component,將它和配置設(shè)置捆綁并暴露為服務(wù),并確保傳入正確的信息,從Service Component傳出的消息基于你在Mule配置文件中的特定配置。

??? 你可以有很多執(zhí)行不同業(yè)務(wù)邏輯的不同Service Component, 例如:一個(gè)驗(yàn)證發(fā)貨單中的項(xiàng)目是否有庫(kù)存,另一個(gè)更新不同的客戶數(shù)據(jù)庫(kù)中的訂單歷史。 發(fā)貨單, 被封裝在消息中,可以從一個(gè)Service Component流向下一個(gè),知道所有必要的處理完成。

服務(wù)組件間路由消息
??? 如前所述,Service Component包含在消息上處理數(shù)據(jù)的業(yè)務(wù)邏輯, 它不包含任何關(guān)于接受或發(fā)送消息的信息。

??? 為了確保該Service Component接收正確的消息,并在處理后妥善路由消息,當(dāng)你配置Mule ESB的Service Component時(shí)可以指定入站路由器(inbound router)和出站路由器(outbound router)。

??? Inbound Router指定這個(gè)Service Component將要處理的消息。然后可以過濾進(jìn)來的消息并聚集它們,然后在路由消息到Service Component之前將他們重新排序。例如,Service Component,如果一個(gè)Service Component支持RSS feed, Inbound Router可能過濾那些從那個(gè)feed中發(fā)來的消息。

??? Service Component處理完消息之后,Outbound Router指定將消息發(fā)送到哪里。例如:它可能路由正式地址的發(fā)貨單到一個(gè)發(fā)貨部門,路由所有其他的發(fā)貨單到另一個(gè)發(fā)貨部門。你能定義多個(gè)Inbound和Outbound路由器,甚至連接在一起,使Service Component接受和發(fā)送消息的要求完全一樣。

Mule 介紹及架構(gòu)理解 Getting Started

從消息中分離業(yè)務(wù)邏輯

??? Mule ESB 眾多優(yōu)勢(shì)中的一個(gè)就是它能處理多種協(xié)議發(fā)送來的消息。 例如:發(fā)貨單可能總是XML的格式,但是他可能通過HTTP發(fā)送,或者作為一個(gè)JMS消息,這依賴于制作發(fā)貨單的應(yīng)用系統(tǒng)。 如果Service Component僅處理業(yè)務(wù)邏輯和數(shù)據(jù),而不是信息本身,它如何知道怎樣讀取接收到的各種格式的消息?
??? 答案是Service Component不知道如何閱讀消息,因?yàn)橥ǔO⒏袷綄?duì)于Service Component是完全屏蔽的。 取而代之的是,一個(gè)Transport攜帶消息一起,然后在路由器將消息傳遞到Service Component之前, Transformers以Service Component可以讀取的格式改變消息的負(fù)載(Payload, 例如發(fā)貨單)。
??? 例如:如果XML發(fā)貨單通過HTTP發(fā)送過來, HTTP Transport攜帶消息一起,直接路將此消息路由到需要處理它的每一個(gè)Service Component,然后Transformers在前進(jìn)的道路上對(duì)于每一個(gè)Service Component必要的改變發(fā)貨單(如:從XML轉(zhuǎn)換到Java對(duì)象)。

Mule 介紹及架構(gòu)理解 Getting Started

?? Transformers是交換數(shù)據(jù)的關(guān)鍵, 因?yàn)樗试SMule轉(zhuǎn)換數(shù)據(jù)到另外一個(gè)組件或應(yīng)用程序可以理解的格式上。最重要的是, 數(shù)據(jù)只在必要時(shí)做轉(zhuǎn)換。代替將每個(gè)消息轉(zhuǎn)換到一個(gè)公共的消息格式上的是:消息和他們的數(shù)據(jù)只在該消息的目標(biāo)組件或應(yīng)用程序需要時(shí)做轉(zhuǎn)換。
最后你可以使用多種類型的Transports來處理不同的通道(Channels), 如:在HTTP上發(fā)送消息(Mule在HTTP上接收到消息),經(jīng)過Customer Data service component的處理,將它作為一個(gè)JMS消息轉(zhuǎn)發(fā)。
?? 將業(yè)務(wù)邏輯與發(fā)送和消息轉(zhuǎn)換的分離,就帶來更大的靈活性,你如何設(shè)置你的架構(gòu),并使其更加簡(jiǎn)單來定制業(yè)務(wù)邏輯,而不必?fù)?dān)心可能到來的各種消息格式。
如果需要,你的Service Component可以使用消息的原始數(shù)據(jù),但不是必須的。

將全部融合到一起
??? Endpoints是將所有的服務(wù)融合到一起的關(guān)鍵配置元素。你在Inbound和Outbound Router上指定Endpoints, 來告訴Mule ESB, 使用哪一個(gè)Transport,發(fā)送消息到哪里,哪些消息是Service Component應(yīng)該接受。 Endpoint的主要部分是地址,表示為一個(gè)URI(統(tǒng)一資源標(biāo)識(shí)符, Uniform Resource Indicator (URI)), 它表示要使用的Transport, 位置(一個(gè)Transport特性的資源),以及其他額外的參數(shù)。
??? 例如: 如果服務(wù)的Inbound Router指定Endpoint [http://myfirm.com/mule], HTTP Transport會(huì)將發(fā)送到那個(gè)URL的所有消息轉(zhuǎn)發(fā)到Service中。如果Inbound Router指定為file://myserver/files/, File Transport將會(huì)觀察那個(gè)目錄,轉(zhuǎn)發(fā)任何在那個(gè)目錄中創(chuàng)建的新文件到Service中。你在Outbound Router中指定的Endpoint標(biāo)識(shí)消息要走的下一步 - 消息會(huì)到達(dá)有著和前一個(gè)Service的Outbound Endpoint相同的Inbound Endpoint的Service, 像如下圖解所示。
???
Mule 介紹及架構(gòu)理解 Getting Started

??? Service可以使用不同的Transports接收消息。對(duì)于每種Service將用到的Transport,你必須指定一個(gè)或多個(gè)分離的Endpoint。例如:如果你想要你的一個(gè)Service能夠處理從HTTP和JMS通道過來的消息,你需要在這個(gè)Service的Inbound Router上指定至少一個(gè)HTTP Endpoint和至少一個(gè)JSM Endpoint。
??? Mule在這個(gè)Service上注冊(cè)這些Endpoints, Transport運(yùn)行時(shí)使用這些注冊(cè)信息來配置自身并決定發(fā)送和接收消息的位置。Router或Endpoint能包含過濾器(Filters), 這進(jìn)一步指定發(fā)送和接受哪些消息。例如:你可以指定Service Component只接受來自于特定作者的RSS消息。
??? 為你的Services指定Routers和Endpoints,需要簡(jiǎn)單編輯一個(gè)XML文件。你不需要編寫任何Java代碼。 如前所述,你的Service Components代碼仍然與消息和路由完全分離,你只需要處理Mule配置。
??? 總而言之,Mule提供了一個(gè)簡(jiǎn)單、輕量級(jí)的方式來編寫處理數(shù)據(jù)的Service Components, 他們不需要擔(dān)心數(shù)據(jù)的發(fā)送和接收、數(shù)據(jù)格式、以及發(fā)送或接收數(shù)據(jù)中使用到的技術(shù)。
??? 然而,很多供應(yīng)商和集成技術(shù)提供連接到不同的數(shù)據(jù)源的能力,但通常都要求額外的編碼信息以達(dá)到想要的獲取消息和分發(fā)數(shù)據(jù)的效果。Mule允許你快速開發(fā)Service Components,通過簡(jiǎn)單的XML配置而不是編寫Java代碼。


原文地址:
[urlhttp://www.mulesoft.org/documentation/display/MULE3INTRO/Understanding+the+Messaging+Framework[/url]

[urlhttp://www.mulesoft.org/documentation/display/MULE3INTRO/Understanding+the+Mule+Architecture[/url]

本文PDF版本下載:

Mule 介紹及架構(gòu)理解 Getting Started


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲成人av一区二区 | 国产成人精品999在线观看 | 日日日日干 | 亚洲播播播 | 免费区一级欧美毛片 | 色综合久久久久久久久五月性色 | 天堂成人网 | 亚洲国产aⅴ成人精品无吗 最新国产网址 | 日本一区二区三区免费观看 | 特级全黄一级毛片免费 | 激情 亚洲| 免费国产va在线观看视频 | 一区二区三区免费看 | 精品欧美一区二区在线观看 | 国产91亚洲精品 | 日日日bbb | 窝窝午夜精品一区二区 | 日本一级在线 | 久久久久女人精品毛片 | 色偷偷影院 | 精品欧美一区二区三区四区 | 国产在线自在拍91精品黑人 | 成人欧美一区二区三区在线播放 | 国产精品毛片一区二区三区 | 精品无人区乱码一区二区三区手机 | 亚洲欧美一区二区三区国产精品 | 国产三及片 | wwwbnb89| 日韩有码一区 | 日本久久久久久 | 中文字幕视频一区 | 国产一区二区三区在线电影 | 久久精品亚洲成在人线av网址 | 九九av| 性夜影院爽黄e爽在线观看 苏晓晖个人简介军衔 | 国产精品三级a三级三级午夜 | 成人在线免费 | 新版天堂资源中文在线 | 精品国产一区二区在线 | 91白丝制服被啪到喷水在线 | av天空 |