學而不思則罔 - SAP雲平臺ABAP程式設計環境的由來和適用場景
最近Jerry寫了一系列關於SAP雲平臺ABAP程式設計環境的技術文章,這些文章都是圍繞著在雲上的ABAP程式設計環境的具體知識點來分享,比如要完成一個具體的開發需求,所需要的程式設計步驟。這些文章陸續收到一些讀者朋友的留言,諮詢各種各樣的問題,我才意識到Jerry缺少一篇對SAP Cloud Platform ABAP程式設計環境總體的介紹文章,比如SAP為什麼要釋出這款雲平臺上的程式設計環境,它的使用場景,和S/4HANA Cloud的關係是什麼等等。
今天就把這篇遲來的文章補上。
SAP Cloud Platform釋出後很長一段時間,在SAP各大技術社群裡,能感覺到ABAP從業者們內心一絲隱隱的失落:儘管SAP和其他IT公司一道,大步邁開了向雲端轉型的步伐,在SAP雲平臺上透過BYOL(Bring Your Own Language)的架構,實現了對業界流行程式語言的支援,這使得擁有Java,nodejs,PHP,Python,Ruby,Go等程式設計技能的開發人員們,也能加入SAP生態圈這個大家庭。
然而,這些程式語言的集合裡,竟然沒有SAP的主打語言ABAP?It's embarrassing...
不過ABAP從業者們“被雲時代拋棄”的這份尷尬,隨著SAP雲平臺 ABAP程式設計環境的釋出一掃而空。截至您看到Jerry這篇文章為止,SAP Cloud Platform程式設計環境和執行時,已經出現了ABAP的身影:
ABAP加入SAP Cloud Platform程式設計環境的大家庭,好處是顯而易見的:
(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:///home
依次勾選左邊的SAP Cloud Platform Services和ABAP,即可列出所有使用SAP Cloud Platform ABAP程式設計環境開發的partner解決方案。
希望這篇文章能幫助大家理解SAP雲平臺ABAP程式設計環境的誕生原因和使用場景,感謝閱讀。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2659437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP 雲平臺 ABAP 程式設計環境的前世今生程式設計
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- 一步步用ABAP Development Tools連線SAP雲平臺上的ABAP程式設計環境dev程式設計
- 學而不思則罔,思而不學則殆!——圖靈專訪《番茄工作法圖解》作者Staffan十日談之三圖靈圖解
- SAP ABAP 平臺新的程式設計模型程式設計模型
- SAP 雲平臺上的 ABAP 程式設計環境裡如何消費第三方服務程式設計
- 現在大家可以免費使用SAP雲平臺ABAP環境的試用版了
- 如何在 SAP BTP 平臺 ABAP 程式設計環境裡消費基於 SOAP 的 Web Service程式設計Web
- 在SAP雲平臺的CloudFoundry環境下消費ABAP On-Premise OData服務CloudREM
- 如何在Java程式碼中使用SAP雲平臺CloudFoundry環境的環境變數JavaCloud變數
- iPaaS丨API低程式碼平臺適用的業務場景API
- SAP雲平臺執行環境Cloud Foundry和Neo的區別Cloud
- Spark適用於哪些場景?不適用於哪些場景?Spark
- 如何將SAP Multi Target應用部署到SAP雲平臺的Cloud Foundry環境去Cloud
- 設計模式適用場景整理設計模式
- 將Java應用部署到SAP雲平臺neo環境的兩種方式Java
- 如何在SAP Cloud Platform ABAP程式設計環境裡建立一個employeeCloudPlatform程式設計
- SAP雲平臺CloudFoundry環境hdb build成功的日誌分析CloudUI
- 如何在 SAP BTP ABAP 程式設計環境裡直接呼叫 ABAP On-Premises 系統的 RFC 函式程式設計REM函式
- 雲平臺雲環境之要素
- 區塊鏈不適用的若干場景區塊鏈
- 索引設計(組合索引適用場景)索引
- SPM適用的場景和示例
- ABAP Netweaver, Hybris Commerce和SAP 雲平臺的登入認證
- 在 SAP BTP 平臺 Neo 環境裡使用 SAP Cloud SDK 建立應用Cloud
- MongoDB的優勢和適用場景MongoDB
- SAP雲平臺CloudFoundry環境裡route 超過quota的錯誤處理Cloud
- 如何上傳HTML5應用到SAP雲平臺的CloudFoundry環境下HTMLCloud
- 企業雲盤適用哪些應用場景
- 如何在SAP雲平臺的Cloud Foundry環境下新增新的Service(服務)Cloud
- Streaming特性和適用場景
- sap abap螢幕程式設計中使用的table 和call子程式的程式設計
- 如何將SAP雲平臺Neo環境的Subaccount註冊到IAS服務裡
- 如何上傳HTML5應用到SAP雲平臺的Cloud Foundry環境下HTMLCloud
- SAP 電商雲 Spartacus UI 裡的 InjectionToken 應用場景UI
- Netweaver和SAP雲平臺的quota管理
- 面向多場景而設計的 Erda Pipeline
- SAP官方釋出的ABAP程式設計規範程式設計