介绍 ABAP 云的不同用例

学习目标

  • 描述 ABAP Cloud 的不同用例。

使用 ABAP 云开发模型的开发的不同用例

ABAP Cloud - 事务 (OLTP) 用例:ABAP RESTful 应用程序编程模型

ABAP Cloud 事务用例通过使用 ABAP RESTful 应用程序编程模型实施。

我们已经了解云原生如何需要 ABAP 编程语言(ABAP 语言版本"面向云开发的 ABAP"或"面向关键用户的 ABAP",而不是"ABAP 经典")和主要 IDE(面向 Eclipse 的 ABAP 开发工具)的演变。因此,ABAP 使用的主要编程模型也需要不断发展,这不足为奇。传统 ABAP 技术(例如 SAP GUI 或 Web Dynpro)与云原生需求不兼容。

如上一课所述,REST 已成为开发人员目前使用的最流行的 API 体系结构模型之一,而 REST 最常用的实施之一是开放数据协议 (OData)。OData 通常称为"Web 的 ODBC",从根本上设计 OData,以优化业务程序需要执行的数据处理和数据操作的类型。虽然技术上不是必需的,但通常通过 OData 操作的业务数据驻留在数据库中。由于 SAP HANA 数据库是 SAP S/4HANA Cloud 的基础数据库,因此 REST(常规)和 OData(尤其是 OData)是发展的 ABAP 编程模型的自然方向,该编程模型会考虑云原生需求。这种演变的结果是 ABAP RESTful 应用程序编程模型。

但首先有一个小坑站。

第一代符合 REST 的 OData 服务基于 ABAP RESTful 应用程序编程模型(面向 SAP Fiori 的 ABAP 编程模型)的前体编程模型。虽然在创建该模式时这是创建服务的最佳做法,但也有一些挑战。不支持使用具有 brownfield 场景的 SAP Fiori 的 ABAP 编程模型进行开发,并且工具支持包含多个事务代码,而不是统一的工具环境。此外,编程模型的某些方面使用框架实施,使 ABAP 代码透明度低于 ABAP 开发人员使用的透明度。

虽然这些挑战是可以管理的,但下一个演变步骤是通过将 Eclipse 中的整个开发流程与面向 Eclipse 的 ABAP 开发工具进行合并,以及简化开发部件并将其合并到一个简单直观的列表中。ABAP RESTful 应用程序编程模型是 SAP Fiori 的 ABAP 编程模型的后继,是 ABAP Cloud 中用于事务用例的编程模型。

ABAP RESTful 应用程序编程模型允许从少量简单直观的部件创建符合 REST 的 OData 服务。这些服务可用作在用户层运行的 SAP Fiori 应用的服务层,也可以用作独立的 Web API(可由任何类型的客户端(无论是否基于 UI)使用)。使用 ABAP RESTful 应用程序编程模型构建的业务对象可用作本地 API(稍后将讨论)。

在上课中,我们提到了一个微服务设计,其中将应用程序划分为单独的用户层、服务层和数据层是云原生开发的重要元素。ABAP RESTful 应用程序编程模型从根本上设计为与微服务概念一致。

ABAP RESTful 应用程序编程模型

ABAP RESTful 应用程序编程模型部件围绕以下四层进行组织:

  • 数据访问

  • 域模型和实施

  • 业务服务公开

  • 业务服务使用

我们来了解一下不同的层。

  • 数据访问 ABAP RESTful 应用程序编程模型的基础层是数据库表,用于保存事务和分析所需的业务数据。当然,该数据库是 SAP HANA。通过使用 SAP HANA, ABAP RESTful 应用程序编程模型会自动受益于内存体系结构、列式存储、实时数据和机器学习技术以及其他技术。

  • 域模型和实施 域模型和实施包括业务场景中涉及的不同概念的表示(例如,客户和订单)、其关系(例如,客户和订单之间的父子关系)以及最终这些实体和关系的实施。

  • 域特定编程 ABAP 语言和 ABAP 核心数据服务 (CDS) 是用于在 ABAP RESTful 应用程序编程模型的上下文中提供只读查询和事务业务对象的域特定实施的主要语言。 ABAP 语言版本"面向云开发的 ABAP"提供在 ABAP Cloud 的上下文中使用的云优化语言结构以实施业务逻辑。ABAP 语言通过实体操作语言 (EML) 增强,以本地控制使用 ABAP RESTful 应用程序编程模型构建的业务对象的事务行为。 CDS 提供了一个强大的数据建模基础架构,用于在 ABAP 应用程序服务器上定义语义丰富的数据模型。使用以下内容定义各种 CDS 部件:

  • CDS 类型定义语言 (TDL)

  • CDS 数据定义语言 (DDL)

  • CDS 服务定义语言 (SDL)

  • CDS 数据控制语言 (DCL)

  • CDS 注释

  • 域特定的数据建模 域特定模型根据编程模型方面确定数据模型的设计时部件。您可以使用 ABAP RESTful 应用程序编程模型开发只读查询和事务业务对象。每个真实实体都由一个业务对象 (BO) 表示,该业务对象由一个或多个节点之间具有父子关系的节点组成。业务对象始终以根节点开头。 以刚才提到的客户和订单为例,对于每个客户和订单,ABAP RESTful 应用程序编程模型中存在两种可能性。这些场景是只读场景(即查询功能)和事务场景(即创建、更新和删除功能)。使用 ABAP CDS 对查询进行建模。事务功能通过 CDS 行为定义以及 ABAP 语言以及 EML 进行定义。因此,在概念级别,业务对象由使用 ABAP CDS 实体定义的数据模型以及通过 CDS 行为定义定义并使用 ABAP 语言和 EML 实施的关联事务功能组成。每个业务对象节点的数据模型由可记录表或其他 CDS 实体之上定义的一个 CDS 视图实体表示。因此,在客户/订单场景中,将出现两个主要 CDS 视图实体,分别对应一个实体。

  • 业务服务公开 业务服务是 ABAP RESTful 应用程序编程模型的 REST 功能的成果。它包括以下内容:

  • 公开查询和事务功能的服务定义,可通过 REST 访问。

  • 将服务定义与 REST 协议相关联的服务绑定,启用服务以供使用。 根据首选的使用类型,不同服务绑定可以使用不同的协议多次发布服务定义。

  • 业务服务使用 可以使用各种选项进行消耗。如前所述,基于 OData 的服务绑定可以启用 SAP Fiori 应用开发。OData 也可用于应用(或系统到系统)集成。在这种情况下,将忽略域建模和实施层中的任何 UI 元数据。在不需要事件使用者的直接响应的用例中,事件驱动体系结构启用事件提供者和事件使用者之间的异步通信。使用 SAP Event Mesh(SAP BTP 中的服务),ABAP RESTful 应用程序编程模型 BO 可以充当事件使用者或事件提供者。

ABAP Cloud – 分析 (OLAP) 用例

ABAP Cloud 分析用例通过使用基于 CDS 的分析提供者实施,并通过 InA 或 OData 公开,以使用 SAP Analytics Cloud 或 SAP Fiori UI 进行访问。

除事务用例外,ABAP Cloud 对于分析场景也构成挑战。分析用例涉及分析和评估多维数据模型,以制定实时的数据驱动业务决策。分析编程模型方面侧重于创建数据模型,以在嵌入式或跨系统设置中分析业务数据,并在仪表盘中或作为应用的一部分可视化数据。

可以使用 ABAP Cloud 对这些分析用例进行端到端开发。分析提供者,例如可重复使用的星形模式或雪花模式(基于多维数据集、维度和层次结构)可以设计为构建多维域特定的模型。域特定逻辑通过 CDS 实施。可以使用信息访问 (InA) 协议服务为不同的分析客户端(例如 SAP Analytics Cloud 或 SAP Analysis for Office)公开 CDS 分析提供者。此外,还可以通过 SAP Fiori UI 进行访问的 OData 公开。

ABAP Cloud – 集成用例

ABAP 云集成用例通过 OData、业务事件、HTTP 服务或 SOAP 等选项实施。

可持续发展的智慧企业

最后,我们来看集成用例。在了解此场景中,它有助于定义术语智能,可持续企业。可持续的智慧企业是指始终将先进技术和卓越实践应用于敏捷、集成的业务流程中。SAP 提供集成数据和流程、构建灵活价值链、利用行业最佳实践进行创新、了解客户、合作伙伴和员工情绪并据此采取行动以及管理环境影响的解决方案,从而支持客户成为智慧企业。通过将 SAP S/4HANA Cloud 和 SAP Ariba 等 SAP 产品的综合产品组合与 SAP Business Technology Platform 相结合,SAP 具有端到端集成业务流程的独特能力。

SAP 的智能企业由以下四个核心端到端流程组成:

  • 销售线索到收款

  • 设计到运维

  • 货源到付款

  • 招聘到退休

每个流程都需要连接多个不同的 SAP 产品和解决方案,包括 SAP S/4HANA Cloud。因此,连接选项仍然是必要的,并作为 ABAP Cloud 的一部分提供。弃用的集成技术无法再在 ABAP Cloud(例如 IDoc)中使用 - 只能是已发布的框架。以下连接框架可用:

  • OData 服务

  • 业务事件

  • HTTP 服务

  • 通过启用云的 WebSocket RFC 的 RFC

  • SOAP 使用(SOAP 服务提供者已计划)

  • 外部 ODBC 客户端的 SQL 服务

  • 分析客户端的 SAP 信息访问 (InA)

除这些框架外,还有云连接器,可实现与位于内部架构中的系统的连接。

为确保凭据之间的内容分离,客户无权直接访问 SAP S/4HANA Cloud 中目标 (SM59) 和逻辑端口 (SOAMANGER) 的传统事务。相反,使用一系列 SAP Fiori 应用(称为云通信管理)设置实施通信场景所需的所有逻辑部件以及必要的用户和验证选项。

ABAP 云开发模型与 ABAP RESTful 应用程序编程模型

最后,我们确认了一眼可能会出现 ABAP 云开发模型和 ABAP RESTful 应用程序编程模型这两个术语可能指的是相同的概念。他们没有。这两个术语指的是需要理解的不同内容。

ABAP Cloud 所指的范围更大。它包含完整的开发模型。这包括(但不限于)编程模型、生命周期细节、API、自定义和扩展开发规则,甚至与身份和访问管理相关的细节。

另一方面,ABAP RESTful 应用程序编程模型所指的范围更小且更具体。它是指出于特定目的构建特定开发部件的特定编程模型(即工具、技术和技术)。编程模型是(并合并到)ABAP Cloud 的一部分。在其他方向定义关系同样合适(即,ABAP Cloud 参考 ABAP RESTful 应用程序编程模型来实施事务、分析和集成用例)。

浏览 ABAP RESTful 应用程序编程模型对象

练习开始练习(SAP 官方交互式练习)