测试
全部博文(931)
分类: 架构设计与优化
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推荐的"智慧企业的专属云原生扩展框架",在开源项目Kyma的基础上,借助SAP云平台提供的Cloud Connector和Connectivity Service,保证了企业级应用所需的标准化和安全性。
一旦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).
先看看这两种编程模型各自的特色。
(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进行了封装,写起来如同自然语言一样,可读性极佳:
采用这种模型开发的扩展应用能享受到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官网上给出的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的原创文章,请关注公众号"汪子熙":