一文說清ABAP RESTful編程模型

1. 背景介紹

RESTful是一種網絡應用程序的設計風格和開發方式。REST是Representational State Transfer的簡稱,中文翻譯爲“表述性狀態轉移”。單從定義上來理解REST可能並不是很好理解,對於剛剛接觸這一概念的同學,可以將REST理解爲一種設計風格,它描述了一個架構樣式的網絡系統,比如 web 應用程序。

SAP支持ABAP語言構建RESTful的應用程序,使用ABAP RESTful編程模型可以快速開發SAP Fiori應用程序,或是web服務接口。

2. 原理與架構

SAP的ABAP RESTful Programming Model提供了一套標準的架構,使用這套架構可以非常方便地開發端到端的應用程序,而且天然具有RESTful的特性。其架構圖如下:

這套架構包含3層:

    * Data Modeling & Behavior: 數據模型 & 行爲層;在這一層主要完成“CDS數據建模”,“模型行爲定義”,以及“行爲實現”三項工作。

        - 基於CDS(Core Data Services)的數據建模在此就不過多的解釋,CDS是利用HANA高性能的一個有力工具;

        - 行爲定義(Behavior Definition)簡稱BDEF,其使用的BDL(Behavior Definition Language)完成,用來支持業務模型的各種操作,例如CREATE,UPDATE,DETETE等行爲,行爲定義主要是服務於這個應用程序的各種事務操作。

        - 對於各種“行爲”的實現邏輯,是通過ABAP代碼來實現的,也即實現ABAP對應Class中的各種對應的方法,例如CREATE,UPDATE,DETETE等。

    * Business Service Provisioning: 業務服務準備層;在這一層主要完成各種“服務”的定義的和實現。

        - Service Definition:服務定義,也即是對上一步中數據模型的映射,有哪些數據和行爲是需要以“服務”的形式暴露出來。

        - Service Binding: 在服務綁定中,會完成具體“協議protocol”的實施,以及確定具有提供給consumer的服務類型。(一個Service Definition可以有一個或多個Service Binding)。

    * Service Consumption: 服務消費層;在這一層,各種暴露出來的服務以OData的形式提供給Fiori或者其他前端應用程序進行使用。

3. 建立模型&發佈服務

數據建模層的Core Data Services(CDS)的實現是基於底層的數據庫表,在CDS層可以使用並直接操作數據庫表中的原始數據;

在服務準備層,可以進一步通過CDS Project View將於前臺應用程序相關的字段暴露出來,在Projection View中,可用通過UI annotation“註解” 來控制具體字段在的前臺UI的顯示方式。

通過Service Definition,可以進一步定義哪些數據會被暴露成具有的Business Service。

通過Service Binding,可以綁定一個定義好的service到一個CS(Client-Server)架構的通信協議,例如我們所熟知的OData。同時,使用Service Binding可以完成SAP Fiori Element的預覽,在預覽中看到應用呈現的具體效果。

至此,我們已經介紹了從底層DB table建模開始到服務發佈的過程,通過以上步驟,已經可以完成一個read-only的應用程序開發(可以通過這個App完成數據展示和查詢的功能)。

4. 行爲的定義與增強

如果除了顯示和查詢外,應用程序還需要有更豐富的行爲,我們則可以通過定義“行爲 Behavior”和實施“Action & Validation”來實現。

Behavior Definition可以進一步定義對數據的創建、更新、刪除(CREATE、UPDATE、DELETE)等操作;在Behavior implementation中可以通過ABAP代碼進一步完成具體的創建、更新、刪除邏輯(在這一步中,相關的創建、更新、刪除ABAP代碼會自動生成,我們只需要簡單地定義下實現類的聲明即可,非常方便)。

除了對於數據的“增、刪、改、查”等基礎功能,在實際的業務中可能還存在對於“數據的有效性校驗”等需求,對於這個需求,可用通過增加實例的“Validation”的方式實現;對於更復雜的業務邏輯,可以進一步同時使用增加“Action”的方式來實現,例如在前臺UI點擊某一button後,執行某一操作等類似的需求。

5. 小結

可以看到,SAP提供了一套非常方便的ABAP RESTful編程框架,開發人員可以基於這套框架,輕鬆地創建SAP Fiori應用程序或是其他Web服務,並不需要了解具體的底層技術細節,這也讓開發者有了更多的時間專注於業務邏輯。這種技術趨勢,更符合企業的實際需求。

SAP的ABAP RESTful編程框架不僅適用用on-premise的場景,其同樣適用於SAP Cloud Platform上的開發。因此,對於ABAPer而言,使用ABAP RESTful在Cloud上快速構建、發佈應用也是非常方便的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章