ABAP 应用服务器是 SAP NetWeaver AS ABAP 的核心组件,所有 ABAP 程序都依赖这些服务器进行运行。以下内容将进一步解释这些应用服务器的结构和功能。
ABAP 应用服务器的结构
包括消息服务器在内的所有 ABAP 应用服务器共同构成了基于 ABAP 的 SAP 系统的多层架构中的应用层。这些应用服务器负责执行 ABAP 应用程序,并通过消息服务器与表示层、数据库及彼此之间进行通信。
下图展示了 ABAP 应用服务器的结构:
每个 ABAP 应用服务器不仅包含多个工作进程(这些进程的数量和类型在 SAP NetWeaver AS ABAP 启动时确定),还包括调度器、网关和共享内存。以下是这些组件的简要功能说明:
工作进程
工作进程是用于执行应用程序的核心组件(每个进程处理一个对话步骤)。每个工作进程都连接到内存区域,这个内存区域包含应用程序当前的上下文数据。在每一个对话步骤中,这些数据都需要保持可用。
调度器
调度器负责在工作进程与用户(即使用 SAP GUI 登录 ABAP 应用服务器的用户)之间建立联系。它的主要任务是接收来自 SAP GUI 的对话请求,然后将这些请求分配给空闲的工作进程。它同样负责将处理结果返回给相应的用户。
网关
网关是 SAP NetWeaver AS ABAP 的通信接口(支持 RFC 和 CPI/C 协议)。通过网关,系统可以与同一 SAP NetWeaver 服务器的其他 ABAP 应用服务器、其他 SAP 系统,甚至非 SAP 系统进行通信。
共享内存
ABAP 应用服务器的所有工作进程都会共享一个称为共享内存的主内存区域,用来存储上下文数据或缓存常量数据。工作进程所需的资源(如程序或表数据)都存储在共享内存中。SAP NetWeaver AS ABAP 的内存管理机制确保每个工作进程都能准确访问当前状态下所需的上下文数据。通过内存映射过程,系统将所需的上下文从共享内存映射到相关的工作进程地址中,从而大大减少了内存复制的开销。
架构优势
这种 ABAP 应用服务器架构设计为 SAP NetWeaver AS ABAP 提供了出色的性能与扩展性。由于工作进程的数量是固定的,且对话步骤的分配过程得到了良好的管理,系统能够高效利用内存。部分组件和工作进程的内存区域可以在不同应用程序之间共享与重用,使得内存管理更加优化。每个工作进程的独立性也使得该系统能够良好适应多处理器架构。
在 ABAP 应用服务器的共享内存中本地缓存数据减少了对数据库的访问次数,从而显著缩短了应用程序的响应时间。为了进一步优化资源利用率,您可以将不同的应用程序(如财务、物流和人力资源)集中在不同的 ABAP 应用服务器组中。
数据库连接
当 SAP NetWeaver AS ABAP 启动时,每个 ABAP 应用服务器都会将其工作进程注册到数据库层,并为每个工作进程分配一个专用的数据库通道。在系统运行期间,每个工作进程都会充当数据库系统的客户端。系统运行时,工作进程的数据库通道是不可变的,也不能在工作进程之间重新分配。因此,每个工作进程只能在单个数据库逻辑工作单元(LUW)内进行数据库操作,也就是必须以不可分割的顺序执行的一系列数据库操作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。