SAP R/3 架构教程
什么是 SAP R/3?
SAP R/3 是一个包含 3 个层级的 3 层架构
- 表示
- 应用
- 数据库
简单来说,它是一个客户端-服务器架构。
- R 代表实时系统
- 3 代表 - 3 层架构。
用户 PC:- 用户可以通过两种方式访问 SAP 系统:
- 通过 SAP GUI
- 通过 Web 浏览器
这称为前端。只有前端安装在用户 PC 上,而不是应用程序/数据库服务器。
前端将用户的请求发送到数据库服务器和应用程序服务器。
应用程序服务器:- 应用程序服务器用于处理业务逻辑。此工作负载分布在多个应用程序服务器之间。通过多个应用程序服务器,用户可以更快地获得输出。
与用户 PC 的位置相比,应用程序服务器位于远程位置。
数据库服务器:-数据库服务器根据 ABAP 和 Java 应用程序生成的 SQL 查询存储和检索数据。
数据库和应用程序可以位于相同或不同的物理位置。
了解不同的 SAP 层
表示层
表示层包含构成 SAPgui(图形用户界面)的软件组件。这一层是 R/3 系统与其用户之间的接口。R/3 系统使用 SAPgui 为输入和显示数据提供直观的图形用户界面。
表示层将用户的输入发送到应用程序服务器,并从中接收数据以供显示。当 SAPgui 组件运行时,它与 R/3 系统中的用户终端会话保持链接。
应用层
应用程序层由一个或多个应用程序服务器和一个消息服务器组成。每个应用程序服务器都包含一组用于运行 R/3 系统的服务。理论上,您只需要一个应用程序服务器即可运行 R/3 系统。实际上,这些服务分布在多个应用程序服务器上。消息服务器负责应用程序服务器之间的通信。它在系统内将一个应用程序服务器的请求传递到另一个。它还包含有关应用程序服务器组以及它们之间的当前负载均衡的信息。它使用此信息在用户登录系统时分配合适的服务器。
数据库层
数据库层由一个中央数据库系统组成,其中包含 R/3 系统中的所有数据。数据库系统有两个组件 - 数据库管理系统 (DBMS) 和数据库本身。SAP 制造了自己的数据库,名为 Hana ,但与 Oracle 等所有主要数据库兼容。所有 R/3 数据都存储在数据库中。例如,数据库包含决定 R/3 系统如何运行的控制和定制数据。它还包含应用程序的程序代码。应用程序包括程序代码、屏幕定义、菜单、功能模块和各种其他组件。这些存储在数据库的特殊部分,称为 R/3 存储库,因此称为存储库对象。R/3 存储库对象用于 ABAP 工作台。
了解 SAP R/3 3 层架构的组件
- 消息服务器:它处理 ABAP 系统中分布式 Dispatcher 之间的通信。
- Dispatcher 队列:各种工作进程类型存储在此队列中。
- Dispatcher:它将请求分发给工作进程。
- Gateway:它使得 SAP 系统之间以及 SAP 系统与外部系统之间的通信成为可能。
- ABAP 工作进程:- 它在 R/3 应用程序中单独执行对话步骤。工作进程的类型如下:
- 内存管道:它使得 ICM 和 ABAP 工作进程之间的通信成为可能。
- 消息服务器:它处理 Java Dispatcher 和服务器进程。它使得 Java 运行时环境内的通信成为可能。
- Enqueue Server:它处理由服务器进程中执行的 Java 应用程序执行的逻辑锁定。
- 中央服务:Java 集群需要一个中央服务的特殊实例来管理锁定以及传输消息和数据。Java 集群是一组协同工作以构建可靠系统的进程。实例是资源组,如内存、工作进程等。
- Java Dispatcher:它接收客户端请求并转发到服务器进程。
- SDM:软件部署管理器用于安装 J2EE 组件。
- Java 服务器进程:它可以同时处理大量请求。
- 线程:多个进程在后台单独执行,这个概念称为线程。
- ICM:它使得 SAP 系统与 HTTP、HTTPS、SMTP 协议之间的通信成为可能。这意味着通过在浏览器中输入系统 URL,您也可以从浏览器访问 SAP。
还有一个组件是 JCO。当系统配置为 ABAP+Java 时,JCO 用于处理 Java Dispatcher 和 ABAP Dispatcher 之间的通信。
SAP 登录过程是如何工作的?
步骤 1) 一旦用户从 GUI 点击 SAP 系统,用户请求就会被转发到Dispatcher。
步骤 2) 请求首先存储在请求队列中。Dispatcher 遵循先进先出规则。它会查找空闲的工作进程,如果可用则分配。
步骤 3) 根据用户请求,将特定的工作进程分配给用户。例如,当用户登录系统时,将向用户分配对话工作进程。如果用户在后台运行报告,则将后台工作进程分配给用户。当数据库级别进行某些修改时,将分配更新工作进程。因此,根据用户的操作分配工作进程。
步骤 4) 一旦用户被分配了对话工作进程,用户的授权、用户的当前设置就会被载入共享内存的工作进程中,以访问用户的数据。对话步骤执行完成后,用户数据将从工作进程中卸载。这样共享内存就会被清理,其他用户的数据就可以保存在共享内存区域中。对话步骤是指屏幕的移动。在事务中,当用户从一个屏幕跳转到另一个屏幕时,这个过程称为对话步骤。
步骤 5) 第一个工作进程会在缓冲区中查找数据。如果它在缓冲区中找到数据,则无需从数据库检索数据。这样响应时间就会得到改善,这个过程称为命中。如果它在缓冲区中找不到数据,它会在数据库中查找数据,这个过程称为未命中。命中率应始终高于未命中率。它提高了系统的性能。
步骤 6) 从数据库查询其他请求的数据,并且在流程完成后,结果通过 dispatcher 发送回GUI。
步骤 7)最后,用户数据将从共享内存中删除,以便内存可供其他用户使用。这个过程称为roll-out。