许多企业的信息系统在最初设计时没有考虑多个系统 “ 协同工作 ” 的需要。这主要是由于企业信息化建设者对信息系统由不熟悉到熟悉,从了解信息化的好处,到真正体会到好处需要一个长期的过程,这就客观上造成企业信息化建设缺乏一个整体规划,实际需要的时候才会想到。因而,企业的信息化往往是从单项业务系统开始的,不同系统的开发方式及对于开发规范的遵从程度都有所不同,这使得系统间存在很强的孤立性,再加上对企业外部的信息未予以足够的重视,致使各部门开发出的信息系统最终成为一个个信息孤岛,一个系统很难与其他系统交换信息。同时,大多数企业都有过去遗留下来的异构的系统 、 应用 、 商务流程及数据源构成的应用环境。应用环境的通信状况是混乱的,只有很少的接口文档,并且维护代价也非常昂贵。
据有关数据统计,一家典型的大型企业平均拥有 49 个应用系统, 33% 的 IT 预算是花在传统的集成上,而且普遍是通过 “ 点对点 ” 连接。
EAI(Enterprise Application Integration,企业应用集成),可以在一定程度上帮助人们解决这一问题 。 EAI 是指通过将业务流程,应用软件 、 硬件和各种标准联合起来,对企业中完成不同业务功能的应用系统进行无缝集成,使它们像一个整体一样进行业务处理和信息共享,从而提高企业效率,为客户提供灵活的业务服务 。
EAI 使人们可以从更高层次来看待企业内的信息资源,使新的信息和应用可以通过可插拔的方式和原有的资源在一个全新的信息集成共享平台上协同工作,共同发挥 “ 1+1>2 ” 的集成效应。企业在借助 EAI 系统整合企业内部已有的各种信息系统的同时,也加速了数据的即时共享和提高了企业的信息反应能力。特别是,目前处在电子商务时代的企业不仅仅需要在企业内部系统之间进行集成,同时也需要对供应链中的不同环节进行集成。
而 EAI 不仅是连接企业内应用的高效手段,它也是在企业之间建立信息沟通共享的一种科学而有效的方式,从而有效地降低供应链网络的整体拥有成本 。 EAI 可以通过中间件技术来连接企业级各种应用,使异构应用系统之间能够相互 “ 交流 ” 与 “ 协作 ” ,如图 1 所示。
首先,中间件产品对各种硬件平台 、 操作系统 、 网络数据库产品及客户端实现了兼容和开放。
其次,中间件保持了平台的透明性,使开发者不必考虑操作系统的问题。
第三,中间件实现了对交易的一致性和完整性的保护,提高了系统的可靠性。
第四,中间件产品可以缩短开发周期 50% ~ 75% ,从而大大地降低了开发成本,提高了工作效率 。
EAI 包括的内容很复杂,涉及结构 、 硬件 、 软件及流程等企业系统的各个层面,根据 EAI 集成的深度来划分可以分为应用集成、业务过程集成、数据集成。
1 应用集成
应用层次的集成主要为两个以上的应用中的数据和函数提供接近实时的集成。在网络环境中的跨平台应用程序之间的应用到应用( Applicationto Application , A2A )的集成。它涵盖了普通的代码( COBOL , C++ , Java )撰写 、 应用程序接口 、 远端过程调用 、 分布式中间件如 TP 监控 、 分布式对象 、 CORBA 、 RMI 、 面向消息的中间件及 Web 服务等各种技术。应用层次的集成一般来说是通过处理多个应用系统之间的消息交换,实现系统间的集成。各个应用能够处于同步模式,即基于客户(请求程序)和服务器(响应程序)之间的请求响应交互机制。应用系统能够自己处理消息的转换,并且它将影响被集成系统的数据转换和有效性。但是,这需要对系统进行修改以建立发送和接收消息的接口。
2 业务过程集成
业务过程集成需要处理企业范围内的业务过程和把企业存在的应用系统整合到这些业务过程中。它是一个完全的企业应用集成实现策略,因为它使企业内的一个个分离系统变成了一个支持业务过程的连续系统,从而满足企业的整个业务过程需求。当对业务过程进行集成的时候,企业必须在各种业务系统中定义 、 授权和管理各种业务信息的交换,以便改进操作 、 减少成本 、 提高响应速度。业务过程集成包括业务管理 、 进程模拟,以及综合任务 、 流程 、 组织和进出信息的工作流,还包括业务处理中每一步都需要的工具。业务过程集成至少包括以下两种形式的流程。
(1)交互式流程
交互式流程包含了跨两个系统之间的事务处理。这种流程是完整的且不间断的,它不包含任何需要人为参与的工作和间断的流程。由于交互式流程通常是在两个系统之间流转的,它不需要特别复杂的 EAI 处理。
(2)多步流程
作为业务流程的一部分,许多单独的事务处理根据事先定义的顺序在两个或者多个系统之间流转,这就涉及工作流和业务流程重组。多步流程有一系列的步骤并同多个系统相关,能在一定的时间内完成。这种流程可以是一对多 、 多对一或者多对多的关系。
3 数据集成
要完成应用集成和业务过程集成,必须首先解决数据和数据库的集成问题。为了处理多个数据库之间的数据移动,很多企业把数据级 EAI 作为他们实施 EAI 的切入点。当应用系统必须分享信息时,这种集成可以支持不同数据库之间的数据交换。
目前有很多支持数据级 EAI 的工具,这使得数据级 EAI 实现起来相对容易,甚至不用修改应用系统的源程序。通行的做法就是将历史数据批量导入新系统中和现行系统中的批量 、 实时数据处理,也称数据同步。
随着数据仓库的建立,越来越多的数据同步工作能够采用批量的方式来处理。这样可以掌握更多的信息,例如客户类型 、 客户交易历史和客户习惯的购买 、 交货方式都能够每日或者每周更新一次。关键数据 、 新客户的数据和可用库存增加的需求都能够进行批量实时的更新。很多企业也在寻找方法来进行批量数据的集成,缓解日益增长的数据给数据同步带来的压力。当然,更深层次的数据集成,需要首先对数据进行标识并编成目录,另外还要确定元数据模型。这三步完成后,数据才能在数据库系统中分布和共享。
但是,目前数据集成解决方案中最普遍的方法发生在企业内的数据库和数据源级别,即通过从一个数据源将数据移植到另外一个数据源来完成数据集成。下面举出数据集成的一些例子:将订单从 ERP 系统更新到 CRM ( Customer Relationship Management ,客户关系管理)系统中,以便销售人员能够实时了解订单的情况。从多个系统中同步和规范客户信息,使企业能够 360° 全面审视客户。将运作数据实时地保存在系统中,客户和分销商能通过商业智能网络访问企业的库存和订单信息。每天一次或者多次地将 ERP 中的数据导入 SCM ( Supply Chain Management ,供应链管理)系统中,将有助于企业制订物料需求计划。每天多次将运输的价格信息传输给各个下游分销商。
数据集成的一个最大的问题是商业逻辑常常只存在于主系统中,无法在数据库层次去响应商业流程的处理,因此限制了实时处理的能力。在企业内部, EAI 通过建立底层结构来联系横贯整个企业的异构系统 、 应用 、 数据源等,完成在企业内部的 ERP 、 CRM 、 SCM 、 数据库 、 数据仓库,以及其他重要的内部系统之间无缝地共享和交换数据的需要。而在电子商务时代,企业不仅需要在内部的应用系统之间进行集成,还需要对供应链中的不同企业系统进行集成,以帮助企业创建一条畅通于企业的各个部门以及它的供应商 、 承运商 、 分销商 、 零售商和顾客之间的信息流,从而进行有效的数据和业务集成。
特别是随着信息技的普及和企业各种应用的迅速增加,越来越多的企业开始采用 EAI 解决方案将企业内部的应用软件与外部客户和供应商的应用软件进行链接,实现数据流和业务运作的自动化,从而达到业务的实时与快速。好的企业应用集成解决方案可以实现对于未来业务的集成,维护和修改实现时间和成本的节约,从而提升企业的核心竞争力。