SAP系统的EAI技术分析研究
SAP与 EAI 概念综述
SAP已经成为当今 ERP 的代名词。它占有全球企业应用软件市场份额的544,财富 500强中有804以上的公司正在运用这个软件。1992年SAP公司开始进入中国市场,并已为一汽大众、海尔、联想等各行业的优秀企业成功实施了SAP软件。
EAI(Enterprise Application Intergration)即企业应用集成。最初提出此概念是为了实现企业内部不同应用系统之间的互连,通过应用集成实现数据在多个系统之间的同步和共享。伴随着EAI技术的不断发展,它所被赋予的内涵变得越来越丰富,并已经被扩展到业务集成(Business Intergration)的范畴。
EAI 技术层次结构体系
从普遍意义上说,EAI 概念被认为可以包括数据集成、应用集成和业务流程集成等方面。具体到技术层面上,一般认为一个完整的EAI技术结构体系应该包括应用接口层、应用集成层、流程集成层和用户交互层4个大的层面,它们的层次关系如图1所示。 从结构图中可以看出:应用接口层位于EAI层次结构体系的最底层,它用于解决应用集成服务器与被集成系统之间的连接和数据接口的问题;应用集成层是用于解决被集成系统的数据转换问题,通过建立统一的数据模型来实现不同系统间的信息换;流程集成层用于将不同的应用系统连接在一起,进行协同工作,并提供商业流程管理的相关功能,包括流程设计、监控和规划,实现业务流程的管理;用户交互层则为用户在界面上提供一个统一的信息服务功能入口,通过将内部和外部各种相对分散独立的信息组成一个统一的整体,保证了用户既能够从统一的渠道访问其所需的信息,也可以依据每一个用户的要求来设置和提供个性化的服务。
SAP系统中主要的EAI 接口
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 与非 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 顾问公司获得技术支持,组建强大的技术团队,只有这样才有可能使成本与风险降到最低,达到集成后的效果。
SAP已经成为当今 ERP 的代名词。它占有全球企业应用软件市场份额的544,财富 500强中有804以上的公司正在运用这个软件。1992年SAP公司开始进入中国市场,并已为一汽大众、海尔、联想等各行业的优秀企业成功实施了SAP软件。
EAI(Enterprise Application Intergration)即企业应用集成。最初提出此概念是为了实现企业内部不同应用系统之间的互连,通过应用集成实现数据在多个系统之间的同步和共享。伴随着EAI技术的不断发展,它所被赋予的内涵变得越来越丰富,并已经被扩展到业务集成(Business Intergration)的范畴。
EAI 技术层次结构体系
从普遍意义上说,EAI 概念被认为可以包括数据集成、应用集成和业务流程集成等方面。具体到技术层面上,一般认为一个完整的EAI技术结构体系应该包括应用接口层、应用集成层、流程集成层和用户交互层4个大的层面,它们的层次关系如图1所示。 从结构图中可以看出:应用接口层位于EAI层次结构体系的最底层,它用于解决应用集成服务器与被集成系统之间的连接和数据接口的问题;应用集成层是用于解决被集成系统的数据转换问题,通过建立统一的数据模型来实现不同系统间的信息换;流程集成层用于将不同的应用系统连接在一起,进行协同工作,并提供商业流程管理的相关功能,包括流程设计、监控和规划,实现业务流程的管理;用户交互层则为用户在界面上提供一个统一的信息服务功能入口,通过将内部和外部各种相对分散独立的信息组成一个统一的整体,保证了用户既能够从统一的渠道访问其所需的信息,也可以依据每一个用户的要求来设置和提供个性化的服务。
SAP系统中主要的EAI 接口
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 与非 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 顾问公司获得技术支持,组建强大的技术团队,只有这样才有可能使成本与风险降到最低,达到集成后的效果。