幾款開源ESB總線的比較


現有的開源ESB總線中,自從2003年第一個開源總線Mule出現后,現在已經是百花爭鳴的景象了。現在我就對現有的各種開源ESB總線依據性能、可擴展性、資料文檔完整程度以及整合難易程度等方面展開。

CXF

CXF的定位不是ESB總線,而是一個服務框架(Service Framework),主要還是為關於服務的應用提供API上的支持,或者上下文上的管理。

但是它的前身之一的Celtix就是IONA公司捐獻給開源界的ESB總線,所以整體上還是能提供ESB總線的功能(需依靠與其它的容器)。在CXF中的總線只是起到一個共享資源的提供者的作用。這些貢獻資源就相當於JBI規范中的綁定組件(BC)或服務引擎(SE)。即使如此CXF並沒有提供了對JBI規范的完整實現。可以說它只是一個類似的JBI容器。

CXF支持與除了HTTP之外的其它協議的通信綁定,例如REST、JSON和CORBA等,所以對於Ajax有較強的兼容性。這相對與其他的ESB總線而言可以說是一個較大的優勢。

但是CXF的ESB總線是依據spring框架來實現的,由Spring來管理Bus中的各個組件。而Spring對各個Bean或組件的管理是通過一個上下文的配置文件來實現的。這樣的方式相對與其他的ESB總線(例如依據JMX)的方式而言,則不支持動態的熱部署。也就是說CXF不是一個JBI容器,它必須依附與其他的容器來運行。現有的資料來看,CXF目前可以部署在JBoss和BEA Weblogic中,Tomcat服務器由於不支持完整的J2EE規范,特別是基於JCA的EJB,所以對CXF支持的程度不理想。雖然資料中沒有涉及到Geronimo,但是以Geronimo對J2EE規范的兼容程度來看,特別是EAR文檔的支持,在Geronimo中部署CXF應該沒有什么太大的障礙。

同樣你可以在使用Spring的應用中嵌入CXF,而這只需要在Spring的配置文件中填寫相應的配置信息即可。

關於CXF的文檔較為豐富,這部分是由於它本身是整合了Xfire和Celtix這兩個本身較為成熟的開源項目。另外它較大的依賴於Spring框架,所以如果對Spring較為熟悉的話,在使用上一般就沒有太大的障礙了。

Open ESB

OpenESB是Sun公司提出來的開源ESB項目,所以對JBI規范的支持程度就不用多說了。而GlassFish ESB則是將OpenESB的核心運行環境與GlassFish應用服務器以及NetBean的集成開發環境整合在一起的有一個ESB項目,當然其中還包含了一些OpenESB中已有的組件(子集)。

在OpenESB中提供了能夠支持WS-BPEL2.0的引擎。但是現在這個組件支持WSDL1.1,暫不支持WSDL2.0。而且這個引擎要依托與NetBean集成開發平台,起碼只能得到基於NetBean的相應開發包和組件包。但是這個組件對BPEL提供了強大的支持,其中包括支持端點狀態的監控、支持多線程執行、業務流程的調試、系統錯誤的可靠性恢復中各個業務流程實例的數據庫持久化以及負載均衡等。

在資料方面只有一個演示視頻,主要還是基於NetBean平台的使用介紹。其他公布的資料則則較少,特別是API方面幾乎沒有。所以如果要對OpenESB進行按照自身的要求進行擴展則較為困難,除非對OpenESB的源代碼進行全面的分析。

ServiceMix

ServiceMix是Apache基金會下的一個ESB總線,同時也是一個獨立的JBI容器(也就是說它支持完整的JBI規范)。說它是一個獨立的JBI容器,是因為它擁有自己獨立的運行環境,能像應用服務器一樣啟動,並支持動態的熱部署等,這一點則區別於CXF。

ServiceMix的容器運行環境采用內核的架構,並以Geronimo關於J2EE方面的實現為基礎(當然也就支持J2EE的各方面規范,例如安全性方面的JAAS等),所以在性能上還是較為出色的。在通信上,整合了ActiveMQ,也支持多種的通信協議,例如HTTP和JMS。同時在管理組件上采用了JMX的管理架構,從而能夠對部署在總線上的各種組件進行動態的配置和管理,或通過Web的形式,或通過JMX遠程訪問均可。ServiceMix內核能夠整合到所處的操作系統中,從而作為OS的對外提供的服務。區別與其他總線的是,ServiceMix還提供了自己的腳本命令控制台,並通過一些簡單命令來管理應用組件以及ServiceMix內核實例。

關於ServiceMix的資料也較為的完備,其中當然也包括一些簡單的小例子。關於組件擴展方面和流程引擎整合方面的詳細資料則不夠詳細。如果要做進一步的總線上的擴展,則需要對源代碼和例子進行較為深入的學習和研究,當然這一切的基礎是對JBI的規范有較為全面的了解。

JBoss ESB

JBoss ESB是JBoss社區為面向SOA而提出的一個EAI系統平台。它提供了很多EAI本身所應具有的功能,例如業務流程監控、集成開發環境、工作流用戶接口、業務流程管理、分布式計算架構以及作為應用容器的功能等。可以說JBossESB在功能上是較為強大的。但相對於上面的總線而言,它的技術架構方案是最獨立的。因為它除了支持J2EE標准外,對於JBI規范壓根就不沾邊。當然也就不存在JBI規范中的規范化消息路由、服務引擎和綁定組件了。JBossESB除了支持 Web Service外,還支持多種的遠程調用協議,例如JMS。只是相對於ServiceMix和CXF而言,如果要對JBossESB進行擴展,可能要花費較大的時間和精力。

JBossESB相對上述的開源項目而言,一個很大的優勢在於文檔資料是最為豐富和完備的。所以在開發和擴展上減小了不小的阻力。它並且依托於成熟的JBoss社區,周圍齊全的開源項目支持,為后期的平台擴展提供了豐富的選擇空間。


UltraESB

 

UltraESB 是一個開源的企業服務總線 ESB 項目,特點是高性能和易用。提供一個強大而具備良好伸縮性的架構,在性能方面表現優異,而且輕量級,易於使用和管理。

支持傳輸層:

  • HTTP/S
  • JMS
  • Email (POP3/IMAP/SMTP)
  • AMQP
  • File/SFTP/FTP/FTPS/Samba
  • Timer (Scheduled Job)
  • TCP/S
  • MLLP/S

支持協議:

  • REST
  • SOAP
  • Hessian
  • FastInfoset
  • AS2
  • Protocol Buffers

特性:

  • EIP
  • JTA XA / Local Txn's
  • WS-Security
  • JAXB
  • XSLT / XQuery
  • JSR 223
  • Data Services
  • Soring Support
  • Binary
  • XACML
  • AuthN and AuthR
  • Caching
  • Throttling

http://adroitlogic.org/

 

MuleESB

 

 

Mule是當下使用最多的開源集成平台。MuleESB價格低廉,配置、擴展簡單,而且靈活性強,使得它非常流行。

http://www.mulesoft.org/

 

WSO2 ESB(WSO2)

 

WSO2 

相比其他使用了JBI規范的重量級ESB,WSO2這個新來者帶來了一個輕量級的ESB。這是因為,WSO2 ESB以Web服務標准作為集成的焦點。

http://blog.csdn.net/linlzk/article/details/25036069


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM