写点什么

SAP 云平台 ABAP 编程环境的前世今生

作者:Jerry Wang
  • 2022 年 6 月 07 日
  • 本文字数:2148 字

    阅读完需:约 7 分钟

SAP 云平台 ABAP 编程环境的前世今生

SAP Cloud Platform 发布后很长一段时间,在 SAP 各大技术社区里,能感觉到 ABAP 从业者们内心一丝隐隐的失落:尽管 SAP 和其他 IT 公司一道,大步迈开了向云端转型的步伐,在 SAP 云平台上通过 BYOL(Bring Your Own Language)的架构,实现了对业界流行编程语言的支持,这使得拥有 Java,nodejs,PHP,Python,Ruby,Go 等编程技能的开发人员们,也能加入 SAP 生态圈这个大家庭。




不过 ABAP 从业者们“被云时代抛弃”的这份尴尬,随着 SAP 云平台 ABAP 编程环境的发布一扫而空。SAP Cloud Platform 编程环境和运行时,已经出现了 ABAP 的身影:



ABAP 加入 SAP Cloud Platform 编程环境的大家庭,好处是显而易见的:



(1) 广大的 ABAP 从业者们终于上车了,大家以前在 Netweaver On-Premises 里的 ABAP 编程技能可以继续在云上发光发热——尽管 SAP 云平台上的 ABAP 编程环境里出现了许多新的关键字,新的编程模型,然而 ABAP 毕竟还是 ABAP,这些新知识对于 ABAP 从业者来说,学习和掌握的速度比非 ABAP 编程人员要快得多。


(2) 为基于 ABAP 技术栈的 SAP 产品的扩展,提供了一种新的开发方式。这一点稍后会展开细说。


(3) 为以前大量存在于 ABAP On-Premises 环境的二次开发代码提供了迁移到云上的可能性。


(4) SAP Cloud Platform 上提供的种类丰富的企业级微服务,机器学习等强大功能,如今也可以被同在 SAP 云平台上的 ABAP 编程环境消费了。


如今 SAP Cloud Platform 上可供选择的编程语言又增添了 ABAP,那么我们接到开发任务时,根据什么样的依据从工具库里挑选使用的编程语言呢?


SAP 给出的建议就是:具体问题具体分析。


企业开发人员具备的技能,企业现有的系统和软件资产,以及待开发的用户需求和涉及到的业务场景,都会影响编程语言的选择。一般来说,ABAP 和非 ABAP 编程语言各具优势,各有各的适用场合:Java,JavaScript 和 Python 等语言的开发生态圈非常繁荣,Github 各种开源的组件,工具库,可以说凡是你能想到的点子,生态圈几乎都早已有人做出来了,因此选择这些编程语言开发,我们可以避免重复造很多轮子;而 SAP 云平台上的 ABAP 环境,借助 CDS view,Restful ABAP Programming 模型等 ABAP 语言提供的原生特性,在扩展基于 ABAP 技术栈的 SAP 产品时优势显得特别突出。



SAP 云平台 ABAP 编程环境的一种典型的使用场景,就是以 Side-by-side 方式对 S/4HANA Cloud 进行扩展。


首先需要解释何谓 side-by-side Extensibility.


传统的 SAP 产品的二次开发方式是,ABAP 开发者们通过 SAP GUI 登录到 ABAP On-Premises 系统,直接在被扩展的系统上通过 Netweaver 提供的各种增强技术进行二次开发。


S/4HANA Cloud,SAP Marketing Cloud,SAP Cloud for Customer 等后台基于 Netweaver ABAP 的云端解决方案,还提供了基于浏览器的面向 Key User 的扩展工具,使用者在浏览器里通过简单的向导步骤,也能实现对所在的云产品进行增强的需求。


这种增强方式,使用的开发工具由被增强应用本身提供,生成的资源和被增强的 SAP 产品都位于同一服务器上,因此称为 In-App 增强方式。这种方式简单易用,需要的技术门槛相对较低。


与此相对应的则是 SAP Cloud Platform ABAP 编程环境提供的 side-by-side 增强方式。这种增强方式通常的步骤是首先在本地开发环境完成开发,然后再部署到 SAP 云平台,SAP Kyma 等平台上,因此二次开发内容最终部署和运行的环境,和被增强的 SAP 产品从物理上看是松耦合的,不在同一服务器上。



上图即 SAP S/4HANA Cloud 通过 side-by-side 方式进行扩展的示意图。位于 SAP 云平台上的 ABAP 增强通过云平台提供的 Connectivity 服务(可以理解成 ABAP On-Premises 里的 Destination), 消费 SAP S/4HANA Cloud 的 OData 服务,实现对后者系统数据的增删改查和 Action 操作。



Side-by-side 增强方式使得作为数字化核心的 SAP S/4HANA 的应用代码保持 Stable & Clean,同时又能让二次开发工作者紧跟技术发展的趋势,使用业界最新最流行的技术进行 SAP 产品增强。


至此,SAP Cloud Platform ABAP 编程环境和 S/4HANA Cloud 的区别和关系,想必大家应该能理解了吧。前者是增强/集成工具,后者是被增强的系统。


这种增强方式非常符合咨询公司 Gartner 的大佬,John MacDorman 提出的 IT 双模型的交付模式,即采取两套独立管理却彼此互补的模式,一套交付模式采用传统成熟的软件开发方式,需求变动频率相对较低,强调交付的健壮和稳定性。另一套则兼走偏锋,遵循“天下武功,唯快不破”的理想,强调敏捷,创新,探索,速度,高频次的迭代。



笔者当时看了 Google 上对 Gartner 提出的 IT 双模型的介绍文字,第一反应就是:这不就是在描述 SAP 智慧企业概念里的“数字化核心”(SAP S/4HANA)和创新平台(SAP Cloud Platform)的关系吗?




Side-by-side 这种增强内容与被增强的系统分开部署的灵活方式,使得从理论上来说,如果增强开发的设计得足够通用,从商业模式上说,其就具备了可以单独拿出来售卖的可能性。



我们通过下面的链接访问 SAP 应用中心:


https://www.sapappcenter.com/home


依次勾选左边的 SAP Cloud Platform Services 和 ABAP,即可列出所有使用 SAP Cloud Platform ABAP 编程环境开发的 partner 解决方案。



总结

本文首先从 SAP 云平台引入 ABAP 技术栈的支持开始说起,详细介绍了 ABAP 加入 SAP 云平台编程环境大家族的初衷和意义。接着详细介绍了 SAP 云平台 ABAP 编程环境 side-by-side Extensibility 扩展方式的理念和实际操作,引出了 Gartner 公司 IT 双模交付模型的讨论。

发布于: 3 小时前阅读数: 19
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
SAP 云平台 ABAP 编程环境的前世今生_Cloud_Jerry Wang_InfoQ写作社区