Mule技术文档_第1页
Mule技术文档_第2页
Mule技术文档_第3页
Mule技术文档_第4页
Mule技术文档_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、演示讲稿演示讲稿主讲主讲:王老师:王老师演示内容列表说明(共7个) 1、什么是ESB? 2、Mule ESB 介绍3、IDE编辑器的安装与配置4、Mule ESB 快速入门-Hello World DEMO演示与部署5、Mule ESB Message与表达式详解6、常用Mule ESB组件7、Mule ESB与J2EE集成第一节第一节 什么是什么是 ESB ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供

2、比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。应用系统服务提供方认证认证授权授权报文报文日志日志消息消息路由路由异常异常处理处理格式格式检查检查系统1系统2系统3系统4服务A服务B服务C服务DESBESB ESB提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构企业环

3、境的集成需求。它可以在不改变现有基础结构的情况下让几代技术实现互操作。 通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口,并能够在部署环境中支持任何标准。更重要的是,充当“缓冲器”的ESB(负责在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而使得不同的应用程序可以同时使用同一服务,用不着在应用程序或者数据发生变化时,改动服务代码。第二节第二节 Mule ESB介绍介绍 Mule ESB是一个基于JAVA的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无

4、论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。 特点- 基于Flows配置,支持多种脚本开发 可视化图元拖拽简化开发,支持flow嵌套,支持多种脚本开发: Groovy, Python, Java script, Ruby, MEL(Mule Expression Language)- 开源&社区活跃度 在开源ESB中,活跃程度最高,用户量大,不断推出新版本。 - 易用性 “让一切变得更简单”是Mule的宗旨。2次重构核心架构、推出接入云应用, 消息流,基于flow的配置以及热部署。- 扩展性 增加一个新协议非常简单,只需实现5个接口类即可。

5、 - 管理性 强大的 Mule Management Console(收费),易用的管理、部署和监控应用。 - 文档 文档非常丰富,降低了使用门槛。 的主要功能的主要功能 Mule ESB具有如下四个主要功能: 服务的创建与管理(Service creation and hosting) 服务调解(Service mediation) 消息路由(Message routing) 数据转换(Data transformation)强大的 Mule Studio 支持可视化ESB开发XML EditorVisual Editor可拖拽图元开发各种协议支持、流程控制、格式转换、错误处理第三节第三节

6、Mule 安装与配置安装与配置 目前Mule的最新版本是3.7.0,从Mule3.6.0开始支持的JDK版本为1.7;支持JDK1.6的最高版本为3.5.03.5.2;1、由于Mule基于JAVA开发,所以必须先在开发环境中安装好JDK,并配置好了环境变量。2、同样Mule使用Maven管理,所以也建议先在开发环境中安装好Maven软件,并配置好环境变量。 第一种:在官网地址https:/ Studio 3.7EE(企业版运行时环境),所以如果想在其他版本环境上进行开发工作,就需要单独下载各个版本的运行时环境。安装完成,即可进行开发工作。 第二种:直接在Eclipse上以安装插件的方式,进行安

7、装Mule Studio 的IDE,安装完成后,同样也可以进行Mule 开发。插件地址为/3.4/plugin1、社区版不支持“High Availability”,只支持“Self-healing connections”2、社区版不是所有的Connector、Transformer都可以用(Data Mapper就不支持社区版)3、社区版不支持Any point Enterprise Security,需要自己实现安全部分4、社区版不支持使用Any point Templates,也不能获得官方的升级bug修复包5、社区版只能手动部署,而企

8、业版可通过MMC进行远程部署和批量部署*其它具体详细信息登录上面网址http:/ Mule 快速入门快速入门1、创建 FLOW流程,配置流程组件。2、拖放 Http End Point 组件3、拖放 Expression Filter组件4、拖放 Set Pay Load Trans Formers组件5、拖放 Logger Component组件6、填写相应组件配置 1、创建 FLOW流程,配置流程组件。2、拖放 Generic End Point 组件3、拖放 JAVA Component组件4、填写相应组件配置,设置自定义全局转换器5、编写自定义的JAVA Transformer pac

9、kage com.test.demo2;import org.mule.api.MuleMessage;import org.mule.api.transformer.TransformerException;import org.mule.transformer.AbstractMessageTransformer;public class HttpDataToPersonTransforms extends AbstractMessageTransformerOverridepublic Object transformMessage(MuleMessage message, String

10、 outputEncoding)throws TransformerException String name = message.getInboundProperty(name);String age = message.getInboundProperty(age); return new Person(name,age);package com.test.demo2;import org.mule.api.transformer.TransformerException;import org.mule.transformer.AbstractTransformer;public clas

11、s StringToHtmlTransform extends AbstractTransformerOverrideprotected Object doTransform(Object src, String enc)throws TransformerException String str = (String)src;return HtmlTemplateUtil.getSimpleHtml(str);package com.test.demo2;public class PersonServices public String sayHello(Person person)retur

12、n 你好你好,欢迎欢迎+person.getAge()+岁的岁的+person.getName()+.;public String sayLove(Person person)return “亲爱的用户亲爱的用户:+person.getName()+,欢迎您,欢迎您.;1、创建 FLOW流程,配置流程组件。2、拖放 Http End Point 组件3、拖放 Chioce FLowControl组件4、拖放 variable Transformer组件5、拖放 set Pay Load Transformer组件6、拖放 Logger Components组件7、填写相关配置 第五节第五节 M

13、ule Message与表达式表达式详解 MULE ESB服务编排以流(FLOW)为单位进行编排,每个流一般都由以下几个常用节点元素组成 (inbound-endpoint) (component) (transformer) (flow control) (outbound-endpoint) (scope) (filter) (Global Element:端点连接器、消息转换器、云连接器、过滤器) (Cloud Connector) MULE编排的基本原则 流编排中的每个节点的输入是上一节点的输出,每个节点的输出是下一节点的输入,这个传输数据在MULE中被称之为payload,封装在一个

14、Mule Message 的对象中进行传输 当上一节点的输出和下一节点的输入类型不一致时,在两个节点之间编排消息转换器 当需要依据上一节点的输出payload进行分支编排时,编排流分支选择控制器Mule ESB开发要掌握的核心内容 熟悉MEL( Mule Expression Language )语言 了解MuleMessage的结构和Payload对象(非常(非常重要)重要) 对常用的connector、scoper、component、transformer、filter、flowControl、errorHanding要熟悉 了解APIkit Router 和 APIkit Consol

15、e,熟悉RAMLMuleESB中的4大对象1 1、serverserver对象:对象:#server.dateTime2 2、mulemule对象对象#mule.version3 3、appapp对象对象#4 4、messagemessage对象对象#message.payload/documentation/display/current/Mule+Expression+Language+Reference只读对象和可写对象只读的(部分举例):#server.dateTime#server.host#mule.clusterId#a

16、pp.workdir#message.dataType#message.inboundProperties.city可读写的(部分举例) :#message.payload = server.dateTime#message.outboundPropertiescity =shanghaiMEL基本语法 # 表达式 例如:#server.dateTime#2 + 2 = 4#message.inboundPropertieshttp.query.paramsuId#message.inboundProperties.city#message.inboundPropertiescity#xpat

17、h(/user/username).text/documentation/display/current/Mule+Expression+Language+Basic+SyntaxMule Message的结构/documentation/display/current/Mule+Message+StructureMessage中的PropertiesProperties主要分2种:Inbound properties 和 Outbound propertiesMessage中的VariablesVariables主要分2种:Flow Vars:只在同一个Flow中使用Session Vars:在同一个appliaction下的所有Flow使用注:Record variables (只能在(只能在batch中使用)中使用)第六节第六节 常用常用Mule ESB组件第七节第七节 Mule 与与J2EE集成集成1、将%MULE_HOME%libmule和%MULE_HOME%libopt目录下的所有文件复制到J2EE项目的WEB-INFlib目录下。如果在后面运行过程中提示少jar包,请仔细对照后,从%MULE_HOME%lib文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论