現有一些開源ESB總線的比較


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

一. CXF

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

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

CXF支持與除了HTTP之外的其他協議的通信綁定,比如RESTJSONCORBA等,所以對於Ajax有較強的兼容性。這相對與其他的ESB總線而言能夠說是一個較大的優勢。

可是CXFESB總線是根據Spring框架來實現的,由Spring來管理Bus中的各個組件。而Spring對各個Bean或組件的管理是通過一個上下文的配置文件來實現的。這種方式相對與其它的ESB總線(比如根據JMX)的方式而言,則不支持動態的熱部署。也就是說CXF不是一個JBI容器,它必須依附與其它的容器來執行。現有的資料來看,CXF眼下能夠部署在JBossBEA Weblogic中,Tomcatserver因為不支持完整的J2EE規范,特別是基於JCAEJB,所以對CXF支持的程度不理想。盡管資料中沒有涉及到Geronimo,可是以GeronimoJ2EE規范的兼容程度來看,特別是EAR文檔的支持,在Geronimo中部署CXF應該沒有什么太大的障礙。

相同你能夠在使用Spring的應用中嵌入CXF,而這僅僅須要在Spring的配置文件里填寫對應的配置信息就可以。

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

二. Open ESB

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

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

在資料方面僅僅有一個演示視頻,主要還是基於NetBean平台的使用介紹。其它發布的資料則則較少,特別是API方面差點兒沒有。所以假設要對OpenESB進行依照自身的要求進行擴展則較為困難,除非對OpenESB的源碼進行全面的分析。

三. ServiceMix

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

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

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

四. JBoss ESB

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

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

 


免責聲明!

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



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