SAP Exchange infrastructure(交换基础架构)

       SAP XI组件提供了开放的集成技术,它在企业内外的SAP及非SAP组件之间实现了以流程为中心的合作.SAP XI是SAP Netweaver平台的组件之一,它支持异构系统中的业务流程,以可持续的不断降低成本提供了无缝集成,消除了真正集成所面临的障碍.

        某 ERP 主要应用 SAP R/3 系统,某接口项目是原系统与 SAP R/3 的部分集成。
在 ERP 的实施中,面临众多原有异构系统与正在实施的 SAP R/3 的集成问题。基于以后在一个平台上维护及监视接口比较方便的考虑,ERP 项目组决定采用 SAP XI。
SAP XI(Exchange Infrastructure)是SAP Netweaver 中的一个产品。SAP Netweaver 是一种可随时用于业务运作、面向服务的平台,适用于SAP的所有解决方案。基于Netweaver,企业能够实现各个层面充分的集成,降低信息系统建设的总体成本(TCO)。归纳起来,第一个层面,是人的集成,产品以Portal比较有代表性;第二个层面,是信息的集成,产品有Knowledge Management 和MDM(Master Data Management)等;第三个层面,是流程的集成,即 XI;第四个层面,是平台的集成,在这个层面上,SAP 提供的是支持开放标准(如XML)的底层架构,可以实现灵活的互接。
XI 的集成又可以分为两个层次,第一个层次称为Integration Broker,以消息的方式进行的数据的交换;另外一个层次是 BPM,即业务流程管理。
         在 XI 中,数据(可以使一条记录,比如单个的物料主数据;也可以是多条记录,比如含主单明细的供应商主数据)从某一个业务系统通过 XI 发送到另外一个业务系统,站在业务系统的角度,前者称为 Sender,后者称为 Receiver 。
          适配器(Adapter)进行 XI-XML 格式与业务系统的特定类型的数据格式之间的转换。依据业务系统的数据格式的不同,适配器可以分为多种类型,比如 SOAP Adapter, JDBC Adapter, File Adapter, RFC Adapter 和 IDoc Adapter 等。通常说的实现方式,譬如 SOAP+RFC,是指Sender 与 XI 之间使用 SOAP Adapter,XI 与 Receiver 之间使用 RFC Adapter。
        Integration Broker 的工作原理大致如下。XI 主动或者被动通过一个适配器从 Sender 取得数据,数据进入 XI 后的存在形式是基于 SOAP 的 XI-XML 格式的消息。消息在 XI 内部,依照事先做好的配置,决定消息将发送到哪一个业务系统,进行何种转换以及选用哪一个适配器将消息发送出去。消息最终通过适配器将 XI-XML 格式的消息转换为特定类型的数据并发送给 Receiver。
        BPM 是建立在前者的基础上的,BPM 使用了 work flow 的概念,涉及到业务逻辑的处理。一个典型的订票例程的应用如下。某旅行社 A 发出北京到孟买的订票请求,两个航空公司 B 和 C 分别有北京到新加坡和新加坡到孟买的航线。A的订票请求在 XI 内部被分割为两个订票请求,请求消息分别发往两个航空公司并等待反馈。如果得到两个都订票成功的反馈,则将反馈进行合并处理,并返回给旅行社;如果得到一个成功一个失败的反馈,则需要将反馈合并处理,将订票失败消息返回给旅行社,同时向其中一家航空公司发送取消订票的请求;如果得到均失败的反馈,则值需要将反馈合并处理,将订票失败消息返回给旅行社。
       在此接口项目中,经多次确认、修改和论证,最终确定采用 Integration Broker,具体的实现方式是 SOAP+RFC 与 JDBC+IDoc 。
        采用 Integration Broker 主要是考虑到现有的集成业务逻辑简单、清晰,并不存在特别复杂的业务逻辑的现象,而 BPM 存在配置复杂以及技术上的风险。
        在某些功能点,考虑到客户对的实时性要求,采用了 SOAP+RFC 方式。SOAP和RFC均为同步数据交换协议,包括输入和输出参数。SOAP是建立在 HTTP 协议基础之上的一种协议,通过特定格式的 XML文件来进行数据交换。RFC 是 Remote Function Call的简称,广泛应用在 SAP 的产品之间,类似于常见的 RPC。
        SOAP+RFC 方式实现的难点在于某系统发送 SOAP 消息的客户端如何建立,以及如何得到 SAP R/3 的反馈。前者通过相关文档的帮助下得到解决,后者是通过实现错误信息同步由 R/3反馈给 XI,XI 再反馈给某系统来解决的。
        其他对实时性没有要求的接口,采用了 JDBC+IDoc 方式。其特点在于 JDBC 方式实现起来比较简单,系统只需要将要传给 R/3 的数据存放到临时表,XI会通过 JDBC 方式从临时表取走数据;XI 向系统写数据,会通过调用存储过程,直接将数据写入后台数据库,生成相关单据。采用 IDoc 方式,其特点是 IDoc 实现了对数据的封装,能够记录数据的传输状态。IDoc 方式是 SAP 推荐的 SAP 产品间的标准数据交换方式。这种方式是之前JDBC+File 方案的替代,在方案改变后,我方的程序完全没有改变,这是采用中间件的优点的一个体现。
       JDBC+IDoc 方式实现的难点是对出错如何处理。在三个可选方案中,采用的是最简单的人工干预方法,即对于出错,统一由 XI 发送包含错误信息的电子邮件给相关人员.

posted @ 2010-07-06 16:16  Eric小怪物  阅读(721)  评论(0编辑  收藏  举报