SAP已经成为当今 ERP 的代名词。它占有全球企业应用软件市场份额的544,财富 500强中有804以上的公司正在运用这个软件。1992年SAP公司开始进入中国市场,并已为一汽大众、海尔、联想等各行业的优秀企业成功实施了SAP软件。
EAI(Enterprise Application Intergration)即企业应用集成。最初提出此概念是为了实现企业内部不同应用系统之间的互连,通过应用集成实现数据在多个系统之间的同步和共享。伴随着EAI技术的不断发展,它所被赋予的内涵变得越来越丰富,并已经被扩展到业务集成(Business Intergration)的范畴。
EAI 技术层次结构体系
从普遍意义上说,EAI 概念被认为可以包括数据集成、应用集成和业务流程集成等方面。具体到技术层面上,一般认为一个完整的EAI技术结构体系应该包括应用接口层、应用集成层、流程集成层和用户交互层4个大的层面,它们的层次关系如图1所示。
SAP系统中主要的EAI 接口
SAP系统本身提供了优秀的EAI解决方案,它主要通过ALE、IDocs和BAPI技术实现与外部系统的连接、数据交换(EDI)和流程集成(BPI)等业务功能,如图2所示。
因此,针对这种方案要实现 SAP 系统与非 SAP系统以及 SAP 与 SAP 之间的 EAI 技术,我们需要知道怎样在 SAP 中创建和配置 ALE、IDocs 和EDI文件,并利用ABAP语言进行程序开发。
应用接口层在 SAP 中的实现
从与 SAP 建立通信连接的方式上看,应用接口层的实现方法有:直接连接和通过中间件连接两种。
与 SAP 系统直接连接
要直接调用非 SAP 系统中的程序,可选择几种不同的方法。第一种利用 SAP RFC 协议直接与SAP 连接;第二种方法是利用分布式公共对象模型(DCOM)协议来调用外部程序;第三种方法是利用 HTTP 协议,它支持 ABAP、SAP R/3 Enterprise 和SAP 系统通讯。其中,RFC 技术是非 SAP 和 SAP系统之间通讯的核心,它提供双向连接功能,同时,RFC 技术还可让外部程序直接执行 SAP 事件所选模块。SAP 系统也可用 RFC 协议来存取外部程序。
SAP 交换基础设施
SAP 交换基础设施(SAP XI-Exchange Infrastructure)作为中间件,可全力支持 SAP 产品之间或 SAP 产品与其他系统之间的集成。这种中介软件可以让信息交换更平顺,更可预测,在最理想的状态下,中介软件可支持非常简单的协议,如HTTP,以便能与外部系统进行通讯。
SAP 与非 SAP 系统之间的EDI
不同的系统之间之所以要进行集成,其根本原 因在于系统之间要进行数据交换。异构数据系统之间的信息交换需要考虑数据交换的实时性,即数据同步的程度和数据交换量的大小。根据这两个方面,数据集成可以分为数据共享和数据迁移两类。
数据共享
数据共享是为了实现不同系统间一些实时数据的交换,包括读写操作。其主要特点就是:数据交换实时性强、数据交换量小和稳定性高。
根据 SAP 系统构架,数据共享操作可以发生在两个层面:数据层和业务逻辑层。
发生在数据层意味着:直接向数据库中写入数据,绕开业务逻辑层,这样做的优点是:数据交换速度快、操作简单;缺点是:对于业务逻辑复杂的系统,由于业务逻辑对数据格式的种种限定,导致这处操作有可能无法完成,或系统出现业务逻辑问题,甚至可能导致系统崩溃。
发生在业务逻辑层意味着:通过业务逻辑向数据库中写入数据,输入的数据经过业务逻辑层的检验。这种操作的优点是:数据准确、安全稳定;缺点是:实施起来比较复杂,周期较长。
逻辑层的数据共享集成方法有:通过应用编程接口(BAPI)、基于组件(如:DOCM、EJB )或中间件(如:ALE )方法的功能调用以及基于 Web 服务(如:XML 4.0)的功能集成。
数据迁移
数据迁移是将一个系统中的数据部分或全部导入到另一个系统中。这种数据集成一般发生在企业安装新系统时,需要从原有系统中一次性装载大量数据。它的主要特点就是:交换量大,实时性较弱。
从系统本身讲,数据的迁移可以分为弹性迁移和非弹性迁移。弹性迁移是指迁移的目标系统事先没有确定的数据格式。非弹性迁移是指数据迁移的目标系统事先有确定的数据格式。
在 SAP 这样复杂的系统环境下,由于数据格式的转换,数据冗余以及完整性等约束,数据迁移一般都要求通过业务逻辑层。
实现与SAP集成的简单实例
与 SAP服务器建立连接
与 SAP 服务器建立连接,也就是前面提到的应用接口层的集成。它是整个数据交换的先决条件。在这一阶段主要是通过程序获取 SAP 的配置信息,并进行用户身份验证。在建立有效连接之后, SAP 服务器会根据用户权限与外部系统进行通信。图5是与 SAP 建立连接的程序框图。
正如前面讲到的一样,两个异构数据系统在集成的时候,必须注意数据库的一致性和完整性的特点。所以在这里我们采用中介文档(IDoc)的方法来转换数据格式。整个流程可以描述为:当外部系统数据更新以后,根据预定义格式自动生成中间文档,并触发 update 事件通知 SAP 服务器。SAP 服务器获得中间文档后,开始遍历 IDoc 并写入数据库,最后完成对数据库的更新。与 SAP 数据交换的流程框图如图6所示。
本文介绍了 SAP EAI 技术。企业应用软件之间的集成,它不仅会对软件的本身产生影响,而且会给整个企业带来冲击和巨变。因此在进行企业应用集成时,必须充分考虑到它会带来的费用问题和风险。所以,在计划对 SAP 进行 EAI 设计之前,有必要根据自己企业的具体情况拟订合适的集成方案,以确保数据的有效性、实时性、安全性。同时也可以向专门的 SAP 顾问公司获得技术支持,组建强大的技术团队,只有这样才有可能使成本与风险降到最低,达到集成后的效果。