Mule ESB 用户手册
作者:杨欣华
第1章:Mule ESB简介
1、什么是Mule ESB?
Mule ESB是一种基于java的、轻量级的企业服务总线和集成平台,它允许开发者快速的、简单的连接应用,并能够实现数据的转换。
Mule ESB的主要功能如下:
● 服务的创建与管理(Service creation and hosting):用Mule ESB作为一个轻量级的服务容器来暴露和管理可重用的服务。
● 服务调解(Service mediation):隐藏服务消息的格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用。
● 消息路由(Message routing):基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。
● 数据转换(Data transformation):在不同的格式和传输协议中进行转换数据。
我们是否需要ESB?
这部分内容可以参考“To ESB or not to ESB”
Mule的核心竞争力
1、Mule的组件可以是你想要的任意类型。你可以轻松整合任何来自其他框架中某个组件的“简单的Java对象”(POJO)。
2、Mule和它的ESB模型能够重用重要组件。和其他框架不同,Mule允许你使用现有组件而不需要任何的修改。组件不需要任何Mule-specific编码,也不需要编程API,就能在Mule中运行。业务逻辑被完整的从消息逻辑中分离出来。
3、消息可以是任何格式,可以是SOAP,也可以是二进制图像文件。Mule没有任何设计约束,如:XML消息或WSDL 服务契约。
4、你可以部署Mule在多种拓扑结构中,而不仅仅是ESB。因为Mule是轻量级的,是可嵌入的。Mule可以大大降低产品上市时间,提高生产率,保证项目的安全,能够根据需要适应改变并向上或向下升级应用。
2、理解Mule ESB的消息框架
通过网络一个应用能发送数据到另一个应用。但是,许多应用没有能力读取或处理来自其他应用的数据。Mule ESB通过提供一个消息框架可以解决这个问题,这个消息框架能够在
应用间将数据作为消息来读取、转换和发送。每个消息都是一个仅仅是一个数据包,能够在应用间通过一个特别的通道被处理和发送。
spring framework 开发参考手册
和传统的ESB不同,Mule ESB只转换需要转换的数据。传统的ESB你不得不为每个应用都创建adapter,这些adapter用于将应用连接到总线上,并转换应用数据到一种单一的通用消息格式。开发这些adapter及处理每个消息需要大量的时间和精力。Mule ESB消除了单一消息格式化的需求。信息可以通过任何通道(如HTTP或JMS)传送,并且只转换那些需要转换的数据。因此Mule ESB和传统的ESB相比能够提升性能并降低开发时间。
参考文档:企业集成模式:设计、建立和部署消息解决方案
3、理解Mule ESB的架构
这一部分描述了Mule ESB架构的各个组成部分以及它们是如何处理消息和消息中的数据的。
SOA简介
SOA是面向服务的架构的缩写,是软件开发的发展方向。SOA允许IT 组织通过联合应用的功能组件或者服务来创建新的应用。使用SOA企业能大大节省开发成本并能迅速的适应业务条件的改变。SOA还能更好的整合企业的IT资源,包括早先独立开发的应用以及遗留系统。Mule ESB完全支持SOA方法论并能够编排互相通信的服务,使你能够很容易的将所用的应用整合到一起。
数据的处理
Mule ESB通过service component(service component)来处理消息,实现业务逻辑。Mule
ESBservice component的重要功能是不需要任何“Mule ESB-specific”编码,service component仅仅是一个包含用特殊方式处理数据的业务逻辑的POJO, Spring bean, Java bean, 或者web service。Mule ESB管理这些service component,通过设置配置文件来打包他们,暴露他们成服务并根据配置文件中这些服务的定义确保正确的消息传送给service component或由service component发出。
在service component中路由消息
service component通过inbound router和outbound router 来获得和发送消息,它们能保证
service component可以接收和发送正确的消息。inbound router用于指定service component即将处理的消息,它可以对消息进行过滤、聚合、重新排序,然后再传给service component。outbound router用于指定被service component处理后的消息将被发送到哪里。你可以定义多个inbound 和 outbound路由约束,甚至可以将router串联起来,共同为service component服务。
从消息中分离业务逻辑
在Mule ESB中,service component被完全从消息格式中分离出来(service components are completely shielded from the message format.)。Mule ESB用“transport”进行消息的搬运,且一种“transport”只能搬运一种数据,“transformers”用于改变消息负载的格式,转换消息对象的类型。值得注意的是“transformers”只是用来转换需要转换的数据,另外你可以用多个类型的“transport”来处理不同的“通道”(channels)
Wiring Everything Together(连接各个服务)
配置文件中的元素“Endpoints”主要用于将所有的服务连接起来。你需要在“inbound 和 outbound routers”中指定“Endpoints”,告诉Mule ESB什么样的“transport”被使用、发送消息去那里和那个service component应该接收这个消息。“Endpoints”主要的组成部分是以URI(uniform resource indicator)表示的地址。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论