Vortexmind: free your mind Tu ne cede malis sed contra audentior ito

25Mar/061

COMET – Andare oltre AJAX

Ajax vs Comet - Modelli di comunicazione a confrontoIn principio era AJAX: Asynchronous JavaScript And XML. Ovvero rendere le applicazioni web più "interattive" e flessibili utilizzando richieste asincrone prese in carico dal browser e gestite tramite chiamate XML al server. Tutto molto bello, ma ci sono dei problemi: pur introducendo l'asincronia, il meccanismo rimane fondamentalmente basato sul paradigma "request-response" (o client-server, se preferite): è sempre il client a fare le richieste, e a "innescare" una computazione lato server (anche se effettuata in maniera asincrona, a differenza del meccanismo sincrono tradizionale). Questa limitazione si evidenzia in particolar modo per applicazioni multi-utente e collaborative: con AJAX infatti non è possibile "forzare" un update da server (ad esempio quando i dati visualizzati dal client diventano inconsistenti perchè vengono modificati, ad esempio, da un altro utente). In genere si cerca di mascherare questa limitazione utilizzando meccanismi di polling, ma la soluzione non è soddisfacente nè efficiente.

COMET
cerca di andare oltre, introducendo uno stile di comunicazione "event-driven, server-push data streaming". In questo paradigma, i dati possono essere inviati al client anche in assenza di un evento di richiesta (da qui la denominazione server-push). Basandosi inoltre su canali http persistenti, si riesce anche a ridurre drasticamente la latenza di comunicazione.

Le informazioni presenti in questo articolo le ho tratte da questo articolo in inglese, che offre ulteriori spunti di riflessione e che vi consiglio di leggere se vi interessa la cosa.

Print this post Print this post

Facebook comments:

Comments (1) Trackbacks (0)
  1. Qui è disponibile una presentazione di Comet in italiano, tenuta in occasione della Java Conference 2006:

    http://www.lightstreamer.com/docs/Lightstreamer-JavaConf06.pdf


Leave a comment

(required)

No trackbacks yet.

Creative Commons Licence
This work by Paolo Tagliaferri is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.