`
ww2
  • 浏览: 415609 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

一提到总线,一般学计算机专业的往往会联想到两样东西,一是网络拓扑上的总线结构,二是电脑主板上的总线。
和他们不同的是,企业服务总线是一种软件总线,但是他们都可以进行一定的类比。类比是快速学习最好的方法之一。

网络拓扑的总线由三个东西构成:网络设备(PC,服务器,交换机,路由器),端口(网卡-1个端口,路由器-n个端口),连接各个设备的网线,数据必须通过网卡端口传输到设备。
电脑主板上的总线也由三个东西构成。处理器(CPU,GPU),针脚(信号输入,输出的针脚),连接各个处理器的线路,同样在每一个时钟周期里,信号通过针脚进入处理器,再从别的针脚输出。

通过类比,可想而知,ESB软件上的总线必然也由吉祥三宝构成,在Mule里面,他们分别是UMO,End Point,数据的传输路线(当然这是无形的)。
UMO可以比喻成一个CPU,EndPoint就是这个CPU的针脚,数据从EndPoint(inbound)进入UMO,经过UMO的处理,从另一个针脚发送出(outbound),这样就完成了企业服务总线的一次最基本的操作。

 


Mule ESB最核心的概念:

1 UMO:从上面的描述可以看出,UMO就像一个CPU一样,它是业务应用的最基本单元。所有的业务逻辑都要写在UMO里面,例如收到一个请求发货请求的消息以后,我们首先检查库存是否足够,如果足够,那么生成一个发货单消息给仓库系统的接口。在这里面,检查存活和生成发货单是程序的业务逻辑,我们要开发一个进行该操作的UMO。
然后我们要定义该UMO的针脚,例如收到发货请求的接口,发出消息给仓库系统的接口。

2 Model:
Model包含了一组UMO,通常这一组UMO一起组成了一个应用。这就好比把一组小的CPU封装成一个大CPU来实现更复杂的功能。


3 End point:端点,就是我们前面说到的针脚,CPU只有通过针脚才能和外界交互,同样UMO必须通过End Point和别的系统交互。

Mule使用的关键,就是定义端点,这些端点就是系统交互的接口

<endpoint-identifiers>

  <endpoint-identifier name="VoipBrokerRequests"
    value="vm://VoipBrokerRequests"/>

  <endpoint-identifier name="ProxyService"
    value="axis:http://localhost:service/proxyService"/>

  <endpoint-identifier name="BuyService"
    value="axis:http://localhost:service/buyService"/>

  <endpoint-identifier name="ValidService"
    value="axis:http://localhost:service/validService"/>

  <endpoint-identifier name="PurService"
    value="axis:http://localhost:service/purService"/>


</endpoint-identifiers>


一些其它的概念:

Translator:翻译器,翻译不同的消息协议,例如将Java对象翻译成SOAP协议

Normalizer: 规整器,规整器可以理解为一个协调员,它管理着多个翻译员,比如来了一个美国人,就把它分配给一个英语翻译员,来了一个德国人,就把它交给一个德语翻译员。在软件系统中,同一种消息可能有不同的格式,例如申请书,我们允许用户直接网上申报,或者客户端填写完毕后作为附件发送邮件。这些消息在规整器这里被归类,如果是直接申报的消息,交给一个翻译器处理,如果是邮件申报上来的,交给附件翻译器处理。

Recipient list:接收消息用户列表,用于一个消息你可能想发送到多个机构,例如你填写了一个申请表要同时发送给好几个部门审批,可以把这些部门都写在一个Recipient list中,系统会自动发送,就像短信的群发一样。

Aggregator:如果某一个事件需要等待好几个消息到齐后才进行处理,就可以使用它。例如我将申报表,资格表等分别发送给不同部门审核,等这几个部门审核结果都发送回来以后,我才可以统一处理他们。

 

====
Mule的UMO组件是POJO,所以初学者往往弄不清楚这些POJO的组件如何和整个ESB进行交互。

Entry Point 入口点
当UMO接收到一个事件之后,Mule会调用该UMO组件的入口点。Mule会根据事件的负载类型自动的选择一个方法来调用。
这意味着一个UMO组件可以有很多入口点。
事件的负载类型是由该组件接收事件的接收器中的入口转换器决定的,但有一些接收器例如soap接收器会自动管理类型映射,因此它就不需要转换器。
如果UMO实现了Mule默认的事件接口org.mule.umo.lifecycle.Callable,则该方法总是会被调用。

Event Flow 事件流

Mule有一些默认的规则来管理进出组件的事件流。

1. 当接收到事件时,Mule首先按照上面的描述调用入口点方法
2. 返回消息或称出口消息使用下面的方法获得 -
a. 如果调用的入口方法返回不是void, (Callable.onEvent() 返回一个Object) 直接使用该方法的返回对象。如果返回对象为null,该请求将不会进行进一步处理。
b. 如果调用的入口方法返回是void,则调用该方法时候传递的参数将被作为返回对象,此时我们假定这些参数的值被改变了。

3. 出口事件会根据组件的配置来自动的路由
a. 如果配置了出站路由,则调用该路由。
b. 如果只配置了唯一一个出口端点,则调用它。
c. 如果有多个出口端点,第一个会被调用。 

分享到:
评论

相关推荐

    mule-standalone-3.9.0.zip

    Mule ESB(企业服务总线)是一款强大的集成平台,由Mulesoft公司开发,用于构建和管理企业级的应用程序网络。"mule-standalone-3.9.0.zip"是一个包含Mule ESB独立运行时环境的压缩包,版本为3.9.0。在本文中,我们将...

    mule-standalone-3.5.0

    Mule ESB,全称Mule Enterprise Service Bus,是一款强大的企业服务总线(ESB)软件,它在集成应用程序和服务时提供了一种灵活且可扩展的平台。Mule ESB的核心设计理念是促进不同系统之间的数据交换,使得企业在构建...

    mule-standalone-3.9.0-hf2.tar.gz

    "Mule ESB 3.9.0" 是一个企业服务总线(Enterprise Service Bus,简称ESB)的版本,由MuleSoft公司提供。ESB是企业集成解决方案的核心部分,它允许不同系统、应用程序和服务之间进行高效、灵活的数据交换。Mule ESB...

    mule-1.4.4-getting-started.pdf

    Mule ESB 是一个面向服务架构(SOA)的企业级集成平台,用于构建连接不同应用程序的服务总线。它支持多种消息传递协议和服务调用方式,并能够处理异构系统间的通信。Mule ESB 提供了高度可配置性与灵活性,能够满足...

    mule-transport-quartz-3.5.0-M4.zip

    标题 "mule-transport-quartz-3.5.0-M4.zip" 提供的信息表明,这是一个与Mule ESB(企业服务总线)相关的组件,具体是Quartz定时任务运输器的一个版本。Mule ESB是一款流行的开源集成平台,用于构建和运行连接应用...

    mule web service exsample

    Mule 是一个开源的企业级服务总线,它支持多种协议和数据格式,如HTTP、JMS、FTP等。它的核心功能包括数据转换、事件驱动架构和强大的错误处理机制。 2. **发布Web服务** 在Mule中,Web服务可以通过创建Mule流来...

    mule_examples.rar_mule_mule 开发_mule-2.2.1-src

    Mule ESB,作为一款强大的企业服务总线(Enterprise Service Bus),在集成和连接不同系统方面展现了卓越的能力。本篇文章将围绕"mule_examples.rar_mule_mule 开发_mule-2.2.1-src"这一主题,深入探讨如何利用Mule-...

    MULE实战-ESB企业服务总线

    ### 标题知识点:MULE实战-ESB企业服务总线 #### 什么是ESB(企业服务总线)? ESB是一种面向服务的架构模式,主要功能是实现不同系统之间服务的集成和通信。它充当一个中间件,支持不同协议、数据格式和通信模式的...

    mule-standalone-3.2.0.zip

    Mule ESB,全称Mule Enterprise Service Bus,是一款强大的开源企业服务总线(ESB)和集成平台,由MuleSoft公司开发。Mule ESB的核心功能在于提供了一种灵活、可扩展的方式来连接不同的系统、应用程序和服务,实现...

    mule -esb 源码

    Mule ESB(Enterprise Service Bus,企业服务总线)是一款开源的集成平台,旨在简化企业级应用之间的数据交互。本文将围绕Mule ESB的源码进行深入探讨,揭示其核心设计理念与工作原理。 首先,`logging.conf`是日志...

    mule-standalone-3.6.0.zip

    Mule ESB(Enterprise Service Bus,企业服务总线)是一种开源的企业级集成平台,它允许不同系统、应用程序和服务之间进行高效的数据交换。MuleSoft是Mule ESB的创造者,致力于提供灵活、可扩展的解决方案来简化复杂...

    mule-standalone-3.5.0.tar.gz

    Mule ESB(Enterprise Service Bus,企业服务总线)是一种开源的企业级集成平台,由MuleSoft公司开发。它提供了一种灵活、可扩展的方式来连接各种应用程序、数据和服务,实现不同系统之间的通信和数据交换。"mule-...

    介绍SOA ESB Mule的企业服务总线PPT

    ### SOA ESB Mule 的企业服务总线详解 #### 一、ESB与Mule简介 ##### 1.1 ESB(Enterprise Service Bus) - **定义**:ESB(企业服务总线)是一种分布式计算架构,用于实现企业级应用程序之间高效、可靠的信息交换...

    MULE ESB-4.1企业版运行环境

    MULE ESB(Mule Enterprise Service Bus)是Anypoint Platform的核心组件,它是一个强大的、全面集成的企业服务总线(ESB),专为构建、部署和管理API和集成解决方案而设计。MULE ESB-4.1是MuleSoft公司推出的企业版...

    mule 2.0 users-guide.pdf

    Mule 2.0是一款高度可扩展的企业服务总线(Enterprise Service Bus,ESB)解决方案,它为Java企业版(J2EE)环境提供了一种灵活而强大的集成框架。Mule 2.0支持多种传输协议和服务,能够实现不同系统之间的无缝通信...

    mule-2.1.1-getting-started

    它提供了强大的企业服务总线(ESB)功能,使得开发者能够轻松地连接不同的系统和服务。Mule的核心优势在于其灵活性和可扩展性,支持多种协议和数据格式,能够处理复杂的数据流和事务。 ### Mule基础知识 - **什么是...

    mule-module-client-2.2.1.rar_mule

    Mule ESB(企业服务总线)是一款强大的开源集成平台,以其灵活、可扩展的特性在IT行业中受到广泛应用。Mule Module Client是Mule ESB生态系统中的一个重要组成部分,它提供了与Mule服务器进行交互的能力,使得开发者...

    hyperic-mule-plugin

    《Hyperic Mule Plugin:企业服务总线监控的利器》 Hyperic Mule Plugin是一款针对Mule ESB(企业服务总线)的监控插件,主要用于集成到Hyperic HQ(Hyperic运维中心)中,提供对Mule ESB运行状态的全面监控与管理...

    mule-2.2.1-users-guide

    Mule ESB是一种用于集成应用程序和服务的企业服务总线。它提供了一种灵活的方式来连接不同的系统,并支持多种传输协议。在Mule 2.x版本中,重点强调了对不同传输的支持以及配置的灵活性。 ### 关键知识点详解 ####...

    mule-module-jersey-3.8.0.zip

    【标题】"mule-module-jersey-3.8.0.zip" 提供的是MuleSoft的Jersey模块,这是Mule ESB(企业服务总线)的一个组件,用于集成RESTful服务。Jersey是Java JAX-RS(Java API for RESTful Web Services)规范的实现,它...

Global site tag (gtag.js) - Google Analytics