The Internet Communication Manager guarantees communication between the SAP System (SAP Web Application Server) and the outside world via the protocol HTTP, HTTPS and SMTP. In its role as a server the ICM can process requests from the Internet that arrive as URLs with the server/port combination that the ICM can listen to. The ICM then calls the relevant local handler for the URL in question.
You need the ICM if you want your SAP Web AS to communicate with the Internet via HTTP, HTTPS or SMTP, like Web applications do with Business Server Pages.
The ICM is a component of the SAP Web AS. It is implemented as a separate process, which is started and monitored by the dispatcher. In profile parameters you can set whether the ICM is to be started and how it is to be configured (see Parameterization of the ICM and the ICM Server Cache).
The ICM process uses threads to parallelize the load that comes up.
The graphic below shows an overview of the ICM.
In addition to the pool of worker threads that process the incoming requests, the following ICM components are implemented as further requests:
· Thread Control
This thread accepts the incoming TCP/IP requests and creates (or wakes) a worker thread from the thread pool to process the request. Then the thread control initializes the connection info data.
· Worker Threads
These threads handle connection requests and responses. A worker thread contains an I/O handler for the network input and output, diverse plugins for the various supported protocols (HTTP, SMTP,…), which are required to be able to decide when the sent packet is finished (depends on the protocol).
Usually a worker thread waits for a response (regardless of whether it is a client or a server thread). If there is a timeout the watchdog takes on the task of waiting for the response. Then the worker thread can again be used for other requests. If the watchdog receives the response, it informs the thread control component, which then wakes up a worker thread.
· Signal Handler
This thread processes signals that are sent by an operating system or another process (for example, the dispatcher).
· Connection Info
This table contains for each existing network connection details of the status, the memory pipes and the plug-in data.
· Memory Pipes
These memory-based communication objects are used to transfer data between the ICM and the work processes. For each connection there are four pipes: for each request and response one data pipe and an OOB (Out Of Band) pipe. The OOB pipe is used for control data.
The ICM contains another cache to enable repeated requests to be quickly responded to. This cache is not shown in the graphic.