SAP Gateway在S4/HANA时代的ABAP开发模型中有着重要的地位。SAP
Gateway是什么?它对ABAP开发有怎样的影响?可以为我们提供哪些方便?这篇译文将浅要地讨论这些话题。

SAP Gateway在S4/HANA时代的ABAP开发模型中有着重要的地位。SAP
Gateway是什么?它对ABAP开发有怎样的影响?可以为我们提供哪些方便?这篇译文将浅要地讨论这些话题。

图片 1

SAP NetWeaver
Gateway是一项基于市场标准的技术,它提供了简单的方式以连接SAP软件与设备、环境和平台。这个框架允许实现创新的、以人为本的解决方案,为SAP的商务软件带来了新体验:比如社交与协作环境、手机和笔记本设备以及富internet应用。

SAP NetWeaver
Gateway是一项基于市场标准的技术,它提供了简单的方式以连接SAP软件与设备、环境和平台。这个框架允许实现创新的、以人为本的解决方案,为SAP的商务软件带来了新体验:比如社交与协作环境、手机和笔记本设备以及富internet应用。

image.png

简而言之,NetWeaver Gateway是一个ABAP组件集,它附加在你已有的SAP
ERP系统上,并提供了简单的、以人为本的工具来访问你的业务信息,并且降低了消费数据所需要的知识门槛,使得使用者不需要了解SAP系统内部的工作机制。Gateway提供了易用的、定义良好的API,提供了入口以访问SAP系统中富有价值的业务数据和功能。

简而言之,NetWeaver Gateway是一个ABAP组件集,它附加在你已有的SAP
ERP系统上,并提供了简单的、以人为本的工具来访问你的业务信息,并且降低了消费数据所需要的知识门槛,使得使用者不需要了解SAP系统内部的工作机制。Gateway提供了易用的、定义良好的API,提供了入口以访问SAP系统中富有价值的业务数据和功能。

OData介绍

OData是一种非常简单的接口协议,它有着简单的结构以及简单的操作方式。当我们提及接口的方式,目前首推的是RESTful,REST是Representational
State
Transfer的缩写,它是一种轻量的接口方式(和传统的SOAP的接口方式相比)。注意,REST不是协议,只是开发接口中的术语,这种接口方式有以下一些特点:

  • 无状态交互(Statelessness)

    请求不会在服务端存储,任何的请求包含了所有服务所需要的信息。

  • 可缓存(Cacheability)

    请求的返回信息可以定义是否需要缓存。

  • 层级系统(Layered System)

    客户端不清楚访问的最终系统,有可能是直接连接,也可能是中间系统。

  • 统一接口(Uniform Interface)

    统一的接口方式可以将客户端和服务端解耦。

  • 按需编程(Code on demand)

    服务可以根据客户端传输的请求内容定制化。

REST请求的通用操作:

  • GET

    客户端从服务端获取数据。

  • POST

    客户端传送信息给服务端进行创建的操作或者修改的操作。

  • PUT

    客户端传送信息给服务端进行创建的操作或者修改的操作。

  • DELETE

    删除服务端的数据操作

  • PATCH

    更新某一条数据中的某个属性。

本文链接:

本文链接:

OData的定义

OData是Open Data
Protocol的缩写,是一种基于REST的数据访问方式。目前这种协议有微软进行维护和发布。

详细的OData的介绍请参考:www.odata.org

原文连接:A simple overview on SAP Netweaver
Gateway

原文连接:A simple overview on SAP Netweaver
Gateway

OData 协议遵循以下五种设计原则
  • 数据多样性存储

    在一个服务里面可以定义多种数据的存储。

  • 向下兼容

    客户端和服务端可以使用不同版本的OData服务,每个服务都可以向下兼容。

  • REST原则

    遵循上文中提到的REST原则。

  • 容易扩展

    如果需要额外的服务,应该能够进行简单的扩展。

  • 简单

1.1 兼容性

  • OPEN – 任何设备,任何体验,任何平台
  • PEOPLE – 优化用户交互场景
  • TIMELESS – 不分裂,任何SAP Business Suite版本
  • DEVELOPERS – 简单的API,不需要SAP知识,任何工具(都可以)
  • STANDARDS – 基于REST,ATOM/OData

SAP NetWeaver Gateway提供SAP应用与任何语言或模型的连接能力,借助REST
services和OData/ATOM协议,实现这种连接不需要SAP方面的知识。

1.1 兼容性

  • OPEN – 任何设备,任何体验,任何平台
  • PEOPLE – 优化用户交互场景
  • TIMELESS – 不分裂,任何SAP Business Suite版本
  • DEVELOPERS – 简单的API,不需要SAP知识,任何工具(都可以)
  • STANDARDS – 基于REST,ATOM/OData

SAP NetWeaver Gateway提供SAP应用与任何语言或模型的连接能力,借助REST
services和OData/ATOM协议,实现这种连接不需要SAP方面的知识。

实施OData

如果需要实施OData服务,需要完成以下四个部分:

  • OData模型

    定义数据结构,一般发生在后端系统。

  • OData协议

    支持CRUDQ(创建,读取,修改,删除,查询)功能,数据的传输可以使用XML或者JSON。

  • OData客户端库

    保证了客户端能够使用库函数方便的访问OData服务。注意,客户端库并不是必须的,但是尽量有,这样可以节省大量的编码工作。

  • OData服务

    可以最终被客户端访问的服务。

1.2 REST & OData

REST: 表现层状态转化(Representational State
Transfer)是分布式系统的软件架构风格,例如万维网。凭借其更为简单的风格,REST已经逐渐代替了其它设计模型如SOAP。REST使用标准的GET,
PUT, POST &
DELETE方法和HTTP协议已有的特性。REST的主要目标包含组件交互的可测量性、接口的通用性、组件部署的独立性、中间组件减小延迟、增强安全性和封装遗留系统(legacy
systems)等。

OData: 开放数据协议(Open Data
Protocol)是一个用于查询和更新数据的开放的互联网协议。该协议允许消费者经由HTTP协议向数据源查询,并以Atom、JSON或者plain
XML等格式返回数据,可以对数据编码、排序或者过滤。

1.2 REST & OData

REST: 表现层状态转化(Representational State
Transfer)是分布式系统的软件架构风格,例如万维网。凭借其更为简单的风格,REST已经逐渐代替了其它设计模型如SOAP。REST使用标准的GET,
PUT, POST &
DELETE方法和HTTP协议已有的特性。REST的主要目标包含组件交互的可测量性、接口的通用性、组件部署的独立性、中间组件减小延迟、增强安全性和封装遗留系统(legacy
systems)等。

OData: 开放数据协议(Open Data
Protocol)是一个用于查询和更新数据的开放的互联网协议。该协议允许消费者经由HTTP协议向数据源查询,并以Atom、JSON或者plain
XML等格式返回数据,可以对数据编码、排序或者过滤。

OData服务的结构
  • 服务文档(Service Document)
  • 服务元结构文档(Service Metadata Document)

以上两种文档包含了:

  • 实体(Entity)
  • 实体类型(Entity Type)
  • 实体集合(Entity Set)
  • 属性(Property)
  • 导航属性(Navigation Property)
  • 关联(Association)

1.3 关键优势

  • REST允许你的系统由此降低消费数据的门槛,因为借助它,无需SAP系统的专业知识也能消费其中的业务数据和功能。
  • 通过一个简单易用、非专有的接口,隐藏SAP系统背后的技术复杂性。
  • 让你的SAP业务数据和功能可以从符合以下特性的任何设备访问:
    • 通过HTTP(S)协议通信。
    • 理解OData消息
  • 提供服务生成工具(Service Provisioning
    tools),允许为已存在的ABAP功能快速生成REST实现。
  • 为主流IDE提供插件,比如Eclipse,Visual Studio和Xcode.

1.3 关键优势

  • REST允许你的系统由此降低消费数据的门槛,因为借助它,无需SAP系统的专业知识也能消费其中的业务数据和功能。
  • 通过一个简单易用、非专有的接口,隐藏SAP系统背后的技术复杂性。
  • 让你的SAP业务数据和功能可以从符合以下特性的任何设备访问:
    • 通过HTTP(S)协议通信。
    • 理解OData消息
  • 提供服务生成工具(Service Provisioning
    tools),允许为已存在的ABAP功能快速生成REST实现。
  • 为主流IDE提供插件,比如Eclipse,Visual Studio和Xcode.
OData的操作
  • 创建

    HTTP请求类型: POST

    成功返回:201

  • 读取(包括单条读取-read_entity,多条读取read_entityset)

    HTTP请求类型:GET

    成功返回:200

  • 更新

    HTTP请求类型:PUT

    成功返回:204

  • 删除

    HTTP请求类型:DELETE

    成功返回:204

  • 查询

    HTTP请求类型:GET/POST

    成功返回:200/201

    查询操作清单:

    操作 查询方式
    筛选 $filter
    排序 $orderby
    客户端换页 $top,skip,inlinecount
    数据量 $count
    嵌入内容 $expand
    格式化 $format

2.0 使用开源工具访问SAP业务数据

通过SAP NetWeaver
Gateway消费数据只需要用HTTP(S)请求即可。这不需要使用任何SAP先前的软件或协议。应用开发者通过SAP
NetWeaver
Gateway接口消费数据也不需要有ABAP编程经验,甚至完全不需要懂得SAP内部的工作原理。

使用通常的开发工具,比如微软的.NET和苹果的XCode,或者开源语言,比如Ruby和PHP,我们可以轻松地通过消费SAP服务器提供的OData消息为SAP业务数据和功能创建用户界面。为了让OData的消费处理变得更加简单,SAP发布了多个版本的Gateway
Consumption Tool。这个工具现在可以在Visual
Studio和Xcode中使用,它可以生成OData代理对象。另外,它也可以将已生成的代理对象包装并生成基本应用。

微软的OData协议基于Atom发布协议(Atom
Publishing Protocol),相应地,该协议基于Atom 联合格式(Atom Syndication
Format)。SAP利用了OData内建的标准扩展特性来提供自己的注解(Annotations)。OData数据格式和SAP注解的结合使得SAP业务信息同时实现了自描述和高可读性。这两个特性各自地降低了SAP业务信息和功能的获取门槛,使它们更易于为其它外部设备上的业务应用所利用。

2.0 使用开源工具访问SAP业务数据

通过SAP NetWeaver
Gateway消费数据只需要用HTTP(S)请求即可。这不需要使用任何SAP先前的软件或协议。应用开发者通过SAP
NetWeaver
Gateway接口消费数据也不需要有ABAP编程经验,甚至完全不需要懂得SAP内部的工作原理。

使用通常的开发工具,比如微软的.NET和苹果的XCode,或者开源语言,比如Ruby和PHP,我们可以轻松地通过消费SAP服务器提供的OData消息为SAP业务数据和功能创建用户界面。为了让OData的消费处理变得更加简单,SAP发布了多个版本的Gateway
Consumption Tool。这个工具现在可以在Visual
Studio和Xcode中使用,它可以生成OData代理对象。另外,它也可以将已生成的代理对象包装并生成基本应用。

微软的OData协议基于Atom发布协议(Atom
Publishing Protocol),相应地,该协议基于Atom 联合格式(Atom Syndication
Format)。SAP利用了OData内建的标准扩展特性来提供自己的注解(Annotations)。OData数据格式和SAP注解的结合使得SAP业务信息同时实现了自描述和高可读性。这两个特性各自地降低了SAP业务信息和功能的获取门槛,使它们更易于为其它外部设备上的业务应用所利用。

OData 在SAP中的方案

SAP对于标准的OData进行了扩展,特别是在对于字段属性定义上,如果熟悉SAP系统的人都知道SAP系统表中的字段定义往往很难理解,SAP的扩展中就包括了使用字段的描述作为OData的属性进行命名。

SAP对于OData的支持扩展包括:

  • HTTP返回码可以自定义
  • CRUD的支持
  • CUD多媒体文件的支持
  • 序列化处理
  • 深层结构处理
  • Merge/patch的支持
  • Paging,filter的扩展支持

OData在SAP各种产品中的使用:

  • SAP Fiori
  • SAP Jam
  • SAP Netweaver Portal
  • SAP HANA

3.0 聚焦SAP NetWeaver Gateway

SAP NetWeaver
Gateway接口的焦点在于它的REST能力允许非SAP系统应用轻松地消费SAP的数据与功能。它们包括:

  • 任何外部应用,比如微软Office应用可以通过.NET(甚至VBA)进行消费。
  • 桌面机器可以通过由PHP、Java或Ruby等后台支持的Web应用进行消费。
  • 移动端原生应用,比如iPad/iPhone或者安卓设备或者黑莓设备。
  • 嵌入式设备,比如制造业机器人或者卫星导航系统中的路线规划软件。
  • 任何你可以想到的可编程的、支持HTTP(S)协议的业务场景。

SAP NetWeaver
Gateway接口可以用于任何支持HTTP(S)的可编程设备。为提供这一兼容性,它通过以下手段隐藏了系统内存在的复杂性:

协议适配:OData成为了向/从SAP系统供应/消费业务数据的唯一协议。

服务适配:不同类型和版本的SAP系统现在表现为单一的、集成的业务信息库。

3.0 聚焦SAP NetWeaver Gateway

SAP NetWeaver
Gateway接口的焦点在于它的REST能力允许非SAP系统应用轻松地消费SAP的数据与功能。它们包括:

  • 任何外部应用,比如微软Office应用可以通过.NET(甚至VBA)进行消费。
  • 桌面机器可以通过由PHP、Java或Ruby等后台支持的Web应用进行消费。
  • 移动端原生应用,比如iPad/iPhone或者安卓设备或者黑莓设备。
  • 嵌入式设备,比如制造业机器人或者卫星导航系统中的路线规划软件。
  • 任何你可以想到的可编程的、支持HTTP(S)协议的业务场景。

SAP NetWeaver
Gateway接口可以用于任何支持HTTP(S)的可编程设备。为提供这一兼容性,它通过以下手段隐藏了系统内存在的复杂性:

协议适配:OData成为了向/从SAP系统供应/消费业务数据的唯一协议。

服务适配:不同类型和版本的SAP系统现在表现为单一的、集成的业务信息库。

总结

本文简单的过了一下OData,也大概看了一下SAP中OData的使用,在接下来的一篇文章中会介绍Gateway的基本架构。

图片 1

image.png

SAP
Gateway简单来说,就是为了前端不懂ABAP开发的人员所设计的,将后端的数据模型封装成为标准的OData服务以供前端开发人员进行简单的调用。

使用SAP
Gateway,后端的多套复杂系统将会被隐藏,暴露在前端可以使用的是一些列API,所以,开发人员不需要关心数据的来源,只需要集中在设计应用方面。

  • 开放性

    服务可以被任何平台,任何设备调用。

  • 永恒性

    服务可以应用于任何版本的SAP后端业务系统。

  • 易用性

    应用程序接口可以被简单的调用,而不需要一定的SAP系统知识。

4.0 开发过程

SAP NetWeaver
Gateway软件由多种服务生成工具提供,它可以生成必要的源代码,以启动你的外部应用的开发。这些工具可以用于连接多种常用IDE,比如Eclipse,Visual
Studio和Xcode。对这三个IDE,存在可用的扩展,所以开发者无需具备SAP知识。

SAP NetWeaver
Gateway可以根据已有的BAPI、RFC和ABAP Dynpro屏幕创建新的Gateway对象。在生成Gateway对象时,生成工具使用起来和RFC生成器、BOR生成器和屏幕生成器一样。我们也可以通过Gateway附加组件来构建自定义Gateway对象,它会提供OData通道。这是一系列ABAP类和接口,可以用于在SAP系统中开发你自己的Gateway模型对象。需要在SAP NetWeaver Gateway中注册它们,这样就可以通过RESTful服务在外部访问。

可以通过以下图表轻松理解这些开发过程中的步骤:

图片 3

4.0 开发过程

SAP NetWeaver
Gateway软件由多种服务生成工具提供,它可以生成必要的源代码,以启动你的外部应用的开发。这些工具可以用于连接多种常用IDE,比如Eclipse,Visual
Studio和Xcode。对这三个IDE,存在可用的扩展,所以开发者无需具备SAP知识。

SAP NetWeaver
Gateway可以根据已有的BAPI、RFC和ABAP Dynpro屏幕创建新的Gateway对象。在生成Gateway对象时,生成工具使用起来和RFC生成器、BOR生成器和屏幕生成器一样。我们也可以通过Gateway附加组件来构建自定义Gateway对象,它会提供OData通道。这是一系列ABAP类和接口,可以用于在SAP系统中开发你自己的Gateway模型对象。需要在SAP NetWeaver Gateway中注册它们,这样就可以通过RESTful服务在外部访问。

可以通过以下图表轻松理解这些开发过程中的步骤:

图片 3

基本架构

使用 SAP NetWeaver Gateway产品基本符合三层架构:

  • 前端

    包括各种平台的应用,例如手机,Web应用,各种企业应用,以及一些社交媒体应用。

  • 中间层

    SAP NetWeaver Gateway,用于前后端的数据交互。

  • 后端

    包括SAP的各种产品,例如CRM,ECC,SCM等等

5.0 总结

SAP NetWeaver
Gateway不是用于由标准用户使用的事务型应用的通道,也不会替代现有的中间件如SAP
NetWeaver PI。此外,SAP NetWeaver
Gateway的目标也不是A2A或B2B场景。相反,SAP NetWeaver
Gateway是一扇通往SAP业务数据和功能的门。它的目标受众是被称为临时平台用户(Occasional
Platform Users ,OPU)的群体。这些人需要通过易于消费的方式实现特定的(ad
hoc)SAP数据和功能访问。

5.0 总结

SAP NetWeaver
Gateway不是用于由标准用户使用的事务型应用的通道,也不会替代现有的中间件如SAP
NetWeaver PI。此外,SAP NetWeaver
Gateway的目标也不是A2A或B2B场景。相反,SAP NetWeaver
Gateway是一扇通往SAP业务数据和功能的门。它的目标受众是被称为临时平台用户(Occasional
Platform Users ,OPU)的群体。这些人需要通过易于消费的方式实现特定的(ad
hoc)SAP数据和功能访问。

SAP NetWeaver Gateway主要组件

  • IW_FND && GW_CORE

    Gateway的核心组件,其中包括了:

    • OData库以及运行环境
    • OData服务注册和发布
    • OData元数据的存储
    • 服务的跟踪与监控
  • IW_BEP

    • OData建模与设计工具
    • 数据连接服务
      • BAPI
      • RFC
      • BOL
      • HANA
  • 其他组件作为扩展

    • IW_HDB

      连接SAP HANA系统作为数据提供者,这个包里包含了使用ADBC(ABAP
      Database Connectivity)协议进行OData服务的开发。

    • IW_PGW

      整合BPM(Business Process Management)的流程。

    • IW_GIL

      为Genil(Generic Interaction Layer)提供了OData适配器。

SAP NetWeaver Gateway的三种部署方式

  • 集成在SAP后端系统中部署

    系统安装于SAP后端系统中,作为Add-on安装,这样,业务系统与Gateway在相同的环境之中。

  • 作为中间层单独部署

    单独安装于一套服务器中,和后端系统的连接单独配置。

  • 混合部署

    前后端分开,核心组件分别安装,后端需要IW_BEP,前端安装GW_CORE。在后端进行服务开发,在Gateway发布服务。

三种方式的比较
集成部署 单独部署 混合部署
安装和配置 不需要额外的服务器,所有的动作在业务系统中完成 需要单独的服务器来安装Gateway组件,并且需要配置和后端系统中的连接 需要额外的服务器来安装Gateway,同时,也需要配置和后端系统的连接。
性能 在后端业务系统中增加额外的负载,但是同时却省掉了远程调用的负载。 Gateway服务器承担了增加的负载,后端需要承担远程调用的负载 Gateway承担服务负载,后端承担远程调用负载。
成本 不需要额外的费用 额外的服务器费用 额外的服务器费用
维护 Gateway的维护依赖于业务系统的维护周期。 单独维护,没有依赖 单独维护,没有依赖
开发 可以直接使用业务系统中的数据字典,结构,函数,直接操作后端系统。 需要后端提供RFC(远程函数调用),BAPI等支持 对于后端系统完全访问和操作,可以直接使用后端的数据字典或者结构等等。
适用场景 测试,可用性检查等等 可用性测试或者生产环境,如果在已经存在的SAP后端系统中不允许安装额外Gateway的组件的时候。 生产环境,如果使用SAP Fiori的话推荐使用这种部署方式。

总结

本文大概介绍了Gateway的特点,结构以及部署方式。我将会以混合部署的方式进行后续的讲解,接下来的文章中介绍SAP后端业务系统和Gateway的连接配置。

相关文章