Che cos’è, a cosa serve e importanza del Prefetching Web

Che cos’è, a cosa serve e importanza del Prefetching Web

Introduzione al Prefetching Web

Oggi l’uso massiccio del Web ha aumentato il traffico nella rete e il carico che i server Web gestiscono. Sebbene al giorno d’oggi gli utenti Web dispongano di connessioni a larghezza di banda più elevate, percepiscono comunque latenze elevate durante la navigazione sul web a causa di elementi sovraccarichi (ad esempio Rete, server, switch o hardware intermedio), lunghi tempi di trasferimento dei messaggi e Round Trip Time (RTT). Di conseguenza, la riduzione della latenza percepita dagli utenti durante la navigazione sul web è ancora un problema di ricerca cruciale.

La riduzione della latenza percepita dagli utenti Web è stata oggetto di numerosi sforzi di ricerca negli ultimi anni. Le tecniche più popolari proposte per ridurre questa latenza sono la memorizzazione nella cache Web, la replica geografica e il prefetching. Al giorno d’oggi, le tecniche di memorizzazione nella cache sono ampiamente implementate poiché raggiungono importanti risparmi di latenza. Le grandi aziende di solito implementano la replica Web utilizzando CDN (Content Delivery Network) per ridurre i tempi di accesso ai loro siti Web, ma questa soluzione è costosa e molte piccole aziende e organizzazioni non possono permetterselo. Le tecniche di pre-acquisizione Web sono ortogonali alle tecniche di memorizzazione nella cache e di replica, in modo che possano essere applicate insieme per ottenere prestazioni Web migliori. Mentre le tecniche di memorizzazione nella cache e di replica sono state ampiamente implementate nel mondo reale, molti meno studi hanno studiato il prefetching web in ambienti reali.

Che cos'è, a cosa serve e importanza del Prefetching Web

Prefetching Web

Lo scopo del prefetching Web è pre-elaborare le richieste di oggetti prima che l’utente richieda esplicitamente tali oggetti, al fine di ridurre la latenza percepita dagli utenti. Il prefetching Web prevede due passaggi principali. Innanzitutto, è necessario prevedere con precisione gli accessi utente successivi. Queste previsioni sono generalmente basate su esperienze precedenti sugli accessi e le preferenze degli utenti e i suggerimenti corrispondenti sono forniti a un motore di prefetching. In secondo luogo, il motore di prefetch decide quali oggetti dai suggerimenti previsti verranno precaricati.
Le informazioni che possono essere utilizzate dal motore di previsione dipendono dall’elemento dell’architettura Web (client, proxy o server) in cui si trova il motore di previsione. Quando si trova sul client, viene utilizzato un solo modello di accesso utente per eseguire le previsioni. Tuttavia, quando il predittore si trova sul server proxy, sfrutta le informazioni multiutente e multi-server raccolte in questo elemento per eseguire le previsioni. Se il motore si trova sul lato server, effettua previsioni basate sugli accessi multiutente allo stesso sito Web. Infine, le previsioni possono essere eseguite da diversi elementi in collaborazione.

Il motore di prefetching può essere implementato in uno qualsiasi degli elementi che ricevono i risultati delle previsioni. Gli oggetti precaricati vengono archiviati in una cache in attesa di essere richiesti.
Si presuppone dunque che il server Web esegua le previsioni e fornisca i suggerimenti e che il browser Web precarichi gli oggetti durante il tempo di inattività del browser. Scegliendo questa architettura, perché è così che funziona la maggior parte dei prodotti commerciali, il prefetching non richiede modifiche ai protocolli ed è il modo più semplice per implementarlo nella pratica.

Infine, sebbene una pagina Web richiesta possa essere il risultato di una richiesta dinamica, molti degli oggetti che compongono la pagina sono generalmente statici e, di conseguenza, memorizzabili nella cache. Inoltre, un oggetto generato dinamicamente può essere memorizzato nella cache se è correttamente etichettato. Poiché tutti gli oggetti memorizzabili nella cache possono essere precaricati (precollegati), diventano estramamente importanti le altre tecnologie come la programmazione dinamica di server Web e applicazioni, e la programmazione di applicazioni browser come AJAX, Java, Flash e altre applicazioni Internet avanzate.

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 *