Mule,目前综合状态最良好的开源ESB方案收藏
http://blog.csdn.net/zhangliulin/archive/2007/10/16/1826703.aspx
新一篇: 设计一个美好的服务器--MINA、CXF、Mule、JBoss/Geronimo | 旧一篇: ESB综述2:ESB使用案例
原文地址: http://blog.csdn.net/calvinxiu/archive/2007/06/19/1657989.aspx ,版权所有,转载请保留原文链接,谢谢。-- 江南白衣Mule,目前综合状态最良好的开源ESB方案----源码每天都在更新,2007年大会MuleConf2007,给大家贡献代码的MuleForge.org,商业的支持公司Mulesource.com,代表了商业开源项目的成熟运营,国内的电信案例有.......甘肃万维。
1.Feature List
1.1 企业服务总线-主要特性:Pluggable的传输层,转换器,路由器三者是ESB的公共核心功能,同时Mule还是《Enterprise Intergration Patterns》与SEDA(Staged Event-Driven Architecture)的遵循者。
1.2 企业服务总线-其他特性:事务、安全、异常管理 ,JMX管理架构。
1.3 SOA环境的业务服务器:解耦于传输层的POJO Component,与Spring Container及应用服务器集成。
2.架构
2.1 总文档
- Artichitecture Guide
- Mule Training
- 《企业集成模式》中文版
可以看出Mule的架构分三大块,传输层一块,POJO一块,还有一块运行时管理模块。
2.2 Transport Provider
Transport 是ESB最苦力的部分,Mule支持了WebService(Axis,XFire)/REST、Ejb/Rmi、Email、Jdbc、Tcp/Udp、Xmpp、VM、Ftp、File、Quartz,还有一些Transport如vfs、IBM MQ,藏在某个sandbox代码分支或者muleforge.org中。
- 名词:Provider由Message Receiver/Dispatcher,Connector,Adapter组成。
Message Receiver/Dispatcher负责具体收发,Connector负责与外系统的连接,Adapter负责转换协议特殊的数据格式,取得一些协议相关参数,比如http的Content-Length。Endpoint 定义了Transport+地址,如jms://topic:myTopic - Transport Guide
- 编写Transport
2.3 Filter、Router、Transformer
在mule里各种模式通常只是一个名词,要把《EIP》摆在手边,参考其描述与用例。
- Router
动态的、宣告式的、基于内容的路由、基于规则的路由、BPEL、过滤、分解、聚合、重排http://mule.codehaus.org/display/MULE/Message+Routers - Filter
http://mule.codehaus.org/display/MULE/Filters - Transformer
转换、包装、扩充、规范、压缩、加密、编码
http://mule.codehaus.org/display/MULE/Transformers
2.3 UMO Component
- Entrypoint Resolver,消息->UMO方法的解释与调度。
- 对象容器,基于Spring。
- UMO对象池,基于Apache Common Pools。
- Interceptor ,默认有log和profile.
- 编写UMO
2.4 SEDA
- 默认分为inbound-umo-outbound三个阶段,还可以配置更多的处理阶段。
- 同步异步模型,线程模型,队列路由的配置。
- http://www.infoq.com/articles/SEDA-Mule
3. DEMO
Mule的Example很丰富,下面三个最为典型:
3.1 Echo Demo
最简单的Demo,演示System.in 与 Xfire Web Service双入口的场景。
http://mule.codehaus.org/display/MULE/Echo+Example
3.2 股票询价 Demo
访问Internet上真实的股票询价服务器。
http://mule.codehaus.org/display/MULE/Stock+Quote+Example
3.3 借贷代理 Demo
最真实,最复杂的Demo,详细用例见EIP 第九章。
http://mule.codehaus.org/display/MULE/Stock+Quote+Example
http://mule.codehaus.org/download/attachments/223/javazone-2005-mule-real-world-old.ppt
4.未来发展
- RoadMap
http://mule.codehaus.org/download/attachments/4585/Mule+Roadmap+Discussion+-+Ross+Mason.pdf - Mule 2.0
6月份发布,完全基于Spring 2.0。 - Mule 3.0
年底发布,OSGI热部署、Failover支持。 - MuleForge
http://www.muleforge.org/,大家可以在上面发布自己写的Transport和Example,体现了mulesource良好的运营素质。
它是一个轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的。
Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。
UMO可以是POJO,JavaBean等等。
它支持20多种传输协议(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,
Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器,应此可以很好地与JBI容器整合在一起。而 Mule更关注其灵活性,高效性以及易开发性。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。目前许多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。
Apache ServiceMix
它是JBI规范的一种实现。它包涵了许多JBI组件,这些组件支持多种协议,比如JMS,HTTP,FTP,FILE等。同时也实现了EIP,规则和调度。自从JBI被JCP接收后,2005年末Apache ServiceMix才被Apache作为其卵化项目,到2007年9月,它已经成为Apache的顶级项目。ApacheServiceMix 也整合了其他的开源项目,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。
说起Apache ServiceMix,就会使我想到LogicBlaze公司。它曾经是Apache ServiceMix和Apache ActiveMQ的商业支持者。2006年LogicBlaze被IONA成功收购后,IONA负责为Apache ServiceMix提供支持和服务。同时IONA也将Apache ServiceMix作为FUSE平台中的一员,FUSE旗下还包括Apache ActiveMQ,Apache CXF,Apahe Camel,FUSE HQ。
官方网站: http://servicemix.apache.org/
Fuse平台的官方网站:http://open.iona.com/products/fuse-esb/
Open ESB
前两个开源ESB都由开源社区提供支持,Mule由Codehaus社区提供支持,ServiceMix由Apache社区提供支持。Open ESB是由SUN发起,现在作为Java.net的子项目。所有Open ESB的开发人员都来自SUN。
如同Apache ServiceMix一样,Open ESB也实现了JBI规范。Open ESB可运行在由SUN支持的Glassfish应用服务中。同时SUN的Netbeans IDE为Open ESB提供了拖拉式的开发工具,这是其他开源ESB不可匹敌的,尽管Mule也提供了基于Eclipse的插件工具,但目前仍然不够强大。
官方网站:https://open-esb.dev.java.net/
Apache Synapse
虽然Apache Synapse具备一些ESB所必备的功能,但是从本质上而言Synapse更是一个web服务仲裁框架,它是构建在Apache Axis2之上的。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等传输协议,还支持多种web服务规范(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging。在它的最新版本1.2中加入了对FIX(Financial Information eXchange,金融信息交换协议 ) 和 Hessian 的支持。同时它还支持多种流行语言,比如Java, JavaScript, Ruby, Groovy等。
官方网站:http://ws.apache.org/synapse
JBoss ESB
JBoss ESB是基于JBoss公司的ESB产品Rosetta的。Jboss ESB将JbossMQ作为其消息层,将JBoss rules为其提供路由功能,
将jBPM为其提供服务编排功能。足以见得JBoss的野心。
官方网站:http://labs.jboss.com/jbossesb/
、
更多elemenope信息
更多ServiceMix信息
1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker).
2.可插入的连接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3, file,xmpp等.
3.支持任何传输之上的异步,同步和请求响应事件处理机制.
4.支持Axis或者Glue的Web Service.
5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network.
6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中.
7.使用基于SEDA处理模型的高度可伸缩的企业服务器.
8.强大的基于EIP模式的事件路由机制等.
Mule发布最新版本1.1,这个发布包括集成了 JBI,对 BPEL的支持,还增加一些新的传输器(transport)Quartz,FTP,RMI与EJB等。
更多Mule信息
更多OpenQueue信息
更多Celtix信息
更多OpenSyncro信息
更多Open ESB信息
更多OpenESB信息
更多jeeESB信息
更多JBossESB信息
更多Apache Synapse信息