基于ESB的企业应用集成
1、引言
信息化的发展在给企业带来难得机遇的同时,也给企业带来了新的挑战。巨大的投资为企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。但是这些信息系统可能由不同的品牌导入实施,只关注于各自领域内的数据与业务处理,由于缺少相应的接口标准和规范,它们各自为政,相互之间无法进行信息共享与业务集成,从而形成“信息孤岛”。
随着企业规模的不断扩大,应用系统不断增加, 对信息共享、系统互操作性和软件重用方面的要求越来越高,这些相对独立、标准各异的“烟囱”式系统已经不能满足业务的需要,暴露出的弊端越来越多,对企业提出了诸多的挑战。
由于缺少统筹规划,企业内部遗留的IT基础架构庞大且管理起来极其复杂,这些基础架构具有严格的操作要求,分阶段改造非常困难,这样必然会影响企业对客户需求的响应能力以及新增加和改进后的服务的部署。
一个个的“信息孤岛”常常分属于不同的管理职能部门。由于这些系统没有进行互联,导致难于信息共享,即不同软件提供商的应用程序之间无法互操作。
在多个系统共存的情况下,同一个客户的信息或者企业的信息,通常在多个系统中同时存在,但是各个系统统计出的数据常常不一致,为企业领导层进行正确决策增加了难度。
面对这样的挑战,系统整合成为企业迫在眉睫的问题。企业迫切需要一种集成方法,将各种旧的应用系统和新的应用系统集成起来,这使得企业应用集成(Enterprise Application Integration,EAI)技术产生与发展起来。传统的EAI往往使用如CORBA和COM等组件化技术进行分布式、跨平台的程序交互,系统整体的拓扑结构较复杂,组件的连接协议是私有的、非标准的。其存在着诸如系统灵活性差、投入成本巨大、新系统无法快速部署等问题,不能很好的满足企业集成的需求。
在这种背景下,业内近年来提出了SOA(面向服务的架构)模型,将应用系统抽象成一个个粗粒度的服务,标准化服务接口,松耦合服务架构。使用面向服务的ESB平台集成遗留IT系统,将系统服务化,通过服务组合的方式复用企业IT资产,对于新开发的信息系统,
采用插接方式进行快速部署,缩短了投资回报周期,提高了系统的适应性、灵活性和扩展性。采用这种面向服务的ESB平台进行系统整合,成为当前企业解决“信息孤岛”的最佳方案。
2、SOA和ESB
2.1 面向服务架构SOA
面向服务架构(Service Oriented Architecture,SOA)是一种新型的软件体系架构模式,它是在计算环境下设计、开发、应用、管理分散服务单元的一种规范,它将应用程序的不同功能单元(称为服务)通过服务间定义良好的接口和契约联系起来。可以根据需求通过网络对松散耦合的粗粒度服务进行分布式部署、组合和使用。SOA的目标在于让IT系统变得更有弹性,以便更灵活、更快地响应不断改变的企业业务需求。
目前并没有一个统一、标准的SOA的定义,下面是几种对于SOA的描述:
soa“SOA本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确
定义、封装完善、独立于其他服务所处环境和状态的函数。”
“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合的关系。”
“SOA是一种用于创建企业IT系统体系结构的体系结构样式,利用了面向服务的原则来实现业务和支持业务的信息系统之间更为紧密的关系。”
从上述的定义中可以看出的几个关键特性:一种粗粒度、松散耦合服务架构,服务之间通过简单、精确定义的接口进行通讯,不涉及底层编程接口和通讯模型。
粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了。
松耦合性:松耦合性要求 SOA 架构中的不同服务之间应该保持一种松耦合的关系,也就是应该保持一种相对独立无依赖的关系。
位置透明性,位置透明性要求 SOA系统中的所有服务对于他们的调用者来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪里。
协议无关性,协议无关性要求每一个服务都可以通过不同的协议来调用。
SOA 架构的出现为企业系统架构提供了更加灵活的构建方式,如果企业架构设计师基于SOA来构建系统架构,就可以从底层架构的级别来保证整个系统的松耦合性以及灵活性,这将为企业未来商业逻辑的扩展打好坚实的基础。
2.2 企业服务总线ESB
企业服务总线(Enterprise Service Bus,ESB)是基于SOA思想的企业应用集成的基础软件架构。IDC将ESB定义为:基于开放的标准消息总线,用于通过标准的适配器和接口,来提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。
ESB作为SOA架构的信息传输龙骨,为SOA提供了一种连通性的基础架构,用以连接SOA
中的服务。第三方的程序组件能够以标准的方式“插入”到该平台上运行,组件之间能够以标准的消息通信方式进行交互。ESB克服了传统EAI技术的缺陷,能够对各种技术和应用系统提供支持,具有很强的灵活性和可扩展性。这种模式有助于减少应用接口的数量和复杂性,从而降低IT维护和更改的成本,让企业能够以更简单、更快速、更安全的方式来使用服务。
如图1所示,ESB提供了企业内不同应用系统间服务路由的基础设施,仲裁松耦合服务或非关联服务之间的关系, 并且实现了SOA各系统服务之间的消息传递,使各系统服务成为SOA的一部分。在ESB内部,通过WSDL这种中立的接口和契约定义格式,每个系统可以将功能展示出来,供其它应用系统调用。ESB支持各种不同的技术,诸如不同的操作系统,编程语言,以及各种消息协议。通过部署ESB,不但可以很容易地把现有遗留系统封装成一个个的服务,也可以快速将新开发的系统部署到整个IT架构中,从而形成真正的随需而变、随需而建和分布式系统结构。
图1 企业服务总线ESB
3、JBI规范
JBI(Java Business Integration)是SUN公司提出的ESB的规范。JBI规范基于SOA的设计思想,解耦了组件之间的联系,并基于标准的消息交互定义了组件之间的交互语义。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论