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 双模交付模型的讨论。
相关文章
- SAP Spartacus 产品搜索页面结果里的 filter 设计明细
- SAP UI5 sap.ui.layout.Grid 控件概述
- SAP UI5 应用中的 sap.ui.require 使用场景
- SAP UI5 sap.ui.base.ManagedObject 的构造函数参数讲解
- sap 获取计划订单bapi_PP 常用bapi
- SAP UI5 sap.ui.Device.media.initRangeSet 方法的单步调试
- 通过一个实际例子,理解 SAP UI5 sap.ui.model.odata.v2.ODataModel API 中 BindingContext 绑定上下文的概念和用法试读版
- SAP UI5 加载本地并不存在的 PDF 文件的错误处理
- 什么是 SAP 云平台的 multi-cloud architecture
- SAP QM 不常用事务代码QVM3 - Inspection Lots Without Usage Decision
- SAP MM 物料移动平均价的修改历史
- 澄清一些对 SAP UI5 响应式表格 sap.m.Table 的常见理解误区试读版
- Sap 常用Function 说明详解编程语言
- SAP ALV内嵌(In-place)Excel的问与答详解编程语言
- SAP 传输请求报错—-***在本系统中被修理(Object ****** is in repair status. Therefore, it cannot be imported).详解编程语言
- SAP ABAP常见错误记录之三:Enhancement category for table missing / for include or subtype missing详解编程语言
- sap 中怎样把非限制库存转为销售订单库存详解编程语言
- SAP中使用BDC创建或修改采购信息记录详解编程语言
- SAP已发票校验采购订单退货 – 特殊业务详解编程语言
- SAP 屏幕逻辑流详解编程语言
- 让企业受益匪浅:应用Linux环境下SAP HANA(linuxhana)
- 缓存使用SAP创建Redis缓存,实现高效稳定加速(sap如何创建redis)
- 展望未来Oracle与SAP的合作结盟前景(oracle、sap)
- 聘请高级Oracle与SAP顾问,拓展业务潜力(oracle sap顾问)
- Oracle 与 SAP深度对比分析(oracle sap对比)