您好,欢迎访问三七文档
MuleESBMuleESB简介什么是MuleESB?MuleESB是一种基于java的、轻量级的企业服务总线和集成平台,她允许开发者快速的、简单的连接应用,并能够实现数据的转换。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。目前许多公司都使用了Mule,比如沃尔玛,惠普,索尼,DeutscheBank以及CitiBank等公司。Mule官方网站:的主要功能如下:服务的创建与管理(Servicecreationandhosting):用MuleESB作为一个轻量级的服务容器来暴露和管理可重用的服务。服务调解(Servicemediation):隐藏服务消息的格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用。消息路由(Messagerouting):基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。数据转换(Datatransformation):在不同的格式和传输协议中进行转换数据。Mule3Mule近期推出了Mule3,Mule3的新增特点-云连接(CloudConnect)。云连接提供了可以用简单安全的方式为企业提供基于云技术的数据和服务。它的核心是IBeans,一个轻量级、可重用的接口,用于Web技术的连接扩展和数据服务。Mule云包括以下内容1、IntegrationBeans(合成bean):他们是可重用的云接口,可以注入到组件中,可以接受外部的服务,比如说亚马逊、推特、Facebook等,并且是一种简单的接收服务、管理安全机制的方法。请求验证、数据传输、错误挂起等也可以通过这种方法来实现。2、Rest/JAX-RS:(REST协议:即REST(RepresentationalStateTransfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。)现在Jersey已经是Mule核心部署的一部分,提供本地化的对REST和JAX-RS的支持,例如ApacheCXF。Jersey现在已经在易配置和高可扩展性方面做的非常优秀。Jersey现在使用一种包含很多Jersey资源的接口实现组件来替代终端类型的实现方式。3、AJAX:Mule现在直接融合了Javascript应用。Mule3包括了服务终端和Javascript客户端允许事件被直接发布到浏览器,并且事件可以从浏览器进行发布。4、WebService:现在对WebService的发布的配置将更加容易,其扩展性也进一步加强。5、ATOMandRSS:Mule3现在能够较好的支持ATOM了。6、JSONSupport:Mule3包含对JSON数据绑定和JSON传输的支持。7、JAXBSupport:支持组件XML绑定将自动进行,并且也添加了新的JAXB传输。其他的一些支持:1、FLOW:配置的流程化。2、Patterns:配置的模式化,可以极大简化配置,将不同情况的配置进行模式化划分。3、Annotation:改进后新的注释方法对组件中的注入反转、transformers的发布、组件方法的Pol有很大作用。4、Deployment:支持单一服务和组服务的热部署。同时支持部署模型定义。结构上的提高:5、MessageProcessorAPI:消息处理API,Mule3其内部处理方式较为灵活,能够在将来其他模式调整时适应外部服务组件。6、MessageExchangePatterns:消息交换模式,消息在Mule3中的流转将更加精确和灵活。7、MessagePropertyScoping:消息属性作用域。较好的实现了属性的作用范围。8、LifecycleImprovements:生命周期的改进。优化了Mule的开启和关闭行为,热部署也在这方面得以展现,并支持JSR-250生命周期注释方法。9、ExceptionHanding:异常处理,异常处理的兼容性更好,并且有错误行为预处理功能。10、AutomaticTransformation:自动转换,Mule3增强了自动转换引擎,用于进行数据绑定,例如XML/JAX、JSON,并支持自定义。11、CXFNowaModule:CXF现在在Mule3中作为一个模块,在Mule3中对CXF进行了优化,使得CXF的用户与普通的管道/过滤器元素一样。12、REST:Mule的开发团队十分看好REST,在其文档中使用了“enjoy”这个单词来形容REST,可见使用REST协议开发Mule3服务应该是比较合适的。Mule3其他的一些变化:1、Messagefactories:消息工厂,从底层将消息翻译成MuleMessage格式。所有MuleMessage都是由消息工厂创建的。2、XQuerySupport:对XQuery支持。3、DynamicEndpoints:动态终端,Mule中的终端可以动态构造,通过Mule传输的消息可以构造终端地址。4、JBossjBPM:文档中说明Mule从很早以前就开始与JBossjBPM进行整合了,但是在Mule3中,对其进行了改善,并将JBossjBPM版本升级到了4.4版本。5、TransactionEnhancements:Transaction被增强,通过配置xa-transaction元素属性,Mule可获知在Mule外部Transaction已经开始了。6、AXISCodeRemovedfromMule: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可以大大降低产品上市时间,提高生产率,保证项目的安全,能够根据需要适应改变并向上或向下升级应用。MuleESB简介对消息框架的理解建立网络应用程序的优点之一,是一个应用程序可以将数据发送到另一个应用程序。但是,许多应用程序没有能力直接读取或处理来自另一个应用程序的数据。MuleESB为此提供了一个消息处理框架,用于读取、转换和发送应用程序间的数据。Mule对消息(Message)的定义:一个消息是一个简单的、可以处理的、在应用程序之间的一个通道(也称为队列)上发送的数据包。在最基本的层面上,当应用程序连接Mule,它从一个应用程序中读取数据,根据需要把它转换,并把它发送到接收端应用程序。这可以整合所有类型的应用程序,甚至包括没有内置集成的程序。Mule消息传递框架以企业服务总线(ESB)的架构为基础。Mule和传统ESB的区别是,MuleESB只有在需要时转换数据。对于传统的ESB,必须为每个应用程序创建一个连接到总线的连接,并将其传输数据转换成一个单一的共同通讯格式。因此需要处理每条消息而耗费大量的时间,开发时也需要更多精力。MuleESB消除了对单一消息格式的需要。MuleESB支持多种消息管道,如HTTP或JMS,消息在传输过程中,只有在需要时候进行翻译转换。因此,MuleESB提高了性能,相比于传统ESB降低了开发时间。理解MuleESB的架构企业发票处理:SOA简介SOA是面向服务的架构的缩写,是软件开发的发展方向。SOA允许IT组织通过联合应用的功能组件或者服务来创建新的应用。使用SOA企业能大大节省开发成本并能迅速的适应业务条件的改变。SOA还能更好的整合企业的IT资源,包括早先独立开发的应用以及遗留系统。MuleESB完全支持SOA方法论并能够编排互相通信的服务,使你能够很容易的将所用的应用整合到一起。数据的处理当一条消息从一个应用程序(如从一个订单输入系统发票)发送,MuleESB将其发送到服务,此服务是使用一些特定的业务逻辑(如核对客户和库存数据库)对这条消息进行处理,然后路由到正确的应用程序(如订单执行系统)。Mule包含许多消息加工处理和消息路由的功能组件。处理流程的关键部分是服务组件。服务组件执行业务处理,如阅读发票信息、逻辑分析、增加客户数据库信息等,然后转发到订单执行应用,如下图。Mule中服务的重要特点是,它不具有任何Mule特定的代码,它可以仅仅是一个POJO,JavaBean,SpringBean或WebService,包含在一个特定的方式处理数据的业务逻辑里。Mule管理服务组件、配置设置绑定、发布服务,并确保配置的消息消息传递的正确性。可以有许多不同的服务组件,执行不同的业务逻辑。服务组件间的消息路由服务组件中包含对消息中的数据进行的业务处理,但本身未包含关于如何发送和接收消息的信息。为了保证服务组件对消息的正确接收和当处理完成后对消息的正确路由,需要在配置MuleESB时,为组件设置inboundrouter(入站路由)和outboundrouter(出站路由),如下图所示。入站路由指定的消息将被服务组件进行处理,并且可以过滤外来消息,对其进行聚合和重新序列化。处理完成后的消息,将由出站路由指定发送路线。从消息中分离业务逻辑Mule众多优点之一,是它可以处理通过各种协议发送来的消息。并且服务组件是完全屏蔽消息格式的,在消息路由转发之前,由transformers改变消息的payload,使得消息能够符合服务组件要求的格式,这样服务组件就可以直接读取消息了。消息的传输、转换和路由,对于服务组件来说是完全透明的,如下图所示。Transformers对于Mule的数据交换十分重要,因为它能够将数据转换成服务组件或应用程序可以直接使用的格式,并且是在需要时候才转换,不需要时不进行转换,机制比较合理。可以通过设置多个transports来处理多个渠道中的数据。将业务处理和数据转换分离,这样就会带来很大的灵活性,因为这样能够专心考虑业务逻辑,不用过多考虑数据格式。在官方文档中也说明了,服务组件也支持使用没有经过转换的原始数据格式。连接协同工作连接协同工作的关键是终端所配置的元素信息。在出站路由和入站路由中指定终端,使得MuleESB能够知道使用哪个transport进行消息转换,将消息发送到哪个服务组件进行处理,处理后将消息发向哪里。终端的重要属性是地址,终端地址采用统一资源标识符(URL)表明使用哪个transport、transport位置、和其它一些参数,下图描述了连接协同工作处理过程。一个服务可以接收来自多个transports发送来的消息,但是必须进行配置,可以指定多个终端。消息路由和终端有过滤器的功能,可以只接收特定的消息,不愿接收的消息不接收。总之,Mule提供了一个简单的轻量级的方法来支持服务组件的开发,不需过多考虑数据的传送和数据格式的转换。但是其它连接数据源的方法将会带来额外的代码量。Mule的使用将会提高服务组件的开发速度,并通过配置XML改变其行为,而非普通Java代码。理解逻辑数据流通过发票处理这个例子,了解逻辑数据流程。下面图表举例说明了,在MuleESB中数据流是怎么工作的。上图步骤说明:(1)、客户在公司网站上生成了一个订单,产生了一份发票,并将发票内容以XML的形式提交给。(2)、HTTPtransport接收这个XML发票信息,将其打包成Mule消息。客户数据服务入站路由的终端设置为,由于服务组件要求的消息格式是Javaobject,所以入站路由设置入站消息必须包含一个Javao
本文标题:MuleESB简介
链接地址:https://www.777doc.com/doc-6133122 .html