一种新的软件架构“企业服务总线(Enterprise Service Bus, ESB)”的出现,可成为可采用的、基于标准的、作为构建应用中枢神经系统骨干的技术。
ESB并不是一个性的概念,它是从逐步出现的企业通信、互连、转换、面向服务的应用构建、可移植性和安全性等标准中演化而来的,其目标是创建一个真正基于标准的企业级应用骨干网,用来部署业务过程处理系统、协同系统和分布式业务解决方案。
ESB是一个实现了通信、互连、转换、可移植性和安全性标准接口的企业基础软件平台。对ESB的定义通常如下:它是由中间件技术实现并支持SOA的一组基础架构功能,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。这样的定义稍显抽象,简单地说,ESB就是试图将应用服务器上的多种逻辑层面迁移到总线以及连接点上,从而降低企业内部信息共享的成本。
ESB产品一般应该实现:
♦基于标准的消息通信架构(即JMS)
♦基于标准的互联如Web服务、J2EE和.NET适配器 (Sun公司的J2EE和微软公司的.NET是两种在市场占统治地位的分布式计算架构,J2EE提供了一种语言(Java)跨越多种操作系统和硬件平台的可移植性,.NET支持多种语言但基本上绑定在微软的Windows操作系统和Intel平台上)
♦基于标准的数据转换引擎(即XSLT和Xquery)
♦应用部署的SOA方式
♦基于标准的安全性(即LDAP和SSL)
现代的ESB产品实现(见图)一般支持多种开发语言,结合ESB架构本身具有的可移植性,使ESB成为一个真正支持多语言、多平台的企业应用骨干系统。
ESB架构
通信、互连、转换、可移植性和安全性等方面,使得在一个复杂的异构环境中采用真正开放的业界标准而成为可能。基于标准的技术扩大了用户选择的范围,降低了成本,同时也避免了用户只能面对单一的产品提供商。这些标准包括:
1、通信标准
1998年,Java Message Service (JMS)出现并成为企业应用通信的主流标准,当前已经有数以千计的企业实现了这个标准。其它消息中间件,如IBM的WebSphere MQ也不得不提供JMS接口。JMS流行的秘诀在于它作为一个工业标准,很好地把满足几乎所有垂直市场需求的功能和具有吸引力的价格结合在一起。
2、互连标准
Web服务标准允许企业系统或应用程序有效地把自己的接口暴露给外部世界,大大简化了企业应用系统之间的互连问题。这些标准包括简单对象访问协议(SOAP),通用描述、发现和集成(UDDI)和Web服务描述语言(WSDL)。SOAP为XML提供了远程过程调用(RPC)的能力。UDDI提供了一个便于搜索的XML Web服务的注册库。WSDL是一个基于XML的接口描述语言(IDL),用它来描述XML Web服务。XML是一个Web数据的标准,现在已经作为一个通用的数据格式被用在系统架构的各个层次上。
3、转换标准
过去几年,扩展标志语言转换(XSLT)和Xquery出现并作为企业数据转换的标准,得到了大多数供应商的支持和全球用户的认可。XSLT把XML文档从一种元数据格式转换到另一种元数据格式,可以用来实现具有不同XML元数据格式的系统之间的数据交换,或把XML数据映射到输出设备。
ESB把最新的整合技术升华到一个基于标准的、经济易用的软件平台产品。ESB与当前市场上存在的、私有的集成方案相比,具有以下的优势:
♦扩展的、基于标准的互连技术。ESB包含了一个基于标准的消息系统,使企业内部以及外部整个价值链上的系统之间,可以很容易地通过异步或同步交换信息。ESB通过Web服务、J2EE、.NET和其他标准提供更强的系统互连功能。
♦灵活的、基于服务的应用组合。基于面向服务的架构(SOA),ESB应用模型允许复杂的分布式应用,包括跨越多个应用程序、系统和防火墙的集成解决方案,由事先开发和测试好的服务灵活组合而成,这为系统提供了易扩展性。
♦通过提高重用来降低总体拥有成本(TCO)。SOA方式直接提高了重用程度,降低了维护难度,因而降低了系统的总体拥有成本(TCO)。
所有这些优势都来源于ESB架构中的每个组件对于通信、互连、转换、移植性和安全性标准的强有力支持。
根据国际权威市场研究机构Gartner的预测,到2005年,世界IT发达国家的企业将有大部分采用ESB的整合技术平台,整合企业内部和外部的各种资源,如下图所示:
Gartner对ESB架构整合技术的应用预测
不同的ESB供应商会选择不同的实现策略,它们经常会在一些特殊领域增加额外的价值,当评估ESB产品时,应该考虑以下的核心特征:
λ鲁棒性、可扩展性和性能
虽然大部分ESB产品都支持JMS标准,但在实现的质量上会有很大的差别。最具有扩展性的产品具有完全分布式特点:数据在各个服务组件之间并行流动,没有单故障点,分布式结构中实现集中控制。扩展性稍差的一些产品支持一个或多个代理中心,因此会产生数据瓶颈,降低效率。
λ数据路由机制
在ESB框架内参与一个业务过程的服务可以使用不同的方法相互通讯。大多数ESB产品最少实现其中一种方法,有的实现全部:
♦传统的JMS路由,数据路由是组件的业务逻辑的一部分;
♦基于内容的路由,根据数据的内容选择路由(一般基于XML);
♦外部路由,数据在组件实例之间的路由对参与的服务来说,是完全透明的,因为路由数据的处理过程与数据产生过程是完全分开的,所以这种方式允许在业务流程之间很容易地重用组件;开发者因而可以忽略数据路由,而把精力集中在业务逻辑的创建上;
♦服务的执行可以位于中心或某个端点。
λ计算密集型服务
计算密集型服务,如数据转换逻辑,可以由中心服务器执行,但会产生一个潜在的性能瓶颈;或者由网络节点执行,允许分布式处理,从而得到更好的扩展性和性能。
λ流程组合和管理工具
基本的ESB结构提供应用程序编程接口(API)在正在运行的服务之间路由数据。然而,先进的ESB产品,允许由事先开发和测试好的服务组成业务解决方案,从而提供附加的价值。这样的组织应用程序的平台部署在ESB之上,简化了已经存在的Web服务、数据库应用程序、遗留系统和J2EE、.NET软件资产的组件化。这也增强了业务流程的重用程度,降低了开发和管理费用。
总之,利用出现的通信、互连、转换和安全性标准,ESB可在整个内部和部门之间提供一个强大的、可管理的、基于标准的骨干系统。ESB可使运行业务的过程变得平滑,节约时间、人力和集成支持这些业务过程的组件的费用。系统采用这种方式的强大优势在于,它允许内部的自己的开发小组,利用已经可供整合的组件,根据具体要求快速、方便地集成到ESB中,构建新的应用。相关的优势还包括节约昂贵的技术投资,减少面市时间和提高现有软件资产的重用程度。