Mule 是一个轻量级且高度可扩展的 ESB,最近它发布了 2.0 版。2.0 版的新特性包括:
- XML Schema——通过使用基于 XML Schema 的配置,Mule 的配置比以往更简单。这为 IntelliJ 和 Eclipse 这样的 IDE 提供了配置自动补全特性,使得配置更加简单。
- Spring 式的 Mule——Spring 是默认的配置机制,同时 Mule 也可以利用 Spring AOP、Spring 资源加载和 Spring 模块。
- 架构上的改进——进行了很多架构上的改进,包括引入了 MuleContext 和 Registry;将 MuleDescriptor 改为独立的服务及组件模型;端点改进;以及对流和转换的改进。
InfoQ 采访了 MuleSource 的 CTO 及共同创始人 Ross Mason 以了解该新版本。
有了架构上的改进、新的 XML 配置及包的重新组织,Mule 2 与 Mule 相比有哪些不同?
主要的改变就是新的 XML 配置。所有的配置元素都是类型良好的(well-typed)且可描述的。在配置文件中不再有类名了(除了你自定义的扩展)。每个命名空间都向你的应用中引入一个模块或者 transport。命名空间使得用户可以为每个 transport 配置 transport 特定的端点,这很轻松地就让我们知道必须的配置以及可选的配置。通过使用基于 schema 的配置,大多数 Xml 编辑器都会提供代码补全及内联文档的功能。我们可以看到有很多架构上的改变:
- 没有 MuleManager 了。相反,我们将这个大对象分解为可管理的几部分,这样扩展就更容易了,同时对核心服务器端行为的回调也更容易。
- 从用户的角度来看,他们所处理的对象的定义更加准确了。我们已经仔细研究过 Mule 中的所有对象,并确定他们的定义和作用是定义良好的。
- MuleContext 提供了对 Mule 资源的运行时访问(每次一个实例)。
- Registry 可以管理运行时对象。你可以拥有多个 Registry,这使你能覆盖现存的 Mule 实例的配置。
- 我们已经将组件(定义业务逻辑的 POJO)服务(定义如何以服务的方式管理组件的配置)的概念进行了分解。这对于帮助用户理解组件和服务的关系是很重要的。
- 核心的架构尚未改变,这意味着 Mule 的老用户不必抱怨,他们仍旧可以沿用以往的工作方式。
对于现有的 Mule 用户来说有没有推荐的升级方式呢?
现在还只能以手工方式升级到 Mule2.0。配置的结构与 Mule1.0 非常类似,但是对于 Mule2.0 来说,配置量大大降低了。对于 Mule 的企业用户来说,当我们发布了 Mule2.0 企业版时,我们会发布一个升级工具。
这么多的特性,你认为用户对哪些最感兴趣呢?你认为什么特性是最值得你自豪的?
自从对 mule 做了这么多大的改进后,我最自豪的地方就是其核心架构。我们需要为 Mule 上的新项目创建一个良好的平台。不幸的是,大多数用户永远也不会直接看到这些变化 :)
- 我们新增了一个表达式计算框架,这意味着用户可以定义像 xpath、xquery、groovy 和 jxpath 这样的表达式并使用 Mule 特定的处理器,如 header、attachment 及 function 表达式在运行时获得消息中的信息。我们可以使用这些表达式快速转换当前的消息、构造新的消息以及进行基于内容的路由。这是相当强大的功能,因为这使得运行时的配置更加动态。为 mvel、ognl 或者 jruby 等增加新的表达式计算插件也是非常容易的。
- 我们对消息处理进行了修补,现在已经支持自动转换了,这意味着必要时会探测已有的转换器并应用他们。这样用户就可以使用 MuleMessage.getPayload(org.w3c.dom.Document.class)或者 MuleMessage.getPayload(org.xml.sax.InputSource.class)来请求不同的消息类型。同时用户依旧能像以前那样显式定义转化器。
- 消息处理更加高效。默认情况下使用流方式处理,因此没必要再去显式定义流的端点。
- 我们对特定 transport 端点配置做了巨大的改进,这将根除端点配置错误的情况发生。
- 就在 Mule 2.0 发布的同时,我们还发布了 Mule IDE 的里程碑。它基于 Eclipse 并且包含了对新的可视化拖拽编辑的预览。
你还想增加什么呢?
架构上的改变使得 Mule 能从 OSGi 容器上加载。Mule 2.0 还不支持 OSGi,但是在本月初旧金山举办的 MuleCon 大会上,我们在 Mule 上演示了一个服务热部署的 demo,大家都对这个 demo 表现出极高的热情。
Mule 2.0 已经发布了,请查看概览并下载最新版以了解这些新特性是如何工作的。
查看英文原文: Mule 2.0 Released
评论