• open source ESB and integration platform


    http://www.mulesoft.org/

    1. 简介

    Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMSWeb ServicesJDBCHTTP以及其他技术。

    2. 整体结构

    图 整体结构

    从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、Transaction Management(事务管理)、Transformation(转换)、Message Broker(消息代理)、Transportation Management(传输管理)、Security(安全)等核心模块。Mule可以单独使用,也可以架设在常用的应用服务器上。

    图 架构简图

    外围系统的服务请求通过Mule ESBTransport接入,Mule通过Transformer进行数据的格式转换,然后经过Inbound Router进行消息过滤(内部通过配置filter实现)后交给MuleComponent进行业务逻辑处理,处理后的结果通过Outbound Router确定传递给哪个接收方,然后通过Transformer进行数据格式转换,通过Transport连接至接收方,传递信息。

    此图描述的是Mule中的一个典型场景的处理过程,涵盖了Mule中的各个关键组件。其中某些处理步骤不是必须的,如Inbound Router、Transformer。后续可以看到一些其他场景的处理。

    3. 功能

    a. 服务中介

    • 将业务逻辑和消息发送分离

    • 屏蔽服务的消息格式和协议
    • 提供任意位置的服务调用
    • 提供协议桥接

    b. 数据转换

    • 在应用间交换不同格式的信息 
    • 操作消息的负载内容,包括加密、压缩和编码转换
    • 在异构的传输协议的数据类型间格式化消息

    c. 消息路由

    • 基于消息内容和复杂规则路由消息
    • 消息的过滤、聚合以及重新排列序号

    d. 服务创建和托管

    • 暴露端点、EJBSpring Bean以及POJO作为服务
    • 作为轻量级的服务容器进行服务托管

    Mule ESB中有一些基本的概念,理解这些基本概念后才能理解Mule的内部机制。从中也可以看到Mule解决问题的基本思路。

    4. 基本概念

    4.1 Model

    Model表示托管各个服务的运行时环境。

    图 Model

    4.2 Service

    Service是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。

    图 Service

    4.3 Transport

    Transport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。

    图 Transport

    4.3.1 Connector

    Connector用于管控特定协议的使用,如HTTP ConnectorJMS Connector等。

    4.3.2 End-Point

    Endpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何被使用。

    Endpoint定义于InboundOutbound Router中。

    4.4 Transformer

    Transformer用于转换消息的内容。

    图 Transformer

    4.5 Router

    Router使用Filter基于消息中的属性信息进行消息的分发。

    图 Router

    RouterService中的位置决定了Router的性质(inboundoutboundresponse)和担任的角色(pass-throughaggregator等)。

    4.6 Component

    ComponentService的核心部件,是Service的业务逻辑的实现。

    图 Component: implicit bridge component

    Component可以是Java Class(POJO、Spring Bean)、Web Service、Script等。

    Component可定义自己的生命周期:initialisestartstopdispose,不过需要实现MuleLifeCycle接口。Mule 3.0版本开始提供@PostConstruct@PreDestroy的注解,对应生命周期的initialisedispose阶段,不需要实现MuleLifeCycle接口了。

    4.7 Flow(@since 3.0)

    FlowMule 3.0新引入的,包含一个消息源(Message Source)和多个消息处理器组成的处理器链。

    图 Flow

    根据实际需求着重检查了一下Mule ESB的消息传递方式。Mule支持常用的几种消息传递方式,能够满足要求。

    5. 消息传递方式

    5.1 异步方式

    异步方式是一种单向调用,调用者不需要获得响应。

    图 Asynchronous

    异步方式通过inboundoutbound endpointexchange-pattern=”one-way”实现。

    使用基本的Stdio Transport验证,通过标准输入传输字符串,将其原样传递给标准输出进行显示。相应配置如下:


    xml 代码
    1. <service name="echo">    
    2.     <inbound>    
    3.         <stdio:inbound-endpoint system="IN" exchange-pattern="one-way" />    
    4.     </inbound>    
    5.         
    6.     <component>    
    7.         <singleton-object class="demo.mule.umo.StdIo" />    
    8.     </component>    
    9.         
    10.     <outbound>    
    11.         <pass-through-router>    
    12.             <stdio:outbound-endpoint system="OUT" exchange-pattern="one-way" />    
    13.         </pass-through-router>    
    14.     </outbound>    
    15. </service>    
    运行服务,控制台显示结果如下:
     
    1. Please enter: Hello, world!    
    2. INFO  2010-12-07 19:21:18,877 [ConsoleConnector.dispatcher.1]    
    3.     org.mule.lifecycle.AbstractLifecycleManager: Initialising:    
    4.     'ConsoleConnector.dispatcher.23255376'. Object is: StdioMessageDispatcher    
    5. INFO  2010-12-07 19:21:18,877 [ConsoleConnector.dispatcher.1]    
    6.     org.mule.lifecycle.AbstractLifecycleManager: Starting:    
    7.     'ConsoleConnector.dispatcher.23255376'. Object is: StdioMessageDispatcher    
    8. Hello, world!    
    其中INFO输出是Mule第一次初始化相应Connector打印出来的,之后调用服务不会再次显示。

    异步方式适用于简单的消息传递的场景。

    5.2 请求-响应方式

    请求-响应方式即请求方调用服务后,服务立即处理并返回响应结果,不需将消息再次传递。

    图 Request-Response

    请求-响应方式通过input endpointexchange-pattern=”request-response”实现,相应配置如下:


    xml 代码
    1. <strong>  
    2.     <strong>  
    3.         <model name="services">        
    4.             <service name="echoService">        
    5.                 <inbound>        
    6.                     <inbound-endpoint address="http://localhost:7007/services/Echo"        
    7.                         exchange-pattern="request-response">        
    8.                         <cxf:jaxws-service />        
    9.                     </inbound-endpoint>        
    10.                 </inbound>        
    11.                 <component>        
    12.                     <singleton-object class="demo.mule.umo.Echo" />        
    13.                 </component>        
    14.             </service>        
    15.         </model>  
    16.     </strong>  
    17. </strong>    
    边是通过service配置的,通过flow配置如下:
    xml 代码
    1. <flow name="EchoFlow">        
    2.     <inbound-endpoint address="http://localhost:7007/services/Echo"        
    3.         exchange-pattern="request-response" />        
    4.     <cxf:jaxws-service serviceClass="demo.mule.umo.Echo" />        
    5.     <component>        
    6.         <singleton-object class="demo.mule.umo.Echo" />        
    7.     </component>        
    8. </flow>    

    在浏览器中输入“http://localhost:7007/services/Echo/echo/text/hello,world”,浏览器中会显示“hello,world”的输出信息。

    请求-响应方式适用于单次服务调用的场景。

    5.3 同步方式

    同步方式即请求方调用服务后,component将处理结果发送给另一个外部服务处理,并将处理结果反方向返回。

    图 Synchronous

    同步方式通过inboundoutbound endpointexchange-pattern=”request-response”实现,相应配置如下:


    xml 代码
    1. <flow name="echo">      
    2.     <inbound-endpoint address="http://localhost:7007/services/Echo"      
    3.         exchange-pattern="request-response" />      
    4.     <cxf:jaxws-service serviceClass="demo.mule.umo.Echo" />      
    5.     <component>      
    6.         <singleton-object class="demo.mule.umo.StdIo" />      
    7.     </component>      
    8.     <vm:outbound-endpoint path="vm" exchange-pattern="request-response" />      
    9. </flow>      
    10. <flow name="vm">      
    11.     <vm:inbound-endpoint path="vm" exchange-pattern="request-response" />      
    12.     <component>      
    13.         <singleton-object class="demo.mule.umo.Vm" />      
    14.     </component>      
    15.     <stdio:outbound-endpoint system="OUT" exchange-pattern="one-way" />      
    16. </flow>    

    同步方式适用于通过Mule调用远程服务的场景。

    5.4 异步请求-响应方式

    异步请求-响应方式即请求方调用服务后不需要立即获得返回结果,component将请求发送给其他外围系统处理(可能有多个),全部处理完毕后通过指定的异步应答Router返回给请求方。

    图 Asynchronous Request-Response

    异步请求-响应方式通过在OutBound Endpoint中增加reply-to以及增加async-reply节点实现,响应配置如下:


    xml 代码
    1. <flow name="echo">      
    2.     <inbound-endpoint address="http://localhost:7007/services/Echo"      
    3.         exchange-pattern="request-response" />      
    4.     <cxf:jaxws-service serviceClass="demo.mule.umo.Echo" />      
    5.     <component>      
    6.         <singleton-object class="demo.mule.umo.StdIo" />      
    7.     </component>      
    8.     <vm:outbound-endpoint path="vm" exchange-pattern="request-response" />      
    9. </flow>      
    10. <flow name="vm">      
    11.     <vm:inbound-endpoint path="vm" exchange-pattern="request-response" />      
    12.     <component>      
    13.         <singleton-object class="demo.mule.umo.Vm" />      
    14.     </component>      
    15.     <stdio:outbound-endpoint system="OUT" exchange-pattern="one-way" />      
    16. </flow>    

    异步请求-响应方式适用于请求需要被多个远程服务并行处理,结果需要汇总处理后返回的场景。

    注:上述代码未运行通过,queue1和queue2获得了请求消息并正常处理,但返回至async-reply时抛出异常,暂未定位到问题。

    后将collection-async-reply-router改为single-async-reply-router未报异常,代码示例如下:

    xml 代码
    1. <em><service name="async req-rep">      
    2.     <inbound>      
    3.         <stdio:inbound-endpoint ref="stdioInEndpoint" />      
    4.     </inbound>      
    5.     <component class="demo.mule.umo.Echo" />      
    6.     <outbound>      
    7.         <multicasting-router>      
    8.             <vm:outbound-endpoint path="async.queue1" exchange-pattern="one-way" />      
    9.             <vm:outbound-endpoint path="async.queue2" exchange-pattern="one-way" />      
    10.             <reply-to address="vm://reply" />      
    11.         </multicasting-router>      
    12.     </outbound>      
    13.     <async-reply timeout="5000" failOnTimeout="true">      
    14.         <vm:inbound-endpoint path="reply" exchange-pattern="one-way" />      
    15.         <single-async-reply-router />      
    16.     </async-reply>      
    17. </service></em>  

    等有空看看collection-async-reply-router吧,或者自定义router。

    转自 http://my.oschina.net/moon/blog/10701

    1. 下载,安装与配置

    1.1 下载Mule - http://www.mulesoft.org/

    1.2 下载Mule IDE -http://www.mulesoft.org/documentation/display/MULEIDE/Mule+IDE+2.0+Installation+Guide

    其中,Mule IDE是一个Eclipse插件,其安装与配置在官方站点中有详细的说明,这里不再重复。本人使用的是

    Eclipse:MyEclipse 6.5

    Mule: mule-2.1.2

    操作系统:Windows XP

    注意:Eclipse中的JDK最好与系统安装的JDK保持一致。

    2. 运行例子

    2.1 直接运行

    %Mule_Home%\examples目录下有好几个例子,可直接运行,比如运行echo,直接运行echo目录下的echo.bat即可,这里提供了三种模式,分别是命令行,以及基于Axis和Cxf的服务方式。下面两图分别是命令行运行,和基于Axis服务的运行效果图,采用后者,需在浏览器中输入以下地址:http://localhost:65081/services/EchoUMO?method=echo

    2.2 在开发环境中运行

    2.2.1 创建Mule Project

    输入项目名称,选取Add sample project content,同时在下拉列表中选择Echo Example,然后Finish。

    2.2.2 运行

    创建项目后,可以看看项目结构,然后右键点击conf目录下任一个xml配置文件,Run As -> Mule Server,即可运行,效果图略。

    3. 开发第一个Mule项目——Hello World

    3.1 创建工程 - 创建一个Java Project

    3.2 添加所需要的JAR包

    添加一个lib文件夹,同时把以下目录中所有的JAR包复制到lib文件夹中

    -- %Mule_Home%\lib\boot

    -- %Mule_Home%\lib\mule

    -- %Mule_Home%\lib\opt

    并将这些JAR包添加到项目的classpath

    3.3 编写Java文件

    3.3.1 创建接口

    /***********************************************************************  * <p>Project Name: test</p>  * <p>File Name: com.thu.afa.mule.demo.Hello.java</p>  * <p>Copyright: Copyright (c) 2010</p>  * <p>Company: <a href="http://afa.thu.com">http://afa.thu.com</a></p>  ***********************************************************************/ package com.thu.afa.mule.demo;  /**  * <p>Class Name: Hello</p>  * <p>Description: </p>  * @author Afa  * @date Jun 26, 2010  * @version 1.0  */ public interface Hello { 	public String hello(String name); }

    3.3.2 创建实现类

    /***********************************************************************  * <p>Project Name: test</p>  * <p>File Name: com.thu.afa.mule.demo.HelloImpl.java</p>  * <p>Copyright: Copyright (c) 2010</p>  * <p>Company: <a href="http://afa.thu.com">http://afa.thu.com</a></p>  ***********************************************************************/ package com.thu.afa.mule.demo;  /**  * <p>Class Name: HelloImpl</p>  * <p>Description: </p>  * @author Afa  * @date Jun 26, 2010  * @version 1.0  */ public class HelloImpl implements Hello { 	/* (non-Javadoc) 	 * <p>Title: </p> 	 * <p>Method Name: hello</p> 	 * <p>Description: </p> 	 * @author: Afa 	 * @date: Jun 26, 2010 	 * @see com.thu.afa.mule.demo.Hello#hello(java.lang.String) 	 * 	 * @param name 	 * @return 	 */ 	public String hello(String name) 	{ 		return name; 	}  } 

    3.4 编写配置文件

    在项目目录下创建conf文件夹,并创建文件:hello-config.xml。当然,你也可以从mule的例子中复制一个配置文件到此,然后做适当的修改。下面的本例子的配置:

    <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.1"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xmlns:spring="http://www.springframework.org/schema/beans"        xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.1"        xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.1"        xsi:schemaLocation="                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd                http://www.mulesource.org/schema/mule/core/2.1 http://www.mulesource.org/schema/mule/core/2.1/mule.xsd                http://www.mulesource.org/schema/mule/stdio/2.1 http://www.mulesource.org/schema/mule/stdio/2.1/mule-stdio.xsd                http://www.mulesource.org/schema/mule/vm/2.1 http://www.mulesource.org/schema/mule/vm/2.1/mule-vm.xsd">          <!--         The system stream connector is used to send and receive information via the         System.in and System.out. Note this connector is only really useful for testing         purposes.         promptMessage - is what is written to the console         messageDelayTime - is the time in milliseconds before the user is prompted again.         These properties are set as bean properties on the connector.     -->     <stdio:connector name="SystemStreamConnector"         promptMessage="Please enter yout name: "         messageDelayTime="1000"/>     <!--         The Mule model initialises and manages your UMO components     -->     <model name="HelloSample">         <!--             A Mule service defines all the necessary information about how your components will             interact with the framework, other components in the system and external sources.             Please refer to the Configuration Guide for a full description of all the parameters.         -->         <service name="HelloUMO">             <inbound>                 <stdio:inbound-endpoint system="IN" />             </inbound>                          <component class="com.thu.afa.mule.demo.HelloImpl"/>              <outbound>                 <pass-through-router>                 	<stdio:outbound-endpoint system="OUT" />                 </pass-through-router>             </outbound>         </service>          </model> </mule> 

      

    3.5 运行

    右键点击hello-config.xml,Run As -> Mule Server,即可运行,运行结果如下:

    4. 小结

    本人最近一直在看Mule的官方文档以及所提供的例子,但由于是初学,所以理论性的东西说的就比较少了,如有不正确之处,欢迎指出,也欢迎一起探讨。

     
    分类: MULE ESB

    MULE ESB

     
    摘要: 1. 下载,安装与配置1.1 下载Mule-http://www.mulesoft.org/1.2 下载Mule IDE-http://www.mulesoft.org/documentation/display/MULEIDE/Mule+IDE+2.0+Installation+Guide其中,Mule IDE是一个Eclipse插件,其安装与配置在官方站点中有详细的说明,这里不再重复。本人使用的是Eclipse:MyEclipse 6.5Mule: mule-2.1.2操作系统:Windows XP注意:Eclipse中的JDK最好与系统安装的JDK保持一致。2. 运行例子2.1 直接运行阅读全文
    posted @ 2011-04-07 21:33 liyazhou 阅读(1683) | 评论 (1) 编辑
     
    摘要: 本文介绍如何安装Mule,并且开发一个简单的Mule例子。1.下载Mule 到Mule官方网站下载Mule的社区版本,注意企业版本需要收费,而社区版本已经满足开发需要,并且开发源代码。下载地址是:[url]http://www.mulesource.org/display/MULE/Download[/url]。笔者下载的Mule版本是mule2.1.1。2.安装需要的软件 (1)安装JDK1.6,这里就不详细描述。 (2)到[url]http://maven.apache.org/[/url]下载Maven,下载Maven2.0.9版本。如果你只想使用mule,而不想编译mule自带的例子和阅读全文
    posted @ 2011-04-07 21:17 liyazhou 阅读(1092) | 评论 (0) 编辑
     
    摘要: 最近想学习mule,打算从成功运行第一个例子开始。mule最新版本是mule-standalone-3.0.0,而网上很多安装入门的例子都是以前的版本,在配置xml时与以前版本不同,自己只好网上了解资料。1.用Myeclipse 8.5在线安装插件mule:mule-standalone-3.0.0.zip版本。更新链接:http://dist.muleforge.org/mule-ide/updates/3.4/2.下载下载Mule 3.0.0:http://www.mulesoft.org/download-mule-esb-community-edition并解压到某一工作目录如:D:.阅读全文
    posted @ 2011-03-23 22:58 liyazhou 阅读(1614) | 评论 (0) 编辑
     
    摘要: 简介: Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB的关键特性是允许不同的应用通讯,其作为运输系统在企业内或Internet应用间搬运数据。 Mule ESB 包含如下强大的能力: 服务创建和托管— 暴露和托管可重用服务, 使用Mule ESB作为一个轻量级服务容器 服务调解 — shield services from message formats and protocols,阅读全文
    posted @ 2011-03-23 22:57 liyazhou 阅读(1456) | 评论 (0) 编辑
     
    摘要: 一.需求简化不同数据源之间的数据交互简化不同应用之间的服务交互可扩展、轻量级、可嵌入、可定制、简单易用二.架构风格选择Mule使用的是基于消息的架构风格(如上图所示),消息具有程序语言无关系、组件无关性、数据格式灵活性、消息无状态等特征,基于消息的服务也同样具有无状态的特征,此外,消息风格有非常成熟的应用模式,能够满足当前遇到的大部分数据应用需求以及SOA的需要。因而能够很好的满足需求中的前2个和第三个的可扩展、可定制的需求。Application:可以是程序段、外部系统。Channel:连接任何2个应用点(计算点),通过消息进行沟通,可参考《EIP - Message Channel (60阅读全文
    posted @ 2011-03-23 22:54 liyazhou 阅读(1095) | 评论 (0) 编辑
     
    摘要: 本文介绍如何编译Mule自带的例子,并且把它们导入到eclispe工程下。1.准备 安装Mule:在我的博客里上一篇文章:Mule安装与开发部署一个简单例子里介绍了如何安装Mule,并且开发了一个简单的例子。这里就不介绍mule的安装了,读者到上一篇文章中看。2.编译Mule自带例子中的Hello例子 使用命令行到目录:C:\Mule\mule-2.1.2\examples\hello下,输入:mvn 即可。这里需要安装Maven,在上一篇文章有介绍。3.导入Eclipse工程 输入命令:mvn eclipse:eclipse 成功后,即可导入eclipse。4.导入这个工程到eclipse 阅读全文
    posted @ 2011-03-23 22:40 liyazhou 阅读(602) | 评论 (1) 编辑
     
    摘要: Mule是什么? Mule是一个轻量级的基于Java的ESB消息框架,它允许用户快捷地连接多个应用并且在这些应用之间交换数据。Mule使用了SOA的体系结构思想,可以方便的集成已有的应用。它是可升级的、高分布式的对象代理,可以通过异步传输消息技术来无缝的处理服务与应用之间的交互。 Mule框架提供了一个可升级的环境,可以把自己的业务组件部署在里面。Mule管理所有组件之间的交互,不管它们是在同一个虚拟机中还是在internet上,也不管底层使用的传输方式。 Mule围绕着企业服务总线(ESB)架构进行设计,保证了不同的组件或者应用可以通过公共的消息总线进行交互,公共的消息总线一般是由JMS或者阅读全文
    posted @ 2011-03-23 22:39 liyazhou 阅读(904) | 评论 (0) 编辑
     
    摘要: 本文介绍如何安装Mule,并且开发一个简单的Mule例子。1.下载Mule 到Mule官方网站下载Mule的社区版本,注意企业版本需要收费,而社区版本已经满足开发需要,并且开发源代码。下载地址是:http://www.mulesource.org/display/MULE/Download。笔者下载的Mule版本是mule2.1.1。2.安装需要的软件 (1)安装JDK1.6,这里就不详细描述。 (2)到http://maven.apache.org/ 下载Maven,下载Maven2.0.9版本。如果你只想使用mule,而不想编译mule自带的例子和mule源码,就不需要下载Maven。 (阅读全文
    posted @ 2011-03-23 22:39 liyazhou 阅读(608) | 评论 (0) 编辑
     
    摘要: Mule IDE的安装地址:1.在线安装:url:http://dist.muleforge.org/mule-ide/updates-2.1.x/2.下载安装:download:http://dist.muleforge.org/mule-ide/releases/这里选择下载安装,下载下来的安装包内容如下:这里如果直接把muleide-2.1.1拷到MyEclipse的dropins目录下的话,安装不成功,提示少包:org.apache.commons.lang 2.3.0org.apache.commons.lang 2.3.0可以到eclipse 3.5.2中找:org.apache.阅读全文
    posted @ 2011-03-23 22:25 liyazhou 阅读(435) | 评论 (0) 编辑
     
    摘要: 使用服务介绍一个服务组件是一个类、WebService、或者其他的应用,它包含了你希望嵌入到Mule框架中的业务逻辑。例如,一个服务组件可以从用户数据库中添加信息到发货清单中,另一个服务组件可以是一个处理发货清单的订单执行应用程序。你可以使用现有的应用作为服务组件,也可以创建新的服务组件。你的服务组件不需要包含Mule相关的代码。你需要配置服务,将服务用Mule相关的配置包装起来。服务配置指向服务组件,以及那些在服务组件间运送消息的路由器,过滤器以及转换器。它也可以指定服务用以接收消息的入站端点和为消息发往何处定位的出站端点。服务是完成集成解决方案的主要的Mule原件。服务组件一个服务组件可以阅读全文
    posted @ 2011-03-23 22:24 liyazhou 阅读(268) | 评论 (0) 编辑
     
    摘要: 配置Mule配置概述1.配置文件默认的,并且最常的Mule配置方式是通过XML文件。使用命令行启动Mule在命令行启动时配置文件由参数-config指定。编程的方式启动Mule编程启动Mule时,配置文件作为ConfigurationBuilder的参数提供。2.ConfigurationBuilders3.指定使用哪一个ConfigurationBuilderXML配置正如上一节配置概述中介绍的,最常用的Mule配置方式是通过Spring XML配置文件完成,这些配置文件是要使用默认的Mule名字空间。XML语法配置文件基于XML语法(schema),在文件的最初指定。必须要指定所有必须的语阅读全文
    posted @ 2011-03-23 22:23 liyazhou 阅读(371) | 评论 (0) 编辑
     
    摘要: Mule介绍什么是MuleMule是一个基于Java的轻量级消息框架,它可以使我们快速、容易地将我们的应用连接起来,并且保证这些应用间可以交换数据。Mule使用了面向服务架构(SOA),提供了对现有系统的简洁的集成方式。不管应用程序采用了什么技术,JMS、WebService、JDBC、HTTP甚至其他的技术,Mule都可以准确无误地将它们集成到一起。Mule框架具有很强的可扩展性,它允许我们开始只提供比较少的应用,然后再慢慢将更多的应用连接到其上。Mule透明地管理着应用和组件间的所有交互,不论这些应用和组件是处于同一台虚拟机上还是处在互联网上,不管他们底层使用了怎样的传输协议。Mule是基阅读全文
    posted @ 2011-03-23 22:19 liyazhou 阅读(219) | 评论 (0) 编辑
     
    摘要: 最近开始接触ESB。在开源ESB领域,出现最早,使用广泛的当属Mule了。但是很遗憾,在网上并没有多少实用的关于ESB的资料,所以在这里记下自己的学习,使用和熟悉的过程。如有不正确之处,欢迎指出,也欢迎讨论。1. 下载,安装与配置1.1 下载Mule-http://www.mulesoft.org/1.2 下载Mule IDE-http://www.mulesoft.org/documentation/display/MULEIDE/Mule+IDE+2.0+Installation+Guide其中,Mule IDE是一个Eclipse插件,其安装与配置在官方站点中有详细的说明,这里不再重复。阅读全文
    posted @ 2011-03-23 21:26 liyazhou 阅读(940) | 评论 (0) 编辑
     
    摘要: 一. Mule下载。 从Mule的官方网站(http://www.mulesoft.org/display/COMMUNITY/Home)上下在社区版。目前的最新版本是2.2. 下载下来的文件是mule-standalone-{version}.zip二. 安装 1. 解压下载下来的zip文件。如图中所示 2. 将解压出来的mule文件夹拷贝到想要的地方,比如放在d:\soft目录下,然后将其重命名为mule 3. 鼠标右击我的电脑 —>属性—>高级—>环境变量—>系统变量。在系统变量新建MULE_HOME变量,值为Mule的路径。4. 将MULE_HOME变量添加到P阅读全文
    posted @ 2011-03-23 21:24 liyazhou 阅读(764) | 评论 (0) 编辑
     
    摘要: 1. 简介Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。2. 整体结构图 整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、Transaction Management(事务管理)、Transformation(转换)、Message Broker(消息代理)、Transportation Management(传输管阅读全文
    posted @ 2011-03-23 20:48 liyazhou 阅读(669) | 评论 (0) 编辑
  • 相关阅读:
    微信小程序登录(包括获取不到unionid的情况)
    ionic生成签名的APK方法总结
    iframe的简单使用方法
    常见的浏览器端的存储技术:cookie
    AJAX 过程总结
    react相关知识总结2
    正则表达式相关知识点
    vue相关知识汇总
    react相关知识汇总
    Vue-Router核心实现原理
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2627726.html
Copyright © 2020-2023  润新知