Mule ESB Hello实例(四)
MuleESB简介
Mule ESBMule ESB简介什么是Mule ESB?Mule ESB是一种基于java的、轻量级的企业服务总线和集成平台,她允许开发者快速的、简单的连接应用,并能够实现数据的转换。
从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。
目前许多公司都使用了Mule,比如沃尔玛,惠普,索尼,Deutsche Bank 以及CitiBank 等公司。
Mule官方网站:/Mule ESB的主要功能如下:●服务的创建与管理(Service creation and hosting):用Mule ESB作为一个轻量级的服务容器来暴露和管理可重用的服务。
●服务调解(Service mediation):隐藏服务消息的格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用。
●消息路由(Message routing):基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。
●数据转换(Data transformation):在不同的格式和传输协议中进行转换数据。
Mule3Mule近期推出了Mule3,Mule3的新增特点-云连接(Cloud Connect)。
云连接提供了可以用简单安全的方式为企业提供基于云技术的数据和服务。
它的核心是IBeans,一个轻量级、可重用的接口,用于Web技术的连接扩展和数据服务。
Mule云包括以下内容1、Integration Beans (合成bean):他们是可重用的云接口,可以注入到组件中,可以接受外部的服务,比如说亚马逊、推特、Facebook等,并且是一种简单的接收服务、管理安全机制的方法。
请求验证、数据传输、错误挂起等也可以通过这种方法来实现。
2、Rest / JAX-RS:(REST协议:即REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
MULE开发.pptx
现有很多系统架构:
系统A
系统B
系统C
系统D
系统交互性太多,系统依赖太多,当一个系统down掉,所有系统都可能受到影响
ESB系统结构结构:
系统A
系统B
系统C
系统D
BUS(总线)
系统E
系统F
系统之间交互性少,相互之间依赖少,当一个系统down掉,影响少
现有的ESB产品:
ESB框架最基础的支持:
1、官方网站 && 下载地址 2、安装以及配置 3、目录介绍 4、运 行 5、MULE IDE
一、官方地址
二、设置环境变量( MULE_HOME 和 PATH) set MULE_HOME=C:\Mule set PATH=%PATH%;%MULE_HOME%\bin
三、目录介绍:
/bin
Shell and batch scripts for controlling Mule from the command line
Connector
Transformer
Transport (抽象概
念)
文件
控制台 (STDIO)
邮件 (IMAP && SMTP)
WEBSERVICE(CXF && AXIS)
HTTP
Hale Waihona Puke JMSFTPJDBC
EJB
XMPP
VM
标准输入输出通道:
主要用于测试目的: Inbound:用于在控制台接受用户的输入信息 Outbound:用于在控制台输出业务信息
/licenses License information for all libraries shipped with Mule
ESB Mule 中间件技术
目前ESB与SOA的确切概念依然没有。但可以明确的 说SOA就是一种服务集成思想,它的不同实现方式 可能差别很大,目前SOA最常见的实现方式是SCA和 JBI。 首先,ESB不是SOA。SOA的最常见的实现方式方式 是SCA和JBI,而SCA的实现需要ESB,相反JBI则不需 要ESB。 其次,因为IBM和Oracle(收购了BEA和SUN的牛X 公司)都推崇SCA模式的SOA,因此SCA实际上已经 成为SOA的事实标准,说道SOA,最先想到的就是 SCA模式了。 最后,ESB是SCA架构实现不可缺少的一部分,ESB 产品脱离了具体的应用外,没有任何意义。ESB的 作用在于实现服务间智能化集成与管理的中介。 通过ESB可以访问所集成系统的所有已注册服务。
Enterprise Service Bus 技术介绍
刘刚 Peking University 2011-04-01
提纲
EAI、SOA与ESB
– – – – – – – – – 什么是EAI 什么是SOA EAI向ESB的发展 SOA与ESB的关系 什么是ESB ESB功能模型 ESB最简功能定义 ESB常用技术与规范 其它开源ESB实
4、服务质量
• 事务(原子事务、补偿、Web 服务事务 (WS-Transaction)) • 各种确定的传递范例(例如 Web 服务可靠 消息传递(WS-ReliableMessaging)或对 EAI 中间件的支持)
5、安全性
• • • • • 身份验证 授权 不可抵赖性 机密性 安全标准(例如 Kerberos 和 Web 服务安全 性(WS-Security))
6、服务级别
• • • • 性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法
MuleESB 3.0 中文教程(繁体)
MuleESB 3.0 中文教程(繁體)什麼是Mule ESB?Mule ESB是一種基於java的、羽量級的企業服務匯流排和集成平臺,她允許開發者快速的、簡單的連接應用,並能夠實現資料的轉換。
從2005年發表1.0版本以來,Mule吸引了越來越多的關注者,成為開源ESB中的一支獨秀。
目前許多公司都使用了Mule,比如沃爾瑪,惠普,索尼,Deutsche Bank 以及CitiBank 等公司。
Mule官方網站:/Mule ESB的主要功能如下:●服務的創建與管理(Service creation and hosting):用Mule ESB作為一個羽量級的服務容器來暴露和管理可重用的服務。
●服務調解(Service mediation):隱藏服務消息的格式和協定,將業務邏輯從消息中獨立出來,並可以實現本地獨立的服務調用。
●消息路由(Message routing):基於內容和規則的消息路由、消息過濾、消息合併和消息的重新排序。
資料轉換(Data transformation):在不同的格式和傳輸協定中進行轉換資料。
Mule3Mule近期推出了Mule3,Mule3的新增特點-雲連接(Cloud Connect)。
雲連接提供了可以用簡單安全的方式為企業提供基於雲技術的資料和服務。
它的核心是IBeans,一個羽量級、可重用的介面,用於Web技術的連接擴展和資料服務。
Mule雲包括以下內容1、Integration Beans (合成bean):他們是可重用的雲介面,可以注入到元件中,可以接受外部的服務,比如說亞馬遜、推特、Facebook等,並且是一種簡單的接收服務、管理安全機制的方法。
請求驗證、資料傳輸、錯誤掛起等也可以通過這種方法來實現。
2、Rest / JAX-RS:(REST協議:即REST(Representational State Transfer表述性狀態轉移)是一種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的可伸縮性。
ESB的开源框架Mule介绍
2013-8-14
3
ESB实现功能
• 传输器,转换器,路由器三者是ESB的 公共核心功能。 • 还包括事务、安全、异常管理 、JMX管 理架构、服务质量保证、定义和发现已 部署服务等。
2013-8-14
4
开源ESB框架
有三种比较流行的ESB开源框架,分别是 OpenESB ServiceMix Mule
2013-8-14
8
二 Mule介绍
• • • • Mule框架简介 Mule框架作用和强项 Mule框架构成 Mule与SOF框架关系
2013-8-14
9
Mule介绍
Mule 是一个基于ESB架构理念的消息平 台。是开放源码界最早成立的ESB项目 之一。其实现思想是不用更改既有系统, 直接透过组态设定,就可连接各服务端 点。 Mule将POJO对象包装成UMO对象,再 提供简单和一致的接口供外界访问,而 访问者不需要关心实现的细节。
11
Mule应用场景
2013-8-14
12
Mule总体框架
2013-8-14
13
Mule Manager
• Mule Manager是Mule server 实例的中心 (也称为一个Mule Node)。其主要的角色 是管理各种对象,比如Mule实例的连接 器、端点和转换器。这些对象然后被用 来控制进出服务组件的消息流,并且为 Model和它所管理的组件提供服务。
2013-8-14
5
OpenESB
OpenESB项目实现了一个运行期企业服 务总线(Enterprise Service Bus:ESB)使用 JBI(Java业务集成)作为核心基础。 OpenESB可以让你集成企业应用与Web Service松散地连接成复合的应用程序。 这使得你可以无缝地组合与拆解该复合 应用程序,并认识到一个真正面向服务 架构(SOA)的优点
Mule ESB使用手册
Mule ESB Studio v3.3 安装使用手册1***初级教程***如果你还没有做好准备,请到下载免费的社区版Mule ESB,按照网站上的说明启动Mule Studio,并且选择一个工作区(另外,你还可以下载30天免费试用的企业版Mule ESB)2安装Mule Studio安装前,请确认你的机器上已经安装了1.6版本的JDK。
最后请确认你的JDK环境变量配置是否正确2.1 导出将下载的文件解压到你的硬盘分区的根目录下,例如:C:\1. 执行找到C:\MuleStudio目录,运行muleStudio.exe启动Studio2. 选择工作区点击OK使用默认的工作区3使用Studio模板1. 点击File菜单,选择New > Mule Project2. 出现New Mule Project面板后,为你的项目输入名称和一个简短的说明,如图:3. 在Server Runtime选项上选择你将要使用的Mule运行时版本,如图:4. 点击旁边的复选框,根据现有的模板创建项目,单击项目,选择你想要使用的模板创建项目,如图:5. 点击Finish按钮,Mule Studio会创建并打开一个新的项目,完成预创建和预配置的流程6. 在Mule Studio的Package Explorer栏中,右键点击mule-config.mflow文件,选择RunAs > Mule Application7. 停止运行该项目,请在Mule Studio控制台点击红色的Terminate按钮,如图:4运行独立的例子1. 到Mule ESB Standalone目录下,找到Examples目录下你想运行的例子2. 拷贝.zip文件的例子到$MULE_HOME/apps目录下,例如:运行Flight Reservationexample的例子,拷贝mule-example-flight-reservation-3.3.0.zip到$MULE_HOME/apps 目录下,如图:3. 启动Mule,运行这个例子5启动Mule Studio如果你在安装过程中启动了Mule Studio,并且已经在运行了,请跳过本节的其余部分,直接进行:创建新项目如果当前Mule Studio没有启动,通过完成下面的步骤启动应用程序1. 找到Mule Studio安装目录2. 执行muleStudio.exe3. 点击OK使用默认的工作区6创建新项目1. 如果你看到是各种控制组件的应用程序窗口(右下图),请直接进入第2节。
mule——精选推荐
muleMule⼊门⽂档零、前提在按照本⽂进⾏操作之前,假设您的系统已经具备以下前提:已经安装了Sun公司的JDK1.4或JDK5.0版本,推荐使⽤JDK5.0。
正确设置了JAVA_HOME环境变量到JDK⽬录(注意不是JRE⽬录)。
确保%JAVA_HOME%\bin路径在系统寻找路径中。
安装有Eclipse3.2或以上版本的开发环境。
安装有Apache Tomcat 5.0或以上版本,推荐使⽤5.5。
⽂档假设Tomcat的安装⽬录为%TOMCAT_HOME%。
⼀、下载与安装到Mule的官⽅⽹站(/doc/ce7750612.html/display/MULE/Download)上下载Mule 的最新稳定版,⽬前是1.3.3(/doc/ce7750612.html/ccount/click.php?id=17),也可以使⽤社区版的1.4.1(/doc/ce7750612.html/ccount/click.php?id=33)。
本⽂档以1.3.3版为例,1.4.1请参照⽂档⾃⾏修改。
下载后得到⼀个ZIP格式的压缩⽂件mule-1.3.3.zip,将该⽂件解压⾄任⼀⽬录,假设为C:\mule-1.3.3,本⽂档以环境变量MULE_HOME表⽰该⽬录。
⼆、运⾏Echo⽰例Mule⾃带了很多⽰例,从最简单的echo⽰例到⼀个⽐较完整的贷款中介服务loanbroker。
每个⽰例程序都分为ant和maven两个版本,它们分别位于%MULE_HOME%\examples\ant和%MULE_HOME%\examples\maven⽬录下。
⽂档将以ant版本为例说明如何运⾏echo⽰例。
1、到apache官⽅⽹站的ant项⽬下载页(/doc/ce7750612.html/bindownload.cgi)上下载ant1.7.0(/doc/ce7750612.html/ant/binaries/apache-ant-1.7.0-bin.zip),下载后将⽂件解压到任⼀⽬录(假设为C:\apache-ant-1.7.0,⽂档中表⽰为ANT_HOME环境变量)。
Mule技术文档
- 管理性
- 文档
的主要功能
• Mule ESB具有如下四个主要功能: • 服务的创建与管理(Service creation and hosting) • 服务调解(Service mediation) • 消息路由(Message routing) • 数据转换(Data transformation)
应用系统
服务提供方
系统1
服务A
ESB 系统2
格式 检查 认证 授权 报文 日志 消息 路由 异常 处理
服务B
系统3
服务C
系统4
服务D
ESB提供了一种开放的、基于标准的消息机制,通过简单的标 准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操 作,能够满足大型异构企业环境的集成需求。它可以在不改变现有 基础结构的情况下让几代技术实现互操作。 通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝 的非侵入方式使企业已有的系统具有全新的服务接口,并能够在部 署环境中支持任何标准。更重要的是,充当“缓冲器”的ESB(负责 在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而 使得不同的应用程序可以同时使用同一服务,用不着在应用程序或 者数据发生变化时,改动服务代码。
可视化图元拖拽简化开发,支持flow嵌套,支持多种脚本开发: Groovy, Python, Java script, Ruby, MEL(Mule Expression Language)
在开源ESB中,活跃程度最高,用户量大,不断推出新版本。 “让一切变得更简单”是Mule的宗旨。2次重构核心架构、推出接入云应用, 消息流,基于flow的配置以及热部署。 增加一个新协议非常简单,只需实现5个接口类即可。 强大的 Mule Management Console(收费),易用的管理、部署和监控应用。 文档非常丰富,降低了使用门槛。
Mule ESB介绍
消息路由(Message routing) 基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。
数据转换(Data transformation) 在不同的格式和传输协议中进行转换数据。
Mule是什么?
Mule ESB是一种基于Java的、轻量级的企业服务总线和集成平台,它允 许开发者快速的、简单的连接应用,并能够实现数据的转换。
BusinessMatrix 2009, Title of Presentation, Speaker Name 4
Mule是什么?
Mule ESB是一种基于Java的、轻量级的企业服务总线和集成平台,它允 许开发者快速的、简单的连接应用,并能够实现数据的转换。
1、Integration Beans (合成bean):他们是 可重用的云接口,可以注入到组件中,可以接受 外部的服务,比如说Amazon、twitter、 Facebook等,并且是一种简单的接收服务、管 理安全机制的方法。请求验证、数据传输、错误 挂起等也可以通过这种方法来实现。
2、Rest / JAX-RS:(REST协议:即 REST(Representational State Transfer表述性 状态转移)是一种针对网络应用的设计和开发方 式,可以降低开发的复杂性,提高系统的可伸缩 性。)
BusinessMatrix 2009, Title of Presentation, Speaker Name 2
Mule是什么?
Mule ESB是一种基于Java的、轻量级的企业服务总线和集成平台,它允 许开发者快速的、简单的连接应用,并能够实现数据的转换。
Mule入门篇
2021/5/9
- 14
Mule配置文件
2021/5/9
- 15
Mule配置文件(2)
2021/5/9
- 16
FAQ
2021/5/9
- 17
结束
2021/5/9
- 18
● 服务端点 EndPoint
端点的功能相当于网关,或者说是连接服务组件到外部 消息的通道,它可以位于本地也可以位于网络上,如图所示, Mule可以被配置为在端点上拦截消息,如果需要,然后将消息 进行转换,转换后再传递给服务组件。
● 消息路由 Router
消息路由控制组件如何接收消息,以及在处理后应该发送到何 处去,入站路由控制服务如何处理入站消息(如,有选择地允许 那些符合特定标准的消息),出站路由控制服务处理完消息后该 将其发往何处(如,将其发送到接收者的列表,或将消息拆分, 然后发送到不同的端点),如图5所示。路由是和过滤器结合工 作的,过滤器指定限制条件,只有符合条件的消息才能被路由到 服务,并包括一个表达式从当前消息中提取信息。
● 面向服务
将系统进行功能化,每个功能提供一种服务。现在非常流行WebService技术以及SOA(面向服务架构)技术。
2021/5/9
-1
一、Mule 引言
SOA(Service-Oriented Architecture) 面向服务架构
概念: SOA是一个组件模型,它将不同应用程序的功能单元(称为服务)通过这些服务之间定义良好的接口和契约联 系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和 编程语言。这使得 构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
Mule基于Java平台,是一个轻量级的消息框架,可让您快速,轻松地连接您的应用程序
mule简介
Mule是一个企业服务总线(ESB)消息框架,而且Mule是一个轻量级且高度可扩展的ESB。
主要特性1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker).2.可插入的连接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smt3.支持任何传输之上的异步,同步和请求响应事件处理机制.4.支持Axis或者Glue的Web Service.5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterp6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应7.使用基于SEDA处理模型的高度可伸缩的企业服务器.8.强大的基于EIP模式的事件路由机制等.9.支持声明性和编程性事务,包括XA 支持10.对事件的路由、传输和转换的断到端支持11.使用基于SEDA处理模型的高度可伸缩的企业服务器12.支持REST API 来提供技术独立和语言中立的基于web的对Mule 事件的13.动态、声明性的,基于内容和基于规则的路由选项14.非入侵式的方式。
任何对象都可以通过ESB 容器管理15.强大的应用集成框架16.完整的可扩展的开发模式更详细的介绍:/SteelHand/archive/2005/05/18/47 mule2.0发布的中文说明:/java/20080429/7664.htmlMule 2.x User Guide/display/MULE2USER/Home架构一些名词说明Transport Mule的传输层,由很多组件构成Connector连接器,负责发送和接Endpoints端点,发送和接收消息2.0版本以后端点的配Transformer转换器,负责接收和发Router路由器,在ConnectorFilter过滤器,对接收和发送UMO Components业务组件,这部分代码Inbound/Outbound消息入口、出口其他Mule作为Java ApplicationMule作为Web ApplicationMule作为ESB(Enterprise Service Network )Mule作为ESN(Enterprise Service Network )Mule Messaging Styles Mule的消息机制Asynchronous异步Request Response请求响应Synchronous同步Remote Synchronous远程同步Async Request Responsemule-2.0.1中hello例子的配置文件<?xml version="1.0" encoding="UTF-8"?><mule xmlns="/schema/mule/core/2.0"xmlns:xsi="/2001/XMLSchema-instance"xmlns:spring="/schema/beans"xmlns:stdio="/schema/mule/stdio/2.0"xmlns:vm="/schema/mule/vm/2.0"xsi:schemaLocation="/schema/beans /s /schema/mule/core/2.0 /sch /schema/mule/stdio/2.0 /sc /schema/mule/vm/2.0 /schem <description>The hello sample application has two components -1. The Greeter component that adds a greeting to the event it receives2. The ChitChater component that adds some additional conversation to the event it rece An event is triggered by input through the system console and the outbound event isaslo written out through the system console.This configuration also demonstrates user and system error handling. User error handlin an error message to the end user. System error handling logs errors.</description><!--The system stream connector is used to send and receive information via theSystem.in and System.out. Note this connector is only really useful for testingpurposes.promptMessage - is what is written to the console<outbound-pass-through-router><stdio:outbound-endpoint system="ERR"/> </outbound-pass-through-router></outbound></service></model></mule>可扩展的ESB。
ESB产品MULE学习笔记系列:一、怎样让Mule在webapp中结合Spring使用
ESB产品MULE学习笔记系列:一、怎样让Mule在webapp中结合Spring使用ESB产品MULE学习笔记系列:一、怎样让Mule在webapp中结合Spring使用从形势来看,如果应用不使用 Spring 就感觉有点落伍——说法有点别扭:好像有点过。
诚然, Spring 给我们带来了太多的好处,以至于几乎大部分的产品都以声称能够整合 Spring 为荣, Mule 也不能免俗:)从官方来看, mule 与 spring 的结合有三种做法:1 、 Using Spring as a Component FactoryHow to configure the Spring Container with Mule so that Managed components and other Mule objects can be loaded from Spring.2 、 Configuring the Mule Server From a Spring ContextA Mule server is just a bunch of beans! How to load a Mule instance from the Spring Container.3 、 Configuring a Spring context using Mule XmlThere are lots of reasons why you might want to use Mule and Spring together, but configuring Mule in Spring bean Xml can be a verbose process. Now you can configure it using Mule Xml and mix Spring beans in the configuration.1.1.1. Using Spring as a Component Factory我下面首先尝试的是第一种。
Mule ESB使用手册
Mule ESB Studio v3.3 安装使用手册1***初级教程***如果你还没有做好准备,请到下载免费的社区版Mule ESB,按照网站上的说明启动Mule Studio,并且选择一个工作区(另外,你还可以下载30天免费试用的企业版Mule ESB)2安装Mule Studio安装前,请确认你的机器上已经安装了1.6版本的JDK。
最后请确认你的JDK环境变量配置是否正确2.1 导出将下载的文件解压到你的硬盘分区的根目录下,例如:C:\1. 执行找到C:\MuleStudio目录,运行muleStudio.exe启动Studio2. 选择工作区点击OK使用默认的工作区3使用Studio模板1. 点击File菜单,选择New > Mule Project2. 出现New Mule Project面板后,为你的项目输入名称和一个简短的说明,如图:3. 在Server Runtime选项上选择你将要使用的Mule运行时版本,如图:4. 点击旁边的复选框,根据现有的模板创建项目,单击项目,选择你想要使用的模板创建项目,如图:5. 点击Finish按钮,Mule Studio会创建并打开一个新的项目,完成预创建和预配置的流程6. 在Mule Studio的Package Explorer栏中,右键点击mule-config.mflow文件,选择RunAs > Mule Application7. 停止运行该项目,请在Mule Studio控制台点击红色的Terminate按钮,如图:4运行独立的例子1. 到Mule ESB Standalone目录下,找到Examples目录下你想运行的例子2. 拷贝.zip文件的例子到$MULE_HOME/apps目录下,例如:运行Flight Reservationexample的例子,拷贝mule-example-flight-reservation-3.3.0.zip到$MULE_HOME/apps 目录下,如图:3. 启动Mule,运行这个例子5启动Mule Studio如果你在安装过程中启动了Mule Studio,并且已经在运行了,请跳过本节的其余部分,直接进行:创建新项目如果当前Mule Studio没有启动,通过完成下面的步骤启动应用程序1. 找到Mule Studio安装目录2. 执行muleStudio.exe3. 点击OK使用默认的工作区6创建新项目1. 如果你看到是各种控制组件的应用程序窗口(右下图),请直接进入第2节。
Mule开源ESB资料整理
Mule总体架构:Mediation:SeparatingBusiness Logic from MessagingReference:/documentation/display/MULE3CONCEPTS/ Mediation+-+Separating+Business+Logic+from+MessagingMule ESB 能够处理通过多种协议发送的消息,消息的传递和转换对于服务组件来说是完全透明的,Mule通过服务中间件来转换消息,使每个需要该消息的组件都能收到自己满足自己的消息协议的消息。
在传输消息的过程中,Mule 不会统一消息的格式,也就是说对于需要转换协议的消息,mule才会对其进行转换,而对于不需要转换的消息,mule是不会对其进行转换的。
Mule在消息传递的过程中还允许对消息的内容的添加和丰富,使得消息接收端能够接受到一些额外的消息。
总结:这个组件,对应于ESB功能点中的通信功能,主要是提供协议的转换。
该组件的核心是transformer。
该组件在ESB 中属于底层的组件,相当于ESB的功能点中的协议标准转换。
Orchestration:Routing Messages Between Components Reference:/documentation/display/MULE3CONC EPTS/Orchestration+-+Routing+Messages+Between+Service+Co mponents该组件的主要作用是负责服务组件之间的消息路由,它并不关心消息是如何接受和发送的。
组件关系的是数据本身的处理,包括数据的过滤,转化,路由。
在消息的处理上,Mule提供了三种方法:1.Flows,它是Mule3新加的方法。
是最强大的也是最灵活的处理方式。
你能够自主的选择Mule提供的全部的消息处理器,包括过滤器,转换器,路由器,组件和其他来创建满足你需要的处理逻辑。
MuleESB介绍
MuleESB介绍1. 简介Mule ESB是⼀个基于Java的轻量级企业服务总线和集成平台,允许开发⼈员快速便利地连接多个应⽤,并⽀持应⽤间的数据交换。
Mule ESB⽀持集成现有系统⽽⽆论其底层采⽤何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。
2. 整体结构图整体结构从上图可见,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作为服务作为轻量级的服务容器进⾏服务托管Mule ESB中有⼀些基本的概念,理解这些基本概念后才能理解Mule的内部机制。
Mule ESB调用外部WebService(Basic)
调用外部WebService(Basic)M ule E SB(社区版) 实例分享(Web Service Consumer调用外部WebService)本文分享Mule ESB使用Web Service Consumer组件调用外部WebService的简单的实例,无参数的WebService方法不在这里陈述,直接使用即可很简单,这里重点分享有参数的WebService方法的调用:需要准备的辅助工具:SoapUi。
准备WebService接口的过程忽略,咱们直接来看如何进行Mule ESB部分的开发:我们这里为了简明扼要的阐述清楚WebService的调用方式,直接使用Set Payload组件获取参数并返回Xml给consumer组件调用AnyPoint Studio中Message FLow视图模式下的截图如下:对应的Configuration Xml视图截图如下:大体调用的流程知道了,那么重点来了,在使用组件过程中有几个需要注意的地方:1、Set Payload配置①选择输出的格式为xml②在Value中写入符合调用格式的xml内容③获取uri参数,若使用URL参数请使用[message.inboundProperties.'http.query.params'.get('pkid')]2、Xml文档格式(★★重点★★)这里我们需要使用前文提到的辅助工具:SoapUi,文档格式的获取分两步:第一步:通过SoapUi调用你想调用的WebService中的方法,调试通过。
第二步:获取调试通过的SoapUi调用WebService方法时发送的报文,进行转换:发送的报文在下图的红框区域:转换步骤:①复制报文体(Body中的内容)②将xmlns属性标签复制到报文体中最终获得xml格式如下:3、WebService的配置①添加组件并双击看到如下界面②配置引入WebService服务③选择要使用的方法经过如上步骤后,小伙伴们开始愉快的debug之旅吧。
基于ESB和Mule的数字化校园应用集成设计
内蒙古财经学院学报(综合版)2010年第8卷第2期基于ESB和M ul e的数字化校园应用集成设计曹文继1,邵燕琳2(1.内蒙古财经学院网络信息中心,内蒙古呼和浩特010051;2.中国联通内蒙古分公司,内蒙古呼和浩特010051)[摘要]数字化校园是校园信息化建设的重要内容,针对高校信息化建设的现状,分析数字化校园建设的重点懈决的问题,提出了具有高开放性和扩展性的数字化校园建设模型,即以企业服务总线ES B为框架,集成高校现有应用系统,整合信息资源,构建校园数据中心、统一身份认证和信息门户,并以数据中心为核心,建立数据交换和共享机制。
以此模型为基础,结合ESB和M ul e开源框架,给出了应用系统闻实现用户数据同步的消息处理流程设计实例。
【关键词]数字化校园;企业服务总线;M ul e;模型;用户数据同步;流程设计【中图分类号]T P311【文献标识码]A[文章编号]1672—5344(20L O)02-0079一05一、引言数字化校园是在高眭能、安全、稳定的网络结构上,利用IT技术对学校信息资源的数字化、信息管理方式的数字化和沟通传播方式的数字化;通过对信息资源进行整合和应用系统的集成,达到统一的信息标准、用户管理、资源管理和权限控制,以便实现系统之间的互操作、数据共享和业务集成。
由于校园信息化是一个渐进的过程,各个应用系统具有独立性和存在较大差异性,形成了一个个的“信息孤岛”…。
如何将众多的“信息孤岛”联系起来,实现信息和应用的集成,是数字化校园系统建设的重点也是难点。
信息和应用的集成的基本解决方案有两种,一种是构建全新的统一应用软件平台,使用统一的数据库,将高校已有应用系统全部迁移到新的统一应用管理系统中,各个部门都在这个统一的系统上工作。
采用统一的应用平台方案的优点是很容易实现统一身份认证、统一信息门户和业务集成,但是这种“推倒重来”式的解决方案不仅耗费大量的财力和物力,而且系统缺乏应有的灵活性、可扩展性。
Mule_介绍及架构理解_Getting_Started
Mule 介绍及架构理解Getting Started作者:Jacky.YangMSN:jackyyang0501@目录Mule是什么?(What is Mule?) (2)理解消息框架 (3)理解Mule 架构 (4)关于SOA (4)处理数据 (4)服务组件间路由消息 (5)从消息中分离业务逻辑 (6)将全部融合到一起 (7)参考1: (8)可以和Mule一起使用的技术 (9)Mule是什么?(What is Mule?)Mule 框架是高度可扩展的,允许你以很小的规模开始,随着时间的推移,连接更多的应用系统。
Mule管理应用系统和组件之间的交互,不管它们是否在同一个VM(Visual Machine-虚拟机,即JVM-Java虚拟机)或在Internet上,不管底层使用的传输协议。
Mule相比同类框架而言,提供很多优势,包含:Mule ESB是基于Java的轻量级消息框架,它允许你简单快速的连接应用系统,使得他们(应用系统)可以交换数据。
Mule使用SOA(Service-Oriented Architecture-面向服务架构),使得简单集成已存应用系统成为可能。
不管应用系统使用的是哪些不同的技术,包括:JMS Web Services JDBC HTTP 等,Mule可以无缝的在他们之间进行处理交互动作。
Mule基于Enterprise Service Bus(ESB)架构思想。
ESB的主要特性是通过扮演一个中转系统的角色,允许不同的应用系统交互,中转系统在内网或Internet上的应用系统间搬运数据。
目前市场上有一些商业的ESB实现。
尽管如此,大部分提供有限的功能,或在已存应用服务器/消息服务器之上构建,将你锁定在特定的供应商(将你固定的ESB厂商)。
Mule 是供应商中立的,因此不同厂商的实现可以插入进来。
当你使用Mule时,永远不会锁定的特定的供应商。
Mule相比同类框架而言,提供很多优势,包含:• Mule 组件可以是任何你想要的类型。
企业服务总线消息框架Mule简介
企业服务总线消息框架. Mule1Mule简介Mule是一个轻量级的基于Java的ESB消息框架,它允许用户快捷地连接多个应用并且在这些应用之间交换数据。
Mule使用了SOA的体系结构思想,可以方便的集成已有的应用。
它是可升级的、高分布式的对象代理,可以通过异步传输消息技术来无缝的处理服务与应用之间的交互。
Mule框架提供了一个可升级的环境,可以把自己的业务组件部署在里面。
Mule管理所有组件之间的交互,不管它们是在同一个虚拟机中还是在internet上,也不管底层使用的传输方式。
Mule围绕着企业服务总线(ESB)架构进行设计,保证了不同的组件或者应用可以通过公共的消息总线进行交互,公共的消息总线一般是由JMS或者其他消息服务器来实现。
在应用中会使用不同的技术,包括JMS,Web Services,JDBC,HTTP等等,Mule可以很好地处理他们之间的交互。
2Mule快速入门2.1Mule特性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 ServiceNetwork.6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中.7.使用基于SEDA处理模型的高度可伸缩的企业服务器.8.强大的基于EIP模式的事件路由机制等.2.1.1产品简介Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台,使得开发人员可以快速,简单的连接多个应用,使得它们可以交换数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mule ESB Hello实例(四)这是一个最简单的mule esb入门实例,其中用了flow ,endpoint ,transformer,component这些组件,这些组件的配置也是最简单配置.情景:1.在浏览器地址栏输入http://localhost:9090/hello-mule?name=oliver&age=20,会返回"Hello oliver,your age is 10".1.在浏览器地址栏输入http://localhost:9090/love-mule?name=oliver&age=20,会返回"Love oliver,your age is 10".配置文件:[html]view plaincopy1.<?xml version="1.0"encoding="UTF-8"?>2.<mule xmlns="/schema/mule/core"3.xmlns:xsi="/2001/XMLSchema-instance"4.xmlns:spring="/schema/beans"5.xmlns:http="/schema/mule/http"6.xmlns:vm="/schema/mule/vm"7.xsi:schemaLocation="8. /schema/beans http://www.springframewo/schema/beans/spring-beans-3.0.xsd9. /schema/mule/core /schema/mule/core/3.2/mule.xsd10. /schema/mule/http /schema/mule/http/3.2/mule-http.xsd11. /schema/mule/vm /schema/mule/vm/3.2/mule-vm.xsd">12.13.<!-- 将客户端传过来的Http数据转化成Person对象 -->14.<custom-transformer name="HttpDataToPersonTransformer"class="com.mule.transformer.HttpDataToPersonTransformer"/>15.16.<!-- 将service操作结果用Html语言封装起来 -->17.<custom-transformer name="StringToHtmlTransformer"class="com.mule.transformer.StringToHtmlTransformer"/>18.19.<!-- 设置相应内容为text/html格式 -->20.<message-properties-transformer name="setHtmlContentType"overwrite="true">21.<add-message-property key="Content-Type"value="text/html"/>22.<!-- Tomcat lowercases headers, need to drop this old one too -->23.<delete-message-property key="content-type"/>24.</message-properties-transformer>25.26.<!-- 根据客户端传过来的内容,返回相应的Hello语句 -->27.<flow name="hello">28.<inbound-endpoint address="http://localhost:9090/hello-mule?method=sayHello"exchange-pattern="request-response">29.<transformer ref="HttpDataToPersonTransformer"/>30.<response>31.<transformer ref="StringToHtmlTransformer"/>32.<transformer ref="setHtmlContentType"/>33.</response>34.</inbound-endpoint>35.36.<component class="ponent.WelcomService"/>37.38.</flow>39.40.<!-- 根绝客户端传过来的内容,返回相应的Love语句 -->41.<flow name="love">42.<inbound-endpoint address="http://localhost:9090/love-mule?method=sayLove"exchange-pattern="request-response">43.<transformer ref="HttpDataToPersonTransformer"/>44.<response>45.<transformer ref="StringToHtmlTransformer"/>46.<transformer ref="setHtmlContentType"/>47.</response>48.</inbound-endpoint>49.50.<component class="ponent.WelcomService"/>51.52.</flow>53.54.</mule>Transformer:1.HttpDataToperson 将客户端传过来的http数据转换成component所需要Person类型[html]view plaincopy1.package com.mule.transformer;2.3.import org.mule.api.MuleMessage;4.import org.mule.api.transformer.TransformerException;5.import org.mule.transformer.AbstractMessageTransformer;6.7.import com.mule.domain.Person;8.9.public class HttpDataToPersonTransformer extends AbstractMessageTransformer{10.11. @Override12. public Object transformMessage(MuleMessage message, String outputEncoding)13. throws TransformerException {14. String name = message.getInboundProperty("name");15. String age = message.getInboundProperty("age");16. if( age == null ) {17.age = "10";18. }19.20. return new Person(name,Integer.parseInt(age));21. }22.23.}2.StringToHtmlTransformer 将component处理后返回的string类型数据,封装成html 数据[java]view plaincopy1.package com.mule.transformer;2.3.import org.mule.api.transformer.TransformerException;4.import org.mule.transformer.AbstractTransformer;5.6.import com.mule.util.HtmlTemplateUtil;7.8.public class StringToHtmlTransformer extends AbstractTransformer {9.10.@Override11.protected Object doTransform(Object src, String enc)12.throws TransformerException {13. String str = (String)src;14.15.return HtmlTemplateUtil.getSimpleHtml(str);16. }17.18.}Component:WelcomService返回欢迎内容[java]view plaincopy1.package ponent;2.3.import com.mule.domain.Person;4.5.public class WelcomService {6.7.public String sayHello( Person person ){8.return" Hello "+person.getName()+", your age is "+person.getAge();9. }10.11.public String sayLove( Person person ){12.return" Love you "+person.getName()+", your age is "+person.getAge();13. }14.15.}Person类:[java]view plaincopy1.package com.mule.domain;2.3.public class Person {4.5.private String name;6.private int age;7.8.public Person(){}9.10.public Person(String name,int age ){ = name;12.this.age = age;13. }14.15.public String getName() {16.return name;17. }18.19.public void setName(String name) { = name;21. }22.23.public int getAge() {24.return age;25. }26.27.public void setAge(int age) {28.this.age = age;29. }30.31.}[java]view plaincopy1.HtmlTemplateUtil 工具类:用html语句封转给定的text[java]view plaincopy1.package com.mule.util;2.3.public class HtmlTemplateUtil {4.5.public static String getSimpleHtml( String text ){6. String output = "";7.8. output += "<html>";9. output += "<head>";10. output += "<meta http-equiv=\"Content-Language\" content=\"en-us\"/>";11. output += "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\"/>";12. output += "<title>Bookstore Administration Console</title>";13. output += "</head>";14.15. output += "<body link=\"#FFFFFF\" vlink=\"#FFFFFF\" alink=\"#FFFFFF\" bgcolor=\"#990000\" text=\"#FFFFFF\">";16. output += text;17. output += "</body>";18.19. output += "<br/><a href=\"/bookstore-admin/\">Return toHome Page</a>";20. output += "</html>";21.22.return output;23. }24.25.}。