Pour fournir des fonctionnalités de cache plus poussées, utilisez Caching Proxy comme proxy inversé conjointement avec le composant Load Balancer. En intégrant des fonctions de cache et d'équilibrage de charge, vous pouvez créer une infrastructure de performances Web efficace et à forte capacité de gestion.
La figure 4 montre comment associer Caching Proxy au composant Load Balancer pour répondre efficacement aux demandes de données Web, même en cas de forte demande. Dans cette configuration, le serveur proxy (4) est configuré pour intercepter les demandes dont les URL comportent le nom d'hôte d'un cluster d'hôtes de données (7) par le composant Load Balancer (6).
Légende : 1—Client 2—Internet 3—Routeur/passerelle 4—Caching Proxy 5—Mémoire cache 6—Load Balancer 7—Hôte de donnéesLorsqu'un client (1) demande le fichier X, la demande traverse Internet (2) et pénètre sur le réseau interne de l'entreprise via sa passerelle Internet ( 3). Le serveur proxy intercepte la demande, en génère une nouvelle avec sa propre adresse IP comme adresse d'origine, et envoie la nouvelle demande au composant Load Balancer à l'adresse du cluster. Le composant Load Balancer utilise son algorithme d'équilibrage de charge pour déterminer quel hôte de données est le plus apte à satisfaire la demande portant sur le fichier X. Cet hôte de données renvoie le fichier X au serveur proxy et non via le composant Load Balancer. Le serveur proxy détermine s'il doit le stocker en mémoire cache, et le fournit à l'utilisateur, comme décrit précédemment.
La fonction de cache est également fournie par le plug-in Dynamic Caching de Caching Proxy. Lorsqu'il est utilisé avec WebSphere Application Server, Caching Proxy permet de placer en cache, de fournir et d'invalider des données dynamiques telles que des JSP (JavaServer Pages) et des réponses de servlet générées par WebSphere Application Server.
En général, les données dynamiques dont la durée de vie est illimitée doivent être marquées pour ne pas être placées en mémoire cache car la logique de suppression des données arrivées à expiration n'est pas fiable pour ce type de données. Le plug-in Dynamic Caching possède une logique de suppression orientée événement permettant au serveur proxy de placer en mémoire cache des données à durée de vie illimitée. La mise en cache de telles données évite aux hôtes de données d'appeler une machine Application Server de façon répétée pour répondre aux demandes de clients. Elle offre les avantages suivants :
L'activation de la fonction de cache des réponses de servlet est idéale pour les pages Web générées en dynamique d'une durée de vie basée sur la logique applicative ou sur un événement tel qu'un message extrait d'une base de données. Bien que la durée de vie d'une telle page soit limitée, la valeur TTL ne peut être fixée sur l'heure de création car le commutateur d'expiration ne peut être connu à l'avance. Si la valeur TTL de telles pages est fixée sur zéro, les hôtes de données sont pénalisés lors des échanges de données dynamiques.
La responsabilité de synchroniser le cache dynamique de Caching Proxy et de Application Server est partagée entre les deux systèmes. Par exemple, une page Web publique créée en dynamique par une application fournissant des prévisions météorologiques peut être exportée par Application Server et mise en cache par Caching Proxy. Caching Proxy peut fournir les résultats de l'application de façon répétée à un grand nombre d'utilisateurs jusqu'à ce que la page ne soit plus valide. Les données du cache des réponses de servlet de Caching Proxy sont valides jusqu'à la suppression d'une entrée par le serveur proxy car le cache est saturé, l'expiration du délai par défaut défini par la directive ExternalCacheManager du fichier de configuration de Caching Proxy ou la réception d'un message Invalidate par Caching Proxy lui ordonnant de supprimer les données de son cache. Les messages Invalidate émanent de la machine WebSphere Application Server et sont envoyés à chaque Caching Proxy configuré.
Caching Proxy offre d'autres fonctions importantes de mise en cache :