现有的开源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)

相比其他使用了JBI规范的重量级ESB,WSO2这个新来者带来了一个轻量级的ESB。这是因为,WSO2 ESB以Web服务标准作为集成的焦点。

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

几款开源ESB总线的比较的更多相关文章

  1. 几款开源ESB总线的比较(转)

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...

  2. 现有一些开源ESB总线的比較

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,如今已经是百花争鸣的景象了.如今我就对现有的各种开源ESB总线根据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. 一. ...

  3. ESB总线的核心架构

    根据近期对开源ESB产品的研究,已经对Oracle和Tibco的ESB总线产品的实施经验积累,对ESB总线的核心产品架构有了进一步的清晰认识,将ESB的核心架构整理为上图,上图中看到的内容也是做为一款 ...

  4. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

  5. 几款开源的hybird移动app框架分析

    几款开源的Hybrid移动app框架分析 Ionic Onsen UI 与 ionic 相比 jQuery Mobile Mobile Angular UI 结论 很多移动开发者喜欢使用原生代码开发, ...

  6. pylot是一款开源的web性能测试工具

    pylot是一款开源的web性能测试工具,http://www.pylot.org/ 参考文档:http://www.pylot.org/gettingstarted.html很容易上手 使用分为以下 ...

  7. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

    两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中实现存 ...

  8. Metasploit是一款开源的安全漏洞检测工具,

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,适合于需要核实漏洞的安全专家,同时也适合于强大进攻能力的 ...

  9. C++100款开源界面库[转]

    (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...

随机推荐

  1. 长见识了,知道了collected和Graphite 这两个东东

    今天下午的讨论会议中,听到了两个名词collected和Graphite这是神马东东,以前在bingo的时候也没听说过,开完会下去查了下.原来他两是监控系统的啊.以前也从来没做过系统监控方面的项目,这 ...

  2. 报表开发导出各种格式文件的API

    文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要.报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf.Excel.Wo ...

  3. Cookie无法读取

    问题描述:用谷歌调试可以看到,但是用js去读取的时候,一直提示undefined

  4. [转]ASP.NET Core 中间件详解及项目实战

    本文转自:http://www.cnblogs.com/savorboard/p/5586229.html 前言 在上篇文章主要介绍了DotNetCore项目状况,本篇文章是我们在开发自己的项目中实际 ...

  5. OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  6. 枚举Enum使用

    package com.wzy.enumt; public enum Citys { //值为静态常量,每一个常量都是一个实例 BEIJING("北京"), SHANGHAI(&q ...

  7. 嵌入式Linux驱动学习之路(二十二)用内存模拟磁盘

    安装驱动后,可在/dev/目录下发现已经生成了相应的设备文件. 格式化设备:mkdosfs /dev/ramblock. 挂载设备. 读写设备 . 驱动程序代码: /***************** ...

  8. C# 读取EXCEL文件的三种经典方法

    1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...

  9. jquery鼠标右键事件

    $('body').live("mousedown",function(e){ $('body').bind("contextmenu",function(e) ...

  10. Eclipse JEE 安装JBPM 4.4 GPD

    回顾往昔,发现自己好久没写博客了,想想以前自己是多么热衷于写博客分享,虽然分享的都是比较基础的东西,但每每看到访问量不断增加的时候内心还是爽爽的. 时间过的真的很快,离开学校和团队已经一个月了.来到了 ...