对于今天的大多数企业而言,集成已经是一个不可回避的话题。在不同的历史时期,基于对信息技术的不同理解,企业采用了多种技术建设了各种各样的应用系统,比如,OA、ERP、CRM等,这些系统由于建设时间不同,负责建设的厂商不同,采用的标准也不同,因此,形成了一个个无法共享的信息孤岛。随着系统的增多,特别是门户、商业智能还有协同应用的诞生对系统整合的需求日益迫切,集成成了一个热门话题,也成了一个难题。
集成技术的三个发展阶段
集成技术的发展已经有很多年了,大体经历了以下三个阶段:
点对点的集成。早期,由于需要集成的系统比较少,最常见的是两、三个系统之间进行数据交换。这时,企业普遍采用编程的方式来完成系统之间的数据交换任务。这种方式简单,但其最大的问题是缺乏灵活性,每两个系统之间需要进行互访时都要开发一段程序。两三个系统之间的互访尚可以应付,随着系统的增加,其复杂性和工作量成指数级增加。
EAI 这种方法是建立一个集中的数据交换平台(这个平台通常由中间件担当),同时在每个应用系统中安装一个名为Adapter(适配器)的插件。A
dapter负责把应用系统的数据翻译为统一规范的格式,发送数据交换平台上,同时也把接受到的数据转换为系统所需的格式。这个平台降低了集成的难度,同时,可扩展性也比较好。不足之处在于,集中的数据交换平台和Adapter的开发都非常复杂,初期投资比较高,具有较高的应用门槛,非一般企业可以承受,而另一方面,由于投资大,用户的期望也非常高,所以很多用户最后对其效果并不满意。几年前,Tibco和Vitria等公司在这方面做了不少工作。
基于SOA(Service-OrientedArchitec-ture)的集成。SOA概念的普及给那些徘徊在应用集成大门之外的企业带来了新的希望。SOA通过建立一种统一的架构,使得软件开发人员能快速开发、集成和重用应用。更为重要的是,基于这种软件框架,系统能在业务发生变化之后,动态响应新的需求,快速重新装配各种软件构件和服务。今天基于SOA的集成方法正推动着市场的发展,BEA、IBM、Oracle等大多数供应商也开始转向SOA。
分布式SOA基础架构
尽管很多供应商提供了基于SOA的集成方法和产品,但最常见的还是基于集成平台的集成方法。这个平台类似于SOA集成服务器,它采用多种集成技术,为其他有需要的应用和服务提供可重用的业务服务。大多数厂商提供的这个平台以企业服务总线(EnterpriseServiceBus,ESB)的形式出现,当然也有一些厂商采用其他形式,比如围绕BPM进行业务流程集成。
“尽管与传统的集成方式相比,这种方式向SOA迈出了一大步,也解决了不少实际问题,但这种方式并没有真正体现SOA的分布式的优势。”SOA领域的专家、率先提出分布式SOA基础架构理念的IONA的CTOEricNewcomer说。
因为这里的集成本台大多数是从EAI产品演变而来的。它们的主要特征就是由消息总线提供数据格式转换和路由,完成流程自动化和应用适配器的功能。与EAI产品不同的只是,现在的集成服务平台支持服务集成。
这种总线式的架构本质上是集中式的SOA架构,它仍然带有传统的EAI产品的弱点。比如,集中式SOA架构会增加成本,限制资源的再利用,降低系统的灵活性,并且有可能形成成本高昂的系统瓶颈。最糟糕的结果是,它很有可能偏离技术中立的原则,把用户绑定在供应商的专有技术上,成为用户取消SOA计划的第一原因。如果SOA架构的灵活性不足以满足用户的各项需求,无疑会导致用户对SOA架构的彻底失望。
而SOA本质上应该是分布式,不应该存在有集中的控制点,任何应用只要符合相关规范都可以进入SOA网络进行交互(自然上述集中式的SOA架构也可以作为SOA的一部分)。
那么,分布式SOA架构如何来解决集成的问题呢?IONA提出的方法是对那些老系统进行SOA封装,即在每个应用上部署一个小的智能终端,由这个轻量型的插件来完成与SOA网络的通信,而网络中不再需要一个集中的控制平台。IONA的中国区总裁薛志勇认为,这种方式的最大优点是投资小、支持渐进式的部署、技术中立,也不存在瓶颈,更为重要的是,这种方式符合SOA的开放性、分布式的本质。