一、 核心概念与角色定位
首先,我们必须清楚它们各自扮演的角色。
1. SAP Web Dispatcher
- 定位: 一个入口网关/软件负载均衡器。
- 作用: 它是SAP系统架构的"守门人"和"交通警察"。所有从外部(互联网/企业内部网)发起的、基于HTTP(S)、HTTPS、SMTP等协议的请求,首先到达的就是Web Dispatcher。
- 主要功能:
- 负载均衡: 将收到的请求均匀地分发到后端一个或多个SAP应用服务器(ABAP或Java)上,避免单台服务器过载。
- 安全防火墙: 作为SAP系统的第一道防线,它可以过滤恶意的URL请求,防止攻击直接到达核心的应用服务器。
- SSL终止: 处理耗资源的HTTPS加密/解密工作。客户端与Web Dispatcher之间建立安全的HTTPS连接,而Web Dispatcher与后端SAP服务器之间可以使用普通的HTTP连接,从而减轻应用服务器的负担。
- 静态内容缓存: 可以缓存一些静态资源(如图片、CSS、JS文件),直接响应客户端,减少对后端服务器的请求。
- 虚拟主机: 通过一个公网IP地址和端口,为多个不同的SAP系统或服务提供访问入口。
简单比喻: Web Dispatcher就像公司的前台接待处 或总机。所有外部来电(请求)都先打到这里,然后由前台根据规则转接到相应的部门或人员(SAP应用服务器)。
2. SAP系统/应用服务器
- 定位: 业务逻辑处理器。
- 作用: 这是SAP系统的核心,运行着实际的业务应用程序,如ERP、CRM、SCM等。它包含了诸如工作进程、消息服务器、网关等核心组件。
- 主要功能:
- 处理业务请求: 执行ABAP或Java代码,处理用户的登录、业务单据创建、报表查询等所有业务操作。
- 数据库交互: 直接与底层数据库(如HANA、Oracle、SQL Server)进行通信,读写业务数据。
- 会话管理: 管理用户会话状态。
简单比喻: SAP应用服务器就像公司内部的各个专业部门(如销售部、财务部),他们负责处理前台转接过来的具体业务。
二、 两者之间的关系
Web Dispatcher和SAP应用服务器之间的关系是典型的 "代理-后端" 或 "入口-处理器" 关系。
- 协作关系: 它们共同协作,为最终用户提供一个完整、高效、安全的SAP访问体验。Web Dispatcher负责网络层面的接入和调度,SAP应用服务器负责业务层面的计算和处理。
- 依赖关系: Web Dispatcher依赖于后端的SAP应用服务器。如果没有可用的后端服务器,Web Dispatcher就无法处理任何有意义的业务请求,它自己无法执行业务逻辑。
- 层级关系: 在系统架构上,它们形成一个清晰的层级:
- 客户端 (Browser, SAP GUI for HTML) -> Web Dispatcher -> SAP 应用服务器 -> 数据库
三、 如何关联 - 配置与连接机制
这是最关键的部分,即如何将Web Dispatcher和SAP应用服务器"链接"起来。这个过程主要通过配置文件来完成。
核心配置文件:webdispatcher.pxx
在Web Dispatcher的安装目录下,存在一个名为 webdispatcher.pxx (xx是实例号,如00, 01) 的配置文件。所有的关联配置都在这个文件中定义。
关键配置参数与步骤:
-
定义后端SAP服务器(路由目标)
使用
wdisp/system_<ID>参数来告诉Web Dispatcher后端有哪些SAP系统。ini# 定义一个名为"SP1"的后端SAP系统 wdisp/system_SP1 = SID=PRD, MSHOST=sapms.PRD.com, MSPORT=3600, SRCSRV=:443SID: 后端SAP系统的系统ID(如PRD)。MSHOST: 后端SAP系统的消息服务器 的主机名或IP地址。这是实现负载均衡的关键,因为Web Dispatcher需要向消息服务器查询当前有哪些活跃的应用服务器。MSPORT: 消息服务器的端口号。SRCSRV: Web Dispatcher监听客户端请求的地址和端口(例如:443表示监听所有IP的443端口)。
-
配置负载均衡组
一个SAP系统通常有多个应用服务器实例。你需要将它们分组。
ini# 将服务器添加到负载均衡组 wdisp/server_SP1_0 = HOST=sapapp01.PRD.com, PORT=8100, PROT=soap, PRIO=1 wdisp/server_SP1_1 = HOST=sapapp02.PRD.com, PORT=8100, PROT=soap, PRIO=1 wdisp/server_SP1_2 = HOST=sapapp03.PRD.com, PORT=8100, PROT=soap, PRIO=5HOST/PORT: 后端SAP应用服务器的ICM(Internet Communication Manager) 服务的主机名和端口。PROT: 使用的协议(如soap,https等)。PRIO: 优先级。数字越大,优先级越低。这里sapapp03只会被用于负载非常高或前两台服务器不可用时。
-
配置路由规则(URL过滤)
告诉Web Dispatcher,哪些URL请求应该被转发到哪个后端系统。这是通过过滤规则实现的。
ini# 将所有以 /sap/bc/gui/sap/its/webgui 开头的请求(典型的SAP Fiori/Web GUI请求)路由到SP1系统 wdisp/filter_rule_0 = PREFIX=/sap/bc/gui/sap/its/webgui, SYSTEM=SP1 # 将所有以 /sap/opu/odata 开头的请求(OData服务)路由到SP1系统 wdisp/filter_rule_1 = PREFIX=/sap/opu/odata, SYSTEM=SP1 # 可以将特定路径的请求路由到另一个系统,比如一个JAVA系统 wdisp/filter_rule_2 = PREFIX=/java/, SYSTEM=JAVA01 -
启动与健康检查
- 配置完成后,启动Web Dispatcher服务。
- Web Dispatcher会主动连接到后端SAP系统的消息服务器,并定期检查所有配置的应用服务器实例是否可用(健康检查)。如果某个实例宕机,Web Dispatcher会自动将后续请求路由到其他健康的实例上。
连接流程示意图:

总结
- Web Dispatcher 是SAP面向HTTP世界的统一入口 和流量管理器。
- SAP应用服务器 是业务处理的核心。
- 它们的关联 是通过在Web Dispatcher的配置文件中定义后端系统的消息服务器、应用服务器列表以及URL路由规则来实现的。
- 这种架构提供了可扩展性 (轻松添加更多应用服务器)、高可用性 (自动故障转移)和增强的安全性。