Le applicazioni Web 2.0 sono diverse dalle normali applicazioni Web. Sono più veloci, più eleganti e più funzionali. Per l'utente sono divertenti da usare e allo sviluppatore offrono molte più soluzioni di programmazione. Sono Francesco Caccavella, ed oggi vedremo assieme alcune delle tecnologie basate su standard comuni che rendono un'applicazione Web 2.0.
Cominciamo dall'interfaccia: quella di Google Maps è costruita come una qualsiasi pagina Web. È composta, oltre che da una manciata di immagini da una buona porzione di codice HTML, da molti fogli di stile CSS e da molto codice JavaScript Il codice però è molto strutturato, la separazione fra contenuti HTML, stili CSS e logica di programmazione è netta.
Il controllo di tutta la logica dell'applicazione dal lato dell'utente è affidato a JavaScript le cui funzioni sono memorizzate direttamente nel browser all'atto del caricamento della pagina. In un'applicazione Web 1.0, come ad esempio la mail di Libero il codice HTML è grande circa quattro volte il codice codice JavaScript. In un'applicazione Web 2.0 molto complessa come Google Maps, il codice HTML è circa cinque volte più piccolo del codice JavaScript.
JavaScript viene utilizzato sia per l'interazione con l'applicazione sia per la gestione dei dati. Cliccando ad esempio sulla semplice funzione zoom di Google Maps, l'applicazione esegue circa 10 mila operazioni JavaScript in meno di mezzo secondo, utilizzando centinaia di funzioni. Le funzioni modificano la porzione della pagina che ci interessa e scaricano dal server le immagini della nuova zona ricomponendole sulla mappa.
Per gestire l'interfaccia JavaScript manipola il modello del documento: il DOM Immaginate il documento come un elenco di oggetti identificati da dei nomi: pulsante, lista, tabella. Questi nomi sono memorizzati nel browser Per modificare uno, e solo uno, di questi oggetti con JavaScript basterà cambiare al volo le proprietà di questi nomi. Se vogliamo, come in Google Reader, evidenziare in giallo il post preferito basterà associare al nome della stellina il cambiamento dell'immagine.
Ma JavaScript nelle moderne applicazioni manipola anche i dati ricevuti. In Gmail, anche quando l'utente non esegue nessuna operazione, l'applicazione è sempre in movimento ed esegue continue chiamate al server per verificare l'arrivo di nuove mail. Queste chiamate sono eseguite in sottofondo da funzioni JavaScript e i dati spediti indietro dal server sono in semplice formato testuale che viene letto, elaborato e presentato sull'interfaccia sempre con JavaScript.
Estrema velocità dell'interfaccia e libera circolazione dei dati sono le due maggiori prerogative delle applicazioni Web 2.0. Per mettere in comunicazione due applicazioni si fa sempre più ricorso ai Web service Un Web service non è altro che una tecnologia che consente a due diverse applicazioni Web di comunicare tra loro attraverso il semplice protocollo http quello che usa il comune navigatore per visualizzare le pagine Web.
Il protocollo proposto dal W3C per accedere ai servizi di un altro web service è SOAP SOAP è basato su XML ed è piuttosto complesso: i messaggi sono formattati in modo molto strutturato e l'architettura di implementazione prevede altri servizi Per ottenere lo stesso risultato molte applicazioni Web, come quelle di Yahoo!, utilizzano REST
Questa richiesta che state guardando in video è una richiesta REST al web service di ricerca immagini di Yahoo! Il formato XML indica tutti i parametri dell'informazione: il titolo, le dimensioni, la fonte originale, la dimensione e il formato dell'immagine. Grazie ad XML le informazioni sono strutturare e perfettamente leggibili da un'altra applicazione utilizzando linguaggi lato server, come PHP o ASP, o lo stesso JavaScript.
Come potete vedere, i dati pubblicati con una richiesta REST sono molto simili ai dati grezzi dei feed RSS poiché entrambi sono basati su XML. Ma i dati possono essere ancora più semplificati. JSON è un formato testuale che ad una richiesta non formatta i dati da inviare in formato XML ma in una sorta di codice strutturato ad oggetti, compatibile con JavaScript. I dati che viaggiano da un'applicazione ad un altra, o anche nella stessa applicazione, sono più leggeri e la loro interpretazione più veloce.
Oltre all'interfaccia, il cuore delle applicazioni 2.0 è l'ubiquità dei dati. In ambito aziendale si stanno imponendo le architetture basate sui servizi o SOA sono, semplificando, sistemi informatici che espongono i dati attraverso servizi e facilitano il loro passaggio tra applicazioni diverse. Pensiamo ad un elenco di clienti: se lo rendiamo accessibile come servizio potrà passare senza difficoltà dall'applicazione per le fatturazioni a quella per l'invio degli auguri di Natale