微软 Connected Systems 部门的程序经理 Nick Allen 在他的博客中提出这样的问题:
到底 ESB(Enterprise Service Bus)是什么意思?这已经是争论了好几年的一个问题,而且没有任何迹象表明争论会停止。当我在 2003 年第一次读到 ESB 的时候,并没有想到我在 4 年之后还在试图理解它的含义。
去年 Miko Matsumura 的文章也谈到了这个问题(文章第一部分、第二部分)。这次 Nick 继续搜寻主要的厂商对 ESB 的定义。然而,
微软 [……] 回避了定义的问题( ESB Guidance ] 网站上耍起了太极:ESB 对不同的人意味着不同的东西)。
对于 Burton Group 的研究主管 Anne Thomas Manes 来说,
ESB 本质上是集成系统,而非 SOA 系统。SOA 的要点是撕开应用的外壳,而集成系统会加强这些外壳。[……]ESB 特别有利于架通遗留系统,也因此它是服务基础设施中的一员。
Anne 的定义看起来跟 Sun Microsystems 的 Ron Ten-Hove(JBI 规范领导)的定义一致(非 Nick 引用):
ESB 是分布式的中间件系统,用来以一种面向服务的方式集成企业 IT 资产。
也跟 Gartner 的理解一致(非 Nick 引用):
一种具备 Web Service 能力的基础设施,作为松耦合或解耦合的若干业务组件之间的中介,并在其中进行智能指导的通讯。
BEA、IBM、Oracle 等等似乎都持同样的说法,用 Nick 的话说是:业务组件的通用通讯和集成服务。厂商的观点之间也有一些值得注意的差异之处。对于其中一些厂商(IBM、微软)来说,ESB 是将一系列能力联结在一起的一种模式,而其他厂商认为 ESB 是一种产品。这正是讨论中的胶着点。在 2005 年,微软 Identity Platform 的产品经理 Rich Turner写道:
ESB[产品] 是一根聪明的管子,用来连接各个愚笨的节点。[……]WS 的途径让节点本身也变得聪明,减少了对底下聪明管道的需要,并确保了跨越任何平台与设备的开放的通讯。
Rich 的观点今年再来看显得更有意义, WS-TX 和 WS-RX 规范已经被批准,终于在标准的 Web Service 协议的基础上提供了一个安全、可靠、具备事务能力的通讯机制,不再局限于厂商私有的标准。Rourke McNamara区分开了 ESB 实现(ESBi)和 ESB 产品(ESBp):
ESB 产品(ESBp)是设计来帮助企业构建 ESBi。ESB 市场已经成熟,ESB 产品(ESBp)的定义在 2006 年当中已经变得清晰。今年已经看到所有主要的 SOA 厂商都发布了他们精心调整过的 ESB 方案。
评论