OSCache: Ottimizziamo le nostre pagine JSP

L’utilizzo di una cache in una web application può davvero moltiplicarne le prestazioni. OSCache poi, oltre ad essere potente, è di davvero semplice utilizzo. Vediamo come utilizzarlo per ottimizzare la creazione di una pagina dinamica e ridurre l’accesso al database

OSCache è una libreria Java che, implementando una cache, permette l’ottimizzazione della generazione di pagine JSP. A dire la verità, OSCache non si ferma qui, dato che è possibile utilizzarla anche in ambiti diversi, come cache di qualsiasi tipo di oggetti Java, ma sicuramente l’utilizzo in ambito web è il piu’ semplice.

A chi serve una cache
Cerchiamo intanto di vincere il pregiudizio che l’utilizzo di una cache sia necessario solo a chi necessita di prestazioni particolarmente brillanti, o deve fronteggiare un carico notevole.
OSCache è utilissimo per qualsiasi applicazione JSP, considerando il semplice utilizzo e gli ottimi vantaggi apportati.
Un esempio rapidissimo:

Questo esempio, mostra l’utilizzo della cache per il mascheramento di errori, come un problema di accesso al database, tanto per fare un esempio. L’utente non si renderà conto dell’errore, dato che verrà mostrata la pagina in cache.
E’ solo un utilizzo marginale, ma dimostra che non è necessario avere decine di migliaia di utenti per iniziare ad apprezzare i benefici di una cache.

Installazione
L’installazione di OSCache è rapida e indolore. Basta scaricare l’ultima versione del package dal sito ufficiale OpenSymphony e copiare il file oscache.jar nella cartella che contiene le librerie del nostro progetto (“WEB-INF/lib”). Quindi dobbiamo copiare, dopo averlo editato secondo le nostre esigenze, il file di configurazione (presente, nella versione di default, come /etc/oscache.properties) nella cartella /WEB-INF/classes.
Una guida alla compilazione della configurazione è consultabile sul sito ufficiale. E’ possibile ad esempio configurare la libreria per il caching su disco o scegliere l’algoritmo di caching da utilizzare. Quindi copieremo, sempre nella cartella WEBINF/classes, la tag library oscache.tld e ne dichiareremo l’utilizzo nel file web.xml:

Utilizzo

Supponiamo di avere un catalogo di prodotti nel nostro negozio online. Ogni volta che un utente accede alla lista di prodotti, la nostra web application andrà a caricare i dati dal database, li processerà e li restituirà in una tabella.

Ma è davvero necessario ripetere tale operazione per ogni utente che accede al catalogo? Dopo tutto i prodotti in vendita non vengono aggiornati troppo spesso e gli utenti visualizzano soprattutto la pagina principale.
Potremmo quindi restituire tale pagina senza doverla ricreare ogni volta. E ad ogni inserimento di prodotti diremo semplicemente alla cache di cancellare la pagina.

Nell’amministrazione, nella pagina di inserimento/rimozione prodotti, ci ricorderemo di cancellare la cache ad ogni modifica del listino:

Come avrete notato, l’utilizzo è semplicissimo e i benefici sono davvero sostanziali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *