刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intelligent Enterprise on SAP Cloud Platform,中文即“在SAP云平台上为智慧企业创建扩展应用”。

本文是Jerry对SAP社区这篇博客Making development of extensions easier – SAP Cloud Platform Extension Factory的一些个人解读,并非逐字逐词的简单翻译。

SAP的一个宏伟目标:将来SAP所有产品(不管是On-Premises还是云解决方案)的二次开发平台,统一为SAP云平台。而现状是,SAP S/4HANA Cloud和SAP C/4HANA已经可以通过SAP云平台扩展了,而上图左边的一些其他产品,例如同为云解决方案的SAP Concur,以及本地部署的S/4HANA On-Premises和SAP ECC,如何用SAP云平台对这些产品做扩展,是SAP将来努力的方向。

目前SAP云平台上已经有了下列这些组件,SAP Cloud Platform的作用就是将它们组合起来(Orchestration),像Kubernetes编排pod那样,让其发挥出1+1>2的作用:

SAP Cloud Platform Extension Factory
SAP Cloud Application Programming Model (CAP)
ABAP RESTful Programming Model (RAP)
SAP Cloud Platform Enterprise Messaging
SAP Cloud SDK
SAP Web IDE
SAP Cloud Platform API Management
SAP API Business Hub
SAP Cloud Platform Workflow

Connect securely & quickly

SAP Cloud Platform Extension Factory是SAP推荐的"智慧企业的专属云原生扩展框架",在开源项目Kyma的基础上,借助SAP云平台提供的Cloud Connector和Connectivity Service,保证了企业级应用所需的标准化和安全性。

Build efficiently & effectively

一旦SAP解决方案同SAP云平台建立绑定关系后,其对应实例就会被分配给云平台上的subaccount,而该产品支持的API和事件会发布到SAP云平台上。开发者们能够直接在云平台上浏览和消费这些API及事件。

以为SAP S/4HANA Cloud创建扩展为例,首先基于Open Service Broker API创建一个S/4HANA Cloud Extensibility Service的实例,然后在该subaccount space下的开发人员,即可将该实例绑定到自己创建的扩展应用去,并消费该实例暴露的服务。

开始搬砖之前,开发人员可以在SAP推荐的两种编程模型里进行选择,到底是用SAP Cloud Application Programming Model (CAP) ,还是ABAP RESTful Application Programming Model (RAP).

先看看这两种编程模型各自的特色。

基于CAP模型的扩展应用特色

(1) 天生支持多租户(native multi-tenant enablement)
(2) 同一个SAP Cloud Platform账号创建的基于CAP模型的应用能共享API和事件
(3) 终端用户能够很容易的使用key user tool等工具对此类应用进行字段级别的扩展 - Field Extensibility

如果SAP解决方案的标准功能支持事件发布,则可以通过SAP Cloud Platform上一个叫做Enterprise Messaging的组件,将这些事件发布到SAP Cloud Platform Extension Factory上,这样SAP二次开发人员可以订阅这些事件,编写对应的事件响应函数。

一些具体的例子:

  • Simplified extensions for the Intelligent Enterprise with SAP Cloud Platform Extension Factory and Enterprise Messaging

  • New service plan and UI for SAP Cloud Platform Enterprise Messaging

下图是对应的编码实现订阅S/4HANA Cloud系统服务订单创建事件并作出响应的例子:通过eventBus实例注册ServiceOrder.Created事件,在其触发后,调用技师分配函数进行响应。

在分配S/4HANA Cloud系统里的技师资源时,我们需要消费对应的API,通过SAP Cloud SDK可以轻易实现,不用从更底层的HTTP级别的函数调用开始编写。

SAP Cloud SDK对底层API进行了封装,写起来如同自然语言一样,可读性极佳:

基于Restful ABAP Programming(RAP)模型的扩展应用特色

采用这种模型开发的扩展应用能享受到SAP在云端ABAP领域提供的最新技术和特性,扩展本身同被扩展的解决方案核心代码彻底解除了耦合,因此又被称为Side-by-side扩展。这种模式的扩展能很好的实现所谓digital core code clean的目标。

由于RAP模型本身的语言还是ABAP,因此RAP在工作于ABAP技术栈的SAP产品扩展需求时显得更加如鱼得水。

基于Restful ABAP Programming模型的开发套路,Jerry之前的文章已经介绍过了:

(1) 根据实际业务创建基于CDS view的模型。

(2) 给模型添加transactional behavior,在validation,determination和actions里编写业务逻辑。

(3) 创建business service,将前面创建并实现的模型通过OData暴露出来。

(4) 创建Fiori Elements应用,消费第三步创建的business service,将业务数据通过Fiori UI展示出来。

总结一下,云时代SAP从业人员进行二次开发的工具集:

SAP Cloud Platform, Application runtime
SAP Cloud Platform, ABAP environment
SAP Cloud Platform Enterprise Messaging
SAP Web IDE
SAP Cloud Platform Connectivity (includes Cloud Connector for on-premise connectivity)
SAP Cloud SDK
SAP Cloud Platform API Management
SAP API Business Hub

SAP官网上给出的SAP Cloud Platform Extension Factory演进的路线图:

比如图中标注的,在2019年第四季度,SAP Cloud Platform Extension Factory会添加对SAP S/4HANA On-Premises的支持。当然,路线图中标注了一条:

“This is the current state of planning and may be changed by SAP at any time without notice”.

让我们在以后的日常工作中,好好消化SAP通过TechEd传达给我们的这一精神吧,感谢阅读。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

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

  1. 技术沙龙 | 云时代下的架构演进—企业云及云原生技术落地实践

    云改变了IT行业的形态和市场格局,催生了应用的发展.随着云计算技术的不断演进,作为一名优秀的架构师,必须深入了解云计算平台的特点及架构设计,包括构建数据库.大规模落地微服务.Service Mesh和 ...

  2. “云时代架构”经典文章阅读感想十二

    云时代架构"经典文章阅读感想十二 (牛逼的架构师是怎么炼成的?) 前几周阅读的三四十岁的大龄程序员,应该如何保持自己的职场竞争力?中提到如何在35岁左右可以实现掌握有核心竞争力.其中之一便是 ...

  3. 运维侠客行杭州站沙龙回顾 | 云时代下的运维管理实践(附干货下载)

    我们处在一个巨变的时代,在云计算.大数据和物联网等新技术.新理念不断更新的大背景下,企业同时面临着数字化和"互联网+"转型的双重挑战,企业对于"稳态IT"和&q ...

  4. 【云栖大会】探索云时代下的游戏开发模式

    2016杭州云栖大会在云栖小镇召开,本届大会以"飞天·进化"为主题,内容规模比去年翻倍,从原本2天的议程增加至4天,从10月13日持续到16日,超过400场主题演讲使开发者们对阿里 ...

  5. 圆桌对话:云时代下,企业运维面临的挑战与机遇

    简介:四位企业运维大咖展开对话,讨论"云时代下,企业运维面临的挑战与机遇". 编者按:上云,已经成为了企业势不可挡的选择.云计算所拥有的"软件定义一切"的特性, ...

  6. 云时代下,移动云揭秘数据库“新解”

    数据库,在IT系统中有着举足轻重的地位.绝大多数业务系统都离不开数据库的支持,更重要的是,不少数据库中存储着核心和敏感的数据. 伴随着云计算.分布式技术的逐步落地,近十年来数据库的形态也发生了很大变化 ...

  7. 云时代下,传统和新型存储的博弈已经开始

     云时代下,传统和新型存储的博弈已经开始 ICT架构师技术交流 (微信号ICT_Architect) 分析和交流ICT行业最前沿技术,分享更多存储.服务器.数据中心.网络.软件定义和虚拟化等相关知 ...

  8. 【20保研】南京邮电大学关于举办2019 年江苏省研究生“大数据时代下的新型网络计算” 暑期学校的通知...

    点击文末的阅读原文或者公众号界面左下角的保研夏令营或者公众号回复"夏令营"是计算机/软件等专业的所有保研夏令营信息集合,会一直更新的. 主办单位:江苏省工学2类研究生教育指导委员会 ...

  9. 云时代下,医药行业管理居然这么简单

    摘要:为了持续打造核心竞争力,英克康健联合华为云,基于云数据库RDS for PostgreSQL全新打造了一个高性能.大容量.高可用的SaaS医药管理系统,助力万千药企业务迈上新台阶. 本文分享自华 ...

最新文章

  1. 解决centos下缺少sasl.h的问题(#include <sasl/sasl.h>)
  2. 宝塔执行sh文件_宝塔面板无法访问权限被锁 Linux面板
  3. Python标准库-string模块《未完待续》
  4. emacs haskell mode 在windows 下的配置
  5. div p span的用法和区别
  6. web app iphone4 iphone5 iphone6 iphone6 Plus响应式布局 适配代码
  7. 用ASP.NET MVC自己管理自己的View:ASP.NET MVC File Management 【转】
  8. 成为富豪的22条秘诀
  9. 2017年世界500强企业排行榜【完整榜单】2017财富杂志世界五百强排名
  10. COIL:结合稠密检索和词汇匹配的更高效检索模型
  11. docker基础篇--有它就够了
  12. 获取上传文件的后缀,.jpg,.png,.word,.xsl...使用方法split,lastindexOf,subtr
  13. Javascript Promise用法详解
  14. 怎么将将PDF图纸转换成CAD格式呢?
  15. 计算机插u盘抖动,u盘插入电脑闪蓝屏怎么办? 爱问知识人
  16. 请用matlab语言计算一下多自由度无阻尼自由振动的固有频率
  17. 综合门户html模版,简约时尚门户网站html静态模板 - 我爱模板网 www.5imoban.net
  18. [原创]反渐开线函数
  19. 用于喵喵111111111111111111
  20. 谷歌-BTS-ASI-官网

热门文章

  1. eclipse项目红叉,Target runtime Apache Tomcat 6.0 is not defined
  2. 子组件是表格时向父组件传值
  3. 100个程序员学习的网站
  4. Android 的源代码结构
  5. 自写sonar 插件加载到sonar 服务中的展示信息
  6. 机器学习实验中的编程技术(part1)--numpy
  7. 文献学习(part33)--Clustering by fast search and find of density peaks
  8. 文献学习(part30)--Clustering of temporal gene expression data by regularized spline regression and...
  9. 平衡二叉树的构造_LeetCode-平衡二叉树
  10. 10张逻辑思维图,迅速提升你的工作能力