InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Mule 2.0 发布啦

作者 Ian Roughley 译者 张龙 发布于 2008年4月28日

领域
语言 & 开发,
企业架构
主题
SOA ,
SOA Appliance ,
ESB ,
Java ,
SOA平台
标签
Mule

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编辑器都会提供代码补全及内联文档的功能。

我们可以看到有很多架构上的改变:
  1. 没有MuleManager了。相反,我们将这个大对象分解为可管理的几部分,这样扩展就更容易了,同时对核心服务器端行为的回调也更容易。
  2. 从用户的角度来看,他们所处理的对象的定义更加准确了。我们已经仔细研究过Mule中的所有对象,并确定他们的定义和作用是定义良好的。
  3. MuleContext提供了对Mule资源的运行时访问(每次一个实例)。
  4. Registry可以管理运行时对象。你可以拥有多个Registry,这使你能覆盖现存的Mule实例的配置。
  5. 我们已经将组件(定义业务逻辑的POJO)服务(定义如何以服务的方式管理组件的配置)的概念进行了分解。这对于帮助用户理解组件和服务的关系是很重要的。
  6. 核心的架构尚未改变,这意味着Mule的老用户不必抱怨,他们仍旧可以沿用以往的工作方式。

对于现有的Mule用户来说有没有推荐的升级方式呢?

现在还只能以手工方式升级到Mule2.0。配置的结构与Mule1.0非常类似,但是对于Mule2.0来说,配置量大大降低了。对于Mule的企业用户来说,当我们发布了Mule2.0企业版时,我们会发布一个升级工具。

这么多的特性,你认为用户对哪些最感兴趣呢?你认为什么特性是最值得你自豪的?

自从对mule做了这么多大的改进后,我最自豪的地方就是其核心架构。我们需要为Mule上的新项目创建一个良好的平台。不幸的是,大多数用户永远也不会直接看到这些变化 :)

  1. 我们新增了一个表达式计算框架,这意味着用户可以定义像xpath、xquery、groovy和jxpath这样的表达式并使用Mule特定的处理器,如header、attachment及function表达式在运行时获得消息中的信息。我们可以使用这些表达式快速转换当前的消息、构造新的消息以及进行基于内容的路由。这是相当强大的功能,因为这使得运行时的配置更加动态。为mvel、ognl或者jruby等增加新的表达式计算插件也是非常容易的。
  2. 我们对消息处理进行了修补,现在已经支持自动转换了,这意味着必要时会探测已有的转换器并应用他们。这样用户就可以使用MuleMessage.getPayload(org.w3c.dom.Document.class)或者MuleMessage.getPayload(org.xml.sax.InputSource.class)来请求不同的消息类型。同时用户依旧能像以前那样显式定义转化器。
  3. 消息处理更加高效。默认情况下使用流方式处理,因此没必要再去显式定义流的端点。
  4. 我们对特定transport端点配置做了巨大的改进,这将根除端点配置错误的情况发生。
  5. 就在Mule 2.0发布的同时,我们还发布了Mule IDE的里程碑。它基于Eclipse并且包含了对新的可视化拖拽编辑的预览。

你还想增加什么呢?

架构上的改变使得Mule能从OSGi容器上加载。Mule 2.0还不支持OSGi,但是在本月初旧金山举办的MuleCon大会上,我们在Mule上演示了一个服务热部署的demo,大家都对这个demo表现出极高的热情。

Mule 2.0已经发布了,请查看概览下载最新版以了解这些新特性是如何工作的。

查看英文原文:Mule 2.0 Released

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。