Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Caching von BSPs  Dokument im Navigationsbaum lokalisieren

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 für die Erstellung von BSPs notwendigen Server-Ressourcen werden reduziert.

      Die notwendige wiederholte Ausführung von häufig angeforderten BSPs entfällt.

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:

      Sie können im Web Application Builder (Transaktion SE80) in der Registerkarte Eigenschaften folgende Eigenschaften für das Caching setzen:

-         Verfallsdauer für Caching im Internet Server-Cache

-         Verfallsdauer für Caching im Browser (clientseitig)

-         Kennzeichen, ob das Caching der Seite browserabhängig erfolgen soll

      Sie können in Ihrer BSP-Applikation durch Methodenaufrufe des Response-Objekts das Verhalten des ICM Server-Caches 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:

Diese Grafik wird im zugehörigen Text erklärt

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.

Achtung

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 Aktualitä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):

      SERVER_CACHE_EXPIRE_ABS

      SERVER_CACHE_EXPIRE_REL

Hinweis

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:

      Mit der Methode SERVER_CACHE_INVALIDATE() können Sie ein einzelnes Objekt invalidieren, das durch die folgenden Angaben identifiziert wird:

       kompletter Name, d.h. URI-Pfad, Form-Felder und BSP-Applikationskontext

       Präfix des Namens (hierarchische Wildcards)

       E-Tag, d.h. Entity-Tag sowie die beim Erstellungszeitpunkt zugeordnete GUID

      Mit der Methode SERVER_CACHE_INVALIDATE_LIST() können Sie eine Liste von Objekten (interne Tabelle) invalidieren.

Diese Angaben werden vom System automatisch an andere Applikationsserver weitergeleitet, damit die Cache-Integrität gewährleistet ist.

Hinweis

Vermeiden Sie allzu häufige Invalidierungen, um systemweite Übertragungen an andere Applikationsserver zu vermeiden.

Siehe auch:

Manipulation der Cache-Eigenschaften

Beispiel

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.

 

Ende des Inhaltsbereichs