最近Jerry寫了一系列關于SAP雲平台ABAP程式設計環境的技術文章,這些文章都是圍繞着在雲上的ABAP程式設計環境的具體知識點來分享,比如要完成一個具體的開發需求,所需要的程式設計步驟。這些文章陸續收到一些讀者朋友的留言,咨詢各種各樣的問題,我才意識到Jerry缺少一篇對SAP Cloud Platform ABAP程式設計環境總體的介紹文章,比如SAP為什麼要釋出這款雲平台上的程式設計環境,它的使用場景,和S/4HANA Cloud的關系是什麼等等。
今天就把這篇遲來的文章補上。

(1) 廣大的ABAP從業者們終于上車了,大家以前在Netweaver On-Premises裡的ABAP程式設計技能可以繼續在雲上發光發熱——盡管SAP雲平台上的ABAP程式設計環境裡出現了許多新的關鍵字,新的程式設計模型,然而ABAP畢竟還是ABAP,這些新知識對于ABAP從業者來說,學習和掌握的速度比非ABAP程式設計人員要快得多。
(2) 為基于ABAP技術棧的SAP産品的擴充,提供了一種新的開發方式。這一點稍後會展開細說。
(3) 為以前大量存在于ABAP On-Premises環境的二次開發代碼提供了遷移到雲上的可能性
(4) SAP Cloud Platform上提供的種類豐富的企業級微服務,機器學習等強大功能,如今也可以被同在SAP雲平台上的ABAP程式設計環境消費了。
如今SAP Cloud Platform上可供選擇的程式設計語言又增添了ABAP,那麼我們接到開發任務時,根據什麼樣的依據從工具庫裡挑選使用的程式設計語言呢?
SAP給出的建議就是:具體問題具體分析。
企業開發人員具備的技能,企業現有的系統和軟體資産,以及待開發的使用者需求和涉及到的業務場景,都會影響程式設計語言的選擇。一般來說,ABAP和非ABAP程式設計語言各具優勢,各有各的适用場合:Java,JavaScript和Python等語言的開發生态圈非常繁榮,Github各種開源的元件,工具庫,可以說凡是你能想到的點子,生态圈幾乎都早已有人做出來了,是以選擇這些程式設計語言開發,我們可以避免重複造很多輪子;而SAP雲平台上的ABAP環境,借助CDS view,Restful ABAP Programming模型等ABAP語言提供的原生特性,在擴充基于ABAP技術棧的SAP産品時優勢顯得特别突出。
SAP雲平台ABAP程式設計環境最典型的兩種使用場景
以Side-by-side方式對S/4HANA Cloud進行擴充。
首先需要解釋何謂side-by-side Extensibility.
傳統的SAP産品的二次開發方式是,ABAP開發者們通過SAP GUI登入到ABAP On-Premises系統,直接在被擴充的系統上通過Netweaver提供的各種增強技術進行二次開發。
S/4HANA Cloud,SAP Marketing Cloud,SAP Cloud for Customer等背景基于Netweaver ABAP的雲端解決方案,還提供了基于浏覽器的面向Key User的擴充工具,使用者在浏覽器裡通過簡單的向導步驟,也能實作對所在的雲産品進行增強的需求。
這種增強方式,使用的開發工具由被增強應用本身提供,生成的資源和被增強的SAP産品都位于同一伺服器上,是以稱為In-App增強方式。這種方式簡單易用,需要的技術門檻相對較低。
與此相對應的則是SAP Cloud Platform ABAP程式設計環境提供的side-by-side增強方式。這種增強方式通常的步驟是首先在本地開發環境完成開發,然後再部署到SAP雲平台,SAP Kyma等平台上,是以二次開發内容最終部署和運作的環境,和被增強的SAP産品從實體上看是松耦合的,不在同一伺服器上。
上圖即SAP S/4HANA Cloud通過side-by-side方式進行擴充的示意圖。位于SAP雲平台上的ABAP增強通過雲平台提供的Connectivity服務(Jerry之前的文章 SAP雲平台上的ABAP程式設計環境裡如何消費第三方服務 介紹過,可以了解成ABAP On-Premises裡的Destination), 消費SAP S/4HANA Cloud的OData服務,實作對後者系統資料的增删改查和Action操作。
Side-by-side增強方式使得作為數字化核心的SAP S/4HANA的應用代碼保持Stable & Clean,同時又能讓二次開發工作者緊跟技術發展的趨勢,使用業界最新最流行的技術進行SAP産品增強。
至此,SAP Cloud Platform ABAP程式設計環境和S/4HANA Cloud的差別和關系,想必大家應該能了解了吧。前者是增強/內建工具,後者是被增強的系統。
這種增強方式非常符合咨詢公司Gartner的大佬,John MacDorman提出的IT雙模型的傳遞模式,即采取兩套獨立管理卻彼此互補的模式,一套傳遞模式采用傳統成熟的軟體開發方式,需求變動頻率相對較低,強調傳遞的健壯和穩定性。另一套則兼走偏鋒,遵循“天下武功,唯快不破”的理想,強調靈活,創新,探索,速度,高頻次的疊代。
Jerry當時看了Google上對Gartner提出的IT雙模型的介紹文字,第一反應就是:這不就是在描述SAP智慧企業概念裡的“數字化核心”(SAP S/4HANA)和創新平台(SAP Cloud Platform)的關系嗎?
Side-by-side這種增強内容與被增強的系統分開部署的靈活方式,使得從理論上來說,如果增強開發的設計得足夠通用,從商業模式上說,其就具備了可以單獨拿出來售賣的可能性。
我們通過下面的連結通路SAP應用中心:
https://www.sapappcenter.com/home依次勾選左邊的SAP Cloud Platform Services和ABAP,即可列出所有使用SAP Cloud Platform ABAP程式設計環境開發的partner解決方案。
希望這篇文章能幫助大家了解SAP雲平台ABAP程式設計環境的誕生原因和使用場景,感謝閱讀。
本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。