打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ESB服务总线

1      总线

1.1    MULE与ServiceMix比较分析

1.1.1   JBI标准

JBI标准是以请求消息和响应消息为切入点,在集成时将消息和传输协议解耦,形成一种与传输协议无关的消息标准,是一种集成容器模型。ServiceMix是JBI标准的实现,而Mule并非基于JBI标准实现服务集成,但是支持扩展成JBI标准。

JBI的目标在于建立一种Java组件集成的运行环境。

由三部分组成:

l  绑定组件(Binding Components):专门接收各类传输协议。

l  服务引擎(Service Engines):专门处理各种传输和协议转换、BPEL专门负责webservice流程编排、支持通过规则集成各种服务。

l  规格化消息路由(Normalized Message Router):消息标准化,并统一路由分发。

 

  

图1-1 JBI架构服务集成原理

1.1.2   ServiceMix

ServiceMix是基于JBI架构的ESB项目,最新版本servicemix4。如下图示,它是由Apache旗下的多个软件组合而成的。

Apache ODE——实现BPEL引擎;

Apache Camel——实现基于规则的消息路由,可以用DSL去开发集成流程;

Apache Felix——是一个OSGi版本4规范的Apache实现

 

特点:

l  基于JBI规范,模块结构功能分明,但是开发配置复杂,且文档和demo不够丰富;

l  源代码不易获得,并且因为涉及到多个开源项目,若需要自助升级扩展某项功能则会较为复杂;

l  所有消息都需要被统一转换成标准消息后再做处理(对于不需要转换的消息来说存在多于环节),因此性能比Mule差;

l  支持OSGI热部署。

1.1.3   Mule

Mule是最早的开源ESB软件之一,比较轻量,最新版本是3.1.1。Mule的整体架构如图示包括几部分:

1、被集成的应用(Application);

2、通道(channel):集成外部应用与Mule进行消息交互;

3、消息接收器(Message receiver):从通道接受消息;

4、连接器(Connector):在接收端和发送端,知道如何把数据发送给通道或者从通道接受消息,消息接收器就属于连接器的一部分;

5、消息转换器(Transformer):对消息格式进行转换;

6、入站路由(Inbouxnd router):从通道接收入口消息的地址以及接收后对消息进行的处理;

7、组件(Component):处理集成逻辑的组件,可以用POJO,Groovy,Script,BPM,REST Service等技术;

8、出站路由(Outbound router):决定被集成组件处理过的消息要发送到哪里去;

9、消息分发器(Message dispatcher):正好和消息接收器相反,处理如何将消息分发给通道;

 

特点:

l  模块结构功能分明,具有IDE开发工具、开发配置简单,且可参考的文档和demo丰富;

l  消息的处理过程可灵活配置,仅在必要时可以通过Transformer组件转换处理消息,效率较基于JBI标准的ServiceMix要好;

l  不支持OSGI热部署;

l  能够获得完整的源代码,自主升级扩展要比ServiceMix容易。

 

1.2    MULE功能

1.2.1   MULE功能描述

Mule是开源企业服务总线,是企业应用集成工具的集合。Mule主要使用XML配置实现多个企业应用的整合,并提供灵活的机制,实现基于消息的数据路由,传输和不同系统之间的转换。通俗的说Mule的集成功能主要实现了下述功能:

1)       实现跨系统的服务调用;

2)       基于跨系统的服务,实现一定的业务逻辑;

3)       基于多种类型的消息通道,实现多个系统间的消息通信;

4)       支持对多种开源软件的集成。

1.2.1.1 Mule 支持三种部署方式:

1)     可独立部署;

2)     可和web应用一起部署到应用服务器;

3)     可和Java应用一起部署。

1.2.1.2 Mule提供了开发向导插件

能够集成到Eclipse环境,便于创建Mule项目以及调试。

1.2.1.3 配置方式:

1)       Mule主要是基于XML配置服务、流程及转换逻辑,能够通过配置文件清晰的表现整个集成逻辑以及调用关系;

2)       同时Mule支持基于annotation创建集成服务对象,包括创建业务逻辑组件和消息转换类,可简化一部分XML配置工作。

l  Mule支持对Webservice 的集成

1)       已经整合了CXF和AIXS发布服务的功能,能支持自动基于CXF或者AIXS发布WebService,并支持利用服务作为逻辑处理组件的功能。

2)       支持基于一定的业务逻辑,对webservice的代理访问;

3)       支持将webservice的包装成集成逻辑处理组件。

1.2.1.4 整合逻辑定义模式

Mule提供了多种服务整合的模式,包括如下几种:

1)       Service模式: Mule服务是一种集成机制,它基于一些入站路由端点、单个业务逻辑处理组件和一些出站路由和端点提供了一种固定的集成框架模式。为了实现复杂的路由或处理链,通常需要通过Mule提供的VM queue将多个Mule服务联系起来。

2)       Flow模式:流模式是Mule3提供的新功能,官方文档称它是一种既简单又灵活的集成机制,它能够实现复杂的服务集成业务流。Mule提供了基础的流构建模块,你可以很容易的基于这些基础的流模块实现集成的业务流功能。

3)       A configuration pattern:

1.2.1.5 异常处理

对Mule 3 分别针对以下两种场景提供了异常处理接口,只需要实现该接口即可编写集成过程中的异常处理逻辑:

1)       一种是消息处理异常,例如消息路由或者消息b转换异常;

2)       另一种是不涉及到消息的异常,例如连接异常或者初始化异常等

1.2.1.6 支持事务管理

Mule的事务框架不区分对待事务的类型,一个事务可能是一个JDBC事务,XA事务,或JMS交易或消息的确认,所有类型的事务都可以以同样的方式处理。Mule可以在事务端点上配置同步,其中一个端点可以配置为启动新的事务或加入一个现有的事务。在一个端点上配置事务使用<transaction>,它映射到org.mule.transaction.MuleTransactionConfig类。这个元素定义了一个端点应采取的行动时,收到一个事件和事务工厂用于创建事务。

1.2.1.7 支持规则表达式

规则表达式可以从当前的消息中获取一些决定如何处理消息的逻辑标识信息,对于定义路由逻辑或者过滤不需要的消息非常有用。Mule提供了几种默认的规则处理方式,你也可以扩展创建自己的规则处理方式以支持其他编程语言。

1.2.1.8 支持安全

Mule ESB支持使用传输级的或一般的验证方法来验证到达端点的服务请求。另外Mule还提供了对服务组件进行方法级的控制授权。Mule的安全管理器用于验证基于一个或多个安全供应商技术的安全请求。所有的安全功能都是通过Mule的安全API实现的,这样可以很容易地实现安全功能的可插拔的。

1.2.1.9 云连接器

Mule云连接器是一种基于Mule使用SAAS服务、社会媒体或电子商务服务的轻量工具集,云连接器在这些服务上建立了一个层,来简化对这些服务的负载均衡调用。云连接器为Mule的传输通道提供了一种替代类型的连接器,传输通道典型的代表消息的通信协议,而云连接则更适合将mule连接到一个应用的API,该应用基于Mule已经支持的底层协议的上层。

1.2.1.10        支持多种类型的传输通道

在Mule框架中的传输通道,负责将消息从一个应用传输到另外一个应用。每种通道针特定的通道,提供一套功能消息出力功能,例如HTTP通道就能够处理基于Http协议的消息,而文件通道就能够从服务器文件系统中获取文件信息。Mule3.0主要支持如下表所示的传输通道类型:

 

                                                                                                                  
 

序号

 
 

通道类型

 
 

说明

 
 

1.            

 
 

Ajax传输通道

 
 

使得Mule时间能够异步的和Web浏览器交互 。

 
 

2.            

 
 

JBPM集成

 
 

Allows Mule  events to initiate and/or advance processes in a Business Process Management  System (BPMS) a.k.a. Process Engine.

 
 

3.            

 
 

CXF Modules

 
 

Provides support  for web service integration via Apache CXF. Includes a WSDL connector that  invokes remote web services by obtaining the service WSDL.

 
 

4.            

 
 

EJB通道

 
 

Allows EJB  invocations to be made using outbound endpoints.

 
 

5.            

 
 

Email传输通道

 
 

This transport  supplies various email connectivity options.

 
 

6.            

 
 

File Transport Reference

 
 

File  Transport  This transport allows files  to be read and written to directories on the local file system. The connector  can be configured to filter the file it reads and the way files are written,  such as whether binary output is used or the file is appended to.

 
 

7.            

 
 

FTP Transport

 
 

 Allows files to be read / written to a  remote FTP server. 

 
 

8.            

 
 

HTTP Transport

 
 

his transport  supplies HTTP transport of Mule messages between applications and other Mule  servers.

 
 

9.            

 
 

HTTPS Transport

 
 

A secure version of the HTTP transport.

 
 

10.          

 
 

IMAP Transport

 
 

Connectivity to  IMAP mail folders. 

 
 

11.          

 
 

IMAPS Transport

 
 

A secure version  of the IMAP transport. 

 
 

12.          

 
 

JCR

 
 

A transport that  reads from, writes to, and observes JCR 1.0 containers. This transport is  available on MuleForge.

 
 

13.          

 
 

JDBC Transport

 
 

A transport for JDBC connectivity. Some of  its features are available only in Mule Enterprise.

 
 

14.          

 
 

Jersey Module

 
 

Adds support for  the JSR-311 implementation Jersey, which makes it possible to build RESTful  services via a few simple annotations.

 

 

 
 

15.          

 
 

Jetty Transport

 
 

Provides support  for exposing services over HTTP by embedding a light-weight Jetty server. For  inbound endpoints only.

 

 

 
 

16.          

 
 

Jetty SSL

 
 

A secure version  of the Jetty transport.

 
 

17.          

 
 

JMS Transport

 
 

A Mule transport for JMS connectivity.  Mule itself is not a JMS server but can use the services of any JMS 1.1 or  1.02b compliant server such as ActiveMQ and OpenJms, and commercial vendors  such as Weblogic, SonicMQ, and more.

 
 

18.          

 
 

LDAP Transport

 
 

Allows you to send and receive Mule  Messages to/from an LDAP directory.

 
 

19.          

 
 

Legs4Mule  Transport

 
 

Provides transformers and connectors for  IBM mainframes.

 
 

20.          

 
 

Multicast  Transport

 
 

Allows your components to receive and send  events via IP multicast groups.

 
 

21.          

 
 

POP3 Transport

 
 

Connectivity to  POP3 inboxes. 

 
 

22.          

 
 

POP3S Transport

 
 

A secure version of the POP3 transport.

 
 

23.          

 
 

Quartz Transport

 
 

Quartz Transport  Provides scheduling facilities with cron /  interval definitions and allows Mule events to be scheduled/rescheduled.

 
 

24.          

 
 

Restlet  Transport

 
 

Allows you to embed Restlet services  inside of Mule, use the Restlet client API over Mule, and use URI templates  to route messages inside of Mule.

 
 

25.          

 
 

RMI Transport

 
 

Enables events to be sent and received  over RMI via JRMP.

 
 

26.          

 
 

Servlet Transport

 
 

Provides facilities for Mule components to  listen for events received via a servlet request. There is also a servlet  implementation that uses the Servlet transport to enable REST style services  access. This transport is now bundled with the HTTP transport.

 
 

27.          

 
 

SMTP Transport

 
 

Connectivity to  SMTP servers. 

 
 

28.          

 
 

SMTPS Transport

 
 

A secure version  of the SMTP transport. 

 
 

29.          

 
 

SSL Transport

 
 

Provides secure  socket-based communication using SSL or TLS.

 
 

30.          

 
 

STDIO Transport

 
 

This transport provides connectivity to  streams such as System.in and System.out and is useful for testing. 

 
 

31.          

 
 

TCP Transport

 
 

Enables events to be sent and received  over TCP sockets.

 
 

32.          

 
 

TLS Transport

 
 

Provides secure  socket-based communication using SSL or TLS.  

 
 

33.          

 
 

UDP Transport  Reference

 
 

Enables events to be sent and received as  datagram packets.

 
 

34.          

 
 

VM Transport

 
 

Enables event sending and receiving over  VM, embedded memory, or persistent queues.

 
 

35.          

 
 

WebSphere MQ  Transport

 
 

A Mule transport for WebSphere MQ. This  transport is available with Mule Enterprise version 1.6 and later.

 
 

36.          

 
 

WSDL Connectors

 
 

The CXF Module allows remote web services  to be invoked using their WSDL contract.  

 
 

37.          

 
 

XMPP Transport(可扩展通讯和表示协议)

 
 

Provides connectivity over the XMPP  (Jabber) instant messaging protocol.

 

 

1.2.2   MULE功能实现方式及举例

本小节主要从以下几个方面针对Mule的具体开发及配置方式做简要说明。

1.2.2.1 Mule 支持的常用部署方式

1.        独立部署方式:

a)        到Mule的官方网站上下载一个Mule-standalone-3.x.x的压缩包,到服务器上解压到安装目录;

b)       配置环境变量MULE_HOME;

c)        若使用MAVEN则配置MAVEN_OPTS “-Xmx512m -XX:MaxPermSize=256”

d)       进入MULE_HOME/bin目录下运行mule -config your-config.xml(基于your-config.xml文件启动mule服务);

e)        把独立的集成项目工程文件放到MULE_HOME/apps下,例如hellomule;

a)        无需重启mule服务,mule服务能够自动找到新部署的集成项目,访问站点 :       http://localhost:8888/?name=ross出现信息如下信息即部署成功:   Hello ross, how are you?

 

     2、部署到WEB应用服务器上

b)       把mule下面的lib下面所有的jar包copy到tomcat的lib包下面(需要到目录中寻找),如:\Tomcat6.0\webapps\mule-test\WEB-INF\lib

c)        把 \mule-standalone-3.1.1\apps\mule-example-hello-3.1.1\*  copy到tomcat具体某个app的WEB-INF中,如:Tomcat6.0\webapps\mule-test\WEB-INF

d)       修改web.xml添加如下内容:

                 <context-param>

                    <param-name>org.mule.config</param-name>

                  <param-value>/WEB-INF/mule-config.xml</param-value>

                     </context-param>

                     <listener>

                           <listener-class>

org.mule.config.builders.MuleXmlBuilderContextListener

</listener-class>

                     </listener>

e)        启动tomcat, 可以看到控制台有mule启动加载信息输出;

f)        访问站点 :  http://localhost:8888/?name=ross出现信息如下信息即成功:   Hello ross, how are you?

 

稍侯将附上 Mule与Tomcat进行web结合的文章

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《Open Source ESB in Action》作者谈开源ESB
ESB 企业服务总线
Mule与Servicemix比较 - SOA - Java - JavaEye论坛
五大开源ESB项目
Mule 2.x Getting Started Guide第一部分Mule概述之Mule...
目前的开源ESB产品
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服