1. 程式人生 > >幾種ESB(企業服務匯流排)介紹

幾種ESB(企業服務匯流排)介紹

JBoss ESB


  JBossESB是JBoss推出的ESB的實現,也是JBoss的SOA產品的基礎,JBossESB能夠把抽象的SOA設計對映成具體實現。它作為企業應用程式、業務服務、業務元件與中介軟體互動的一個媒介,對實現整合及業務流程自動化起重要作用。

  Apache ServiceMix


  ServiceMix是JBI規範的一種實現。它包涵了許多JBI元件,這些元件支援多種協議,比如JMS,HTTP,FTP,FILE等。同時也實現了EIP,規則和排程。早在幾年前,它就已經成為了Apache的頂級專案。ApacheServiceMix 也整合了其他的開源專案,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。

http://servicemix.apache.org/download.html


  OpenESB


  Open ESB是在Sun公司支援下的一個開源專案,其核心是基於JBI(Java Business Integration)規範的實現。Open ESB可執行在Glassfish應用服務中,同時Netbeans IDE也為Open ESB提供了拖拽式的開發工具,這是其他開源ESB不可匹敵的。

在開源ESB家族中湧現出很多優秀的開源ESB,比如,Mule,Apache ServiceMix,Open[/url]ESB,Apache Synapse等。為了大家更好地瞭解它們,我作了簡要地介紹。

Mule

它是一個輕量級的訊息框架和整合平臺,基於EIP(Enterprise Integeration Patterns,由Hohpe和Woolf編寫的一本書)而實現的。

Mule的核心元件是UMO(Universal Message Objects,從Mule2.0開始UMO這一概念已經被元件Componse所代替),UMO實現整合邏輯。

UMO可以是POJO,JavaBean等等。

它支援20多種傳輸協議(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),並整合了許多流行的開源專案,比如Spring,ActiveMQ,CXF,
Axis,Drools等。雖然Mule沒有基於JBI來構建其架構,但是它為JBI容器提供了JBI介面卡,應此可以很好地與JBI容器整合在一起。而 Mule更關注其靈活性,高效性以及易開發性。從2005年發表1.0版本以來,Mule吸引了越來越多的關注者,成為開源ESB中的一支獨秀。目前許多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。

官方網站:[url]http://mule.codehaus.org/


Apache ServiceMix

它是JBI規範的一種實現。它包涵了許多JBI元件,這些元件支援多種協議,比如JMS,HTTP,FTP,FILE等。同時也實現了EIP,規則和排程。自從JBI被JCP接收後,2005年末Apache ServiceMix才被Apache作為其卵化專案,到2007年9月,它已經成為Apache的頂級專案。ApacheServiceMix 也整合了其他的開源專案,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。

說起Apache ServiceMix,就會使我想到LogicBlaze公司。它曾經是Apache ServiceMix和Apache ActiveMQ的商業支持者。2006年LogicBlaze被IONA成功收購後,IONA負責為Apache ServiceMix提供支援和服務。同時IONA也將Apache ServiceMix作為FUSE平臺中的一員,FUSE旗下還包括Apache ActiveMQ,Apache CXF,Apahe Camel,FUSE HQ。

官方網站:
http://servicemix.apache.org/


Fuse平臺的官方網站:http://open.iona.com/products/fuse-esb/

Open ESB

前兩個開源ESB都由開源社群提供支援,Mule由Codehaus社群提供支援,ServiceMix由Apache社群提供支援。Open ESB是由SUN發起,現在作為Java.net的子專案。所有Open ESB的開發人員都來自SUN。

如同Apache ServiceMix一樣,Open ESB也實現了JBI規範。Open ESB可執行在由SUN支援的Glassfish應用服務中。同時SUN的Netbeans IDE為Open ESB提供了拖拉式的開發工具,這是其他開源ESB不可匹敵的,儘管Mule也提供了基於Eclipse的外掛工具,但目前仍然不夠強大。

官方網站:https://open-esb.dev.java.net/

Apache Synapse

雖然Apache Synapse具備一些ESB所必備的功能,但是從本質上而言Synapse更是一個web服務仲裁框架,它是構建在Apache Axis2之上的。Synapse的關注點是路由,轉換,訊息驗證以及基於web服務和xml標準的註冊。它支援HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等傳輸協議,還支援多種web服務規範(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging。在它的最新版本1.2中加入了對FIX(Financial Information eXchange,金融資訊交換協議 ) 和 Hessian 的支援。同時它還支援多種流行語言,比如Java, JavaScript, Ruby, Groovy等。

官方網站:http://ws.apache.org/synapse

JBoss ESB

JBoss ESB是基於JBoss公司的ESB產品Rosetta的。Jboss ESB將JbossMQ作為其訊息層,將JBoss rules為其提供路由功能, 將jBPM為其提供服務編排功能。足以見得JBoss的野心。

官方網站:http://labs.jboss.com/jbossesb/

其他的開源ESB

WSO2是基於Apache Synapse產品的,通過它可以在web服務,REST/POX服務以及遺留系統間連線,管理和轉換服務互動。它還提供了一個基於AJAX的ESB管理控制檯對其配置檔案進行統計分析,管理(新增,刪除以及修改等),和指定執行相應的配置檔案。這在開源ESB中是非常少見的。

官方網站:http://wso2.com/products/esb/

OpenAdaptor定位於EAI (Enterprise Application Integration,企業應用整合)軟體。它支援各種傳輸協議,如JMS, JDBC, IBM MQ Series, TIBCO Rendezvous, TCP/IP Sockets, SOAP, HTTP 和 File等。其最新版本為openadaptor3,與先前版本相比,它完全重寫了一邊,保留了原有的功能,提升了其簡單性。