Al fine di fornire una funzionalità di memorizzazione nella cache più avanzata, utilizzare Caching Proxy insieme al componente Load Balancer. Mediante l'integrazione di funzioni di memorizzazione nella cache e di bilanciamento del carico, è possibile creare un'infrastruttura con prestazioni Web estremamente gestibile ed efficiente.
La Figura 4 illustra in che modo è possibile combinare Caching Proxy con Load Balancer per distribuire contenuti Web in modo efficiente anche in caso di forte domanda. In questa configurazione, il server proxy (4) è configurato per intercettare le richieste i cui URL contengono il nome host di un cluster di host di contenuti (7) con bilanciamento del carico da parte di Load Balancer (6 ).
Legenda: 1—Client 2—Internet 3—Router/Gateway 4—Caching Proxy 5—Cache 6—Load Balancer 7—Host dei contenutiQuando un client (1) richiede un file X, la richiesta passa attraverso Internet (2) ed entra nella rete interna dell'azienda mediante il gateway Internet ( 3). Il server proxy intercetta la richiesta, ne genera una nuova con il proprio indirizzo IP e quello di origine e la invia a Load Balancer all'indirizzo del cluster. Load Balancer utilizza il proprio algoritmo di bilanciamento del carico per determinare l'host di contenuti in quel momento più adatto a soddisfare la richiesta per il file X. Tale host restituisce il file X al server proxy anziché inviarlo tramite Load Balancer. Il server proxy decide se memorizzarlo nella cache e distribuirlo all'utente finale nella stessa modalità precedentemente descritta.
La funzionalità avanzata di memorizzazione nella cache viene fornita anche dal plugin Dynamic Caching di Caching Proxy. Quando utilizzato insieme a WebSphere Application Server, Caching Proxy è in grado di memorizzare nella cache, supportare e invalidare contenuto dinamico sotto forma di JSP (JavaServer Page) e risposte servlet generate da WebSphere Application Server.
In genere, il contenuto dinamico con una scadenza indefinita deve essere contrassegnato con l'opzione "non eseguire la memorizzazione nella cache", dal momento che la logica standard che gestisce le scadenze delle informazioni registrate nella cache basandosi sul tempo non garantisce che tali informazioni verranno opportunamente eliminate. La logica del plugin Dynamic Caching che gestisce le scadenze basandosi sugli eventi consente al server proxy di memorizzare nella cache anche contenuti con scadenza indefinita. La memorizzazione nella cache di questo tipo di contenuto sulle unità terminali della rete esonera gli host di contenuti dal richiamare ripetutamente un server delle applicazioni per soddisfare le richieste provenienti dai client. Questo offre i seguenti vantaggi:
La memorizzazione nella cache delle risposte servlet è ideale per le pagine Web generate in modo dinamico che scadono in base alla logica dell'applicazione o a un evento, ad esempio un messaggio proveniente da un database. Sebbene la durata di questo tipo di pagine sia limitata, il valore relativo alla durata dell'attività non può essere impostato al momento della creazione poiché non si può sapere in anticipo quale sarà il trigger di scadenza. Quando il valore relativo alla durata dell'attività di queste pagine è impostato su zero, gli host di contenuti andranno incontro a elevate probabilità di errore quando supportano contenuto dinamico.
La responsabilità per la sincronizzazione della cache dinamica di Caching Proxy e Application Server è condivisa da entrambi i sistemi. Ad esempio, una pagina Web pubblica, creata in modo dinamico da un'applicazione dedicata alle previsioni del tempo, può essere esportata da Application Server e memorizzata nella cache da Caching Proxy. Caching Proxy può quindi distribuire i risultati dell'esecuzione dell'applicazione a molti utenti fino a quando non verrà informato che la pagina non è più valida. I contenuti presenti nella cache di risposte servlet di Caching Proxy sono considerati validi finché server proxy non elimina una voce dalla cache, perché congestionata o perché il timeout predefinito dalla direttiva ExternalCacheManager nel file di configurazione di Caching Proxy non raggiunge la scadenza, o finché Caching Proxy non riceve un messaggio di invalida che indica di eliminare il contenuto dalla cache. I messaggi di invalidazione che hanno origine da WebSphere Application Server a cui appartengono i contenuti vengono propagati a ciascun Caching Proxy configurato.
Caching Proxy offre altre importanti funzioni avanzate di memorizzazione nella cache: