Verwendung
Mit dem Einsatz des Internet Server Cache (siehe auch
ICM Server-Cache) können Sie Performanz und Skalierbarkeit Ihrer BSP-Applikation wesentlich erhöhen. Der ICM Server-Cache bietet eine dynamische und aktive Content-Caching Technologie, wodurch sich die folgenden Vorteile für die Entwicklung von BSPs ergeben:Die dadurch möglichen Performance-Verbesserungen können bis zu Faktor 20 betragen.
Performance und Skalierbarkeit
Benchmark Tests für Cache-Treffer im Hauptspeicher haben latente Antwortzeiten von unter einer Millisekunde pro Request und einen Gesamtdurchlauf von über 3000 Requests pro Sekunde auf einer 4-CPU Hardware ergeben.
Diesen Ergebnissen liegt eine stark parallele und multithreaded Architektur zugrunde, die gleichzeitige Lese- und Schreibzugriffe mit Versionierung unterstützt. Außerdem wird hier für den schnellen Zugriff auf das Cache-Verzeichnis ein patentierter Indizierungsalgorithmus verwendet, der für lange Web-URLs oder ähnliches als Cache-Keys besonders geeignet ist.
Funktionsumfang
Der Funktionsumfang und die Architektur des ICM Server-Cache ist im Abschnitt
Internet Server-Cache beschrieben.Es gibt grundsätzlich folgende Möglichkeiten, das Caching für BSPs zu steuern:
Wie Sie vorgehen müssen, ist im folgenden Abschnitt beschrieben.
Aktivitäten
Caching-Eigenschaften im Web Application Builder setzen
In der Registerkarte Eigenschaften einer BSP können Sie Caching-Eigenschaften für die Seite setzen:

Sie können sowohl für den Browser Cache als auch für den ICM Server-Cache bestimmen, wie lange die Seite im Cache gehalten werden soll. Wenn nichts angegeben wird, bedeutet dies, dass der entsprechende Cache für die Seite nicht verwendet wird. Das Kennzeichen Browser abhängig setzen Sie, wenn Sie möchten, dass der ICM Server-Cache die Seite nur aus dem Cache holt, wenn der Request vom gleichen Browser-Typ kommt. Wenn Sie das Kennzeichen nicht setzen, beachten Sie dabei, dass alle von der Seite verwendeten Elemente browserunabhängig sein müssen.

Beachten Sie beim Einsatz des Browser-Caches, dass der Client nicht merken kann, wenn sich eine Seite geändert hat; er liefert bei der gleichern URL immer dieselbe Seite aus dem Cache, bis die Verfallsdauer abgelaufen ist. Wenn Sie den ICM Server-Cache verwenden, können Sie durch Verwendung der Invalidierungs-Methoden stets die Aktuaklität der im Cache eingelagerten Seite gewährleisten.
Caching-Eigenschaften durch Methodenaufrufe in der BSP setzen
Hier stehen Ihnen mehr Möglichkeiten zur Verfügung; neben der relativen Verfallszeit und der Browserabhängigkeit können Sie eine absolute Verfallszeit angeben sowie Cache-einträge invalidieren. Sie können auch das Caching nicht für die Seite allgemein, sondern in Abhängigkeit von Beutzereingaben aktivieren (vgl. Beispiel).
Sie setzen die Verfallszeit für eine HTTP-Response mit den Methoden der Klasse
CL_HTTP_RESPONSE (siehe auch
IF_HTTP_RESPONSE und IF_HTTP_REQUEST):

Verwenden Sie angemessene automatische Verfallszeiten. Z. B. wird ein Börsenticker alle n Minuten aktualisiert, während bei einem Produktkatalog nur alle n Tage oder Wochen eine Aktualisierung erforderlich ist.
Sie legen das asynchrone Auffrischen (Invalidieren) von Objekten über die Methoden der Klasse
CL_HTTP_SERVER (siehe auch
IF_HTTP_SERVER) fest:
Diese Angaben werden vom System automatisch an andere Applikationsserver weitergeleitet, damit die Cache-Integrität gewährleistet ist.

Vermeiden Sie allzu häufige Invalidierungen, um systemweite Übertragungen an andere Applikationsserver zu vermeiden.
Siehe auch:
Manipulation der Cache-EigenschaftenBeispiel
Ein einfaches Beispiel finden Sie im System in der BSP-Applikation
TUTORIAL_4, BSP results.htm im Eventhandler OnInitialization:|
* cache result page in case Plattner's books are searched
if 'PLATTNER' cp author. response->server_cache_expire_abs( expires_abs_time = '180000' browser_dependent = 'X' ). endif. |
Es wird nur die Ergebnisliste für die Anfrage von Büchern von Hasso Plattner in den Cache eingelagert, etwa weil man weiß, dass diese besonders oft angefordert wird. Jeden Abend um 18 Uhr wird der Cache-Eintrag invalidiert. Diese Funktion kann für Dinge, die einmal täglich neu berechnet werden (z.B. aktuelle Preise), sinnvoll sein.
Siehe auch:
Weiterentwicklung des Buchladens