在SAP的云应用程序编程模型(CAP)是一个框架,语言,库和工具,为构建企业级的服务和利用。它疏导开发人员沿着通过验证的最佳实际和大量现成的解决方案来应答重复性工作的“黄金之路” 。

基于 CAP 的我的项目受害于对业务畛域的次要关注。咱们没有深入研究过于技术性的话题,而是专一于在疾速变动的云技术世界中减速开发和爱护投资。

CAP 框架交融了通过验证和宽泛采纳的开源和 SAP 技术,如下图所示。

在开源技术之上,CAP次要减少了:

  • 外围数据服务 (CDS)作为咱们用于域模型和服务定义的通用建模语言。
  • 用于 Node.js 和 Java 的服务 SDK 和运行时,提供用于实现和应用服务的库以及主动为许多申请提供服务的通用提供程序实现。

在当今的数字化转型时代,跟上疾速变动的云技术和平台世界是一项重大挑战。CAP 通过更高级别的概念和 API防止了这种锁定,它们在很大水平上形象了低级平台性能和协定。这尤其实用于以下状况:

  • 特定于平台的部署办法和技术
  • 特定于平台的身份提供者和身份验证策略
  • SaaS 解决方案和租户隔离中租户的启用/停用
  • 同步协定,如REST、OData或GraphQL
  • 异步通道和代理,如SAP Event Mesh、MQ或Kafka
  • 不同的数据库技术,包含SQL和NoSQL

这些形象使咱们可能疾速适应新兴技术或平台,而不会影响利用程序代码,从而爱护您的投资。

CAP is Open and Opinionated → Zero Lock-in

CAP 始终遵循如下的设计准则:

(1) 从低级平台性能和协定中形象进去并防止锁定到低级平台性能和协定的高级概念和 API.

然而,所有形象都遵循玻璃盒模式,容许在须要时不受限制地拜访较低级别的事物。

(2) 最佳实际为许多重复性工作提供了开箱即用的通用解决方案,然而你总是能够在自定义处理程序中以你的形式解决事件,例如决定是采纳CQRS还是事件源......而 CAP 只是试图让乏味的工作解脱你的形式。

(3) 对 SAP Fiori和SAP HANA 的开箱即用反对,同时还能够通过提供新的数据库集成来抉择其余 UI 技术,例如Vue.js或数据库。

(4) SAP Business Application Studio和Visual Studio Code或Eclipse 中提供的专用工具反对。然而CAP 不依赖于这些工具。CAP 中的所有内容都能够应用@sap/cds-dkCLI 和您抉择的任何编辑器或 IDE 来实现。

专一畛域,由CDS提供反对

CAP次要关注畛域,通过捕获畛域常识和用意而不是命令式编码——也就是说,是什么,而不是如何——从而促成:

  • 开发人员和领域专家在领域建模方面的密切合作。
  • 最佳实际和重复性工作的开箱即用施行。
  • 与平台无关的办法可防止锁定,从而爱护投资。

下图阐明了 CDS 模型的广泛应用,它推动了通用运行时,如 CAP 服务运行时或数据库。

外围数据服务 (CDS)

CDS是咱们的通用建模语言,用于以概念、简洁和易于了解的形式捕捉问题域的动态和行为方面,因而是 CAP 的支柱。

上面是 CDS 模型的一个例子:

  • 畛域模型将问题畛域的动态方面捕捉为家喻户晓的实体关系模型。
  • association 捕捉关系。组合将其扩大为轻松建模文档构造。
  • annotation 容许应用额定的元数据来丰盛模型,例如UI、验证或受权。

CDS Aspects & Mixins

aspect 容许在雷同或独自的模块、包或我的项目中灵便地扩大模型;这些扩大能够在设计时或在运行时动静实现。

这极大地促成了垂直化和定制化场景的适应性,尤其是在 SaaS 解决方案中。

此外,这促成了关注点拆散,例如通过排除技术关注点来放弃畛域模型的清洁和可了解性。

更多Jerry的原创文章,尽在:"汪子熙":