这个系列的第一篇文章,我们了解了什么是SAP应用服务器实例,并使用SAPGUI这个客户端软件,成功登录到了SAP CRM系统的一个应用服务器实例AG3.
本文继续学习ABAP应用服务器的组成部分。
一个典型的ABAP应用服务器由下列组件构成:
(1) Internet Communication Manager (ICM)
(2) ABAP dispatcher
(3) Task handler
(4) 若干工作进程,类型有dialog, update, print, background等等
(5) RFC Gateway
(6) Standalone enqueue server
(7) SAP Message Server
这些组件的关联关系如下图,一个SAP系统可以包含多个应用服务器实例,但ASCS实例只能有一个。
下面简单介绍每个组件的功能。
Internet Communication Manager (ICM) - SAP NetWeaver
ICM是Netweaver服务器里一个单独的进程,由ABAP Dispatcher启动并监控,负责SAP系统和外部的网络通信。基于收到请求URL的解析,ICM会将请求分发给具体的handler进行处理。
ICM常用的与Internet交互的协议有HTTP,HTTPS,SMTP等。
下图是ICM的架构图。
Thread Control:该线程负责接收外界请求,从ICM线程池中取出空闲的工作线程,将请求的上下文交给工作线程。
工作线程:负责请求的具体处理,包含一个I/O处理器,可以用来进行网络的输入和输出操作。对于不同协议类型的请求,Thread Control会调度包含了对应协议插件的工作线程。
Watchdog:如果一个工作线程在任务处理时出现了等待某个响应直至超时的情况,Watchdog会将该工作线程释放,避免其无限期的等待,这样该工作线程可以服务于其他请求。而Watchdog会继续等待尚未到来的响应。其后如果响应到达,Watchdog会通知Thread control, 后者会继续调用新的工作线程来处理。
Signal Handler:处理来自操作系统或者其他进程的信号。
Connection Info: 这张表维护了每个连接的状态信息,包括内存管道等。
Memory Pipes:内存管道是基于内存的通讯数据结构,用于将ICM接收到的外部请求包含的数据转交给工作线程。
Internet Server Cache:服务器端的缓存,对于重复的请求可以加快响应速度。
ABAP Dispatcher和工作进程
二者的关系在下图体现得很清晰,ABAP应用服务器上运行着许多不同类型的工作进程。
SAP gateway
SAP系统之间,以及SAP系统与外部系统间通过基于TCP/IP的RFC调用进行通信,而gateway作为RFC调用分发的入口,如下图所示:
SAP Message Server
每个SAP系统只能包含一个消息服务器,该组件负责完成以下任务:
(1) 作为SAP系统内多个应用服务器实例间的通讯渠道
(2) 对来自客户端通过SAPGUI和SAP RFC登录请求的负载分发
当一个应用服务器实例启动后,其dispatcher进程就会联系消息服务器,向其报告自己能够提供的服务类型。
SAP Router
一个单独运行的程序,保护SAP系统不被未经授权的请求所访问。
SAProuter在网络连接拓扑结构中,在SAP系统间以及SAP系统和外部网络间,扮演着proxy的角色,是基于端口过滤的防火墙机制的一种补充,通常直接安装在防火墙主机上。
SAPRouter维护了一张路由权限表,可以以此维护可以允许何种类型的请求同防火墙背后的SAP系统建立连接。
SAP Start Service
该服务运行在部署了SAP应用服务器实例的服务器上,实现载体是windows的系统服务(sapstartsrv.exe)和Unix系统的Daemon进程(sapstartsrv).
SAP Start Service实现的功能有:
(1) 启动和终止SAP应用服务器实例,及其运行状态的监控
(2) 应用服务器日志,跟踪和配置文件的读取与管理
Enqueue Server
实现ABAP应用程序级别的锁管理机制。应用服务器实例上所有用户当前会话持有的锁,都维护在Enqueue服务器的锁信息管理表中,该表维护在Enqueue服务器的内存中,不会进行持久化,因此Enqueue服务器成为了ABAP系统的单点故障源之一:当Enqueue服务器由于各种原因运行时发生故障需要重启时,维护在内存中的锁信息表的数据会丢失。
因此为了确保Enqueue服务器的高可用性,通常将其放到单独的物理主机上部署,甚至引入主从机制的多台Enqueue服务器,将Master Enqueue服务器上的锁信息管理表同步到其他Enqueue服务器上。
相关推荐
《工程师突击:SAP+ABAP实用程序开发攻略》则可能更专注于实际应用,它可能详细讲解了ABAP编程中的关键技术和工具,如ABAP Workbench、ABAP Object-Oriented Programming(面向对象编程)、Function Modules、BADI...
1、解压后,支持直接导入ABAP 2、支持文本编辑器打开 3、如有不解之处,可以查阅文章:《金色传说:SAP-ABAP-IW21/IW22通知单保存增强:保存通知单时根据特殊条件创建新的事故通知单》或搜索公众号:SAPABAP金色传说
12. **ABAP测试和调试**:SAP提供了强大的测试和调试工具,如Test Wizard和Debugger,帮助开发者确保代码的质量和性能。 13. **ABAP Development Tools (ADT)**:ADT是现代ABAP开发的集成开发环境,提供图形化的...
SAP NetWeaver是SAP企业应用软件的基础平台,Web Dynpro ABAP作为其组成部分之一,依赖于NetWeaver提供的服务和基础设施,包括服务器管理、安全控制、事务处理等功能。在NetWeaver平台上,Web Dynpro ABAP可以无缝...
资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...
- **位置**: R/3 Basis System是SAP R/3系统的核心组成部分之一,它为应用程序提供基础服务。 - **功能**: - 提供了操作系统接口。 - 管理内存、进程和通信等资源。 - 提供了各种工具和服务,如ABAP Workbench、...
4. ABAP程序结构:学习ABAP程序的基本组成部分,如声明、数据声明、逻辑模块和异常处理。 5. ABAP基础语法:掌握ABAP数据类型、运算符、控制结构、内部表操作等基础语法知识。 6. SQL在ABAP中的使用:了解ABAP中...
在SAP系统中,ABAP(Advanced Business Application Programming)是一种重要的编程语言,用于开发企业级的应用程序。本书《实战SAP程序开发——从实例学SAP ABAP编程》的前12章,深入浅出地介绍了SAP ABAP的基础...
### SAP Note 176336: Flat and Deep Structures in ABAP #### 概述 SAP Note 176336 主要关注 ABAP 编程语言中的扁平(flat)结构与深层(deep)结构的概念。在 ABAP 中,结构是一种复杂的数据类型,用于组织和...
这套资料涵盖了多个BC系列课程的中文笔记,包括BC490、BC480、BC470、BC415、BC427、BC416、BC420、BC412、BC425以及BC440,全面解析了ABAP在SAP系统中的应用和开发技巧。 SAP BC是SAP Business Connector的简称,...
SAP Web Dynpro for ABAP 是 SAP 企业级应用程序开发中的一个重要组件,它提供了一种高效、用户友好的方式来构建复杂的企业级业务应用程序。Web Dynpro 是 SAP 的一种编程模型,专门设计用于构建富客户端应用程序,...
根据给定文件的信息,我们可以提炼出以下关于"SAP BC460 SAPscript: Form Printing and Text Management"的相关知识点。 ### SAP BC460 概述 SAP BC460 是一个专注于SAPscript表单打印和文本管理的模块。该模块...
SAP ABAP(Advanced Business Application Programming)是SAP系统中的主要编程语言,用于开发业务应用和接口。本课内容将围绕ABAP的核心概念,帮助初学者掌握这一强大工具的基础。 首先,我们要了解ABAP的语法规则...
ABAP (Advanced Business Application Programming) 是一种由 SAP 开发的高级业务应用程序编程语言,主要用于开发、维护和扩展 SAP 应用程序。 #### SAP BC400 教程目的 SAP BC400-ABAP基础教程旨在为初学者提供一...
6. **程序结构**:SAP ABAP程序由多个部分组成,如REPORT、FORM、FUNCTION模块等。了解每个部分的作用和它们之间的关系对编写高效代码很有帮助。 7. **事件处理**:ABAP支持事件驱动编程,如AT LINE-SELECTION、...
应用服务器是 SAP R/3 系统的重要组成部分之一,负责执行业务逻辑和处理用户请求。在 SAP 系统中,每个应用服务器可以包含多个工作进程,这些进程共同协作完成用户的请求处理。 #### 工作进程 工作进程是 SAP R/3 ...
在SAP ABAP应用程序中,锁机制是保证数据一致性、防止并发访问时产生数据不一致性的关键工具。本文将深入探讨SAP锁的概念、重要系统参数、锁管理以及锁的应用。 首先,SAP锁概念的核心在于防止多个进程同时修改相同...
ERP软件:SAP二次开发_ABAP编程基础.docx ERP软件:SAP二次开发_SAP Fiori开发.docx ERP软件:SAP二次开发_SAP HANA集成开发.docx ERP软件:SAP二次开发_SAPWebDynpro开发.docx ERP软件:SAP二次开发_SAP二次开发中...
ABAP(Advanced Business Application Programming)作为SAP的核心编程语言之一,自20世纪80年代诞生以来,不断发展完善,成为构建SAP应用程序的基础。本文旨在介绍ABAP的基本语法及其核心概念,帮助初学者快速入门...