SAP扫盲系列之二:SAP ABAP应用服务器的组成部分
這個系列的第一篇文章,我們了解了什么是SAP應用服務器實例,并使用SAPGUI這個客戶端軟件,成功登錄到了SAP CRM系統(tǒng)的一個應用服務器實例AG3.
本文繼續(xù)學習ABAP應用服務器的組成部分。
一個典型的ABAP應用服務器由下列組件構(gòu)成:
(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
這些組件的關聯(lián)關系如下圖,一個SAP系統(tǒng)可以包含多個應用服務器實例,但ASCS實例只能有一個。
下面簡單介紹每個組件的功能。
Internet Communication Manager (ICM) - SAP NetWeaver
ICM是Netweaver服務器里一個單獨的進程,由ABAP Dispatcher啟動并監(jiān)控,負責SAP系統(tǒng)和外部的網(wǎng)絡通信?;谑盏秸埱骍RL的解析,ICM會將請求分發(fā)給具體的handler進行處理。
ICM常用的與Internet交互的協(xié)議有HTTP,HTTPS,SMTP等。
下圖是ICM的架構(gòu)圖。
Thread Control:該線程負責接收外界請求,從ICM線程池中取出空閑的工作線程,將請求的上下文交給工作線程。
工作線程:負責請求的具體處理,包含一個I/O處理器,可以用來進行網(wǎng)絡的輸入和輸出操作。對于不同協(xié)議類型的請求,Thread Control會調(diào)度包含了對應協(xié)議插件的工作線程。
Watchdog:如果一個工作線程在任務處理時出現(xiàn)了等待某個響應直至超時的情況,Watchdog會將該工作線程釋放,避免其無限期的等待,這樣該工作線程可以服務于其他請求。而Watchdog會繼續(xù)等待尚未到來的響應。其后如果響應到達,Watchdog會通知Thread control, 后者會繼續(xù)調(diào)用新的工作線程來處理。
Signal Handler:處理來自操作系統(tǒng)或者其他進程的信號。
Connection Info: 這張表維護了每個連接的狀態(tài)信息,包括內(nèi)存管道等。
Memory Pipes:內(nèi)存管道是基于內(nèi)存的通訊數(shù)據(jù)結(jié)構(gòu),用于將ICM接收到的外部請求包含的數(shù)據(jù)轉(zhuǎn)交給工作線程。
Internet Server Cache:服務器端的緩存,對于重復的請求可以加快響應速度。
ABAP Dispatcher和工作進程
二者的關系在下圖體現(xiàn)得很清晰,ABAP應用服務器上運行著許多不同類型的工作進程。
SAP gateway
SAP系統(tǒng)之間,以及SAP系統(tǒng)與外部系統(tǒng)間通過基于TCP/IP的RFC調(diào)用進行通信,而gateway作為RFC調(diào)用分發(fā)的入口,如下圖所示:
SAP Message Server
每個SAP系統(tǒng)只能包含一個消息服務器,該組件負責完成以下任務:
(1) 作為SAP系統(tǒng)內(nèi)多個應用服務器實例間的通訊渠道
(2) 對來自客戶端通過SAPGUI和SAP RFC登錄請求的負載分發(fā)
當一個應用服務器實例啟動后,其dispatcher進程就會聯(lián)系消息服務器,向其報告自己能夠提供的服務類型。
SAP Router
一個單獨運行的程序,保護SAP系統(tǒng)不被未經(jīng)授權(quán)的請求所訪問。
SAProuter在網(wǎng)絡連接拓撲結(jié)構(gòu)中,在SAP系統(tǒng)間以及SAP系統(tǒng)和外部網(wǎng)絡間,扮演著proxy的角色,是基于端口過濾的防火墻機制的一種補充,通常直接安裝在防火墻主機上。
SAPRouter維護了一張路由權(quán)限表,可以以此維護可以允許何種類型的請求同防火墻背后的SAP系統(tǒng)建立連接。
SAP Start Service
該服務運行在部署了SAP應用服務器實例的服務器上,實現(xiàn)載體是windows的系統(tǒng)服務(sapstartsrv.exe)和Unix系統(tǒng)的Daemon進程(sapstartsrv).
SAP Start Service實現(xiàn)的功能有:
(1) 啟動和終止SAP應用服務器實例,及其運行狀態(tài)的監(jiān)控
(2) 應用服務器日志,跟蹤和配置文件的讀取與管理
Enqueue Server
實現(xiàn)ABAP應用程序級別的鎖管理機制。應用服務器實例上所有用戶當前會話持有的鎖,都維護在Enqueue服務器的鎖信息管理表中,該表維護在Enqueue服務器的內(nèi)存中,不會進行持久化,因此Enqueue服務器成為了ABAP系統(tǒng)的單點故障源之一:當Enqueue服務器由于各種原因運行時發(fā)生故障需要重啟時,維護在內(nèi)存中的鎖信息表的數(shù)據(jù)會丟失。
因此為了確保Enqueue服務器的高可用性,通常將其放到單獨的物理主機上部署,甚至引入主從機制的多臺Enqueue服務器,將Master Enqueue服務器上的鎖信息管理表同步到其他Enqueue服務器上。
要獲取更多Jerry的原創(chuàng)文章,請關注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的SAP扫盲系列之二:SAP ABAP应用服务器的组成部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸡血版二代骁龙8!三星Galaxy Z
- 下一篇: SAP成都研究院数字创新空间基于SAP