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的老用户不必抱怨,他们仍旧可以沿用以往的工作方式。