解释 CAP 中的可扩展性与连接性

学习目标

  • 解释 CAP 中的可扩展性与连接性能力

CAP 中的可扩展性与连接性能力

使用场景

在 CAP 中,可扩展性与连接性是基础概念,它们使开发者能够构建灵活且互联的应用程序,从而适应不断变化的业务需求,并与各种数据源和服务无缝集成。

CAP 中的可扩展性

CAP 中的可扩展性是指定制和扩展应用程序的数据模型、业务逻辑和用户界面的能力,以满足特定的业务需求。CAP 提供了多种实现可扩展性的机制:

数据模型可扩展性

开发者可以使用 Core Data Services(CDS)定义数据模型。CAP 允许你向数据模型中添加自定义实体、字段和关系,以满足特定的业务需求。你可以在不改变核心结构的情况下扩展现有数据模型,从而更轻松地适应不断变化的数据需求。

行为可扩展性

CAP 提供服务处理器和事件处理器,允许你定义自定义业务逻辑。你可以实现自定义代码,在各种应用程序事件期间执行,例如创建、读取、更新和删除(CRUD)操作、校验以及数据转换。

UI 可扩展性

在使用 CAP 构建用户界面(UI)时,你可以定制和扩展 SAP Fiori 应用程序。这包括添加新的 UI 组件、修改现有视图,或创建自定义页面,以根据你组织的需求定制用户体验。

服务可扩展性

CAP 允许你创建自定义 OData 服务,向外部使用方公开额外的功能或数据。这些服务可以与其他 SAP 应用程序或外部系统集成,促进数据交换和互操作性。

本地化

CAP 支持本地化功能,使你能够使应用程序适应不同的语言和地区,这对于全球部署至关重要。

CAP 中的连接性

CAP 中的连接性是指与各种数据源、服务以及 SAP 内部或外部系统无缝连接和集成的能力。CAP 提供了多种实现连接性的机制:

数据库连接性

CAP 对数据库交互进行了抽象,使你能够使用 Core Data Services(CDS)处理数据模型,而无需关心底层数据库系统。CAP 支持多种数据库系统,包括 SAP HANA、SQLite、H2(仅 Java)、PostgreSQL,为你选择适合应用程序的数据库提供了灵活性。

服务连接性

CAP 应用程序可以使用基于 HTTP 的调用、REST、GraphQL 或其他协议与外部服务和 API 交互。这实现了与第三方系统的集成以及对外部数据的使用。在本单元中,我们将深入探讨与外部服务的集成。

基于事件的连接性

CAP 支持事件驱动的架构,允许你的应用程序发出和监听事件。这促进了实时数据同步,以及应用程序不同部分之间或与外部系统之间的通信。

消息队列和事件代理

CAP 可以与消息队列系统和事件代理(如 SAP Enterprise Messaging 或第三方解决方案)集成。这实现了异步通信和事件驱动的处理,这对于可扩展且响应迅速的应用程序至关重要。

SAP 集成

CAP 可以轻松地与其他 SAP 解决方案集成,例如 SAP Integration Suite(Cloud Integration、API Management)。这允许你创建跨越多个 SAP 应用程序和服务的端到端业务流程。

安全性与 OAuth 集成

CAP 内置支持身份验证和授权,包括 OAuth 2.0。这使你更轻松地保护应用程序,并将其与身份提供者或 SAP 的身份验证服务集成。

向你的 CAP 应用程序添加对外部服务的使用

SAP Business Accelerator Hub

SAP Business Accelerator Hub 是 SAP 提供的一个中央存储库和平台,它提供了 SAP 和非 SAP API 的全面目录,包括文档、规范以及资源,以帮助开发者有效地发现、探索和使用 API。

在本单元的练习中,对于我们的风险管理应用程序,我们希望通过调用外部数据源(SAP S/4HANA Cloud 系统)来添加业务伙伴信息,以便在读取风险和缓解信息的同时读取业务伙伴。该应用程序通过对 SAP S/4HANA Cloud 进行远程 API 调用,帮助降低与业务伙伴相关的风险。要获取业务伙伴的数据,你必须将该服务连接到 SAP Business Accelerator Hub 的沙盒环境(在练习中深入探讨)。

该图展示了练习中的数据流。

要与远程服务通信,CAP 必须知道它们的定义。这些定义由服务提供者提供。由于它们并非在你的应用程序内定义,而是从外部导入的,因此在 CAP 中它们被称为外部服务 API。目前支持 OData V2 和 V4 的 EDMX 文件。

在风险管理项目中使用 Business Partner 外部 API 的步骤如下:

  1. 将你的应用与 SAP API Business Hub 的 Business Partner API 沙盒环境连接。为此,你可以在 Node.js 中配置一个应用程序定义的目标(Destination),只需在 package.json 文件中添加此配置即可。

"cds": {
"requires": {
"API_BUSINESS_PARTNER": {
"kind": "odata",
"model": "srv/external/API_BUSINESS_PARTNER",
"credentials": {
"url": "https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap/API_BUSINESS_PARTNER/"
}
}
}
}
  1. 在你的 UI 应用程序中使用该外部服务。

  2. 将 Business Partner 字段添加到 UI。

为了管理与外部系统或服务的连接性,你可以选择使用目标(Destination):SAP BTP 目标(Destination)或应用程序定义的目标(Destination)(前一个示例)。它们提供了一种定义和配置与这些外部系统连接详细信息的方式,通过抽象底层连接信息,使处理集成的各个方面(如身份验证、端点 URL 等)变得更加容易。

在使用 SAP BTP 目标(Destination)时,应用程序必须部署到 BTP。这是因为我们需要 SAP 的 Destination Service 和 Connectivity Service 的实例(对于本地外部服务),而这些实例只能在 BTP 上创建并绑定到应用程序。Connectivity 服务提供了一个连接代理,你可以使用它访问本地资源。使用 Destination 服务,你可以检索和存储目标资源(目标)的技术信息,你必须据此将应用程序连接到远程服务或系统。你可以根据具体场景的需求,同时或分别使用这两个服务。

如果外部系统位于本地,则必须配置云连接器才能使用本地资源。

小结

你现在已经对使用 CAP 框架实现可扩展性和连接性的可能性有了高层面的理解。

延伸阅读

有关更多信息,请参阅以下内容:

  • The CAP Cookbook .

  • Consuming Services .

  • Using Destinations .

  • Cloud Connector .

  • BTP Connectivity .