Alcune elucubrazioni su come funziona GMail:
- Jon Udell “sotto il cofano di Gmail” su Infoworld;
- GMailAPI, l’interfaccia di programmazione per comunicare con GMail di Hwang Johnvey;
- Riflessioni di uno sviluppatore di IBM sull’architettura delle applicazioni web basate su DHTML e Javascript e su Gmail in particolare;
Il segreto della velocità di GMail sta nel fatto che il motore dell’interfaccia utente (UI) è un modulo Javascript che viene caricato in uno dei frame HTML all’inizio della sessione. Successivamente, le azioni sull’interfaccia vengono instradate dal motore Javascript caricato nel browser, che comunica con i server di Google tramite l’oggetto XmlHttpRequest. Ricevuti i dati (in formato DataPack), il motore della UI li interpreta e modifica la UI in base ad essi, intervenendo dinamicamente sui dati della pagina DHTML, anzichè ricaricare l’intera pagina dopo ogni azione dell’utente.
Hwang Johnvey spiega approfonditamente in cosa consiste il formato DataPack: la UI di GMail scambia con i server file html che contengono solo dichiarazioni di array Javascript che contengono dati su cosa e come aggiornare. Per chi è interessato ad approfondire questi temi, esiste il gruppo di discussione GMail Agent
L’articolo di Korateng Ofosu-Amaah (programmatore Ghanese di IBM residente a Cambridge Massachussets) approfondisce i limiti dei browser che hanno spinto Google a utilizzare un formato come DataPack, anzichè un più semplice formato XML per le comunicazioni tra server e client GMail.
Il flusso di dati complessivo delle applicazioni tipo GMail è:
Database < -> XML (passo opzionale) < -> Legame dei dati con gli oggetti JavaScript < -> Legame dei dati con elementi della UI (HTML) + Codice di gestione della UI >>>
Il limite è rappresentato dalla lentezza con cui si diffondono le nuove versioni dei browser, e dallo scarso supporto XML che alcuni hanno. Un grosso blocco è l’interesse di Microsoft a non fornire nuove versioni di IE che permettano di implementare applicazioni basate su rete che possano rimpiazzare le sue applicazioni desktop (Office, principalmente).
Fortunatamente Firefox, Safari e Opera si muovono velocemente in questa direzione, e prima o poi Microsoft dovrà ri-cominciare a rincorrere.
Jon’s Radio, il blog di Jon Udell è probabilmente il miglior punto di partenza per gli interessati al mondo delle rich-internet applications e al suo futuro, mentre i suoi link su del.icio.us sono un ottimo trampolino per approfondire.
Il datapack è il formato utilizzato in applicazioni js che simulano sprite, per es. il wolfenstein 5k (http://www.the5k.org/description.asp/entry_id=946).
Xml è prolisso e forse non tutti i browser che hanno deciso di supportare sanno gestire pagine compresse a livello di http, quindi probabilmente si sono inventati una compressione gestita a livello di applicazione.
ciao
Infatti, il problema sembra essere la mancanza di supporto XML, principalmente da parte di Safari e Opera.
Secondo Koranteng ci vorranno altri quattro anni perchè interfaccie per comunicare direttamente via XML tra server e browser siano universalmente diffuse.
e2uSqi sd80347yv35t8574dcu0r