Show TOC

Background documentationArchitecture of the Internet Communication Manager (ICM) Locate this document in the navigation structure

 

The ICM process uses threads to parallelize the load.

The following illustration shows a detailed overview of the ICM.

This graphic is explained in the accompanying text.

Architecture of the ICM

Besides the pool of worker threads, which process incoming requests, the following ICM components are also implemented as threads:

  • 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. From this point on, 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 plug-ins 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).

    For more information, see: Processing HTTP Requests.

  • Watchdog

    Usually, a worker thread waits for the response, regardless of whether the worker thread is a server or a client. If a timeout occurs, the watchdog takes on the task of waiting for the response. This makes the worker thread available for other requests. When the watchdog receives the response, it informs the thread control components, which then call a worker thread.

  • Signal Handler

    This thread processes signals sent from the operating system or from another process (for example, the dispatcher).

  • Connection Info

    This table contains information about the state of the connection, the memory pipes, and the plug-in data for every existing network connection.

  • Memory Pipes

    These memory-based communication objects are used to transfer data between the ICM and work processes (AS ABAP), or between the ICM and Java server processes (AS Java). There are four pipes for every connection: One data pipe per request and response and one out-of-band (OOP) pipe. The OOB pipe is used for control data.

    For more information, see: Memory Pipes and MPI Buffers

  • Internet Server Cache

    The ICM contains another cache to enable a quick response to repeated requests. This cache is not shown in the graphic. ICM Server Cache.