现有的开源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服务标准作为集成的焦点。
相关推荐
对商业、开源企业服务总线产品进行比较: ... 介绍了主流商业和开源ESB的发展趋势、可借鉴的地方和其缺点。 主要介绍: Oracle Service Bus WebSphere Message Broker Mule ServiceMix/FUSE ESB Synapse/WSO2 ESB
《OpenSourceESBsInAction》这本书深入探讨了开源ESB的应用实践,分析对比了主流的开源ESB产品,通过实例演示了如何利用这些开源工具来实现企业集成解决方案。 首先,书中提到了开源ESB的世界,这是对开源ESB概念和...
### 开源ESB in Action(中文):深入解析与实践 #### 第一部分:理解ESB功能 **企业服务总线(ESB)**是现代IT体系结构中的关键组件之一,尤其在处理复杂的集成挑战方面表现突出。它不仅仅是一个技术概念,更是一种...
ActiveMQ 是Apache软件基金会的一个开源项目,它是一个实现了多种消息协议的消息中间件,同时也是构建ESB的常用工具。ActiveMQ 支持JMS(Java Message Service)规范,并提供了多种语言的API,包括Java、C++、Python...
此外,还有一些流行的开源ESB产品,如Apache Camel、MuleSoft Mule ESB和IBM WebSphere ESB等,它们提供了丰富的功能和工具,帮助企业构建高效的企业级集成解决方案。 **应用场景** 1. **系统整合**:当企业需要...
Mule ESB 开源框架简介 Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、...
**MindManager源文件**:在提供的资源中,`ESB讨论.mmap`是一个MindManager思维导图文件,可能包含了作者对ESB项目的研究细节、关键概念、优点、挑战以及各个开源ESB实现的比较。通过查看这个文件,读者可以更深入地...
在开源ESB与商业ESB的比较中,Tijs Rademakers(TJ)指出开源ESB如Mule ESB具有较低的入门门槛,无前期高昂许可费用,安装简单,配置文件易于理解和修改,同时拥有活跃的社区支持。开源ESB的功能与商业产品相似,甚至...
论文分析了ESB的原理,对其体系结构进行了归纳,根据现有的ESB实现平台,重,最介绍了开源ESB平台ServiceMix 的架构与实现技术,并对ESB的应用方法进行了概括,列举了应用实例。从而对ESB的概念、原理、架构、平台及...
Mule是一款流行的开源ESB产品,以其灵活的架构和丰富的连接器库而闻名。 **发展趋势** - **平台化**:从单一的ESB发展成为一个完整的集成平台。 - **云支持**:加强云环境下的集成能力。 - **易用性**:简化配置和...
WSO2 ESB(Enterprise Service Bus)是WSO2公司推出的一款开源的企业级服务总线,它基于Java语言开发,遵循ESB(企业服务总线)模式,旨在帮助企业实现服务的集成、管理和优化。作为一个中间件平台,WSO2 ESB的核心...
3. **WSO2 ESB**:是另一个广受好评的开源ESB,它拥有丰富的功能集,如服务代理、数据转换、事务处理等。WSO2 ESB支持多种标准和协议,且具有高度可扩展性。 每个ESB产品都有其特点和优势,选择时应根据具体业务...
MULE ESB是由MuleSoft开发的一款开源ESB产品。它提供了一个强大的平台,用于构建、运行和管理集成解决方案。Mule3.9.0是MULE ESB的一个版本,具有以下特性: 1. **轻量级架构**:Mule是基于Java的轻量级框架,易于...
企业服务总线(ESB)的出现,在中间件和系统集成市场上掀起了 一个不小的浪潮, 各个厂商都在提出自己的计划, 推出自己的相关产品。 JBI 规范的推出为这个正在兴起的市场提供了一个可以共同遵循的开发 标准。 本文...
然而,尽管ESB有许多商业和开源实现,如ObjectWeb、CodeHaus和Sourceforge的项目,但目前尚未形成统一的标准。JCP(Java Community Process)还没有制定关于ESB的正式技术草案,这表明ESB技术仍处于发展阶段,需要...
WSO2 ESB(Enterprise Service Bus,企业服务总线)是一款开源的服务中介软件,用于集成和管理企业应用之间的通信。然而,由于WSO2 ESB产品已被整合进WSO2 Enterprise Integrator (WSO2 EI) 或者 Micro Integrator ...
Shuttle.Esb作为一款开源的.NET ESB,为开发者提供了强大的消息传递框架,简化了企业级集成。其丰富的功能和跨平台特性,使得它成为构建现代分布式系统的一个理想选择。通过深入阅读gh-pages文档,开发者能够全面...
esb开源相关研究,一种开源的esb 服务框架
ESB.NET是一款专为.NET平台定制的开源ESB框架,它不仅提供了强大的集成能力,同时也作为一个高效的应用程序服务器,帮助企业构建可扩展和灵活的IT基础设施。 ESB.NET的设计理念是基于面向服务的架构(Service-...