📜  MuleSoft-Mule项目

📅  最后修改于: 2020-11-12 05:00:50             🧑  作者: Mango


Mule项目背后的动机是-

  • 为了使程序员更简单,

  • 对轻量级模块化解决方案的需求可能会从应用程序级消息传递框架扩展到企业范围内的高度可分配框架。

Mule ESB被设计为事件驱动的程序框架。它是事件驱动的,因为它与消息的统一表示相结合,并且可以通过可插入模块进行扩展。它是编程的,因为程序员可以轻松植入一些其他行为,例如特定的消息处理或自定义数据转换。

历史

Mule项目的历史观点如下-

SourceForge项目

Mule项目于2003年4月作为SourceForge项目开始,两年后,其第一个版本发布并移至CodeHaus。通用消息对象(UMO)API是其体系结构的核心。 UMO API背后的想法是统一逻辑,同时将其与基础传输隔离。

版本1.0

它于2005年4月发布,包含许多运输工具。紧随其后的许多其他版本的重点是调试和添加新功能。

2.0版(采用Spring 2)

Spring 2作为配置和布线框架在Mule 2中被采用,但是由于缺乏所需XML配置的可表达性而被证明是一项重大的改革。在Spring 2中引入基于XML Schema的配置后,此问题已解决。

用Maven构建

在开发和部署期间,简化Mule使用的最大改进是使用Maven。从1.3版开始,它开始使用Maven构建。

MuleSource

2006年,MuleSource被合并为“使用关键任务的企业应用程序来支持和支持快速增长的社区”。它被证明是Mule项目的关键里程碑。

Mule ESB的竞争对手

以下是Mule ESB的一些主要竞争对手-

  • WSO2 ESB
  • Oracle服务总线
  • WebSphere Message Broker
  • Aurea CX平台
  • 菲奥拉诺ESB
  • WebSphere DataPower网关
  • 工作日业务流程框架
  • 塔伦德企业服务总线
  • JBoss企业服务总线
  • iWay服务经理

ule子的核心理念

如前所述,Mule ESB是一个轻量级且高度可扩展的基于Java的企业服务总线(ESB)和集成平台。无论应用程序使用何种技术,Mule ESB都可以轻松集成应用程序,从而使它们能够交换数据。在本节中,我们将讨论Mule的核心概念如何发挥作用,以实现这种集成。

为此,我们需要了解其架构以及构建基块。

建筑

Mule ESB的体系结构具有三层,即传输层,集成层和应用程序层,如下图所示:

ule子核心概念

通常,可以执行以下三种类型的任务来配置和定制Mule部署-

服务组件开发

此任务涉及开发或重用现有的POJO或Spring Bean。 POJO是具有生成get和set方法(云连接器)的属性的类。另一方面,Spring Beans包含用于丰富消息的业务逻辑。

服务编排

该任务基本上提供了涉及配置消息处理器,路由器,转换器和过滤器的服务中介。

积分

Mule ESB的最重要任务是集成各种应用程序,而不管它们使用的协议是什么。为此,Mule提供了允许在各种协议连接器上接收和分发消息的传输方法。 Mule支持许多现有的传输方法,或者我们也可以使用自定义传输方法。

建筑模块

ule子配置具有以下构造块-

建筑模块

春豆

Spring bean的主要用途是构造服务组件。构造Spring Service组件后,我们可以通过配置文件或手动定义(如果您没有配置文件的话)。

代理商

它基本上是在Mule Studio之前在Anypoint Studio中创建的服务。一旦启动服务器,便会创建一个代理,一旦停止服务器,该代理将被销毁。

连接器

它是一个配置了特定于协议的参数的软件组件。它主要用于控制协议的使用。例如,为JMS连接器配置了一个Connection,并且该连接器将在负责实际通信的各个实体之间共享。

全局配置

顾名思义,此构造块用于设置全局属性和设置。

全球端点

它可以在“全局元素”选项卡中使用,该选项卡在流程中可以使用多次-

全局消息处理器

顾名思义,它观察或修改消息或消息流。变压器和过滤器是全局消息处理器的示例。

变压器变压器的主要工作是将数据从一种格式转换为另一种格式。它可以全局定义,并且可以在多个流中使用。

过滤器-它是决定应该处理哪个Mule消息的过滤器。过滤器基本上指定了要处理一条消息并将其路由到服务所必须满足的条件。

楷模

与代理相反,它是在Studio中创建的服务的逻辑分组。我们可以自由启动和停止特定模型中的所有服务。

服务-服务是包装我们的业务逻辑或组件的服务。它还专门为该服务配置路由器,端点,转换器和过滤器。

端点-可以定义为对象,服务将在该对象上入站(接收)和出站(发送)消息。服务通过端点连接。

消息处理器使用流来定义源和目标之间的消息流。

ule子消息结构

完全包装在Mule消息对象下的Mule消息是通过Mule流通过应用程序的数据。下图显示了Mule的消息结构-

讯息结构

如上图所示,Mule Message由两个主要部分组成-

标头

它不过是消息的元数据,它由以下两个属性进一步表示-

入站属性-这些是由消息源自动设置的属性。它们不能由用户操纵或设置。本质上,入站属性是不可变的。

出站属性-这些属性包含像入站属性这样的元数据,可以在流程过程中进行设置。它们可以由Mule自动设置,也可以由用户手动设置。本质上,出站属性是可变的。

当邮件通过传输从一个流的出站端点传递到另一流的入站端点时,出站属性变为入站属性。

当消息通过流引用而不是连接器传递到新流时,出站属性仍然是出站属性。

有效载荷

消息对象携带的实际业务消息称为有效负载。

变数

它可以定义为有关消息的用户定义的元数据。基本上,变量是有关正在处理消息的应用程序使用的消息的临时信息。它不打算与消息一起传递到其目的地。它们分为以下三种类型-

流变量-这些变量仅适用于它们存在的流。

会话变量-这些变量适用于同一应用程序中的所有流。

记录变量-这些变量仅适用于作为批处理一部分处理的记录。

附件和额外负载

这些是有关消息有效负载的一些额外元数据,不一定每次都出现在消息对象中。