在 SOA 的世界中,从来不缺少概念的炒作和火热的争论,ESB 亦不例外。近几年,ESB 是 SOA 的宠儿,几乎每次提到实施 SOA,总会出现 ESB 的身影。除了概念上的炒作,ESB 的各类产品也如雨后春笋般纷纷冒出。MIB(Microsoft、BEA 和 IBM)自不必说,就连开源世界都不甘寂寞,推出了各种开源 ESB 项目,如 ServiceMix、Mule 等等。
对于 ESB,业界公认的一些功能包括,基于消息、使用 XML、支持转换和路由等等。但这就是 ESB 的最佳定义吗?如果要使用 ESB,该如何部署?同时 ESB 在 SOA 中到底是充当什么样角色?如果我要使用 ESB,有没有使用案例可供参考?总总这些疑问,在 InfoQ 的 ESB 综述系列中都可找到答案。
本系列分为两部分。第一部分对 ESB 的定义、何时部署,及其在 SOA 中充当的角色等问题进行了探讨。文中涉及的 2 名专家(Manes 和 Rippert)共同认为:ESB 是有用的,但不应该过早部署。同时,部分一还列出了维基百科的 ESB 定义,并承认维基百科的定义容许“ESB 精确定义的变种”。系列二的关注点则在 ESB 的使用案例上,在部分一的基础上,文中列出了 ESB 相关使用案例及其补充说明。另外这一部分还参考了 Network Computing 的调查研究结果,发现传统数据源是 ESB 的重要接口,而且终端用户则期望 ESB 必须支持最基础的业务过程管理等。最后,作者引用 Steve Jones 的评论,认为 ESB 实际包含了 3 类不相干的问题。
ESB 目前的现状,不禁让人想起当初微软技术的名词大战。由最初的 OLE、OCX、ActiveX,到后来的 COM、DCOM、COM+。整个情形何其相似?!就连现在的.NET 也是如此。直到现在,要给.NET 一个精确的定义恐怕也不是易事吧。不过就个人来说,管它什么技术还是产品,选择合适的工具完成合适的事情才是最重要的事情。不过,看看别人的争论也能从中获益不少。
评论