ESB的前世今生(下)

下一代的企业集成解决方案Enterprise Service Bus

当人们正在为集线器模式的企业集成架构所表现的不足寻求解决方案时,SOA的思想被提出来了。

划时代的体系思想:SOA

SOAService-Oriented Architecture),指的是面向服务的架构,意指将软件按照功能设计成一个个独立封装支持异步处理的服务,这些服务用标准的方式定义接口,并可以通过标准的协议进行调用。重要的一点是,SOA所定义的接口和调用方式是独立于编程语言和运行平台的。

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 3in; HEIGHT: 98.25pt" filled="t" type="#_x0000_t75"><fill color2="black"></fill><imagedata src="file:///C:%5CDOCUME~1%5CApusic%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape>

<shape id="_x0000_i1027" style="WIDTH: 265.5pt; HEIGHT: 104.25pt" filled="t" type="#_x0000_t75"><fill color2="black"></fill><imagedata src="file:///C:%5CDOCUME~1%5CApusic%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title=""></imagedata></shape>

服务

SOA

SOA的思想试图定义一个业界认可、都遵循的法则,大家都使用样的方法来进行互通互联,从而实现无界限的联通最大可能的复用。

SOA是一个具有非常意义体系思想,是所有软件人员的一个梦:将中间层再进行抽象通过一个跨技术架构的元数据和业务逻辑,也就是服务,使之成为跨企业使用、能够长期积累、并不断丰富的企业业务库和信息资产。夸张一点说,如果所有软件开发都遵循SOA,那么世界软件业将会发生彻底的改变。

但是,SOA思想诞生时,它并不是一个技术标准,也没有相关规范。如何在技术体系上实现SOAWeb服务在这个恰当的时候恰当的出现了。Web服务使业务逻辑能够以标准化的接口(WSDL)提供,并可基于标准化传输方式(HTTPMessage)、采用标准化协议(SOAP)进行调用。这为SOA的实现提供了可能

ESB发展

ESBEnterprise Service Bus企业服务总线,作为下一代的企业集成技术,巧妙的将总线集成SOA思想结合起来。ESB 是一项允许开发人员集成异构系统的技术,同时ESB不再面向定制出来的业务接口,它面向的是公共服务。ESB为服务提供者和服务消费者之间的集成提供了一个平台相对集线器模式的集成系统,具有更有效、更灵活的内部体系结构。

ESB是面向服务的,而服务是基于标准的,例如Web服务这使得ESB具有屏蔽异构系统平台差异的能力。由于服务本身的独立封装、可以随意插拔,各式各样不同的服务可随时注册到总线中,形成面向服务的组件库,所以,ESB天然就具备很好的扩展性。同时ESB采用了轻量级的分布式体系,可以将更多的处理逻辑分配到多个的端点上,中央服务器不复存在,业务逻辑处理能力及系统压力可灵活调配

<shape id="_x0000_i1028" style="WIDTH: 4in; HEIGHT: 189.75pt" filled="t" type="#_x0000_t75"><fill color2="black"></fill><imagedata src="file:///C:%5CDOCUME~1%5CApusic%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png" o:title=""></imagedata></shape>

ESB是服务提供者和服务消费者之间的桥梁,同时也是服务提供者和服务消费者之间的中介代理,可以提供多种不同的增值服务,带来更多的业务价值。

ESB支持数据处理流程,这些数据处理流程可以是一些简单的路由规则,也可以是功能强大的流程引擎,例如BPEL。这些流程的作用域在逻辑上可以是一个部门内,也可以是多个伙伴企业之间,而在物理拓扑上,可以是跨区、跨国、跨洲,甚至可以是休斯敦和阿波罗飞船之间。

ESB支持数据转换,已经屏蔽了异构系统之间的平台差别,同时还能屏蔽异构系统之间的同种语义的数据差别,就象翻译能把中文翻译成英文一样,ESB可以把一个系统的业务数据根据规则翻译成另一个系统能够识别业务数据。

几种集成方式之间的比较

<shape id="_x0000_i1025" style="WIDTH: 453.75pt; HEIGHT: 281.25pt" filled="t" o:ole="" type="#_x0000_t75"><fill color2="black"></fill><imagedata src="file:///C:%5CDOCUME~1%5CApusic%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.emz" o:title=""></imagedata></shape>

从图可以看ESB处于最右上方,一个 ESB 架构形成了一个消息集线器和集成服务的互通网格,具有一个彻底分布的集成网络的功能性和智能性。