Mule是一个企业服务总线(ESB)消息框架,而且Mule是一个轻量级且高度可扩展的ESB。
主要特性: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模式的事件路由机制等.
9.支持声明性和编程性事务,包括XA 支持
10.对事件的路由、传输和转换的断到端支持
11.使用基于SEDA处理模型的高度可伸缩的企业服务器
12.支持REST API 来提供技术独立和语言中立的基于web的对Mule 事件的访问
13.动态、声明性的,基于内容和基于规则的路由选项
14.非入侵式的方式。任何对象都可以通过ESB 容器管理
15.强大的应用集成框架
16.完整的可扩展的开发模式
更详细的介绍:http://www.blogjava.net/SteelHand/archive/2005/05/18/4737.html
mule2.0发布的中文说明: http://www.kuqin.com/java/20080429/7664.html 架构
一些名词说明
Transport Mule的传输层,由很多组件构成:Connector、Endpoints、Transformer等等,他们一起协同完成消息的传递工作。
Connector 连接器,负责发送和接收各种消息,各种不同的协议有不同的连接器,如:HTTP,POP3,soap等。通常连接器有三种类型:只用于接收,只用于发送和两者皆可。
Endpoints 端点,发送和接收消息的地址,一般会由协议和地址组成,类似这样:pop3://user:password@mail.xxx.com,前面为协议后面为协议能解析的地址,
2.0版本以后端点的配置方式发生变化,协议和地址分开了,不过还是可以按照这种方式理解。
Transformer 转换器,负责接收和发送的消息的格式转换,比如:ByteArrayToString transformer作用就是把字节数组转换成字符串
Router 路由器,在Connector发送或接收消息之前,对消息进行一些处理,比如:
outbound-pass-through-router 直接让消息通过的路由器
filtering-router 带过滤器的路由器
Filter 过滤器,对接收和发送的消息进行过滤,不符合规则的不让通过,只有满足过滤器的要求,消息才能通过。过滤器和路由器结合使用。
FilenameWildcardFilter 对文件名进行过滤
UMO Components 业务组件,这部分代码和mule可以没有任何关系,他可以是一些简单的javaBean,处理业务上面的事情,也可以什么都不干,直接让消息通过。
Inbound/Outbound 消息入口、出口
其他
Mule作为Java Application http://mulesource.org/display/MULE2INTRO/Embedding+Mule+in+a+Java+Application
Mule作为Web Application http://mulesource.org/display/MULE2INTRO/Embedding+Mule+in+a+Webapp
Mule作为ESB(Enterprise Service Network ) http://mule.mulesource.org/display/MULE2INTRO/LoanBroker+ESB
Mule作为ESN(Enterprise Service Network ) http://mule.mulesource.org/display/MULE2INTRO/Loan+Broker+Example