Menu
Woocommerce Menu

      主要介绍,保证了不同的组件或者应用可以通过公共的消息总线进行交互

0 Comment


Mule是什么?
   
Mule是一个轻量级的基于Java的ESB消息框架,它允许用户快捷地连接多个应用并且在这些应用之间交换数据。Mule使用了SOA的体系结构思想,
可以方便的集成已有的应用。它是可升级的、高分布式的对象代理,可以通过异步传输消息技术来无缝的处理服务与应用之间的交互。
   
Mule框架提供了一个可升级的环境,可以把自己的业务组件部署在里面。Mule管理所有组件之间的交互,不管它们是在同一个虚拟机中还是在internet上,也不管底层使用的传输方式。
   
Mule围绕着企业服务总线(ESB)架构进行设计,保证了不同的组件或者应用可以通过公共的消息总线进行交互,公共的消息总线一般是由JMS或者其他消息服务器来实现。
    在应用中会使用不同的技术,包括JMS,Web
Services,JDBC,HTTP等等,Mule可以很好地处理他们之间的交互。
    图片 1图片 2图片 3
    Mule有以下的优点:
   
(1)Mule组件可以是你需要的任何类型。你可以很容易地集成一切从一个”plain
old Java object”(POJO)到另一个框架的组件。
   
(2)Mule和ESB模型允许组件重用。不像其他的框架,mule允许你使用一个已有的组件而不需要改变。组件不需要任何特定的mule代码,并且没有要求的API。业务逻辑和消息逻辑保持完全分离。
   
(3)消息可以是任何格式,从SOAP到二进制图像文件。mule对体系结构不强制任何设计限制,比如XML消息或者WSDL服务。
   
(4)你可以以多种拓扑结构开发mule,不仅仅是ESB。因为它是轻量级的和可嵌入的,mule可以有效地减少到市场的时间,并且增强项目参评,比如安全性,可扩展性。
    mulesorce提供了管理工具运行管理你的开发(Mule HQ)和基础设施(Mule
Galaxy)。
    理解消息框架
   
应用网络化的好处是使得一个应用能够发送数据到另一个应用。但是许多应用不能够读取和处理另一个应用的数据。Mule通过在应用之间提供一个消息框架以消
息的方式读取、转换和发送数据来解决这个问题。一个消息是一个数据包,它可以在一个特定的管道(channel,也成为一个queue)中处理和发送。如
下图所示:
    图片 4
    理解Mule体系结构
   
该部分讨论了Mule体系结构的不同部分和他们如何处理消息和数据。这里使用了一个例子:一个公司需要为客户订单(order)产生发票(invoice),对这些发票执行一些处理后,把它们发送到运输部门以满足订单。
    图片 5
    处理过程:
    图片 6
    把业务逻辑和消息分离
   
Mule的一个优点是它能处理通过一系列协议发送的消息。例如,一个发票(invoice)可能是XML格式的,但是它可能通过HTTP到达,也可能是作
为一个JMS消息,这取决于哪个应用创建了这个发票(invoice)。如果服务组件仅仅处理业务逻辑和数据,而不是消息本身,它是如何读取各种格式的消
息的呢?
   
答案是:服务组件不知道如何读取消息,因为默认地,服务组件和消息格式是屏蔽的。取而代之,一个transport单独携带消息,transformer
在router传递这个消息到服务组件之前改变消息的负载(比如刚才的invoice),它按照需要格式化使得这个服务组件可以读取。例如,如果一个
XML invoice通过HTTP被发送,HTTP
transport携带这个消息,router指导这个消息到达每一个服务组件以处理它,并且transformer按需要沿路改变这个
invoice(比如从XML到一个Java对象)。所有的这些transporting,transforming和routing对于消息组件是透明
的。
图片 7
    
    把所有的组织起来
   
Endpoint是配置的元素,是把所有服务组织起来的关键。你在inbound和outbound
routers指定endpoint来告诉Mule使用哪个transport,把消息发送到哪里和服务组件需要接收哪个消息。一个endpoint的主
要部分是地址(address),表达成URI,表示了使用的transport、地址和任意额外的参数。
图片 8   
下面说明上图所示的逻辑数据流:
   
(1)用户放一个order到公司网站,并且一个invoice被创建成一个XML格式并且提交到
    (2)HTTP transport接收这个XML invoice并且把它包装成一个Mule
message。这个用户数据服务的inbound
endpoint设置成
router指定这个消息必须包含一个Java对象,所以HTTP
transport准备转换这个XMLinvoice并且分发这个消息到这个服务。
    (3)XML到对象 transformer把XML invoice转换成一个Java对象。
    (4)这个transport把这个消息传给用户数据服务。
    (5)用户数据服务组件查询master customer
database(数据库)以获取关于永和的额外数据,并且更新invoice的数据。
    (6)HTTP transport使用outbound
router配置来决定它必须分发消息到
    (7)HTTP transport使用Inventory Verification服务的inbound
router配置来获取消息并且把它传输到服务组件。
    (8)服务组件更新invoice,有那个warehoused的一个ID
code,这个仓库有所有的现在库存的invoice。
    (9)outbound endpoint 指定一个JMS地址,所有这个JMS
transport分发这个消息到order fulfillment
application,这个应用挑选订单。

介绍了主流商业和开源ESB的发展趋势、可借鉴的地方和其缺点:


面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。Soa的开发方法一般主要有开源的dubbo、dubbox、mule、wso2、cxf,以及付费的Oracle
soa、ibm soa等。

本文介绍如何在 Linux 上部署 Mule ESB。Mule
是一个以Java为核心的轻量级的消息框架和整合平台,基于EIP(Enterprise
Integeration
Patterns,由Hohpe和Woolf编写的一本书)而实现的。Mule的核心组件是UMO(Universal
Message
Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议(file,FTP,UDP,TCP,email,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,Axis,Drools等。

    Mule中的几个名次解释:

 

       
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web
Service技术之后的自然延伸。

顺便过一下关于ESB(企业服务总线)的概念:
图片 9

    1. Connectors
:就是支持不同协议的连接器。例如:Http,FTP,Mail,Soap,JMS和MW等等.通常连接器有三种类型:只用于接收,只用于发送和两者皆可。

      主要介绍:

      
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。

回头继续说说 Mule,Mule
Studio是一个功能强大、用户界面友好的基于Eclipse的开发工具(下载地址)。使用者不需要深入了解Mule的XML配置语法,就可以在几分钟内轻松的创建、编辑、测试Mule
ESB流程。Mule Studio基于Eclipse技术,包含3个主要部件:项目结构树、工具箱和画布。项目结构树包含整个项目的目录结构。创建Mule项目后将看到Mule项目的名称和如下的文件和目录结构:

    2. EndPoints
Address:终端地址,类似于jms://topic:myTopic这样的东西。前面的jms就是连接器的类型。后面是各个连接器能识别的地址。这
个地址可以是接收器识别的地址,例如:jms://topic:myTopic表示对myTopic这个队列进行监听。也可以是发送器识别的地址。例如
pop3://user:password@mail.mycompany.com将某一个消息发送到远程邮箱里面。

      Oracle Service Bus

SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化作用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:

路径

描述

src/main/java

存放自定义的Java类

src/main/resources

存放流程图

src/test/resources

存放自定义的Java测试类

Application

存放Mule部署属性文件

Src

Main/app包含流程的xml文件;Main/test包含流程测试相关文件

mule-project.xml

项目metadata文件。可以编辑里面的名字、描述和服务器运行时版本等信息

JRE System Library

Java runtime libraries.

Mule Runtime

Mule runtime libraries.

   
注意这里的地址是你自己命名的,通常不同的应用有不同的地址,例如某个应用是jms://topic:myTopic。另一个是jms://topic:myTopic2

      WebSphere Message Broker

可从企业外部访问

下图是Mule Studio中的项目结构树截图:

    3. UMO Components
:可以想象成这是ESB总线上的一个个芯片,控制器。在Mule里面,他们是一些POJO,负责接收消息,然后进行处理,在发送出去。例如,一个UMO它
的作用是监听jms://topic:myTopic里面的消息,如果有,加以处理后发送到pop3:
//user:password@mail.mycompany.com这个邮箱里面。

      Mule

随时可用

图片 10

     显而易见,UMO通过简单的调用EndPoints
Address来接收消息和转发消息。它不需要知道自己按照什么协议接收和发送消息。这就是ESB的作用所在,即提供统一的总线接口。

      ServiceMix/FUSE ESB

粗粒度的服务接口分级

图片 11

      Synapse/WSO2 ESB

松散耦合

 

可重用的服务

ESB产品一览表包括商业和开源:

服务接口设计管理

类型

标准化的服务接口

产品

支持各种消息模式

公司

精确定义的服务契约

 

SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web
S**
ervices Description Language**)是用于描述服务的标准语言。

 

SOA 服务用消息进行通信,该消息通常使用XML
Schema来定义(也叫做XSD, XML Schema
Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。

 

在一个企业内部,SOA服务通过一个扮演目录列表(directory
listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal
Description, Definition, and Integration)是服务登记的标准。

 

每项SOA服务都有一个与之相关的服务品质(QoS, quality of
service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。

 

随着全球信息化的浪潮,信息化产业不断发展、延伸,已经深入了众多的企业及个人,SOA系统架构的出现,将给信息化带来一场新的革命。

商业

纵观信息化建设与应用的历程,尽管出现过XML(标准通用标记语言的子集)、Unicode、UML等众多信息标准,但是许多异构系统之间的数据源仍然使用各自独立的数据格式、元数据以及元模型,这是信息产品提供商一直以来形成的习惯。各个相对独立的源数据集成一起,往往通过构建一定的数据获取与计算程序来实现,这样的做法需要花费大量工作。信息孤岛大量存在的事实,使信息化建设的ROI(投资回报率)大大降低,ETL成为集中这些异构数据的有效工具。 ETL常用于从源系统中提取数据,将数据转换为与目标系统相兼容的格式,然后将其装载到目标系统中。数据经过获取、转换、装载后,要产生应用价值,还需另外的数据展现工具予以实现,如此复杂的数据应用过程,必定产生高昂的应用成本。

Oracle Service Bus (OSB)

结构化的数据管理尚可通过以上方法,予以实现其集成应用。在非结构化的内容方面,这些具有挑战性的问题令人生畏。内容管理的应用方案基于不同的信息化应用系统,而且大部分是纵向的以组织部门为界限的。在内容管理市场中,经常使用来自不同厂商的产品来提供这些解决方案。即使是同一个厂商的产品,相互之间的功能也是经常重叠,并且无法集成。

 

随着信息化建设的深入,不同应用系统之间的功能界限已趋于模糊。同时企业资源计划系统和协同商务系统,又需要商业智能的分析展现数据提供用户操作依据。

Oracle

在激烈竞争且多变的市场环境下,企业的管理模式很难固化,应用传统的信息化软件,当企业要做出一些改动时需要面对巨大的挑战。

Oracle Enterprise Service Bus (ESB)

2000**WebService出现后,SOA被誉为下一代Web服务的基础框架,已经成为计算机信息领域的一个新的发展方向。**

WebSphere Enterprise Service Bus

SOA的出现给传统的信息化产业带来新的概念,不再是各自独立的架构形式,能够轻松的互相联系组合共享信息。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图