ESB 是通向 SOA 的简单解决方案吗?

阅读数:823 2008 年 7 月 14 日

话题:SOADevOps架构

6 月,Joe McKendrick发表了一篇关于ebizQ 播客文章。在该播客中,IBM SOA 专家 Lief Davidson讨论了与 ESB 在 SOA 中定位有关的话题。根据 Joe 所说:

在物理学上,人们常说,一个问题最简单的解决方法往往就是正确的解决方法。将这条物理学上的规律应用到 SOA,就会得到这样一个合情合理的结论:企业服务总线(ESB)是组织内通向 SOA 的最简单之路——在很多情况下,这可能也是组织的正确之路。
Lief 同意这种说法,并且进一步指出,在目前恶劣的经济环境中,SOA 和 ESB 是一对绝佳搭档。因为 IT 必须在更低的预算以及此预算下需求更多的情形下艰难求生……
事实上,为了更好地满足那些急迫的业务需求,以及可以更加灵活和敏捷地应付未来的变更,SOA 目前正试图用 IT 资产和基础设施来加强业务和 IT 的一致性。SOA 为达到灵活性和敏捷性而努力的关键点是企业服务总线,其位于 IT 体系架构的核心位置。

显然IBM 认为他们的 ESB是最佳选择,鉴于过去他们曾就 ESB 相关需求发表的负面评价,这的确件是非常有趣的事情。围绕着对SOA是否需要 ESB 的争论已经热闹了一阵子了。那些 ESB 的反对者经常举出复杂性和厂商壁垒问题作为主要依据。然而另外一些人说,自己动手完成移植所带来的复杂性已经远超使用 ESB 的移植方案的复杂性。不幸的是,一些厂商对后一种说法毫无兴趣,并且这个播客也没有用任何办法来消除围绕在 IBM 产品套件之上的复杂性议题,这是三个 ESB 解决方案?!WebSphere ESB,WebSphere Message Broker 以及一个 SOA 工具, WebSphere DataPower。根据 Lief 的说法,WebSphere ESB(构建在 WebSphere 应用服务器之上)可能最接近大众对 ESB 术语的理解

……我们曾构建过一个 ESB,它特别关注满足基于标准和服务间交互的集成和互联性需求。所以即便你所有准备连接的资产都是 Web 服务,都使用 Web 服务定义语言或 WSDL 定义,你仍然需要在这些服务中间进行仲裁,否则,这一切很快就会以一个静态复杂环境而告终,它无法给你提供 SOA 收益,这既不是你需要的,也不是你想要的。

这里说的“标准”大概是指 WS-* 和 JEE,因为IBM 不参与 JBI 而且SCA 还不能算是个标准。Lief 继续讨论了 WebSphere 解决方案家族的其它部分,以及在一个好的 SOA 开发过程中它们应该如何使用。对客户来说幸运的是,所有 3 个 ESB 解决方案可以被同时购买和使用。然而,随着 Joe 最后的评论变得更加具有争议,这个播客并没有真正做到 Joe 最初关于简单性的断言:

对于那些未必具备资源或者行政策略的组织还要经过多远的路才能追上 SOA,在工业界已经有了很多争论。随着预算的收缩,SOA 变成了一个不可能的买卖——即便它最后的确能够节约成本并遏制支出。ESB 可能提供了一个在任何商业环境下都能启动 SOA 的办法。

所以问题依然存在:ESB 是通向 SOA 的简单之路吗?还是每个人都要自行其是?

查看英文原文The Simple Solution to SOA is ESBs?