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的原创文章,尽在:"汪子熙":