現有一些開源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中已有的組件(子集)。spa

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社區,周圍齊全的開源項目支持,爲後期的平臺擴展提供了豐富的選擇空間。

相關文章
相關標籤/搜索