SAP系统本身提供了优秀的EAI解决方案,它主要通过ALE、IDocs和BAPI技术实现与外部系统的连接、数据交换(EDI)和流程集成(BPI)等业务功能,如图2所示。ALE(Application Link and Enabling)是 SAP 专门为 SAP 与非 SAP 系统以及 SAP 与 SAP 系统之间所设计的集成中间件。从 SAP 3.0版本开始,ALE已作为 SAP 整个应用体系的一部分,为分布式数据交换提供了安全可靠的通讯机制。随着应用的发展,ALE/IDocs接口机制已成为与其它非 SAP 系统接口的标准集成方式。ALE的设计结构可以分为3层,即应用层,数据/消息分配层和通讯层。如图3所示。IDoc是 SAP 提供系统集成专用的数据/消息格式。它几乎可以传送任何 SAP 应用数据。IDocs以文本字符为基础,因而编制方便。IDocs中的信息从记录类型上分为控制记录、数据记录和状态记录3种。控制纪录主要是文本信息,如IDoc, 类型、发送/接收方信息以及文本标识;数据纪录为管理和实际数据部分;状态纪录用来追踪文本传递各点的状态,如状态码、系统时间、错误标识等。图4描述了SAP 系统与外部系统通过IDoc, 进行数据交换的过程。其中图 4(a)是 SAP 通过两种不同的路径向外部系统发送数据,图 4(b)是 SAP 系统以两种不同的方式接收数据的过程。BAPI(Business Application Programming Interface)是 SAP 为 3.0 以上版本提供的基于企业目标(Business Object)技术的接口应用界面。SAP 在 3.0以上版本采用了面向对象(Object-oriented)技术,逻辑地定义了 SAP G97 系统的所有功能目标,并且将所有的对象(Objects)和 BAPIs 存储于企业对象库BOR(Business Objects Repository)中。因此,利用BAPI开发人员可以实现对 =DG 进行实时访问,从而实现应用系统之间在数据 9 逻辑层上的有效集成。
因此,针对这种方案要实现 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 系统构架,数据共享操作可以发生在两个层面:数据层和业务逻辑层。
发生在数据层意味着:直接向数据库中写入数据,绕开业务逻辑层,这样做的优点是:数据交换速度快、操作简单;缺点是:对于业务逻辑复杂的系统,由于业务逻辑对数据格式的种种限定,导致这处操作有可能无法完成,或系统出现业务逻辑问题,甚至可能导致系统崩溃。
发生在业务逻辑层意味着:通过业务逻辑向数据库中写入数据,输入的数据经过业务逻辑层的检验。这种操作的优点是:数据准确、安全稳定;缺点是:实施起来比较复杂,周期较长。
逻辑层的数据共享集成方法有:通过应用编程接口(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 顾问公司获得技术支持,组建强大的技术团队,只有这样才有可能使成本与风险降到最低,达到集成后的效果。(end)