最近 Jerry 写了一系列关于 SAP 云平台 ABAP 编程环境的技术文章,这些文章都是围绕着在云上的 ABAP 编程环境的具体知识点来分享,比如要完成一个具体的开发需求,所需要的编程步骤。这些文章陆续收到一些读者朋友的留言,咨询各种各样的问题,我才意识到 Jerry 缺少一篇对 SAP Cloud Platform ABAP 编程环境总体的介绍文章,比如 SAP 为什么要发布这款云平台上的编程环境,它的使用场景,和 S /4HANA Cloud 的关系是什么等等。
今天就把这篇迟来的文章补上。
SAP Cloud Platform 发布后很长一段时间,在 SAP 各大技术社区里,能感觉到 ABAP 从业者们内心一丝隐隐的失落:尽管 SAP 和其他 IT 公司一道,大步迈开了向云端转型的步伐,在 SAP 云平台上通过 BYOL(Bring Your Own Language)的架构,实现了对业界流行编程语言的支持,这使得拥有 Java,nodejs,PHP,Python,Ruby,Go 等编程技能的开发人员们,也能加入 SAP 生态圈这个大家庭。
然而,这些编程语言的集合里,竟然没有 SAP 的主打语言 ABAP?It’s embarrassing…
不过 ABAP 从业者们“被云时代抛弃”的这份尴尬,随着 SAP 云平台 ABAP 编程环境的发布一扫而空。截至您看到 Jerry 这篇文章为止,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 服务(Jerry 之前的文章 SAP 云平台上的 ABAP 编程环境里如何消费第三方服务 介绍过,可以理解成 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 双模型的交付模式,即采取两套独立管理却彼此互补的模式,一套交付模式采用传统成熟的软件开发方式,需求变动频率相对较低,强调交付的健壮和稳定性。另一套则兼走偏锋,遵循“天下武功,唯快不破”的理想,强调敏捷,创新,探索,速度,高频次的迭代。
Jerry 当时看了 Google 上对 Gartner 提出的 IT 双模型的介绍文字,第一反应就是:这不就是在描述 SAP 智慧企业概念里的“数字化核心”(SAP S/4HANA)和创新平台 (SAP Cloud Platform) 的关系吗?
Side-by-side 这种增强内容与被增强的系统分开部署的灵活方式,使得从理论上来说,如果增强开发的设计得足够通用,从商业模式上说,其就具备了可以单独拿出来售卖的可能性。
我们通过下面的链接访问 SAP 应用中心:
https://www.sapappcenter.com/…
依次勾选左边的 SAP Cloud Platform Services 和 ABAP,即可列出所有使用 SAP Cloud Platform ABAP 编程环境开发的 partner 解决方案。
希望这篇文章能帮助大家理解 SAP 云平台 ABAP 编程环境的诞生原因和使用场景,感谢阅读。
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: