ESB这个新名词让人感到既时髦又有点儿迷糊,它似乎正在被赋予许多自己不应承载的内容。那么,ESB究竟是什么呢?
中间件到底是什么东西? 它现在就好比是不断将新思想一股脑儿浇在老方法上的一碗意大利面条。业界不断将更多的调料浇在这碗面条上: 例如企业应用集成、企业信息集成、业务流程管理和面向消息的中间件等模糊概念。
中间件食谱中的最新成份是时髦名词??ESB(企业服务总线)。ESB现在已经成为一种市场诱惑,因为它承诺提供简单、快速、基于标准的多点集成。如果现在翻开大多数中间件厂商的资料,就会发现有关ESB的文章真是长篇大论,但这些却似乎让新方法与老范例之间的界线更加模糊了。
其实,ESB就是一种可以提供可靠的、有保证的消息技术的最新方法。ESB中间件产品利用的是Web服务标准和与公认的可靠消息MOM协议接口(例如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SonicMQ)。ESB产品的共有特性包括:连接异构的MOM、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。
厂商支持ESB的方式虽然各不相同,但是显然这一种类产品的覆盖面非常广泛,包括了传统MOM厂商以及中间件公司,例如Cape Clear、Fiorano、IONA、Polar Lake、SeeBeyond、SpiritSoft、Systinet和Vitria.任何厂商只要支持Java消息服务MOM或JMS API都可以将自己定位于ESB厂商。任何实现新兴Web 服务可靠消息传递(WS-RM)规范的厂商也可以声称自己提供了ESB工具。
当然,没有一家ESB厂商满足于只提供一条可靠的通道。因此,它们将各种东西投入到他们的ESB大锅里,并且拼命地搅拌和翻炒。MOM、企业应用集成、业务流程管理、集成代理、指挥协调、数据转换、发布与订阅、事件通知、基于内容的路由、事务处理……它们都是ESB,至少厂商们会这么说。
而企业的IT人员需要的是易于安装、配置、执行和管理的集成产品。他们需要强大的、支持标准的、能实现任意对象之间集成的中间件。他们需要廉价而迅速地集成,而不是费时多年、高风险、耗费大量资金的大型集成。
今天的ESB产品能够提供这一切吗?恐怕很难。问题的关键并不在于产品本身,而是那些已经在许多企业中扎根的多如牛毛的中间件产品、协议和方法。各公司为中间件和集成应用投入了太多的资金,以致于不可能在一夜之间将它们全部淘汰,再从头开始。实际的集成环境基本上是采用多家厂商的中间件产品,其中许多中间件产品是在特殊战略项目的环境下部署的,或用来集成特定的应用、平台和协议集合。
因此,大多数的公司并没有单一企业范围的“总线”,而这种总线也不可能很快问世。由于实际应用中的集成需求多得令人眼花缭乱,没有一种ESB产品可以提供单一的解决方案。大多数企业所能做的就是在老环境难以应付的异构性上再覆盖上一层基于标准的集成环境。
总而言之,ESB术语只是一个有关MOM和基于SOAP的Web服务融合的笼统短语罢了。我们不应该赋予这个术语它所不能承载的更多含意。它只是连接我们整体盘子上中间件肉丸子的一种方法而已。
什么是ESB ?
全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。