好久没有关注SOA领域了,最近在帮客户完成系统集成以及portal设计开发后,需要为客户设计一套SOA实施框架,以便后续企业内部更好的IT开发实施。根据实际需要,选取开源组件作为改造基础,于是和openEsb,serviceMix,Mule缠绵了一段时间,比较一下。
IDE方面:
openEsb 有对应Netbean IDE支持开发,设计,部署,是三个组件中IDE方面做的最好的一个,特别是流程方面,支持可视化的拖拉设计。
Mule有对应的Eclipse IDE支持建立mule工程,建立mule配置文件,流程方面可以借助jbpm流程设计器进行可视化开发,数据整合方面也有相应的Eclipse插件。Mule 在IDE支持方面比较好。
serviceMix提供庞大的功能配置,但IDE方面提供的支持较少。
Bpel:
openEsb实现了JBI规范,将Web服务作为实现其业务功能的“活动”。而且提供了流程设计工具,统一化的服务描述在系统间业务流程整合方面做的比较好,但在流程监控方面需要做大量的工作。
Mule支持bpel,并且支持jbpm流程,对于人机交互的流程设计优势明显。后续的流程监控,数据提取借助JBPM提供了比较大的可操作空间。
serviceMix也支持bpel流程,但直接操作性有限。
Message:
三个组件都支持Jms,http,tcp,soap,ftp等通讯协议,并且提供了内置的connect支持,其中serviceMix在消息验证,转化,路由方面的功能最多,范围最广。
Mule次之.
openEsb由于文档原因,存在不少需要探索的黑箱.
Server:
openEsb支持glassfish.
serviceMix易于作为嵌入式ESB使用;集成了对Spring技术的支持;可以在客户端或服务器端运行;可以作为独立的ESB提供者,也可以作为另外ESB的服务组件; 可以在JavaSE或JavaEE服务器中使用;ServiceMix同ApacheGeronimo以及JBoss服务器完全集成,并且在Apache Geronimo服务器中可以直接部署JBI组件和服务。
mule 集成了对Spring技术的支持;可用作ESB 容器,而Mule 也可以很容易的嵌入到Spring 应用中.
文档说明:
mule在文档方面做的最好,Mule的运作能力也许是它在开源ESB中最大的优势:商业的支持公司Mulesource.com,给大家贡献代码的MuleForge.org,年度大会MuleConf,还挖来了CXF的作者与SaleForces的CXO。
serviceMix次之。
openEsb文档最少,很多特征属性需要进入代码级熟悉。
掌控能力:
mule方面国内不少项目都是基于这个开发,有一定的实施先例,而且可实施性强。
serviceMix体系大,开发过程繁杂,需要有相当大的资源支持。
openEsb文档资料少,需要摸索的地方多。
在实际项目具体选型方面还要考虑性能,集群方面.