SAP Cloud Application Programming 编程模型(CAP)的设计准则
在SAP的云應(yīng)用程序編程模型(CAP)是一個(gè)框架,語言,庫和工具,為構(gòu)建企業(yè)級(jí)的服務(wù)和應(yīng)用。它引導(dǎo)開發(fā)人員沿著經(jīng)過驗(yàn)證的最佳實(shí)踐和大量現(xiàn)成的解決方案來應(yīng)對(duì)重復(fù)性任務(wù)的“黃金之路” 。
基于 CAP 的項(xiàng)目受益于對(duì)業(yè)務(wù)領(lǐng)域的主要關(guān)注。我們沒有深入研究過于技術(shù)性的話題,而是專注于在快速變化的云技術(shù)世界中加速開發(fā)和保護(hù)投資。
CAP 框架融合了經(jīng)過驗(yàn)證和廣泛采用的開源和 SAP 技術(shù),如下圖所示。
在開源技術(shù)之上,CAP主要增加了:
-
核心數(shù)據(jù)服務(wù) (CDS)作為我們用于域模型和服務(wù)定義的通用建模語言。
-
用于 Node.js 和 Java 的服務(wù) SDK 和運(yùn)行時(shí),提供用于實(shí)現(xiàn)和使用服務(wù)的庫以及自動(dòng)為許多請(qǐng)求提供服務(wù)的通用提供程序?qū)崿F(xiàn)。
在當(dāng)今的數(shù)字化轉(zhuǎn)型時(shí)代,跟上快速變化的云技術(shù)和平臺(tái)世界是一項(xiàng)重大挑戰(zhàn)。CAP 通過更高級(jí)別的概念和 API避免了這種鎖定,它們?cè)诤艽蟪潭壬铣橄罅说图?jí)平臺(tái)功能和協(xié)議。這尤其適用于以下情況:
- 特定于平臺(tái)的部署方法和技術(shù)
- 特定于平臺(tái)的身份提供者和身份驗(yàn)證策略
- SaaS 解決方案和租戶隔離中租戶的啟用/停用
- 同步協(xié)議,如REST、OData或GraphQL
- 異步通道和代理,如SAP Event Mesh、MQ或Kafka
- 不同的數(shù)據(jù)庫技術(shù),包括SQL和NoSQL
這些抽象使我們能夠快速適應(yīng)新興技術(shù)或平臺(tái),而不會(huì)影響應(yīng)用程序代碼,從而保護(hù)您的投資。
CAP is Open and Opinionated → Zero Lock-in
CAP 始終遵循如下的設(shè)計(jì)準(zhǔn)則:
(1) 從低級(jí)平臺(tái)功能和協(xié)議中抽象出來并避免鎖定到低級(jí)平臺(tái)功能和協(xié)議的高級(jí)概念和 API.
但是,所有抽象都遵循玻璃盒模式,允許在需要時(shí)不受限制地訪問較低級(jí)別的事物。
(2) 最佳實(shí)踐為許多重復(fù)性任務(wù)提供了開箱即用的通用解決方案,但是你總是可以在自定義處理程序中以你的方式處理事情,例如決定是采用CQRS還是事件源…而 CAP 只是試圖讓乏味的任務(wù)擺脫你的方式。
(3) 對(duì) SAP Fiori和SAP HANA 的開箱即用支持,同時(shí)還可以通過提供新的數(shù)據(jù)庫集成來選擇其他 UI 技術(shù),例如Vue.js或數(shù)據(jù)庫。
(4) SAP Business Application Studio和Visual Studio Code或Eclipse 中提供的專用工具支持。但是CAP 不依賴于這些工具。CAP 中的所有內(nèi)容都可以使用@sap/cds-dkCLI 和您選擇的任何編輯器或 IDE 來完成。
專注領(lǐng)域,由CDS提供支持
CAP主要關(guān)注領(lǐng)域,通過捕捉領(lǐng)域知識(shí)和意圖而不是命令式編碼——也就是說,是什么,而不是如何——從而促進(jìn):
- 開發(fā)人員和領(lǐng)域?qū)<以陬I(lǐng)域建模方面的密切合作。
- 最佳實(shí)踐和重復(fù)性任務(wù)的開箱即用實(shí)施。
- 與平臺(tái)無關(guān)的方法可避免鎖定,從而保護(hù)投資。
下圖說明了 CDS 模型的普遍使用,它推動(dòng)了通用運(yùn)行時(shí),如 CAP 服務(wù)運(yùn)行時(shí)或數(shù)據(jù)庫。
核心數(shù)據(jù)服務(wù) (CDS)
CDS是我們的通用建模語言,用于以概念、簡潔和易于理解的方式捕獲問題域的靜態(tài)和行為方面,因此是 CAP 的支柱。
下面是 CDS 模型的一個(gè)例子:
-
領(lǐng)域模型將問題領(lǐng)域的靜態(tài)方面捕獲為眾所周知的實(shí)體關(guān)系模型。
-
association 捕獲關(guān)系。組合將其擴(kuò)展為輕松建模文檔結(jié)構(gòu)。
-
annotation 允許使用額外的元數(shù)據(jù)來豐富模型,例如UI、驗(yàn)證或授權(quán)。
CDS Aspects & Mixins
aspect 允許在相同或單獨(dú)的模塊、包或項(xiàng)目中靈活地?cái)U(kuò)展模型;這些擴(kuò)展可以在設(shè)計(jì)時(shí)或在運(yùn)行時(shí)動(dòng)態(tài)完成。
這極大地促進(jìn)了垂直化和定制化場景的適應(yīng)性,尤其是在 SaaS 解決方案中。
此外,這促進(jìn)了關(guān)注點(diǎn)分離,例如通過排除技術(shù)關(guān)注點(diǎn)來保持領(lǐng)域模型的清潔和可理解性。
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的SAP Cloud Application Programming 编程模型(CAP)的设计准则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不用拿手机了!高德地图PC体验版上线 大
- 下一篇: mySPA set delivery m