欢迎来到天天文库
浏览记录
ID:20794297
大小:681.17 KB
页数:7页
时间:2018-10-16
《浅谈Mule ESB架构设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、浅谈MuleESB架构设计一、简介Mule是一个基于Java的轻量级企业服务总线和集成平台。它的主要特性包括:1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker);2.可插入的连接性,支持20多种传输协议,比如:jms、jdbc、tcp、udp、multicast、http、servlet、smtp、pop3、file、xmpp等;3.支持任何传输之上的异步,同步和请求响应事件处理机制;4.支持Axis或者Glue的WebService;5.灵活的部署结构,包括Client/Server,P2P
2、,ESB和EnterpriseServiceNetwork;6.与Spring框架集成:可用作ESB容器,也可以很容易的嵌入到Spring应用中;7.使用基于SEDA处理模型的高度可伸缩的企业服务器;8.强大的基于EIP模式的事件路由机制等。二、整体结构图1整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、TransactionManagement(事务管理)、Transformation(转换)、MessageBroker(消息代理)、Tr
3、ansportationManagement(传输管理)、Security(安全)等核心模块。Mule可以单独使用,也可以架设在常用的应用服务器上。图2架构简图(1)外围系统的服务请求通过MuleESB的Transport接入,Mule通过Transformer进行数据的格式转换,然后经过InboundRouter进行消息过滤(内部通过配置filter实现)后交给Mule的Component进行业务逻辑处理,处理后的结果通过OutboundRouter确定传递给哪个接收方,然后通过Transformer进行数据格式
4、转换,通过Transport连接至接收方,传递信息。此图描述的是Mule中的一个典型场景的处理过程,涵盖了Mule中的各个关键组件。其中某些处理步骤不是必须的,如InboundRouter、Transformer。图3架构简图(2)图4架构简图(3)三、功能a)服务中介1.将业务逻辑和消息发送分离;2.屏蔽服务的消息格式和协议;3.提供任意位置的服务调用;4.提供协议桥接。b)数据转换1.在应用间交换不同格式的信息;2.操作消息的负载内容,包括加密、压缩和编码转换;3.在异构的传输协议的数据类型间格式化消息。c)消
5、息路由1.基于消息内容和复杂规则路由消息;2.消息的过滤、聚合以及重新排列序号。d)服务创建和托管1.暴露端点、EJB、SpringBean以及POJO作为服务;2.作为轻量级的服务容器进行服务托管。四、基本概念MuleESB中有一些基本的概念,理解这些基本概念后才能理解Mule的内部机制。从中也可以看到Mule解决问题的基本思路。4.1ModeModel表示托管各个服务的运行时环境。图5Model4.2ServiceService是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。图6Service4
6、.3TransportTransport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。图7Transport4.3.1ConnectorConnector用于管控特定协议的使用,如HTTPConnector、JMSConnector等。4.3.2End-PointEndpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何
7、被使用。Endpoint定义于Inbound和OutboundRouter中。4.4TransformerTransformer用于转换消息的内容。图8Transformer4.5RouterRouter使用Filter基于消息中的属性信息进行消息的分发。图9RouterRouter在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。4.6ComponentComponent是Service的核心部件
8、,是Service的业务逻辑的实现。图10Component:implicitbridgecomponentComponent可以是JavaClass(POJO、SpringBean)、WebService、Script等。Component可定义自己的生命周期:initialise、start、stop、dispose,不过需要实现Mule的LifeCyc
此文档下载收益归作者所有