集成技术和SOA的结合
谈到ESB,人们会自然想到两个关键词:集成和SOA。是的,ESB正是集成技术和SOA思想结合的产物。
分布式时代的集成技术
从集成技术的发展历史来看,最早是简单地点对点集成,两个应用通过各自的接口来实现通信。这种接口固化在应用当中的紧密耦合方式,使得系统毫无灵活性可言,应用本身的每次变化都会要求其相应接口的重新定制。
于是发展出基于消息的中间件,接口被消息代理所取代,应用与应用之间不再是通过其本身的接口互联,而是通过独立的消息代理来通信,这使得应用与应用之间耦合更松,应用的变化影响的只是消息代理,而不需要其他应用改变。但是它仍然是点对点集成的一种方式,路由逻辑和业务逻辑没有分离,系统基本没有扩展性,部署上还是网状结构。
这种点对点的集成方式应付少量应用的整合还差强人意,对于大规模的集成,在EAI时代,逐渐发展出“集线器”模式。通过把所有的系统都连接到中央交换中心,这种模式巧妙地把集成逻辑和业务逻辑分离开来,大大增加了系统弹性。但是这种中央控制的方式使得管理相当复杂,同时中央又往往成为集成的瓶颈所在。
分布式时代的到来对于集成的方式提出了巨大的挑战,这时候ESB就应运而生。通过采用轻量级的分布式体系,ESB将更多的处理逻辑分配到多个的端点上,中央服务器不复存在,业务逻辑处理能力及系统压力可灵活调配。
“总线对于Hub进行了拓展,拓扑的模式还是那样,但是这个单一的物理中心被虚拟化,分散到了整个网络上,负载和灵活性都大大增加了。”IBM的毛新生这样解释ESB,他认为ESB真正实现了系统间的松耦合,从而能够应对大规模的集成。
“ESB就是EAI在SOA时代下的一种形态。”金蝶中间件ESB产品项目经理倪晓兵说,“区别于传统的EAI技术,ESB不仅支持高度的分布式部署,同时支持异步消息的交互,强调面向的对象是符合标准的服务。”
另外,ESB在集成的过程中,更强调一种“统一消息”的概念。这种“统一消息”的格式,是可以被在ESB中所集成的各个服务都认可的。例如,IBM提出的SDO这样的一种统一的数据格式。
SOA时代下的产物
在SOA时代下,ESB为SOA的实施提供了底层架构的技术支持。SOA从根本上来说就是要解决两个问题:重用和异构,但是作为信息化系统建设永远要面对的两个难题,解决的方法却并不简单,所以SOA的体系庞大而复杂。
另外,SOA从根本上来说是一种软件架构的思想和方法论,它必须有相应的技术来帮助它落地,应用在具体的项目当中,而ESB则提供了实施SOA、简化SOA的技术手段。“ESB的意义在于让SOA有了一个可实现的基础设施。”IONA公司大中国区高级架构师陆飞舟这样说。
[1][2][3][4]