本文是ABAP Platform系列的第二篇,作者从传统ABAP编程开始,一路介绍到最新的RAP和CAP两种编程模式。
——大话君
作者:Juan Tena
翻译:大话君
这是ABAP平台(ABAP Platform)系列文章的第二篇。
在上一篇文章里,我们说了从SAP Netweaver平台到ABAP Platform的演进。现在我们来聊聊另一个话题,也就是基于ABAP Platform以及SAP云平台ABAP环境(SAP Cloud Platform, ABAP Environment)上的新的编程模型。
ABAP编程语言的演进
在过去的40多年里,多数的SAP功能都是用ABAP开发的。ABAP语言是SAP的旗舰编程语言,也是千锤百炼的企业软件编程平台。
当然,SAP也在不断对ABAP语言进行着更新,我们能区分出三个主要的阶段:
- 传统ABAP编程 (截至Netweaver ABAP 7.50)
- 针对Fiori的ABAP编程模型 (从Netweaver ABAP 7.50开始)
- RESTful ABAP编程模型 (从ABAP platform 1909开始)
ABAP编程模型的演进
有件事并不是秘密,那就是很多SAP客户依旧在基于SAP Netweaver 7.40甚至更古早的版本,使用传统的ABAP编程模式,来运行和开发SAP应用。
随着ABAP 7.4版本的推出,SAP开始针对SAP HANA内存数据库进行ABAP平台的优化,但那时候很多应用依旧是基于传统的Dynpro, Web-Dynpro,Floorplan Manager和WebClient UI框架。
针对Fiori的ABAP编程模型是从SAP Netweaver 7.50开始面世的,它提供了一种标准化的方式来高效开发基于SAP HANA和Web的应用。
为什么需要一个编程模型?因为它提供了一种标准化的、有良好文档支持的、模型驱动的编程模式,它能够让你快速完成开发任务。当然,你也可以选择不使用编程模型。然而,这可能导致在不同的开发项目里,采用了五花八门的开发方式,例如没有统一的集成测试方法,也没有端到端的追踪和支持工具,独立的UI层开发也无法保证,等等。
再说一句,针对Fiori的ABAP编程模型都是基于很成熟的技术,包括CDS (Core Data Service), BOPF (Business Object Processing Framework)和SAP Gateway。
针对SAP Fiori的ABAP编程模型
随着SAP Netweaver 7.51的发布,针对SAP Fiori的ABAP编程模型也得到了进一步的提升,新特性被加入,包括支持无状态应用(Stateless application),它规避了传统C/S模式对于服务器的依赖,应用程序能很容易地从一个服务器迁移到另一个服务器,应用程序的一些环境参数并不存储于服务器层面。
ABAP Platform上的一个重要变化就是RESTful ABAP编程模型(RESTful ABAP Programming Model – RAP),它从SAP云平台1808开始发布,现在你也可以在SAP S/4HANA OP 1909版本对应的ABAP Platform上使用。
RESTful ABAP编程模型可以被认为SAP Fiori的ABAP编程模型的进阶版。它包括了ABAP语言的基本扩展、开发工具和框架,它提供端到端的开发能力,从底层支持针对HANA优化的Fiori应用和Web服务的开发。
ABAP RESTful编程模型-核心支柱
它重点着眼于Query的使用(针对只需要读取后台数据的应用),以及基于现有后台程序逻辑的业务应用开发。
ABAP RESTful编程模型-构件
通过这一全新的RESTful ABAP编程模型,你可以使用最新的技术来扩展现有SAP ABAP应用,或者开发新应用。
但有时候,客户会希望使用不同的编程语言、工具以及框架,这就是为什么SAP也提供了一种新的编程模式——CAP (SAP云应用编程模式 SAP Cloud Application Programming Model)。CAP既开放,又有自己的偏好,它是编程语言框架,是程序库,也是打造企业级服务和云原生应用的工具。
跟RAP一样,CAP也是基于CDS的,但它提供了对Java和Node.js的支持,它也能更灵活的继承其他框架,程序库和工具。
觉得一头雾水?我们来总结一下。SAP提供了两种基于REST的应用程序开发模型:Confused? Let’s try to summarize the current solutions provided by SAP to develop/extend SAP applications. SAP offers two REST-based application programming models:
ABAP RESTful编程模型 (RAP)
- 它是针对Fiori的ABAP编程模型的进阶
- 从SAP云平台, ABAP环境1808版本开始提供
- 从S/4HANA OP 1909版本以后开始提供(目前提供有限的功能)
SAP云应用编程模式 (CAP)
- 基于CDS但是支持Java和Node.js
有趣的是,CAP和RAP其实从概念上来说非常相似,它们都基于CDS,不同之处就在于CAP支持的是Java和Node.js,而不是ABAP。也许需要过几年,我们才能知道哪种模式才是整个SAP生态圈,特别是程序员们的真爱。
版权归原作者所有,如有侵权请联系删除。