应用集成的前沿技术

应用集成发展历程
在企业信息化进程的最初,一个应用软件的使用范围可能仅限于某一个部门或某一种业务,由此而导致的情况是:一个大型的企业可能存在多个大小不一且支撑技术不同的应用软件系统,这些系统可能基于不同的编程语言,运行在不同的硬件上,有着不同的系统平台。但随着企业的壮大,业务的发展,部门和部门之间的关键路径和业务接口逐渐增多,各个应用软件之间的信息交互也越发频繁,同时,企业与上下游合作伙伴之间,数据共享、流程整合的需求也不断催生,在这样的背景下,企业应用集成软件应运而生。至今为止,企业集成软件的发展,可以分为三个阶段:

第一代:点对点编程模式
这是最初出现的集成软件。一个业务系统和另一个业务系统直接通话,业务接口采取定制代码的方式,通过一些标准的协议,例如http、ftp等,紧密的集成在一起。这种集成方式的缺陷不言而喻:缺乏可靠的数据传输保障;系统毫无弹性可言;数据交换时双方必须同时在线;部署模型是非常复杂混乱的网状结构等等。

第二代:消息队列模式
基于消息的异步编程模型,则为企业集成提供了一种新颖的解决方案。传统的消息中间件,能够有效解决数据传输的可靠性、稳定性与安全性,并且,消息提供的异步编程模型,避免了集成双方必须同时在线的问题,于是,人们在原先方式中的数据载体由通过标准协议,换成基于消息,大大提高了数据的可靠性,以及部署上的分布性。但是缺点还是同样明显:路由逻辑和业务逻辑没有分离,系统基本没有扩展性,部署上还是网状结构等等。

第三代:集线器模式
集线器模式在基于消息的基础上,引入了“前置机-服务器”的概念,使用一种集线器/插头(hub-and-spoke)的架构,将消息路由信息的管理和维护从前置机迁移到了服务器上,巧妙的把集成逻辑和业务逻辑分离开来,大大增加了系统弹性。由于前置机和服务器之间不再直接通信,每个前置机只通过消息和服务器之间通信,将复杂的网状结构变成了简单的星型结构。

集线器模式在企业集成的过程中取得了很大的成功,但是集线器模式的模型自身存在不足:中央服务器的存在导致部署上无法分布开来,同时,中央服务器承担了太多的工作和责任,往往会带来压力瓶颈以及硬件投资上的巨额付出。随着基于集线器模式的EAI系统的广泛使用,更多的不足逐渐暴露出来:
● EAI面向的仍然是特定的中间件平台,中间件平台的异构性导致平台的可复用程度很低,EAI很难实现更大范围内的应用集成
● 集成的各方之间,由于面向特定的中间件,依然是一种紧密耦合的方式,一方所暴露的业务接口,只能在当前的集成环境下使用,无法提供可复用的业务价值。
● 业务系统之间的协议都是基于消息的,有时候很难跨越企业的防火墙。
● 当集成的需求越来越多的时候,不断添加的功能使得集成系统日趋庞大,缺乏灵活性且难于管理。
新一代:面向服务的总线模式

如何针对目前应用集成过程中的问题,克服EAI集成模式的缺陷,实现分布异构系统之间通过Internet的灵活、敏捷、松散耦合、快速应变的互联互通?面向服务的总线模式给出了解决方案。
在这之前,首先要谈谈SOA。
SOA(Service-Oriented Architecture),即面向服务架构。软件架构(Software Architecture,或软件体系结构),描述了软件系统的蓝图,即,构成一个程序或系统的构件的结构,构件间的互连,以及管理构件的设计和演化的原则与指导。
从技术上看,SOA代表了一种开放的、可扩展的、可联邦的、可组合的设计范型,是软件构件技术在分布计算环境的自然延伸。SOA的基础设施是已有中间件平台的演化和发展,保留了传统架构的成功特征。
简言之,SOA是一种遵循面向服务原则指导的软件体系结构。

SOA的思想试图定义一个业界都“认可”、都“遵循”的法则,大家都使用同样的方法来进行互通互联,从而实现无界限的“联通”和最大可能的复用。
SOA是一个具有非常意义的体系思想,是所有软件人员的一个梦想:将中间层再进行抽象,通过一个跨技术架构的元数据和业务逻辑,也就是服务,使之成为可跨企业使用、能够长期积累、并不断丰富的企业业务库和信息资产。夸张一点说,如果所有软件开发都遵循SOA,那么世界软件业将会发生彻底的改变。
正是在SOA的架构思想指导下,利用SOA所提出的灵活、敏捷、高效的特性,来实现分布异构应用之间的集成,一种新的应用集成模式被提出来,那就是“面向服务的总线模式”。