




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.Mule介绍Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。2.MuleESB架构 Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、Transaction Management(事务管理)、Transformation(转换)、Message Broker(消息代理)、Transportation Management(传输管理)、Security(安全)等核心模块。Mule可以单独使用,也可以架设在常用的应用服务器上。外围系统的服务请求通过Mule ESB的Transport接入,Mule通过Transformer进行数据的格式转换,然后经过Inbound Router进行消息过滤(内部通过配置filter实现)后交给Mule的Component进行业务逻辑处理,处理后的结果通过Outbound Router确定传递给哪个接收方,然后通过Transformer进行数据格式转换,通过Transport连接至接收方,传递信息。此图描述的是Mule中的一个典型场景的处理过程,涵盖了Mule中的各个关键组件。其中某些处理步骤不是必须的,如Inbound Router、Transformer。后续可以看到一些其他场景的处理。3.功能a. 服务中介将业务逻辑和消息发送分离 屏蔽服务的消息格式和协议 提供任意位置的服务调用 提供协议桥接 b. 数据转换在应用间交换不同格式的信息 操作消息的负载内容,包括加密、压缩和编码转换 在异构的传输协议的数据类型间格式化消息 c. 消息路由基于消息内容和复杂规则路由消息 消息的过滤、聚合以及重新排列序号 d. 服务创建和托管暴露端点、EJB、Spring Bean以及POJO作为服务 作为轻量级的服务容器进行服务托管 4. 基本概念4.1 ModelModel表示托管各个服务的运行时环境。图 Model4.2 ServiceService是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。图 Service4.3 TransportTransport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。图 Transport4.3.1 ConnectorConnector用于管控特定协议的使用,如HTTP Connector、JMS Connector等。4.3.2 End-PointEndpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何被使用。Endpoint定义于Inbound和Outbound Router中。4.4 TransformerTransformer用于转换消息的内容。图 Transformer4.5 RouterRouter使用Filter基于消息中的属性信息进行消息的分发。图 RouterRouter在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。4.6 ComponentComponent是Service的核心部件,是Service的业务逻辑的实现。图 Component: implicit bridge componentComponent可以是Java Class(POJO、Spring Bean)、Web Service、Script等。Component可定义自己的生命周期:initialise、start、stop、dispose,不过需要实现Mule的LifeCycle接口。Mule 3.0版本开始提供PostConstruct和PreDestroy的注解,对应生命周期的initialise和dispose阶段,不需要实现Mule的LifeCycle接口了。4.7 Flow(since 3.0)Flow是Mule 3.0新引入的,包含一个消息源(Message Source)和多个消息处理器组成的处理器链。图 Flow5.消息传递方式5.1 异步方式异步方式是一种单向调用,调用者不需要获得响应。图 Asynchronous异步方式通过inbound和outbound endpoint的exchange-pattern=”one-way”实现。使用基本的Stdio Transport验证,通过标准输入传输字符串,将其原样传递给标准输出进行显示。相应配置如下: 运行服务,控制台显示结果如下:Please enter: Hello, world!INFO 2010-12-07 19:21:18,877 ConsoleConnector.dispatcher.1 org.mule.lifecycle.AbstractLifecycleManager: Initialising: ConsoleConnector.dispatcher.23255376. Object is: StdioMessageDispatcherINFO 2010-12-07 19:21:18,877 ConsoleConnector.dispatcher.1 org.mule.lifecycle.AbstractLifecycleManager: Starting: ConsoleConnector.dispatcher.23255376. Object is: StdioMessageDispatcherHello, world!其中INFO输出是Mule第一次初始化相应Connector打印出来的,之后调用服务不会再次显示。异步方式适用于简单的消息传递的场景。5.2 请求-响应方式请求-响应方式即请求方调用服务后,服务立即处理并返回响应结果,不需将消息再次传递。图 Request-Response请求-响应方式通过input endpoint的exchange-pattern=”request-response”实现,相应配置如下: 上边是通过service配置的,通过flow配置如下: 在浏览器中输入“http:/localhost:7007/services/Echo/echo/text/hello,world”,浏览器中会显示“hello,world”的输出信息。请求-响应方式适用于单次服务调用的场景。5.3 同步方式同步方式即请求方调用服务后,component将处理结果发送给另一个外部服务处理,并将处理结果反方向返回。图 Synchronous同步方式通过inbound和outbound endpoint的exchange-pattern=”request-response”实现,相应配置如下: 同步方式适用于通过Mule调用远程服务的场景。5.4 异步请求-响应方式异步请求-响应方式即请求方调用服务后不需要立即获得返回结果,component将请求发送给其他外围系统处理(可能有多个),全部处理完毕后通过指定的异步应答Router返回给请求方。图Asynchronous Request-Response异步请求-响应方式通过在OutBound Endpoint中增加reply-to以及增加async-reply节点实现,响应配置如下: 异步请求-响应方式适用于请求需要被多个远程服务并行处理,结果需要汇总处理后返回的场景。6. 配置模式Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。6.1 简单服务模式(simple service pattern)简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。图 简单服务模式简单服务模式通过simple-service元素配置,主要的元素属性包括:属性说明address服务监听的地址,如vm:incomponent-classComponent的实现类typedirect: 默认;jax-ws: 将component暴露为soap式的web service(component必须基于jax-ws的注解),address一般为Http Transport;jax-rs: 将component暴露为rest式的web service(component必须基于Path的注解),address一般为Http或Servlet Transport代码示例:Mule针对服务请求接入可以做额外的处理,比如增加Transformer配置进行数据转换。6.2 桥接模式(bridge pattern)桥接模式用于在inbound endpoint和outbound endpoint之间建立直接连接,不需要component提供业务逻辑。图 桥接模式桥接模式通过bridge元素配置,主要属性包括:属性说明inboundAddress服务请求接入地址outboundAddress服务接出的实际地址exchange-patternrequest-response:默认,返回处理结果;one-way:单向transactedtrue:在向outbound endpoint分发时使用事务;false:不使用事务代码示例:Mule在接入、接出的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。如果使用事务控制,对于异构的协议之间的事务需要有支持XA的事务控制器。6.3 校验器模式(validator pattern)校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果。通过校验的服务请求被异步分发给处理方。图 校验器模式校验器模式通过validator元素配置,主要属性包括:属性说明inboundAddress服务请求接入地址outboundAddress服务接出地址ackExpression表达式,用于构建服务请求被接收时的信息nackExpression表达式,用于构建服务请求被拒绝时的信息errorExpressionsince 3.0.1表达式,用于构建在服务请求分发出错时的信息validationFilter-ref过滤器的引用,也可以使用子元素指定用于确定服务请求是否被接收代码示例: 6.4 web服务代理模式(web service proxy pattern)Web服务代理模式用于将Web Service请求直接转发至远程目标Web Service服务端,Mule本身不提供实际的Web Service。图 web服务代理模式Web服务代理模式通过ws-proxy元素配置,主要属性包括:属性说明inboundAddressMule对外提供的地址outboundAddressWeb Service的实际地址代码示例: Mule在转发的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。通过发票处理这个例子,了解逻辑数据流程。 上图步骤说明: (1)、客户在公司网站上生成了一个订单,产生了一份发票,并将发票内容以XML的形式提交给/orders。 (2)、HTTP transport接收这个XML发票信息,将其打包成Mule消息。客户数据服务入站路由的终端设置为/orders,由于服务组件要求的消息格式是Java object,所以入站路由设置入站消息必须包含一个Java object,所以HTTP transport会将XML格式的发票转换成Java object类型,来适应相应服务。 (3)、将XML转换成Java Object。 (4)、将转换完成的消息发送给服务组件。 (5)、客户数据服务组件从总客户数据库中查询客户信息,并更新发票信息到数据库。 (6)、HTTP transport使用出站路由配置,确定将经过服务组件处理后的消息发送到/verify。 (7)、HTTP tra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国家基本公共卫生参考试题库大全(含答案)
- 2025年大学华文教育专业题库- 华文教育的未来发展趋势
- 2025年大学警卫学专业题库- 日常警卫工作与常规训练
- 2025年电工证考试题模拟试题(练习题附答案)
- 2025年钢琴演奏级考试模拟试卷:钢琴演奏级音乐节奏与拍子试题
- 2025年大学科学教育专业题库-科学实验在大学教育中的重要性
- 2025年大学移民管理专业题库- 移民管理卫生服务研究
- 2025年大学融合教育专业题库- 大学生融合教育的健康发展
- 2025年乡村医生考试:农村常见传染病防治与疫情社区支持系统试题库
- 2025年大学人文教育专业题库- 大学人文教育中的跨文化交流与理解
- 设备维护保养计划及执行记录模板
- 云南省建设厅安全b证考试题库及答案解析
- 外科感染与无菌操作课件
- 内部审核检查记录表
- 2025年肾脏病学CKD患者透析并发症应对模拟考试答案及解析
- 【《航空发动机最小点火量的计算过程概述》1000字】
- 2025-2026学年七年级上册数学(人教版)教学计划(三篇)
- 八师兵团职工考试题库及答案
- 数据安全国家标准体系(2025 版)
- 潍坊市2026届高三开学调研监测考试物理试题及答案
- 抢救护理记录书写规范与技巧
评论
0/150
提交评论