SAP Netweaver Application Server - SAP Netweaver应用服务器是SAP ABAP应用的开发和运行平台,ABAP开发人员在上面可以专注于具体业务逻辑的开发,而涉及到更底层的基础设施相关的任务,比如请求的负载均衡,进程同步和调度,内存管理,服务器多实例间的缓存同步等等,统统交由Netweaver平台本身处理。如此一来,一个ABAP开发人员,即使不具备精深的计算机组成原理,操作系统,计算机网络等领域知识,也能胜任SAP应用的开发工作。

什么是SAP系统

(本文仅仅讨论基于ABAP技术栈实现的SAP系统)

SAP系统是SAP解决方案的组成部分,是一套实现特定业务功能的可供安装的软件系统。

SAP系统通常的组成部分:

(1) 数据库

(2) 一个或多个应用服务器实例(Java或ABAP)

(3) 中央服务实例(central services),比如消息服务器或者Enqueue服务器

每个SAP系统由其系统ID唯一标识,该ID为一个三位数的字符,由大写字母或者数字组成,比如AG3.

什么是应用服务器实例 - Application Server instance

SAP系统的代码运行在SAP应用服务器实例上,从而服务SAP全球千千万万的客户。

应用服务器实例是一台物理的服务器,上面除了操作系统外,还安装了SAP Netweaver这套平台级别的软件,Netweaver之上则安装了若干software component,一个或者多个software component组合起来实现一个领域的业务功能。

应用服务器实例可以通过工具来启动,关闭和监控。每个应用服务器实例通过主机名和实例号组合而成来标识,其中实例号由两位的字母或者数字组成。

这些应用服务器实例按照不同的用途,又分为不同的类型,大致有下面几种:

(1) ABAP服务器实例:运行SAP系统ABAP代码的服务器,上面跑着不同类型的工作进程,如对话工作进程,后台处理工作进程,更新任务工作进程,打印任务工作进程等。每种不同类型的工作进程处理不同的任务。

(2) ABAP SAP Central Services instances (ASCS instances) - 中央服务实例。每个SAP系统可以由多个ABAP服务器实例组成,但只能有一个ASCS实例,该实例包含一个消息服务器和一个Enqueue服务器,前者用于协调多个ABAP服务器之间的通信,后者负责SAP业务中锁的管理。除此之外,SAP系统的负载均衡也由ASCS实例处理。

根据SAP系统功能的不同,还存在其他可选的应用服务器实例,比如专注于企业级搜索实现(Enterprise Search)的TREX服务器实例,以及Web Dispatcher实例等等。

下面看一个具体的例子,来加深对上面出现了的名词的理解。

下图是一个SAP CRM系统的前台界面,后台对应的系统ID为AG3. 后台系统我们可以使用一个名叫SAPGUI的客户端软件登录。

从下图我们能看到这个SAP系统的ID为AG3,以及消息服务器的网络地址。

这个AG3系统由多个应用服务器实例组成,我当前准备登录的实例ID为56。

在登录界面里输入用户名和密码,即可登录这个SAP系统:

成功登录后,在SAP Status菜单里,能看到这个SAP服务器对应的数据库明细,以及当前安装的操作系统类型:

使用事务码SM51,可以查看这个SAP系统的三个应用服务器实例的名称和主机名,当前我们登录的是正中以56结尾的实例。