Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1427789
  • 博文数量: 931
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 10198
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-08 12:28
个人简介

测试

文章分类

全部博文(931)

文章存档

2020年(134)

2019年(792)

2018年(5)

我的朋友

分类: 架构设计与优化

2019-10-26 16:06:05

刚刚过去的在巴塞罗那举行的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二次开发人员可以订阅这些事件,编写对应的事件响应函数。

一些具体的例子:

下图是对应的编码实现订阅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的原创文章,请关注公众号"汪子熙":

阅读(508) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~