MuleESB简介
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表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
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、服务级别
• • • • 性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法
ESB解决方案
一、引言信息化的发展在给企业带来难得机遇的同时,也给企业带来了新的挑战。
巨大的投资为企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。
但是这些信息系统可能由不同的品牌导入实施,只关注于各自领域内的数据与业务处理,由于缺少相应的接口标准和规范,它们各自为政,相互之间无法进行信息共享与业务集成,从而形成“信息孤岛”。
随着企业规模的不断扩大,应用系统不断增加,对信息共享、系统互操作性和软件重用方面的要求越来越高,这些相对独立、标准各异的“烟囱"式系统已经不能满足业务的需要,暴露出的弊端越来越多,对企业提出了诸多的挑战。
由于缺少统筹规划,企业内部遗留的IT基础架构庞大且管理起来极其复杂,这些基础架构具有严格的操作要求,分阶段改造非常困难,这样必然会影响企业对客户需求的响应能力以及新增加和改进后的服务的部署。
一个个的“信息孤岛”常常分属于不同的管理职能部门。
由于这些系统没有进行互联,导致难于信息共享,即不同软件提供商的应用程序之间无法互操作。
在多个系统共存的情况下,同一个客户的信息或者企业的信息,通常在多个系统中同时存在,但是各个系统统计出的数据常常不一致,为企业领导层进行正确决策增加了难度。
面对这样的挑战,系统整合成为企业迫在眉睫的问题。
企业迫切需要一种集成方法,将各种旧的应用系统和新的应用系统集成起来,这使得企业应用集成(Enterprise Application Integration,EAI)技术产生与发展起来。
传统的EAI往往使用如CORBA和COM等组件化技术进行分布式、跨平台的程序交互,系统整体的拓扑结构较复杂,组件的连接协议是私有的、非标准的。
其存在着诸如系统灵活性差、投入成本巨大、新系统无法快速部署等问题,不能很好的满足企业集成的需求。
在这种背景下,业内近年来提出了SOA(面向服务的架构)模型,将应用系统抽象成一个个粗粒度的服务,标准化服务接口,松耦合服务架构。
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介绍
消息路由(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安全认证
Mule安全证书的管理概念安全性围绕的主题有验证、授权、消息完整性等。
实现异常处理机制是实现安全机制的前提条件,因为你将遇到诸如验证或授权失败等异常。
MULE和SERVICEMIX中的输入消息验证和授权安全技术,比如轻量级目录访问协议(LDAP)和JAVA验证和授权服务(JAAS)。
Mule ESB安全管理(Mule Sercurity Manager)—端点利用传输的特定细节或普通的认证方法对请求信息进行验证。
—在Mule ESB管理者处定义安全管理者。
—配置安全过滤器。
有四种策略配置:∙JAAS Security∙PGP Security∙Acegi Security∙Component Authorization Using Acegimule安全管理配置1.在mule中的配置<mule-configuration><security-manager><security-provider name="memory-dao"className="org.mule.extras.acegi.AcegiProviderAdapter"><properties><container-property name="delegate"reference="daoAuthenticationProvider"/></properties></security-provider></security-manager>....</mule-configuration>2.mule配置<container-contextclassName="org.mule.extras.spring.SpringContainerContext"> <properties><property name="configFile" value="securityContext.xml"/> </properties></container-context><beans><bean id="daoAuthenticationProvider"class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"><property name="userDetailsService"><ref bean="inMemoryDaoImpl"/></property></bean><bean id="inMemoryDaoImpl"class="erdetails.memory.InMemoryDaoImpl"> <property name="userMap"><value>ross=ross,ROLE_ADMINanon=anon,ROLE_ANONYMOUS</value></property></bean></beans>3.加密策略<security-manager><encryption-strategy name="PBE"className="org.mule.impl.security.PasswordBasedEncryptionStrategy "><properties><property name="password" value="mule"/></properties></encryption-strategy></security-manager>上面的加密策略可以被引用<transformers><transformer name="EncryptedToByteArray"className="org.mule.transformers.encryption.DecryptionTransformer "><properties><property name="strategyName" value="PBE"/></properties></transformer></transformers>4.端口策略文件<endpoint address="http://localhost:4567"><security-filterclassName="org.mule.extras.acegi.filters.http.HttpBasicAuthentica tionFilter"><properties><property name="realm" value="mule-realm"/></properties></security-filter></endpoint><endpoint address="http://localhost:4567"><security-filter useProviders="default,another"className="org.mule.extras.acegi.filters.http.HttpBasicAuthentica tionFilter"/></endpoint>5.Spring安全策略配置<?xml version="1.0" encoding="UTF-8"?><mule xmlns="/schema/mule/core/2.2"xmlns:xsi="/2001/XMLSchema-instance"xmlns:spring="/schema/beans"xmlns:http="/schema/mule/http/2.2"xmlns:mule-ss="/schema/mule/spring-secur ity/2.2"xmlns:ss="/schema/security"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd /schema/mule/core/2.2/schema/mule/core/2.2/mule.xsd/schema/mule/http/2.2/schema/mule/http/2.2/mule-http.xsd/schema/mule/spring-security/2.2 /schema/mule/spring-security/2.2/mule-sp ring-security.xsd/schema/security/schema/security/spring-security-2.0.xsd"><mule-ss:security-manager><mule-ss:delegate-security-provider name="memory-provider" delegate-ref="authenticationManager" /></mule-ss:security-manager><spring:beans><ss:authentication-manager alias="authenticationManager" /><ss:authentication-provider><ss:user-service id="userService"><ss:user name="ross" password="ross"authorities="ROLE_ADMIN" /><ss:user name="anon" password="anon"authorities="ROLE_ANON" /></ss:user-service></ss:authentication-provider></spring:beans>...cut...</mule><?xml version="1.0" encoding="UTF-8"?><mule xmlns="/schema/mule/core"xmlns:xsi="/2001/XMLSchema-instance"xmlns:spring="/schema/beans"xmlns:mule-ss="/schema/mule/spring-security"xmlns:ss="/schema/security"xmlns:http="/schema/mule/http"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/mule/core/schema/mule/core/3.0/mule.xsd/schema/mule/spring-security/3.0/schema/mule/spring-security/3.0/mule-spring-security.xsd /schema/security/schema/security/spring-security-2.0.xsd/schema/mule/http/schema/mule/http/3.0/mule-http.xsd"><spring:beans><ss:authentication-manager alias="authenticationManager"/><ss:authentication-provider><ss:user-service id="userService"><ss:user name="john" password="password" authorities="ROLE_ADMIN"/> </ss:user-service></ss:authentication-provider></spring:beans><mule-ss:security-manager><mule-ss:delegate-security-provider name="memory-dao"delegate-ref="authenticationManager"/></mule-ss:security-manager><model name="springSecurityHttpModel"><service name="springSecurityHttpService"><inbound><http:inbound-endpoint address="http://localhost:8081/secure"exchange-pattern="request-response"><mule-ss:http-security-filter realm="mule"/></http:inbound-endpoint></inbound><echo-component/></service></model></mule><mule-ss:security-manager><mule-ss:delegate-security-providername="ldap-security-provider"delegate-ref="authenticationManager"/></mule-ss:security-manager><security-manager><password-encryption-strategyname="passwordEncryption"password="password"/></security-manager><model name="securityManagerHttpPbeModel"><service name="securityManagerHttpPbeService"><inbound><http:inbound-endpointaddress="http://localhost:8080/audit-trail-data" synchronous="true"><mule-ss:http-security-filter realm="audit-trail"/></http:inbound-endpoint></inbound><outbound><pass-through-router><jms:outbound-endpoint address="topic://audit-data"><transformers><encrypt-transformerstrategy-ref="passwordEncryption"/></transformers></vm:outbound-endpoint></pass-through-router></outbound></service></model>6.LDAP--mule配置<spring:beans><ss:ldap-serverroot="dc=clood,dc=com"url="ldap://:389" /><ss:ldap-authentication-provideruser-dn-pattern="uid={0},ou=people"group-search-base="ou=groups"/><ss:authentication-manager alias="authenticationManager"/><mule-ss:security-manager><mule-ss:delegate-security-providername="memory-dao"delegate-ref="authenticationManager"/></mule-ss:security-manager></spring:beans>7.http策略配置<spring:beans><ss:authentication-provider><ss:user-service id="userService"><ss:user name="john" password="password" authorities="ROLE_ADMIN"/> </ss:user-service></ss:authentication-provider><ss:authentication-manager alias="authenticationManager"></spring:beans><mule-ss:security-manager><mule-ss:delegate-security-providername="memory-dao"delegate-ref="authenticationManager"/></mule-ss:security-manager><model name="httpModel"><service name="httpService"><inbound><http:inbound-endpointaddress="http://localhost:8081/secure"synchronous="true"><mule-ss:http-security-filter realm="mule"/></http:inbound-endpoint></inbound><echo-component/></service></model>8.Mule加密策略<security-manager><password-encryption-strategy name="PBE" password="password"/> </security-manager><model name="pbeModel"><service name="pbeInService"><inbound><jms:inbound-endpoint queue="messages.in"/></inbound><outbound><pass-through-router><jms:outbound-endpoint queue="services.decryption"><transformers><encrypt-transformer strategy-ref="PBE"/><jms:object-to-jmsmessage-transformer/></transformers></jms:outbound-endpoint></pass-through-router></outbound></service><service name="pbeOutService"><inbound><jms:inbound-endpoint queue="services.decryption"><transformers><jms:jmsmessage-to-object-transformer/><decrypt-transformer strategy-ref="PBE"/></transformers></jms:inbound-endpoint></inbound><outbound><pass-through-router><jms:outbound-endpoint queue="messages.out"/></pass-through-router></outbound></service></model>Spring配置<spring:bean id="pgpKeyManager"class="org.mule.module.pgp.PGPKeyRingImpl"init-method="initialise"><spring:propertyname="publicKeyRingFileName"value="conf/public.key.gpg"/><spring:propertyname="secretKeyRingFileName"value="conf/secret.key.gpg"/><spring:propertyname="secretAliasId"value="0x7927DE78"/><spring:propertyname="secretPassphrase"value="mule"/></spring:bean><spring:bean id="credentialAccessor"class="org.mule.security.MuleHeaderCredentialsAccessor"/> <pgp:security-manager><pgp:security-providername="pgpSecurityProvider"keyManager-ref="pgpKeyManager"/><pgp:keybased-encryption-strategyname="keyBasedEncryptionStrategy"keyManager-ref="pgpKeyManager"/></pgp:security-manager><model name="pgpModel"><service name="pgpService"><inbound><jms:inbound-endpointqueue="messages.encrypted" /></inbound><outbound><pass-through-router><vm:outbound-endpointpath="services.decryption"/></pass-through-router></outbound></service><service name="out"><inbound><vm:inbound-endpoint path="services.decryption"><pgp:security-filterstrategyName="keyBasedEncryptionStrategy"signRequired="true"keyManager-ref="pgpKeyManager"credentialsAccessor-ref="credentialAccessor"/></vm:inbound-endpoint></inbound><outbound><pass-through-router><jms:outbound-endpoint queue="messages.decrypted"/> </pass-through-router></outbound></service></model>。
五大开源ESB项目
【51CTO快译】ESB,英文全称Enterprise Service Busses(直译为企业级服务列车),是一种可以让你在Web服务上创建运行在不同平台上的商务流程的软件。
∙为什么我们需要ESB?ESB是怎么回事?
∙案例解析:刚柔相济,构建企业联邦 ESB
∙借助 ESB 整合航空公司商务体系
∙ESB 案例解析:刚柔相济,构建企业联邦 ES
∙GlassFish ESB v2.1发布
下面列出五大开源ESB项目,排名不分先后:
JBoss ESB(JBoss)
在GA版本中有着成熟的组件,没有厂商绑定之类的特征。
Apache ServiceMix(Apache)
Apache ServiceMix 4基于OSGi,提供了一个与XML标准集成的选项。
OpenESB(Sun/Oracle)
OpenESB与Glassfish应用服务器以及NetBeans有着紧密的集成,因此学习曲线很简单。
MuleESB(MuleSoft)
Mule是当下使用最多的开源集成平台。
MuleESB价格低廉,配置、扩展简单,而且灵活性强,使得它非常流行。
WSO2 ESB(WSO2)
相比其他使用了JBI规范的重量级ESB,WSO2这个新来者带来了一个轻量级的ESB。
这是因为,WSO2 ESB 以Web服务标准作为集成的焦点。
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。
MuleSoft与其产品Mule ESB产品说明书
MuleSoft与其产品Mule ESB产品说明书简介Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。
Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。
整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing (路由)、Transaction Management(事务管理)、Transformation(转换)、Message Broker(消息代理)、Transportation Management(传输管理)、Security(安全)等核心模块。
Mule可以单独使用,也可以架设在常用的应用服务器上。
Mule ESBMule是当下使用最多的开源集成平台。
MuleESB价格低廉,配置、扩展简单,而且灵活性强,使得它非常流行。
Mule 是由MuleSoft(前身是MuleSource)开发的一个基于ESB架构理念的消息平台。
Mule ESB的核心是一个基于SEDA的服务容器,该容器管理被称为通用消息对象(Universal Message Objects /UMO)的服务对象,而这些对象都是POJO。
所有UMO和其他应用之间的通信都是通过消息端点(message endpoint)来进行的。
这些端点为众多的分立的技术,比如Jms, Smtp, Jdbc, Tcp, Http, Xmpp, file 等等,提供了简单和一致的接口。
架构说明:1.Mule主要有三个核心组件:传输器transport、路由器router、转换器transformer;2.transport负责在应用之间传递消息,router负责指导消息的传递路径,transformer负责消息格式的转换;3.可以在router中引入过滤器来针对消息内容进行过滤,实现基于内容的路由,并且只需通过xml即可完成,无需编写java代码;4.支持事务、安全、异常管理、JMX管理架构, 提供管理控制台(企业版);5.支持与Apache CXF、Spring和ActiveMQ的集成;6.提供Eclipse插件作为IDE开发Mule应用;Mule ESB的其他特性1.Mule中的组件可以是任何类型,你可以把POJO或者其他系统的组件集成进来;2.可以使用现存的任何组件而无需改变,也不需嵌入Mule的特定代码,不需调用Mule的API,业务逻辑和消息逻辑完全分离;3.消息可以是任何格式,如SOAP或二进制的图像文件;4.支持任何传输之上的异步,同步和请求响应事件处理机制.;5.Mule提供了一种简单而又强大的方式与RESfFul服务交互,即MuleRESTPack。
MULE介绍范文
MULE介绍范文Mule是一种轻量级的企业服务总线(ESB)和集成平台,由MuleSoft公司开发和维护。
它旨在简化企业应用程序和系统之间的集成,并提供一种可靠和可扩展的机制来实现异构系统之间的通信和数据交换。
Mule具有广泛的应用领域,包括企业集成、云集成、数据同步、服务代理、API管理等。
它的主要优势在于其灵活性和可扩展性,使其能够轻松适应不同的业务需求和阶段。
Mule的核心是一个运行时引擎,它提供了一系列的连接器和转换器,可以方便地连接和转换不同的系统、协议和数据格式。
这些连接器包括HTTP、JMS、AMQP、FTP、RabbitMQ等,可以满足大多数企业应用程序之间的通信需求。
此外,Mule还提供了丰富的数据转换器,可以将不同的数据格式(如XML、JSON、CSV等)进行转换和转码。
Mule的架构采用了事件驱动和消息驱动的方式,支持异步、并发和分布式处理。
它将系统间的通信和数据交换抽象为消息传递,在不同的组件之间进行互操作,并通过事件驱动的方式进行流程控制。
这种方式能够提高系统的可伸缩性和性能,并支持高可用和故障恢复。
除了运行时引擎,Mule还提供了一系列的开发和管理工具,以便于开发者进行应用程序的设计、开发和部署。
其中包括Anypoint Studio,一个基于Eclipse的集成开发环境(IDE),提供了图形化界面和可视化工具,可以轻松地创建和配置Mule应用程序。
此外,Mule还提供了可扩展的管理控制台,用于监控和管理运行中的Mule实例。
Mule还提供了丰富的插件和扩展机制,使开发者可以根据具体的需求进行定制和扩展。
这些插件和扩展包括数据绑定、事务管理、安全认证、消息队列等,可以满足不同的集成场景和需求。
总体而言,Mule是一个功能强大、灵活和可扩展的企业服务总线和集成平台,可以帮助企业实现系统之间的无缝集成和数据交换。
它不仅能够提高敏捷性和业务灵活性,还能够提供可靠和可扩展的机制来解决企业集成的挑战。
mule 传参数
mule 传参数Mule传参数是Mule ESB(企业服务总线)中常见的操作之一。
通过传递参数,可以实现不同组件之间的数据交互和信息传递。
本文将介绍Mule传参数的基本概念、使用方法以及一些注意事项。
我们来了解一下Mule传参数的基本概念。
在Mule中,参数可以是任何类型的数据,如字符串、数字、对象等。
传递参数的目的是为了在不同的组件之间传递数据,以便实现各种功能和业务逻辑。
参数可以在Mule流程中的不同组件之间传递,包括源端点、转换器、路由器等。
在Mule中,传递参数可以通过多种方式实现。
其中一种常见的方式是使用Mule表达式语言(MEL)来引用和传递参数。
MEL是一种简单而强大的语言,可以在Mule配置文件中使用,用于处理和操作消息和参数。
通过使用MEL,可以轻松地获取和设置参数的值,以及对参数进行各种操作,如转换、过滤、计算等。
在Mule中,传递参数的方式也可以根据具体需求而定。
例如,可以使用Mule属性来传递参数,属性是一种在Mule消息中存储和传递数据的机制。
属性可以在Mule流程中的不同组件之间传递,以及在同一组件内的不同操作之间传递。
通过使用属性,可以方便地在Mule流程中传递参数值,并在需要时进行引用和操作。
除了使用MEL和属性,还可以使用Mule的变量来传递参数。
变量是一种在Mule流程中存储和传递数据的机制,类似于属性。
不同之处在于,变量的作用范围可以更加灵活,可以在整个Mule流程中共享和传递。
通过使用变量,可以方便地在Mule流程中传递参数,并在不同组件和操作之间共享和引用。
在使用Mule传递参数时,需要注意一些事项。
首先,要确保参数的类型和值是正确的,以避免错误和异常。
其次,要注意参数的命名和引用,以确保在Mule流程中能够正确地引用和使用参数。
此外,要注意参数的作用域和生命周期,以确保在需要时能够正确地传递和使用参数。
总结一下,Mule传参数是实现数据交互和信息传递的重要方式之一。
Mule ESB 和 JBoss ESB 的比较
Mule ESB 和 JBoss ESB 的比较对于工期紧张,任务繁重的项目,人们常常作出轻率的决定:要求比较平稳的项目计划,或者提出古灵精怪的整合需求。
在SOA(基于服务的架构)的发展历程中常常可以见到,不统一规划整合方案,往往是对整个架构(以及IT预算)的最大危害之一。
怎样选择一个高效和合理的整合方案呢?其实很简单:先放下项目计划,将精力集中在项目组的整合需求上。
为了找到一个合适的整合方案,你需要兼顾项目时间,项目预算,项目后期发展需求,是否适合项目组文化,以及符合技术上的要求。
如果一个解决方案不能在项目时间内完成,或者导致项目组出现财政问题,那么这根本不能被称之为解决方案。
因此,为了不受开发商言论的影响,找出整合方案产品之间的差异,最好的方法是:从需求的角度去考察这些产品的特性。
也就是说,到底这个产品是为了解决什么问题?怎样把项目组的需求转换成那个产品能解决的问题?从需求的角度来考察JBoss ESBJBoss ESB 是一个来自JBoss的ESB 风格的整合方案产品。
这个产品诞生于2006年,JBoss 收购了商业化的Rosetta 产品并将其开源,这就是JBoss ESB 的前身。
当时JBoss社区强烈要求一个ESB 风格的整合方案,用来将JBoss的不同产品(JBoss服务器,JEMS等)整合到一起。
为了加速JBoss ESB 的开发,JBoss收购了Rosetta。
在重用Rosetta 的组件后,JBoss 社区很快就开发出了JBoss ESB,可以很容易地应用到JBoss产品中。
JBoss ESB 必须部署到JBoss JEE 服务器,它使JBoss服务器可以更加紧密地与JEMS 和JBossMQ结合起来。
由于JBoss ESB 是用来将其他JBoss产品整合起来的,它的发布周期和这些产品似乎密切相关。
相对于其他整合方案产品,JBoss ESB 的开发路线比较保守。
由于需要与其他JBoss产品紧密整合,JBoss ESB 实现了一个相对宽松的整合架构。
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的内部机制。
esb使用方法
esb使用方法【原创版4篇】目录(篇1)1.ESB 简介2.ESB 使用方法3.ESB 的优点4.ESB 的缺点5.总结正文(篇1)1.ESB 简介ESB(Enterprise Service Bus,企业服务总线)是一种用于实现企业级应用程序集成的技术。
ESB 作为中间件,起到了连接各种不同类型应用程序和服务的作用,它可以将分散在企业内部的各种 IT 资源进行整合,实现高效的数据交换和业务流程协同。
2.ESB 使用方法(1)安装和配置 ESB首先,需要下载并安装 ESB 软件,例如 Apache ServiceMix、Mule ESB 等。
安装完成后,根据需求对 ESB 进行配置,如设置数据源、定义服务接口、配置消息处理器等。
(2)发布服务在 ESB 中发布服务,需要将服务接口和实现捆绑成一个服务单元。
服务发布者将服务单元部署到 ESB 上,并注册相应的服务信息。
(3)消费服务服务消费者通过 ESB 提供的服务注册表查找服务提供者,建立服务调用关系。
当需要调用服务时,服务消费者通过 ESB 发送请求,服务提供者处理请求并返回结果。
(4)管理和监控ESB 提供了管理和监控功能,可以对服务进行生命周期管理,如启动、停止、暂停等操作。
同时,可以对服务调用情况进行监控,实时了解服务运行状况。
3.ESB 的优点(1)提高集成效率ESB 可以降低企业内部各种 IT 资源之间的耦合度,简化应用程序集成,提高整体集成效率。
(2)提高系统可扩展性ESB 采用松耦合的设计理念,使得企业应用程序可以灵活地进行扩展和调整,满足不断变化的业务需求。
(3)提高系统可靠性ESB 具有服务容错、负载均衡等功能,可以确保企业级应用程序在面临各种异常情况时仍能正常运行。
4.ESB 的缺点(1)学习成本较高ESB 作为一种复杂的集成技术,需要开发者具备一定的技术背景和经验,学习成本较高。
(2)部署和维护成本较高ESB 软件本身需要一定的硬件资源,同时,ESB 的部署和维护过程相对复杂,需要投入较多的人力和物力。
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介绍材料
目前现状和困难
需要统一的安全 访问控制管理和 监控管理
客户数据 用保险厂商自身的
承保、核保需要使 服务。 CRM
电商平台 企业的信息
安全监控 需要整合现有 保单数据 保单数据 5 系统和资源 现状4 要有技术无关性 保 的中间层,方便 整合现有系统 险
业务专业性 强、复杂 现状1 订单数据
1
现状2
9
ESB的七大功能
功能6:安全
客户端应用 A:合法信息
服务使用者
功能7:监控和管理
加密后的A
透明的定位 ESB 传输协议转换
权限 加密 消息转换 信息 处理
ESB
1.路由 2.转换 3.安全 4.连接
订单管 理系统
订单服务
消息路由
恶意入 侵应用
服务使用者 B:非法信息 消息处理
数 据
数 据
保险公司A
电子商务系统
数据
数据 数据
适 配 器
申请
承保
数据
保险公司B
数据
核保 核心业务流程
安 全 管 理
系 统 监 控
数 据 转 换
适 配 器
数据
公司CRM
11
ESB 应用场景 —— 数据整合 ESB 应用场景 —— 数据整合
背景:
航空公司有多个独立的
运控系统
航班 数据
航班 号
起飞 时间
地服系统
航班 数据
收益管理系统
航班 数据
航班 号 票价
当前可 定票数
航班 号 航程 燃油 费
航班 号 票价 订票 个数
航班 号 终点 站 气象 信息
航班 号 票价 售出 票数
企业服务总线消息框架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的企业服务总线和集成平台,使得开发人员可以快速,简单的连接多个应用,使得它们可以交换数据。
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 组件可以是任何你想要的类型。
ESB框架介绍范文
ESB框架介绍范文ESB(Enterprise Service Bus)是一种用于构建企业级集成解决方案的架构模式。
它采用消息中间件和现有的软件系统之间的通信来促进各个应用程序之间的连接。
ESB框架提供了一种解决方案,可以由开发人员在应用程序和组件之间进行通信,而无需直接编写特定的集成代码。
本文将详细介绍ESB框架的重要性和基本原理,并提供一些常用的ESB框架的示例。
企业级应用程序通常由多个独立的软件系统组成,这些系统可能使用不同的技术和协议进行通信。
在传统的集成方法中,开发人员需要编写特定的代码来实现这种通信,并处理不同系统之间的协议转换和数据映射问题。
这种集成方法耗时且复杂,且难以扩展和维护。
在ESB框架中,消息被视为数据传输的基本单位。
消息由一个或多个元素组成,可以包括头部信息、主体和尾部等组成部分。
消息被发送到ESB总线,并通过适当的适配器和连接器路由到目标系统。
常用的ESB框架以下是一些常用的ESB框架的示例:1. Apache ServiceMix:这是一个基于Java的开源ESB框架,提供了一套功能强大的工具和组件,用于构建和管理企业级集成解决方案。
2. Mule ESB:这是一个轻量级的Java ESB框架,提供了一套简单、易于使用的API,用于构建和管理企业级应用程序和服务。
3. IBM Integration Bus:这是IBM提供的一套ESB框架,用于构建和管理复杂的集成解决方案。
它提供了丰富的功能和工具,用于处理不同的集成模式和通信协议。
4. Oracle Service Bus:这是Oracle提供的一套ESB框架,用于构建和管理企业级集成解决方案。
它提供了一套强大的工具和组件,用于处理复杂的集成场景。
总结ESB框架是一种用于构建企业级集成解决方案的架构模式,它简化了应用程序之间的通信和集成,提高了开发效率和系统的可扩展性。
ESB框架通过消息传递和中心总线的方式,将不同的应用程序连接起来,并提供了一套标准化的接口,简化了集成的过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
)现在Jersey 已经是Mule核心部署的一部分,提供本地化的对REST和JAX-RS 的支持,例如Apache CXF。
Jersey现在已经在易配置和高可扩展性方面做的非常优秀。
Jersey现在使用一种包含很多Jersey资源的接口实现组件来替代终端类型的实现方式。
3、AJAX:Mule现在直接融合了Javascript应用。
Mule3包括了服务终端和Javascript客户端允许事件被直接发布到浏览器,并且事件可以从浏览器进行发布。
4、Web Service:现在对Web Service的发布的配置将更加容易,其扩展性也进一步加强。
5、ATOM and RSS:Mule 3 现在能够较好的支持ATOM了。
6、JSON Support:Mule3包含对JSON数据绑定和JSON传输的支持。
7、JAXB Support:支持组件XML绑定将自动进行,并且也添加了新的JAXB 传输。
其他的一些支持:1、FLOW:配置的流程化。
2、Patterns:配置的模式化,可以极大简化配置,将不同情况的配置进行模式化划分。
3、Annotation:改进后新的注释方法对组件中的注入反转、transformers的发布、组件方法的Pol有很大作用。
4、Deployment:支持单一服务和组服务的热部署。
同时支持部署模型定义。
结构上的提高:5、Message Processor API:消息处理API,Mule3其内部处理方式较为灵活,能够在将来其他模式调整时适应外部服务组件。
6、Message Exchange Patterns:消息交换模式,消息在Mule3中的流转将更加精确和灵活。
7、Message Property Scoping:消息属性作用域。
较好的实现了属性的作用范围。
8、Lifecycle Improvements:生命周期的改进。
优化了Mule的开启和关闭行为,热部署也在这方面得以展现,并支持JSR-250 生命周期注释方法。
9、Exception Handing:异常处理,异常处理的兼容性更好,并且有错误行为预处理功能。
10、Automatic Transformation:自动转换,Mule3增强了自动转换引擎,用于进行数据绑定,例如XML/JAX、JSON,并支持自定义。
11、CXF Now a Module:CXF现在在Mule3中作为一个模块,在Mule3中对CXF进行了优化,使得CXF的用户与普通的管道/过滤器元素一样。
12、REST:Mule的开发团队十分看好REST,在其文档中使用了“enjoy”这个单词来形容REST,可见使用REST协议开发Mule3服务应该是比较合适的。
Mule3其他的一些变化:1、Message factories:消息工厂,从底层将消息翻译成MuleMessage格式。
所有MuleMessage都是由消息工厂创建的。
2、XQuery Support:对XQuery支持。
3、Dynamic Endpoints:动态终端,Mule中的终端可以动态构造,通过Mule传输的消息可以构造终端地址。
4、JBoss jBPM:文档中说明Mule从很早以前就开始与JBoss jBPM进行整合了,但是在Mule3中,对其进行了改善,并将JBoss jBPM版本升级到了4.4版本。
5、Transaction Enhancements:Transaction被增强,通过配置<xa-transaction>元素属性,Mule可获知在Mule外部Transaction已经开始了。
6、AXIS Code Removed from Mule:AXIS代码在Mule3中被移除,其将作为一个独立模块存在。
Mule的核心竞争力1、Mule的组件可以是你想要的任意类型。
你可以轻松整合任何来自其他框架中某个组件的“简单的Java对象”(POJO)。
2、Mule和它的ESB模型能够重用重要组件。
和其他框架不同,Mule允许你使用现有组件而不需要任何的修改。
组件不需要任何Mule-specific编码,也不需要编程API,就能在Mule中运行。
业务逻辑被完整的从消息逻辑中分离出来。
3、消息可以是任何格式,可以是SOAP,也可以是二进制图像文件。
Mule没有任何设计约束,如:XML消息或WSDL 服务契约。
4、你可以部署Mule在多种拓扑结构中,而不仅仅是ESB。
因为Mule是轻量级的,是可嵌入的。
Mule可以大大降低产品上市时间,提高生产率,保证项目的安全,能够根据需要适应改变并向上或向下升级应用。
Mule ESB简介对消息框架的理解建立网络应用程序的优点之一,是一个应用程序可以将数据发送到另一个应用程序。
但是,许多应用程序没有能力直接读取或处理来自另一个应用程序的数据。
MuleESB为此提供了一个消息处理框架,用于读取、转换和发送应用程序间的数据。
Mule对消息(Message)的定义:一个消息是一个简单的、可以处理的、在应用程序之间的一个通道(也称为队列)上发送的数据包。
在最基本的层面上,当应用程序连接Mule,它从一个应用程序中读取数据,根据需要把它转换,并把它发送到接收端应用程序。
这可以整合所有类型的应用程序,甚至包括没有内置集成的程序。
Mule消息传递框架以企业服务总线(ESB)的架构为基础。
Mule和传统ESB的区别是,MuleESB只有在需要时转换数据。
对于传统的ESB,必须为每个应用程序创建一个连接到总线的连接,并将其传输数据转换成一个单一的共同通讯格式。
因此需要处理每条消息而耗费大量的时间,开发时也需要更多精力。
MuleESB消除了对单一消息格式的需要。
MuleESB支持多种消息管道,如HTTP 或JMS,消息在传输过程中,只有在需要时候进行翻译转换。
因此,MuleESB 提高了性能,相比于传统ESB降低了开发时间。
理解Mule ESB的架构企业发票处理:SOA简介SOA是面向服务的架构的缩写,是软件开发的发展方向。
SOA允许IT 组织通过联合应用的功能组件或者服务来创建新的应用。
使用SOA企业能大大节省开发成本并能迅速的适应业务条件的改变。
SOA还能更好的整合企业的IT资源,包括早先独立开发的应用以及遗留系统。
Mule ESB完全支持SOA方法论并能够编排互相通信的服务,使你能够很容易的将所用的应用整合到一起。
数据的处理当一条消息从一个应用程序(如从一个订单输入系统发票)发送,MuleESB 将其发送到服务,此服务是使用一些特定的业务逻辑(如核对客户和库存数据库)对这条消息进行处理,然后路由到正确的应用程序(如订单执行系统)。
Mule 包含许多消息加工处理和消息路由的功能组件。
处理流程的关键部分是服务组件。
服务组件执行业务处理,如阅读发票信息、逻辑分析、增加客户数据库信息等,然后转发到订单执行应用,如下图。
Mule中服务的重要特点是,它不具有任何Mule特定的代码,它可以仅仅是一个POJO,Java Bean,Spring Bean或WebService,包含在一个特定的方式处理数据的业务逻辑里。
Mule管理服务组件、配置设置绑定、发布服务,并确保配置的消息消息传递的正确性。
可以有许多不同的服务组件,执行不同的业务逻辑。
服务组件间的消息路由服务组件中包含对消息中的数据进行的业务处理,但本身未包含关于如何发送和接收消息的信息。
为了保证服务组件对消息的正确接收和当处理完成后对消息的正确路由,需要在配置MuleESB时,为组件设置inbound router(入站路由)和outbound router(出站路由),如下图所示。
入站路由指定的消息将被服务组件进行处理,并且可以过滤外来消息,对其进行聚合和重新序列化。
处理完成后的消息,将由出站路由指定发送路线。
从消息中分离业务逻辑Mule众多优点之一,是它可以处理通过各种协议发送来的消息。
并且服务组件是完全屏蔽消息格式的,在消息路由转发之前,由transformers改变消息的payload,使得消息能够符合服务组件要求的格式,这样服务组件就可以直接读取消息了。
消息的传输、转换和路由,对于服务组件来说是完全透明的,如下图所示。
Transformers对于Mule的数据交换十分重要,因为它能够将数据转换成服务组件或应用程序可以直接使用的格式,并且是在需要时候才转换,不需要时不进行转换,机制比较合理。
可以通过设置多个transports来处理多个渠道中的数据。
将业务处理和数据转换分离,这样就会带来很大的灵活性,因为这样能够专心考虑业务逻辑,不用过多考虑数据格式。
在官方文档中也说明了,服务组件也支持使用没有经过转换的原始数据格式。