1. 程式人生 > >開源企業服務匯流排ESB彙總與對比

開源企業服務匯流排ESB彙總與對比

Bitmap Bitmap Bitmap
開源ESB彙總表
Mule ESB Apache ServiceMix Open ESB Apache Synapse JBoss ESB WSO2 OpenAdaptor
產品描述與定位 輕量級的訊息框架和整合平臺;基於EIP實現;核心元件UMO實現整合邏輯;支援20多種傳輸協議(File、FTP、UDP、SMTP、POP、HTTP、SOAP、JMS等)。並整合了許多流行的開源專案,比如Spring,ActiveMQ,CXF,Axis,Drools等 它是JBI規範的一種實現;包含很熟JBI元件。這些元件支援多種協議,比如JMS,HTTP,FTP,FILE等。同時也實現了EIP,規則和排程。ApacheServiceMix 也整合了其他的開源專案,比如Apache、Apache、ActiveMQ CXF,Apahe Camel,Apache ODE以及Apache Geronimo。
Open ESB可執行在由SUN支援的Glassfish應用服務中。同時SUN的Netbeans IDE為Open ESB提供了拖拉式的開發工具,這是其他開源ESB不可匹敵的,儘管Mule也提供了基於Eclipse的外掛工具,但目前仍然不夠強大。 雖然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;支援多種語言;比如Java, JavaScript, Ruby, Groovy等。
JBoss ESB是基於JBoss公司的ESB產品Rosetta的。Jboss ESB將JbossMQ作為其訊息層,將JBoss rules為其提供路由功能,
將jBPM為其提供服務編排功能;JBoss ESB是JBoss社群為面向SOA而提出的一個EAI系統平臺;它提供了很多EAI本身所應具有的功能,例如業務流程監控、整合開發環境、工作流使用者介面、業務流程管理、分散式計算架構以及作為應用容器的功能等。
WSO2是基於Apache Synapse產品的,通過它可以在web服務,REST/POX服務以及遺留系統間連線,管理和轉換服務互動。它還提供了一個基於AJAX的ESB管理控制檯對其配置檔案進行統計分析,管理(新增,刪除以及修改等),和指定執行相應的配置檔案。這在開源ESB中是非常少見的。
OpenAdaptor定位於EAI (Enterprise Application Integration,企業應用整合)軟體。它支援各種傳輸協議,如JMS, JDBC, IBM MQ Series, TIBCO Rendezvous, TCP/IP Sockets, SOAP, HTTP 和 File等 官方網站 http://mule.codehaus.org/

http://servicemix.apache.org/
https://open-esb.dev.java.net/ http://ws.apache.org/synapse http://labs.jboss.com/jbossesb/

http://wso2.com/products/esb/

https://www.openadaptor.org/

缺陷與不足 沒法熱部署新的整合流程。 如果要做進一步的總線上的擴充套件,則需要對原始碼和例子進行較為深入的學習和研究,當然這一切的基礎是對JBI的規範有較為全面的瞭解。

如果要對OpenESB進行按照自身的要求進行擴充套件則較為困難,除非對OpenESB的原始碼進行全面的分析。

相對於上面的匯流排而言,它的技術架構方案是最獨立的。因為它除了支援J2EE標準外,對於JBI規範壓根就不沾邊;當然也就不存在JBI規範中的規範化訊息路由、服務引擎和繫結元件了。 對比 Mule提供了以Java為中心的模型,支援jBPM,支援訊息無關,沒有熱部署功能。
Mule的優點:
1,架構簡單清晰、容易上手;
2,它有非常廣泛的傳輸器、路由器和轉換器,且易於擴充套件;
3,Mule不需將訊息轉換成統一的格式,而只在需要時進行轉換,提高了效能;
4,開發過程中無需關注Mule程式碼,只需通過配置即可將服務暴露,減少了侵入性;
5,文件清晰而完善;
Mule的缺點:
1,沒有實現任何ESB規範(但遵循了《Enterprise Intergration Patterns》與 SEDA (Staged Event-Driven Architecture));
2,不支援熱部署(企業版支援);

Mule選擇不實現JBI的理由:為保持其輕量級和靈活性,提高效率和易用性。
Mule提供了一個JBI介面卡來與JBI容器保持聯通性。
ServiceMix提供了JBI支援,BPEL整合,關注XML訊息和熱部署功能。
Servicemix的優點:
1,基於JBI規範;
2,可以熱部署;
3,支援Camel(可以用DSL去開發整合流程);
Servicemix的缺點:
1,JBI規範帶來了使用上的繁瑣,且JBI規範沒有得到太多的青睞,前途未卜;
2,過多依賴XML的配置;
3,由於所有訊息要進行標準化處理,即生成和解析XML檔案,所以會導致效能下降;
4,開發過程中需要實現框架特定介面(MessageExchangeListener)接收和處理上述標準訊息,侵入性強;
5,文件不健全、不夠清晰;
結論 綜上所述,Mule和Servicemix都實現了ESB的核心功能,都提供了廣泛的可用元件和良好的擴充套件性,從功能上看差別不大,但從穩定性、易用性和效能上比較,Mule可能是更好的選擇。