主页 ESB集成指南 为什么要使用Mule ESB?

通过将新计划的上市时间缩短来提高组织敏捷性,是公司实施ESB作为其IT基础架构骨干的最常见原因之一。ESB体系结构通过提供一个简单且定义明确的,“可插拔”的系统来很好地实现这一点,该系统可以很好地扩展。此外,ESB提供了一种利用现有系统并将其使用其通信和转换功能将其暴露于新应用程序的方法。

实作

ESB体系结构具有一些允许业务敏捷性和规模扩展的关键原则。关键重点是使系统彼此分离,同时允许它们以一致且可管理的方式进行通信。

  • “总线”概念使应用程序彼此分离。通常,这是使用消息传递服务器(如JMS或AMQP)来实现的。
  • 总线上传输的数据是规范格式,几乎总是XML。
  • 在应用程序和总线之间存在一个“适配器”,用于在两方之间封送数据。
  • 适配器负责与后端应用程序通信,并将数据从应用程序格式转换为总线格式。适配器还可以执行许多其他活动,例如消息路由事务管理,安全性,监视,错误处理等。
  • ESB通常是无状态的;状态被嵌入到通过总线的消息中。
  • 规范消息格式是系统之间的约定。规范格式意味着在总线上传输一种一致的消息格式,并且总线上的每个应用程序都可以相互通信

整合核心原则

让我们看一下ESB体系结构如何映射到我们的五个核心集成原则:

  • 编排:将几个现有的细粒度组件组合到单个高阶组合服务中。可以这样做来实现服务的适当“粒度”,并促进基础组件的重用和可管理性。
  • 转换:规范数据格式与每个ESB连接器所需的特定数据格式之间的数据转换。例如,可以在CSV,Cobol抄写本或EDI格式之间转换为SOAP / XML或JSON。规范数据格式可以大大简化与大型ESB实施相关的转换要求,在该实施中,有许多使用者和提供者,每个使用者和提供者都有各自的数据格式和定义。
  • 运输:多种格式(例如HTTP,JMS,JDBC)之间的运输协议协商。注意:Mule通过使JDBC成为可以访问数据的另一种传输方式(或端点),将数据库像另一种“服务”一样对待。
  • 中介:提供以下目的的多个接口:a)支持服务的多个版本以实现向后兼容,或者b)允许通往同一基础组件实现的多个渠道。第二个要求可能涉及为同一组件提供多个接口,一个旧式接口(平面文件)和一个符合标准的(SOAP / XML)接口。
  • 非功能一致性:对于典型的ESB计划,这可以包括围绕安全性和监视策略的应用和实施方式的一致性。此外,可扩展性和可用性的目标可以通过使用多个ESB实例来提供更高的吞吐量(可扩展性)并消除单故障点(SPOF)来实现,这是高可用性系统的主要目标。

选择ESB平台

从大型专有供应商到利基和开源供应商,那里有许多ESB平台。在纸上,有很多相似之处。在选择ESB时,需要考虑以下几点。

轻巧的

Mule是目前最轻巧的集成平台,满载发行版的重量为40 MB。它是设计模块化的,因此,如果需要减少占用空间,可以去除不需要的模块。我们也不认为“轻量级”只是大小。这也是对现有集成进行更改的成本,以及进行更改所需的繁重工作。Mule运行时提供了模块化和超快速的热部署以及配置模型,使重新排序和添加/更改功能变得容易。

不只是调解

大多数供应商认为ESB纯粹是系统之间的中介,并且具有用于托管业务逻辑和发布服务的单独产品。我们认为这是不必要的复杂性。Mule为发布REST和SOAP服务提供了一个轻便且可扩展的服务容器。由于Mule与Spring紧密集成,这意味着开发人员还可以利用Spring的功能来实现业务逻辑。

无障碍-任何开发人员都可以学习Mule

Mule使用所有Java开发人员都熟悉的通用工具,例如Maven,Eclipse,JUnit和Spring。Mule使用XML配置模型(类似于Spring)来定义逻辑,并且自定义代码可以用多种语言编写,包括Java,Groovy,JavaScript,Ruby或Python。此外,Anypoint Studio还可以帮助新开发人员在图形化开发环境中快速上手。

放大,缩小

Mule专为在商品硬件上水平放置而设计-无需大型铁。Mule的运行时很容易嵌入到应用程序中。它也可以嵌入到您的应用程序服务器(例如Tomcat,JBoss或WAS)中,或直接嵌入到您的应用程序中。更重要的是,Mule提供了对JUnit的支持,以便可以将其嵌入到JUnit测试用例中。这功能强大,因为它意味着您可以为可在开发人员笔记本电脑上运行的集成创建可重复的单元测试,并且可以将其合并到连续构建中。

消息不可知

Mule的强大功能是容器与消息无关。这意味着它不会在其用户上强制使用XML消息。尽管XML很常见,但是在许多情况下,您将需要使用JSON,平面文件,Cobol抄写本,二进制和文件附件,流和Java对象。同样,我们的图形化数据映射器对可映射的数据也并不挑剔。更重要的是,Mule流技术使开发人员可以有效地处理大型消息。