Che cos’è, a cosa serve e principi del Caching nel Web

Che cos’è, a cosa serve e principi del Caching nel Web

Ridurre il traffico ed accelerare l’accesso alle informazioni nel Web

Il successo del World Wide Web come sistema universale di recupero delle informazioni è uno dei motivi principali della crescita di Internet, sia in termini di popolazione che di risorse. Il numero d’utenti WWW è cresciuto negli ultimi anni con un tasso talmente elevato da appesantire notevolmente le risorse di rete.
Il tempo di risposta percepito dagli utenti è determinato da diverse sorgenti. I Web server possono impiegare molto tempo per soddisfare le richieste, specialmente se sono sovraccaricati. I Web client possono aggiungere ulteriore ritardo se non sono veloci ad analizzare i dati ricevuti ed a visualizzarli all’utente. La rete può impiegare molto tempo a trasferire le informazioni da una parte all’altra del mondo.
Il ritardo introdotto dalle prime due sorgenti può essere, almeno in teoria, facilmente ridotto acquistando strumentazione che consenta prestazioni migliori, come computer e dischi più veloci o quantità di memoria maggiore.
Ridurre il ritardo introdotto dalla rete è molto più complicato, poiché è dovuto a due fattori indipendenti: il ritardo di propagazione delle informazioni e la congestione della rete stessa. Mentre la congestione può essere ridotta aggiornando le strutture di rete, il ritardo di propagazione non può essere eliminato essendo la velocità di propagazione costante.

Sono quindi fondamentalmente due i problemi che si presentano:

  • un tempo di risposta spesso inaccettabile;
  • un traffico crescente a ritmi vertiginosi, come ha riportato ogni gruppo di ricerca che ha analizzato il traffico WWW.

Un modo per ridurre il traffico ed accelerare l’accesso alle informazioni presenti in ambito Web è attraverso l’uso del caching.
Questa tecnica rappresenta un metodo efficace e semplice per migliorare le prestazioni del WWW, ed è impiegata dai WWW proxy server. Questi ultimi memorizzano in locale le risorse che sono state richieste recentemente. Dato che le successive richieste per questi oggetti possono essere soddisfatte con copie locali delle stesse, il caching migliora il tempo di recupero delle risorse a cui si accede frequentemente e riduce il traffico a monte dei proxy. Sfortunatamente recenti studi suggeriscono che il massimo hit rate teorico delle cache, ossia la probabilità di soddisfare la richiesta attraverso la cache, è pari a 50%, cioè un documento ogni due non può essere trovato nella cache.

Una seconda soluzione ai problemi esposti, che può contribuire ad aumentare l’hit rate della cache, è il prefetching. Questa tecnica consiste nel rendere disponibili le risorse prima che queste siano richieste, eliminando in tal modo il ritardo dovuto alla fase di reperimento della risorsa. L’applicazione pratica di questa tecnica comporta però diversi problemi, primi fra tutti l’aumento totale di traffico e la difficoltà nella determinazione delle richieste future, specialmente in ambito Web, attraverso un’appropriata funzione di predizione.

Un’ulteriore soluzione al problema della riduzione del tempo di risposta è data, parzialmente, dalla tecnologia push, in cui è chi genera i contenuti a spingere le informazioni verso l’utente finale. Questa tecnica modifica il paradigma di interazione dell’utente con la rete. In questo caso l’utente sottoscrive un canale, ossia un contenitore di informazioni relative ad un certo argomento, ed automaticamente il sistema invia alla postazione dell’utente tutte le informazioni contenute nel canale stesso. Così facendo è possibile nascondere all’utente parte del tempo di recupero delle risorse, rendendole disponibili all’utente al momento stesso della loro generazione.

Che cos'è, a cosa serve e principi del Caching nel Web

Caching

Il caching è una tecnica, che aiuta a portare una parte rilevante dei dati da elaborare in una posizione (memoria cache) più prossima al luogo dove saranno manipolati. Inizialmente sono state utilizzate all’interno dei sistemi operativi, distribuiti e non, al fine di accrescere le prestazioni del file system e accelerare le operazioni di Input/Output (I/O). Nell’ambito di questi sistemi le tecniche e le strategie di caching sono state ampiamente studiate ed ottimizzate. Negli ultimi anni tali tecniche sono tornate prepotentemente alla ribalta in seguito allo sviluppo ed alla diffusione delle reti telematiche, e di Internet in particolare. Il crescente ed inaspettato, almeno in termini di dimensioni, successo di Internet ha determinato la riscoperta di queste tecniche di ottimizzazione delle prestazioni, in quanto la capillare diffusione di questa rete ha ben presto sovraccaricato la sua struttura determinando un rapido declino delle prestazioni. Per rimediare a questo problema si è deciso di applicare ad Internet il concetto di caching.

Negli ultimi anni, inoltre, le tecniche di caching hanno assunto un ruolo fondamentale grazie alla formalizzazione del concetto di scalabilità, divenuto nel frattempo di fondamentale importanza per ogni tipo di applicazione delle tecnologie informatiche.

Più nel dettaglio, il caching è una tecnica utilizzata per aumentare le prestazioni, misurabili attraverso vari indicatori, dei sistemi (o strutture) ai quali è applicata dato che permette di ridurre il traffico di comunicazioni dei sistemi a parità di utenti serviti.
Il caching funziona perché sfrutta il principio di località delle applicazioni. Questo principio afferma che un’applicazione, in un certo istante di tempo, accede soltanto ad una porzione relativamente piccola del suo spazio di indirizzamento.

Ci sono due tipi di località:

  1. Località temporale: quando si fa riferimento ad un elemento, vi è un alta probabilità che si faccia riferimento allo stesso elemento entro breve tempo.
  2. Località spaziale: quando si fa riferimento ad un elemento, vi è un alta probabilità che si faccia riferimento entro breve tempo ad altri elementi che hanno un indirizzo vicino a quello dell’elemento corrente.

La validità del principio di località si può intuire pensando, ad esempio, al fatto che molti programmi contengono dei cicli, le cui istruzioni ed i cui dati sono richiesti ripetutamente. La località temporale è alla base di tutte le implementazioni del concetto di caching, mentre solo alcune implementazioni, ad esempio le cache per i processori, sfruttano la proprietà di località spaziale dei programmi. Per far questo, infatti, occorre utilizzare cache con blocchi di memoria di dimensione maggiore dell’unità di memoria.
È evidente come questa seconda proprietà possa essere utilizzata unicamente nel caso di caching di blocchi di file e non di file interi, dato che non è possibile stabilire facilmente legami tra file differenti.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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