Comet
L'evoluzione del web dall'hypertext ai servizi push
Un pò di storia
In principio era la richiesta sincrona, l'ipertesto aveva rivoluzionato il modo di condividere l'informazione, ma l'iteratività tra macchina ed utente era limitata alla scelta dei contenuti da visualizzare, rigorosamente statici.
Linguaggi di scripting
Poi arrivarono i linguaggi di scripting lato client e latoserver. Da un lato il modello iterativo si era trasformato grazie al DHTML grazie a Javascript e VBScript, dall'altro i gestori del sito potevano aggiornare i propri contenuti grazie a tecnlogie lato server come ASP, e la sua contropartita opensource PHP.
Flash
Un piccolo passo avanti per migliorare l'iteratività arrivò con Flash. Macromedia mise a disposizione degli sviluppatori un potente mezzo che rendeva una pagina internet, potenzialmente simile ad un'applicazione desktop, le richieste venivano (e tutt'ora vengono) gestite dal plugin flash che riporta avanti ed indietro in base ad aventi prestabiliti.
Ajax
La vera rivoluzione che diede il là tecnicamente al fenomeno del web 2.0 arrivo con Ajax. Un paradigma di programmazione che permetteva di effettuare richieste asincrone ad un web server. Le risposte erano (e sono) immediate e l'utente finale ha la sensazione del real time. Con Ajax arrivano i primi framework sviluppati in javascript capaci rendere semplice, ciò che semplice non era, ovvero le chiamate asincrone indipendenti dal browser (naturalmente IE è l'unico ad usare una tecnologia proprietaria). Tra questi Prototype, Scriptacoulus, JQuery e Dojo.
Comet
Arriviamo ai giorni nostri. Nel 2006 Axel Russel, sviluppatore di Dojo, coniò il termine Comet, per un paradigma asincrono in entrambe le direzioni, con questo modello il client continua a fare le proprie richieste in maniera asincrona al server che a sua volta risponde effettuando il push delle informazioni a tutti i client collegati.
Immaginate una chat: 100 persone collegate. Una di loro invia il suo messaggio che rimbalza nel server verso tutti gli altri client collegati.
Lo scopo di comet è garantire il real time. Un paradigma simile può essere rintracciato nelle email push, o nei calendari push o appunto nelle chat.
Comet on Ruby.
Grazie a Genky, uno sviluppatore asiatico innamorato di Ruby il tutto è, non solo possibile, ma addirittura semplice da realizzare.
- #1: Creiamo il nostro progetto
- $ rails real_chat
- #2: Installiamo la gemma di shooting_star
- $ gem install shooting_star
- #3: Spostiamoci nella directory del progetto
- $ cd real_chat
- #4: Inizializziamo il server
- $ shooting_star init
- #5: Generiamo il backend
- $ ruby script/generate meteor
- #6: Usiamo lo scaffold messo a disposizione da shooting star per assaggiarne la potenza
- $ ruby script/generate chat
- #7: Lanciamo il web server
- $ ruby script/server
- #8: Lanciamo il push server
- $ shooting_star start
Con pochi comandi e nemmeno una riga di codice abbiamo ottenuto una piccola chat funzionante tramite push.
http://localhost:3000/chat per vederla all'opera!
Volendo possiamo personalizzare la view o meglio ancora studiarne il codice per imparare ad usare i nostri servizi push cosa che nei prossimi giorni farò con attenzione per riportare da queste parti le mie conclusioni. :)


