Mule,目前综合状态最良好的开源ESB方案
????Mule,目前綜合狀態(tài)最良好的開源ESB方案----源碼每天都在更新,2007年大會MuleConf2007,給大家貢獻(xiàn)代碼的MuleForge.org,商業(yè)的支持公司Mulesource.com,代表了商業(yè)開源項目的成熟運營,國內(nèi)的電信案例有.......甘肅萬維。
1.Feature List
1.1?企業(yè)服務(wù)總線-主要特性:Pluggable的傳輸層,轉(zhuǎn)換器,路由器三者是ESB的公共核心功能,同時Mule還是《Enterprise Intergration Patterns》與SEDA(Staged Event-Driven Architecture)的遵循者。
1.2?企業(yè)服務(wù)總線-其他特性:事務(wù)、安全、異常管理 ,JMX管理架構(gòu)。
1.3?SOA環(huán)境的業(yè)務(wù)服務(wù)器:解耦于傳輸層的POJO Component,與Spring Container及應(yīng)用服務(wù)器集成。
2.架構(gòu)
2.1 總文檔
- Artichitecture Guide
- Mule Training
- 《企業(yè)集成模式》中文版
可以看出Mule的架構(gòu)分三大塊,傳輸層一塊,POJO一塊,還有一塊運行時管理模塊。
2.2?Transport Provider
??? Transport 是ESB最苦力的部分,Mule支持了WebService(Axis,XFire)/REST、Ejb/Rmi、Email、Jdbc、Tcp/Udp、Xmpp、VM、Ftp、File、Quartz,還有一些Transport如vfs、IBM MQ,藏在某個sandbox代碼分支或者muleforge.org中。
- 名詞:Provider由Message Receiver/Dispatcher,Connector,Adapter組成。
Message Receiver/Dispatcher負(fù)責(zé)具體收發(fā),Connector負(fù)責(zé)與外系統(tǒng)的連接,Adapter負(fù)責(zé)轉(zhuǎn)換協(xié)議特殊的數(shù)據(jù)格式,取得一些協(xié)議相關(guān)參數(shù),比如http的Content-Length。Endpoint 定義了Transport+地址,如jms://topic:myTopic? - Transport Guide
- 編寫Transport
2.3?Filter、Router、Transformer
????? 在mule里各種模式通常只是一個名詞,要把《EIP》擺在手邊,參考其描述與用例。
- Router?
動態(tài)的、宣告式的、基于內(nèi)容的路由、基于規(guī)則的路由、BPEL、過濾、分解、聚合、重排http://mule.codehaus.org/display/MULE/Message+Routers - Filter?
http://mule.codehaus.org/display/MULE/Filters - Transformer
轉(zhuǎn)換、包裝、擴(kuò)充、規(guī)范、壓縮、加密、編碼
http://mule.codehaus.org/display/MULE/Transformers
2.3?UMO Component
- Entrypoint Resolver,消息->UMO方法的解釋與調(diào)度。
- 對象容器,基于Spring。
- UMO對象池,基于Apache Common ?Pools。
- Interceptor ,默認(rèn)有l(wèi)og和profile.??
- 編寫UMO
2.4 SEDA
- 默認(rèn)分為inbound-umo-outbound三個階段,還可以配置更多的處理階段。
- 同步異步模型,線程模型,隊列路由的配置。
- http://www.infoq.com/articles/SEDA-Mule
3. DEMO
Mule的Example很豐富,下面三個最為典型:
3.1 Echo Demo
最簡單的Demo,演示System.in 與 Xfire Web Service雙入口的場景。
http://mule.codehaus.org/display/MULE/Echo+Example
3.2?股票詢價?Demo
訪問Internet上真實的股票詢價服務(wù)器。
http://mule.codehaus.org/display/MULE/Stock+Quote+Example
3.3 借貸代理?Demo
最真實,最復(fù)雜的Demo,詳細(xì)用例見EIP 第九章。
http://mule.codehaus.org/display/MULE/Stock+Quote+Example
http://mule.codehaus.org/download/attachments/223/javazone-2005-mule-real-world-old.ppt
4.未來發(fā)展
- RoadMap?
http://mule.codehaus.org/download/attachments/4585/Mule+Roadmap+Discussion+-+Ross+Mason.pdf - Mule 2.0?
6月份發(fā)布,完全基于Spring 2.0。 - Mule 3.0?
年底發(fā)布,OSGI熱部署、Failover支持。 - MuleForge?
http://www.muleforge.org/,大家可以在上面發(fā)布自己寫的Transport和Example,體現(xiàn)了mulesource良好的運營素質(zhì)。
它是一個輕量級的消息框架和整合平臺,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf編寫的一本書)而實現(xiàn)的。?
Mule的核心組件是UMO(Universal Message Objects,從Mule2.0開始UMO這一概念已經(jīng)被組件Componse所代替),UMO實現(xiàn)整合邏輯。?
UMO可以是POJO,JavaBean等等。?
它支持20多種傳輸協(xié)議(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了許多流行的開源項目,比如Spring,ActiveMQ,CXF,?
Axis,Drools等。雖然Mule沒有基于JBI來構(gòu)建其架構(gòu),但是它為JBI容器提供了JBI適配器,應(yīng)此可以很好地與JBI容器整合在一起。而 Mule更關(guān)注其靈活性,高效性以及易開發(fā)性。從2005年發(fā)表1.0版本以來,Mule吸引了越來越多的關(guān)注者,成為開源ESB中的一支獨秀。目前許多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。?
Apache ServiceMix?
它是JBI規(guī)范的一種實現(xiàn)。它包涵了許多JBI組件,這些組件支持多種協(xié)議,比如JMS,HTTP,FTP,FILE等。同時也實現(xiàn)了EIP,規(guī)則和調(diào)度。自從JBI被JCP接收后,2005年末Apache ServiceMix才被Apache作為其卵化項目,到2007年9月,它已經(jīng)成為Apache的頂級項目。ApacheServiceMix 也整合了其他的開源項目,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。?
說起Apache ServiceMix,就會使我想到LogicBlaze公司。它曾經(jīng)是Apache ServiceMix和Apache ActiveMQ的商業(yè)支持者。2006年LogicBlaze被IONA成功收購后,IONA負(fù)責(zé)為Apache ServiceMix提供支持和服務(wù)。同時IONA也將Apache ServiceMix作為FUSE平臺中的一員,FUSE旗下還包括Apache ActiveMQ,Apache CXF,Apahe Camel,FUSE HQ。?
官方網(wǎng)站:http://servicemix.apache.org/?
Fuse平臺的官方網(wǎng)站:http://open.iona.com/products/fuse-esb/?
Open ESB?
前兩個開源ESB都由開源社區(qū)提供支持,Mule由Codehaus社區(qū)提供支持,ServiceMix由Apache社區(qū)提供支持。Open ESB是由SUN發(fā)起,現(xiàn)在作為Java.net的子項目。所有Open ESB的開發(fā)人員都來自SUN。?
如同Apache ServiceMix一樣,Open ESB也實現(xiàn)了JBI規(guī)范。Open ESB可運行在由SUN支持的Glassfish應(yīng)用服務(wù)中。同時SUN的Netbeans IDE為Open ESB提供了拖拉式的開發(fā)工具,這是其他開源ESB不可匹敵的,盡管Mule也提供了基于Eclipse的插件工具,但目前仍然不夠強大。?
官方網(wǎng)站:https://open-esb.dev.java.net/?
Apache Synapse?
雖然Apache Synapse具備一些ESB所必備的功能,但是從本質(zhì)上而言Synapse更是一個web服務(wù)仲裁框架,它是構(gòu)建在Apache Axis2之上的。Synapse的關(guān)注點是路由,轉(zhuǎn)換,消息驗證以及基于web服務(wù)和xml標(biāo)準(zhǔn)的注冊。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等傳輸協(xié)議,還支持多種web服務(wù)規(guī)范(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging。在它的最新版本1.2中加入了對FIX(Financial Information eXchange,金融信息交換協(xié)議 ) 和 Hessian 的支持。同時它還支持多種流行語言,比如Java, JavaScript, Ruby, Groovy等。?
官方網(wǎng)站:http://ws.apache.org/synapse?
JBoss ESB?
JBoss ESB是基于JBoss公司的ESB產(chǎn)品Rosetta的。Jboss ESB將JbossMQ作為其消息層,將JBoss rules為其提供路由功能,?
將jBPM為其提供服務(wù)編排功能。足以見得JBoss的野心。?
官方網(wǎng)站:http://labs.jboss.com/jbossesb/?
、
更多elemenope信息
?ServiceMix?
ServiceMix是一個建立在JBI (JSR 208)語法規(guī)則和APIs上的開源ESB(Enterprise Service Bus:企業(yè)服務(wù)總線)。它包括一個完整的JBI容器,其主要是由標(biāo)準(zhǔn)化信息服務(wù)和路由器,JBI管理MBeans,JBI配置單元和Ant任務(wù)(安裝組件和管理容器)組成。新版本中集成了BPEL,增加了一個基于router的高性能目錄,XPath轉(zhuǎn)換引擎,Drools新規(guī)則,對RSS的支持與JCA的完全結(jié)合等等。更多ServiceMix信息
?Mule?
Mule是一個企業(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 Service Network.?
6.與Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring應(yīng)用中.
7.使用基于SEDA處理模型的高度可伸縮的企業(yè)服務(wù)器.
8.強大的基于EIP模式的事件路由機(jī)制等.
Mule發(fā)布最新版本1.1,這個發(fā)布包括集成了JBI,對?BPEL的支持,還增加一些新的傳輸器(transport)Quartz,FTP,RMI與EJB等。
更多Mule信息
?OpenQueue?
OpenQueue是一個用于發(fā)布與訂閱消息隊列的開放協(xié)議。這使得運行在不同機(jī)器上的,采用不同語言開發(fā)的且沒有聯(lián)系的應(yīng)用程序之間能夠進(jìn)行異步通信。更多OpenQueue信息
?Celtix?
Celtix提供了一個運行期Java企業(yè)服務(wù)總線和一組可擴(kuò)展的API.通過使用一個基于標(biāo)準(zhǔn)的,面向服務(wù)的體系來簡化商業(yè)與技術(shù)組件的構(gòu)建,集成和靈活重復(fù)使用。更多Celtix信息
?OpenSyncro?
OpenSyncro是一個輕量級,開源企業(yè)應(yīng)用集成工具。它運行在Apache Tomcat服務(wù)器上并把它的配置信息存儲在MySQL數(shù)據(jù)庫中.它的特性包括內(nèi)嵌數(shù)據(jù)轉(zhuǎn)換器能夠把CSV表格和其它基于文本的數(shù)據(jù)格式轉(zhuǎn)換成XML,支持XSL轉(zhuǎn)換(XSLT),支持訪問FTP服務(wù)器上的文件。OpenSyncro可通過組件來進(jìn)行擴(kuò)展從而使得它連接到SAP Business One與HansaWorld這樣的ERP/CRM系統(tǒng).更多OpenSyncro信息
?Open ESB?
Open ESB企業(yè)服務(wù)總線提供面向服務(wù)體系(SOA)的方法來構(gòu)建組合應(yīng)用程序。Open ESB SDK的核心是Java商業(yè)集成(JBI)技術(shù)。更多Open ESB信息
?OpenESB?
OpenESB項目實現(xiàn)了一個運行期企業(yè)服務(wù)總線(Enterprise Service Bus:ESB)使用JBI(Java業(yè)務(wù)集成)作為核心基礎(chǔ)。OpenESB可以讓你集成企業(yè)應(yīng)用與Web Service松散地連接成復(fù)合的應(yīng)用程序。這使得你可以無縫地組合與拆解該復(fù)合應(yīng)用程序,并認(rèn)識到一個真正面向服務(wù)架構(gòu)(SOA)的優(yōu)點。更多OpenESB信息
?jeeESB?
現(xiàn)今SOA在企業(yè)應(yīng)用程序開發(fā)中是一個比較迷惑的詞語。SOA的核心是Web Services。通過Webservice就能夠?qū)崿F(xiàn)SOA。Jee(G)ESB是Java企業(yè)服務(wù)總線的一個開源實現(xiàn),通過簡單的XML配置就能夠?qū)崿F(xiàn)SOAP)Webservices“路由”,而不需要復(fù)雜的編碼。jeeESB使用XPath和XmlBeans進(jìn)行配置。更多jeeESB信息
?JBossESB?
ESB是SOA基礎(chǔ)架構(gòu)的一部分,而SOA并不是一種簡單的技術(shù)或產(chǎn)品。它是一種設(shè)計風(fēng)格,包含無關(guān)于實際技術(shù)的多個方面。JBossESB能夠把抽象的SOA設(shè)計映射成具體實現(xiàn)。它特性包括:支持大部分通知框架,Transport支持包括JMS (JBossMQ,JBoss Messaging,Oracle AQ 和MQSeries),email,數(shù)據(jù)庫或文件系統(tǒng)。集成JMS與SQL事務(wù)。集成jBPM。支持WS-BPEL。 支持Web Services。 支持Groovy。支持使用Smooks或XSLT進(jìn)行數(shù)據(jù)轉(zhuǎn)換。支持使用Drools or XPath編寫路由。提供圖形化配置編輯器。 具高性能和高穩(wěn)定性。更多JBossESB信息
?Apache Synapse?
Apache Synapse一個易于使用、輕量級的XML與Web Services管理和集成中間件。可用于搭建SOA和ESB的基礎(chǔ)平臺。Apache Synapse支持多種標(biāo)準(zhǔn)包括:XML、XSLT、XQuery、XPath、SOAP、POX/REST、HTTP/S、JMS、、FTP、SFTP、WS-RM、WS-Addressing、SMTP等Synapse還提供非常多的實用功能”開箱即用“不需要編程。但是也可以利用一些常用的語言如Java、JavaScript、Ruby和Groovy對它們進(jìn)行擴(kuò)展。更多Apache Synapse信息
?WSO2 ESB?
WSO2 ESB是一套輕量級,以XML和Web service為核心的ESB(Enterprise Service Bus)。基于Apache Synapse和Apache Axis2項目構(gòu)建。它支持connectivity,transformation,mediation和Web service交互管理。總結(jié)
以上是生活随笔為你收集整理的Mule,目前综合状态最良好的开源ESB方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 货物移动 BAPI 的简单使用
- 下一篇: 大洋洲群狼来了! 这是中国篮球学习契机?