共計 2048 個字符,預計需要花費 6 分鐘才能閱讀完成。
本篇內容介紹了“ABAP 應用服務器的組成部分是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一個典型的 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 服務器上。
“ABAP 應用服務器的組成部分是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!