企业服务总线(ESB : Enterprise Service Bus):ESB 是一种开放的、基于标准的分布式同步或异步信息传递中间件。通过 XML、Web 服务接口以及标准化基于规则的路由选择文档等支持,ESB 为企业应用程序提供安全互用性。

其实我对于这个ESB 企业服务总线也是一个很模糊的概念,然而这个概念的曝光率越来越高了,其实之前就很高,只是现在才被我们纳入考虑的范畴之内。那么随着ESB一起火爆的就是SOA了。

SOA(Service Oriented Architecture,面向服务的架构)的概念以及SOA带来的好处,正在被用户逐步接受。Gartner的数据表明,到2007年,全球将有70%以上的大企业会将他们的应用转到SOA。但是目前CIO们最关心的是,如何才能真正实现基于SOA的应用?

是的,你没有看错,07年的时候就被个大CIO关注,但是请大家明白一点,一个所谓的NB的技术出来,像我们这样内弄十分低下的coder不敢碰的,SUN公司出来新的J2EE规范之后,就会死一批年轻的IT公司,虽然业界统计一个IT公司的寿命普遍很短,死亡率搞大90%,但是,SUN的新规范出来,确实加速了这些IT公司,就像冬天里的一把火,热完就成灰了>_< .那么言归正传
 ESB成为一种新的诱惑

ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。

业内对ESB的定义是:它是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。

这样的定义稍显抽象,简单地说,ESB就是试图将应用服务器上的多种逻辑层面迁移到总线以及连接点上,从而降低企业内部信息共享的成本。IBM WebSphere软件全球副总裁Sandy Carter女士介绍说,“企业服务总线是SOA中的消息框架—即消息相互交换和通信的方式,是业界标准与客户消息框架的整合。”

ESB产品的共有特性包括:连接异构的MOM(Microsoft Operations Manager)、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。

ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。

从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

ESB开源之路

开源软件市场这几年的发展也早就显示出极其旺盛的生命力。Linux服务器、开源数据库、开源应用软件等产品的市场份额都已有了很大提高。开源软件已成为政府机构和企业用户节约成本的一种有效手段。

随着Java应用服务器迅速成为一种大众化商品,企业中间件也朝着开源的方向跟进。近两年,已出现了许多极其成熟的企业服务总线实施项目。

Sun在JavaOne大会上发布了自己的免费ESB。这个名为Java开放式企业服务总线的项目将放在Java.net上进行,第一个版本有望在今年夏末交付。Sun还计划把来自这个社区项目的代码包装成商用产品。

Sun的应用程序以及开发者平台的市场副总经理Joe Keller说,Open ESB将会基于Java商业集成1.0规范。还提供了使用开源代码的Java系统应用程序服务器。“这将是一个推动整个世界商业的应用程序服务器,”Keller说。

而在Sun对ESB开源前,Iona科技公司就公开了Celtix的源代码,这是采用GNU LGPL许可证的Java ESB,从而启动了ObjectWeb社区在ESB方面的工作。Iona方面声称,Celtix将支持Java商业智能(JBI)规范,该规范为跨应用集成明确规定了标准化的对象容器。

目前市场上已经有大量BEA、IBM以及Sun Microsystems等大制造商生产的ESB产品。而ObjectWeb在上星期也接收到了法国IT服务公司BULL的源代码捐赠来加速它ESB产品发展。

随着开源项目的这股趋势,这个领域的所有供应商都在观望哪个ESB会获得成功。IDC的副总裁Dennis Byron说:“拿IBM举例,如果不管什么原因ObjectWeb占据了市场,如同Apache Web server一样,我认为他们会毫不犹豫地支持它。”

这里我所谓的理解是,我们关心的是ESB背后的服务数量,粒度,还有这个SOA,它的一个支撑是web service,但是有了web service不一定就是SOA,还是要看你的对象和业务,最终是否选用SOA的架构,还需要看项目的需求,一个小项目启用这个维护成本是多少,风险可控是多少,这些并不是决策层拍大腿能决定的,以后的路还很远( ⊙ o ⊙ )啊!