Entering content frame

Component documentation ICM Server Cache Locate the document in its SAP Library structure

Purpose

The ICM server cache or Internet server cache saves HTTP(S) objects before they are sent to the client. The next time an object is requested, then, the application gets the content directly from the cache before sending it to the client.

The HTTP request handler uses the ICM Server Cache when, for example, response pages need to be re-used, such as the entry page of an online shop application.The ICM server cache saves the pages before they are sent to the client. When the page is next called, then the application gets the page directly from the ICM and sends it to the client (provided that the expiry period has not run out) (see Structure linkicm/HTTP/server_cache_<xx>/expiration), and the work process does not have to be opened (see Structure linkInteraction Model).

Note

Objects in the MIME repository are saved to the cache by default. Method calls are used to activate the ICM server cache. This is described later.

Implementation Considerations

Using the ICM server cache can increase performance considerably.

Benchmarking tests for cache hits in the main memory have resulted in latent response times of less than one millisecond per request, and a total run of under 3,000 requests per second on a 4 CPU hardware.

These results are based on a strong parallel and multithreaded architecture that supports simultaneous read and write accesses with versioning. Furthermore, a patented indexing algorithm is used to access the cache directory quickly. This algorithm is particularly suitable for long Web URLs as cache keys.

Integration

The ICM server cache is part of the Internet Communication Manager (ICM).

Features

The following graphic displays the architecture of the ICM server cache.

This graphic is explained in the accompanying text

 

The ICM server cache contains the following:

     Two-level cache hierarchy: memory cache and disk cache

     Dynamic caching technology

     Active caching

     UFO caching (unfound objects)

     Browser-dependent caching

Two-level Cache Hierarchy

The ICM server cache consists of a two-level hierarchy: a very quick main memory (memory cache) and a drive-based disk cache. This has the advantage that both the speed of the main memory access and the large storage capacity of the hard disk repository can be used.

Dynamic caching technology

Conventional Web-caching scenarios are based on HTTP proxies and usually only support caching of static contents, such as GIF pictures. The Internet server cache, on the other hand, can store dynamic Web content as well as static content, such as JSP and BSPs. This is especially important as Web applications are becoming increasingly dynamic.

Active caching

An additional difference between the existing standard Web caching solutions and the Internet server cache consists of the cache control technology, which is integrated in the Structure linkInternet Communication Framework and in the BSP Structure linkprogramming model.

Active caching means that the application has full control over how current the objects are that are in the cache. This happens by using asynchronous content invalidation, which is triggered by application-dependent events. Even this is contrary to the standard HTTP caching, with which the application only has limited control over how current the objects in the cache actually are. With the standard HTTP caching technology, expiry time heuristics are usually used.

UFO Caching

The Internet server cache supports caching invalid requests. These are requests that lead to errors on the application server or on the database backend, such as “not found” errors. As a result, the backend is protected from overload situations in which the system is flooded with invalid Web requests.

Caution

Note that this function is only used as general protection and cannot protect the system from more polished attacks.

Browser-dependent caching for BSPs

A Business Server Page may appear differently in different browsers, since the HTML code is not always interpreted in the same way.

This is why the ICM server cache can store BSPs according to the browser type.If the same page is requested by a different browser, the request cannot be retrieved from the cache.To inform the runtime environment if the content is browser-dependent, you can set the relevant flag in the BSP properties. By default the flag is not set.

See Structure linkCaching BSPs.

How Does the ICM Server Cache Work?

The following documentation describes how the cache identifies objects, stores and invalidates them.

Cache Key

Identification of Objects

Manipulating Cache Properties

Invalidating Objects in the Cache

Structure linkStoring Data Objects in the ICM Server Cache

Search Sequence in the ICM Server Cache

Profile Parameters for Configuring the ICM Server Cache

The following parameters are used to parameterize the ICM server cache:

Structure linkicm/HTTP/server_cache_<xx>

Structure linkicm/HTTP/server_cache_<xx>/size_MB

Structure linkicm/HTTP/server_cache_<xx>/memory_size_MB

Structure linkicm/HTTP/server_cache_<x>/max_entries

Structure linkicm/HTTP/server_cache_<xx>/clear

Structure linkicm/HTTP/server_cache_<xx>/expiration

Structure linkicm/HTTP/server_cache_<xx>/max_name_len

Structure linkicm/HTTP/server_cache_<xx>/max_ufo_entries

Structure linkicm/HTTP/server_cache_<xx>/ufo_expiration

You can monitor the ICM server cache from the system using the ICM monitor.This is described in Structure linkMonitoring and Administrating the ICM Server Cache.

 

 

 

Leaving content frame