从 ABAP Netweaver 到 ABAP Platform,我们一直在努力

Jerry 之前的文章 ABAP 真的会过时吗?聊聊 ABAP 的过去,现在和未来,带着大家简单回顾了 ABAP 这门编程语言的发展史和对其未来进行了展望。

之后我收到了一些读者的反馈,咨询关于 ABAP Netweaver 和 ABAP Platform 这两个名词的区别和联系。本文就来说一说。

让我们从两张图片开始本文的讨论。用 SAPGUI 登录系统,选择菜单 System 下的 Status 菜单项,能看到当前 SAP 系统的产品版本号(Product Versions).

在一个 CRM On-Premises 系统里,版本号如下:

  • SAP CRM 7.0
  • EHP3 FOR SAP CRM 7.0

在一个 S/4HANA On-Premises 系统里,能看到下列三个产品版本号:

  • S/4HANA ON PREMISE 2022
  • ABAP PLATFORM 2022
  • SAP S/4HANA FOUNDATION 2022


这个 ABAP Platform 是什么含义?Jerry 之前的文章 聊聊 C 语言和 ABAP 曾经提到, SAP Kernel(内核) 是任何基于 ABAP 技术栈的 SAP 系统的核心组件。随着 SAP R/3 于 1992 年正式发布,在过去将近 30年里,SAP Kernel 已经成为几乎所有构建于 ABAP 技术栈之上的 SAP 产品基础平台,比如包含了 SAP CRM, SCM, SRM, PLM, ERP 的 SAP Business Suite 商务套件。

多年来,作为 SAP 产品的基础设施层,SAP Kernel 不断地进化。为了顺应时代发展对企业管理软件不断提出的新需求,越来越多的功能被添加到 SAP Kernel 中。

2002 年,随着 SAP R/3 4.7 和 SAP Web Application Server 的加入,SAP Kernel 完成了第一次重大变化。我们可以回忆一下 2002 年这个时间节点。那正是互联网技术首次风起云涌,席卷全球技术领域的 .COM 时代。而 SAP 也顺势而为,通过引入 Internet Communication Manager (ICM) 和 Internet Transaction Server (ITS) 对 SAP 内核进行了扩展,使其能够管理 HTTP 连接并提供对 XML、BSP 和 Java 的支持。

SAP NetWeaver 于 2004 年正式发布。作为一个通用技术平台,Netweaver 能够帮助客户将来自各种渠道的数据和业务流程等企业运行元素集成到统一的 SAP 环境中。在过去的 16 年中,SAP NetWeaver 一直是基于 ABAP 技术栈的 SAP 应用程序的技术基础。

2008 年,SAP 发布了 SAP Business ByDesign,这是 SAP 开发的第一个 SaaS 产品,也是 Jerry 2007 年大学毕业加入 SAP 成都研究院之后开发过的第一个 SAP 产品。

由于 SAP R/3 Kernel 代码庞大而复杂,不适合直接运用到 SaaS 软件的开发领域中,因此 SAP 在此基础上对其进行了另一次重大的改造, 开发出了一个新版本的内核。这个内核改造项目被称为 NGAP,即 Next Generation ABAP Platform 的缩写。

SAP HANA 的诞生也是 SAP 产品史中一个里程碑式的事件。SAP HANA 于 2011 年正式发布。一年后,SAP Business Suite on SAP HANA 1.0 发布,SAP 应用首次能够运行在自家的 HANA 数据库之上,完成了历史性的双剑合璧。这个版本基于 SAP Netweaver 7.40 SP2,包含了针对 HANA 和 Fiori 的支持和创新。

2012 年,Jerry 告别了耕耘五年的 SAP Business ByDesign,加入了 SAP 成都研究院 CRM 开发团队。我所在的开发团队,为随后的 SAP CRM powered by SAP HANA 也做出了贡献。

SAP Kernel 的进化一直秉承 Innovation without disruption(无损式创新) 的准则,即在引入新功能的同时,尽量保持向后兼容性,从而确保客户既能利用内核新引入的技术特性,又能从企业实际出发,按照自己的节奏进行创新。

由 SAP Netweaver 提供技术支撑的 SAP Business Suite 在企业管理软件领域取得的巨大成功,是 SAP 内核无损式创新准则完美实践的一个例子。该准则使 SAP Netweaver 成为运行复杂业务软件的可靠平台,为 SAP 客户采用新技术进行创新奠定了坚实的基础。

需要强调的是,SAP NetWeaver 是一个产品系列集合,除了 ABAP 和 Java 应用程序服务器之外,还包含其他组件,如 BI Content Extension,Advanced Adapter Engine(高级适配器引擎扩展), 以及由 Business Warehouse, Enterprise Portal 和 SAP Process Orchestration 组成的 Netweaver Hub.

作为完整和独立产品进行发布的最后一个 SAP Netweaver 版本号是 SAP Netweaver 7.50.

2015 年,SAP S/4HANA 发布,从此进入了第四代 ERP 产品时代。SAP Netweaver 的组件之一,SAP Netweaver Application Server ABAP component,也进行了对应的更新,以支持从 R/3 到 S/4 这一大踏步的迈进:

SAP NetWeaver Application Server ABAP 7.50: for SAP S/4HANA 1511
SAP NetWeaver Application Server ABAP 7.51 Innovation Package:for SAP S/4HANA 1610
SAP NetWeaver Application Server ABAP 7.52 :for SAP S/4HANA 1709

这三个 Netweaver ABAP 组件版本的更新,引入了针对 Fiori 应用开发的新编程模型,基于核心数据服务即 Core Data Service,并为将来诞生的 RAP(Restful ABAP Programming)编程模型奠定了坚实的技术基础。

另外,从这三个更新的版本开始,其包含的 Software Component SAP_ABA 的版本号, 不再采取过去经典的如下图所示的纯数字命名法:

而是采用数字与字母的组合来标识版本号,如下图所示:

从 SAP_ABA 750 到 SAP_ABA 75A, 包含了一些重要的更新,最为 ABAP 开发顾问们熟知的就是 MATNR 数据元素的长度变化,从 18 个字符扩展到了 40 个字符。

除此之外,这三个更新的版本,还进行了许多技术创新,对 SAP Kernel 的关键组件进行了现代化改造,例如新的 Enqueue Server (ENSA2) ,支持 HTTP/2 协议和其他内部更改等等。

讨论到这里,我们可以纠正一个普遍存在的不太准确的说法:SAP S/4HANA 基于 SAP Netweaver.

更准确的说法应该是,SAP S/4HANA 1511,1610 和 1709,基于 SAP Netweaver 的组件之一,SAP Netweaver Application Server ABAP.

因为前文已经提到,SAP Netweaver 还包含 Java Stack 和 BW,Portal,PO 等 SAP Netweaver Hub 组件,而这些组件并不是 SAP S/4HANA 产品的一部分。

至此,本文标题中的 ABAP Platform 终于要出场了。

SAP NetWeaver Application Server ABAP 7.50, 7.51 和 7.52,可以看作为 ABAP Platform 登上舞台之前的序幕。

从 S/4HANA 1809 开始,即上图红色分隔线以下,ABAP Platform 取代了之前的 SAP Netweaver Application Server ABAP,成为了 S/4HANA 的底层技术平台。

ABAP Platform 是由 ABAP Netweaver 进化而来,并且是后者的替代者。正如本文开头的截图所提到的,ABAP Platform 并不会像之前的 Netweaver 那样单独发布,而是作为 SAP S/4HANA 的一部分被客户使用。

要点总结

(1) SAP Netweaver 不仅是一个技术平台,而且是一个产品系列家族,包含 Netweaver ABAP/Java Application Server Component,Business Warehouse, Enterprise Portal 和 SAP Process Orchestration 等等。

(2) SAP Business Suite 基于 SAP Netweaver 的 ABAP Application Server 组件。

(3) SAP S/4HANA 1511,1610 和 1709 这三个版本,分别基于 SAP Netweaver ABAP Application Server 组件的 7.50,7.51,7.52 这三个版本。

(4) 从 SAP S/4HANA 1809 开始,底层的技术平台换成了 ABAP Platform. 后者作为 S/4HANA 的 Foundary 层,不会作为一个单独的产品发布。

后续 Jerry 将继续介绍 ABAP Platform 同 SAP Netweaver 相比所新增添的功能和特性,敬请期待。

本文图 4,7,11 和 12 来自 SAP 社区博客:ABAP Platform – Part 1 – Evolution from SAP Netweaver,作者是我的同事 Tena Juan.

Jerry 的 ABAP 专题

  • Jerry的ABAP, Java和JavaScript乱炖

  • ABAP开发人员未来应该学些什么

  • Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现

  • Jerry的ABAP原创技术文章合集

  • 300行ABAP代码实现一个最简单的区块链原型

  • 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数

  • 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务

  • ABAP vs Java, 蛙泳 vs 自由泳

  • 聊聊C语言和ABAP

  • 动手使用ABAP Channel开发一些小工具,提升日常工作效率

  • 我用ABAP做过的那些无聊的事情

  • 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

  • 使用Visual Studio Code编写和激活ABAP代码

  • 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧

  • 在SAP云平台ABAP编程环境上编写第一段ABAP程序

  • SAP官方发布的ABAP编程规范

  • ABAP Code Inspector那些隐藏的功能,您都知道吗?

  • 还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧

  • ABAP Netweaver体内的那些寄生式编程语言

  • 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀

  • 云端的ABAP Restful服务开发

  • 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务

  • 使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输

  • 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用

  • Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现

  • Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试

  • SAP云平台上的ABAP编程环境里如何消费第三方服务

  • ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了

  • 学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景

  • SAP云平台里的三叉戟应用

  • 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

  • SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?

  • 有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?

  • ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了

  • 利用ABAP 740的新关键字REDUCE完成一个实际工作任务

  • 一段让人瑟瑟发抖的ABAP代码

  • 昨日万圣节ABAP怪兽级代码谜团,公布答案啦

  • 介绍一种在ABAP内核态进行内表高效拷贝的方法

  • 使用SAP Cloud Application Programming模型开发OData的一个实际例子

  • 当ABAP遇见普罗米修斯

  • 使用ABAP绘制可伸缩矢量图

  • ABAP开发环境语法高亮的那些事儿

  • SAP错误消息调试之七种武器:让所有的错误消息都能被定位

  • 使用ABAP操作Excel的几种方法

  • SAP GUI里的收藏夹事务码管理工具

  • SAP GUI和Windows注册表

  • 有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中

  • ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼

  • 实现ABAP条件断点的三种方式

  • 使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈

  • 一个13年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害

  • SAP ABAP Netweaver容器化, 不可能完成的任务吗?

  • SAP产品增强技术回顾

  • SAP API开发方法大全

  • 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试

  • SAP ABAP应用服务器的HTTP响应状态码(Status Code)

  • SAP ABAP里存在Java List这种集合工具类么?CL_OBJECT_COLLECTION了解一下

  • ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序

  • SAP ABAP Netweaver服务器的标准登录方式讲解

  • SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer

  • SAP ABAP SM50的另类用途 - ABAP工作进程对数据库表读取操作的检测

  • 关于SAP ABAP字符变量和字符串变量字符个数的一个知识点,和一个血案

  • SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析

  • SAP ABAP和Java里的弱引用(WeakReference)和软引用(SoftReference)

  • SAP AMDP介绍 - ABAP托管的HANA数据库过程

  • 给你的ABAP对象打上标签(Tag)

  • 历史上的今天:编程语言中null引用的十亿美元错误

  • ABAP Development Tool 代码模板和其他一些实用技巧汇总

  • SAP ABAP Development Tool 提高开发效率的十个小技巧

  • 如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service

  • ABAP 真的会过时吗?聊聊 ABAP 的过去,现在和未来

  • 基于 abapGit 和 abaplint 的 ABAP 持续集成的一个例子

  • 不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器

  • 使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析

更多Jerry的原创文章,尽在:"汪子熙":


你可能感兴趣的:(从 ABAP Netweaver 到 ABAP Platform,我们一直在努力)