• Non ci sono risultati.

CAPITOLO 2 NUOVE TECNOLOGIE E SISTEMA FORMATIVO DALLA

3.4 La tecnologia del Web 2.0 e le Rich Internet Applications (RIA)

Come già evidenziato in precedenza, il Web 2.0 non è una nuova tecnologia, ma l’evoluzione del “vecchio Web”; il suo sviluppo è stato accompagnato dalla maturazione e diffusione di tecnologie e funzionalità che hanno avuto il pregio di migliorare in maniera tangibile l’interazione tra gli utenti. Costituito inizialmente da siti e pagine con grafica minima ed essenziale e soprattutto statiche, il cui aggiornamento richiedeva un elevato ed oneroso lavoro manuale, il Web di prima versione, come lo si è finora utilizzato, si è progressivamente trasformato grazie all’introduzione dei database, dei sistemi di gestione dei contenuti (CMS), dei fogli di stile (CSS252) per gestire la grafica delle pagine, dei linguaggi server side e di scripting che hanno portato alla dinamicità dei siti facilitandone le relative operazioni di amministrazione e gestione, fino ad arrivare alle nuove applicazioni denominate RIA (Rich Internet Applications). Le RIA sono applicazioni Web la cui potenzialità sta nell’offrire un livello di interattività e usabilità simile a quello che da sempre caratterizza le applicazioni residenti sul computer locale

dell’utente. Esse permettono di effettuare navigazioni interattive e coinvolgenti grazie alla velocità di risposta alle richieste degli utenti, conseguenza di un

response rate, ovvero la velocità di risposta del server sul quale risiedono

applicazioni e database, quasi nullo ottenuto tramite un diverso bilanciamento del carico applicativo tra il sistema che utilizza il servizio (client) e quello che lo fornisce (server).

A differenza delle tradizionali applicazioni client-server che prevedono una richiesta da parte del client e l’attesa della risposta da parte del browser, nella progettazione delle RIA le istruzioni vengono elaborate direttamente sul client (il browser dell’utente), mentre il resto dei dati e dell’applicazione risiedono sul server il quale beneficia di una riduzione dei compiti da svolgere. Questo fa si che alle azioni di richiesta degli utenti corrispondano delle risposte in modo quasi istantaneo, così come avviene per i software installati sul disco locale, aggiornando solo una parte del documento ed evitando la noiosa attesa dovuta al trasferimento delle informazioni e al caricamento completo della pagina (paging). La tecnologia grazie alla quale le RIA si comportano come un’applicazione desktop è denominata AJAX253, acronimo di Asynchronous JavaScript and XML, ed indica una particolare tecnica cross-browser, ovvero compatibile con diversi tipi di browser, che prevede l’utilizzo congiunto di HTML, XML e JavaScript, al fine di consentire al client di richiamare informazioni lato server in modo veloce e trasparente. Benché l’acronimo che individua tale tecnologia sia stato coniato nel 2005, già negli anni precedenti Microsoft aveva sviluppato delle tecniche simili, con l’introduzione dell’oggetto iframe prima e della tecnologia Remote Scripting poi. Solo con l’avvicinamento di Google a questa tecnologia, AJAX ha acquisito considerazione nella comunità degli sviluppatori: applicazioni quali Gmail254, Google Suggest255 e Google Maps256 hanno stimolato i vari programmatori a studiare e proporre soluzioni simili. Tecnicamente alla base di AJAX vi è l’utilizzo dell’oggetto XMLHttpRequest il quale permette di richiedere una risorsa

253 Il termine è stato indicato per la prima volta da Jesse Jame Garrett, esperto Web e presidente

della società di consulenze americana Adaptive Path, in un articolo su http://adaptivepath.com/publications/essays/archives/000385.php

254

http://mail.google.com/

255 Funzionalità che suggerisce agli utenti Google i termini da ricercare mentre si inizia a digitare

le parole nel campo di ricerca

tramite il protocollo http in formato XML, in modo asincrono; questo vuol dire che la risposta, sempre in formato XML, viene ricevuta senza ricaricare la pagina. La figura seguente illustra la differenza tra una richiesta http tradizionale ed una gestita con AJAX.

Figura 3.12 – Differenza tra un a richiesta Http tradizionale ed una tramite AJAX. Fonte: http://www.mrwebmaster.it/ajax/guide/funzionamento-ajax_545.html

La presenza dell’AJAX engine, solitamente costituito da una porzione di codice JavaScrpit, che funge da intermediario tra il client ed il server permette di gestire il flusso dati in entrata ed uscita creando una comunicazione asincrona. La richiesta dell’utente, generata solitamente cliccando su un pulsante o altro, viene inoltrata al codice JavaScript il quale risponderà con dati e funzioni precaricate oppure, in assenza di essi, a richiederli al server senza che l’utente se ne accorga257. Va precisato che la realizzazione delle RIA non è strettamente legata ad AJAX, in quanto esse possono essere basate anche su Flash o piattaforme emergenti quali Adobe Flex258 oppure OpenLaszlo259.

La presenza e l’utilizzo crescente delle RIA, considerate da Accenture260 come una delle dieci più importanti tecnologie emergenti per il periodo 2006-2010, porta il Web a diventare una piattaforma (Web as a platform), dove usufruire di servizi con un’elevata interazione bidirezionale, in alternativa ai tradizionali

257

Grivet Foiaia L., Web 2.0. Guida al nuovo fenomeno della rete, op. cit.

258 http://www.adobe.com/it/products/flex/ 259 http://www.openlaszlo.org/

sistemi operativi, per lo più “chiusi” e proprietari, installati sui PC degli utenti. Per quest’ultimi le applicazioni Web 2.0 sono viste come servizi (software as a

service), ovvero utilizzabili non secondo le modalità tradizionali (acquisto,

implementazione, personalizzazione, mantenimento, ecc.) ma tramite l’accesso a soluzioni altamente flessibili, facilmente configurabili e rese accessibili attraverso servizi261. Questo concetto comporta un enorme cambiamento nelle fasi di rilascio del software: il tradizionale ciclo di vita viene sostituito da un processo di miglioramento continuo individuato con il termine “beta perpetua” in cui gli utenti possono essere coinvolti come co-sviluppatori (co-developer) orientando e guidando lo sviluppo di nuove funzionalità al fine di soddisfare le esigenze più urgenti.

Lo sviluppo del Web in questa direzione è facilitata dallo sviluppo dei Web service e del mashup. Un Web service è un sistema software in grado di mettersi al servizio di un’applicazione comunicando su di una medesima rete tramite il protocollo Http262. Le applicazioni che vi si collegano possono usufruire delle funzioni messe a disposizione dell’utente. Tramite i Web service, quindi, una funzionalità presente all’interno di un sito Web può essere riprodotta su un altro sito dopo averla richiesta tramite il linguaggio XML e le tecnologie SOAP (Simple Object Access Protocol) e REST (REpresentational State Tranfer) secondo l’ottica del Web 2.0 di riutilizzare ciò che è disponibile su altri siti. All’interno di un’architettura orientata ai servizi (SOA, Service Oriented

Architetture) vengono individuati tre soggetti: colui che mette a disposizione il

servizio (Service Provider) pubblicizzato su un registry, il Service Broker che si occupa della gestione di tale registro ed il soggetto che invoca il servizio (Service

Requestor).

261 http://www.cwi.it/blogs/agilebiz/?p=37

Figura 3.13 – Architettura SOA

Fonte: Pernici B., Plebani P., Un’introduzione ragionata al mondo dei Web service, in Mondo digitale - n.1, Marzo 2004

Il “rimescolare dati” e servizi online viene indicato con il termine mashup. Esso indica nuove applicazioni Web nate dall’integrazione dinamica di dati, servizi e informazioni provenienti da applicazioni appositamente predisposte all’operazione di miscelatura263. Le operazioni di mashup sono alla portata di tutti gli sviluppatori, grazie all’utilizzo di API (Application Programming Interface), interfacce di programmazione richiamabili via Web tramite i comuni linguaggi di scripting, pubblicamente rese disponibili in modo gratuito. Importanti siti come Google, eBay, Amazon, YouTube, Yahoo!, forniscono le proprie API dando la possibilità anche a persone con minima competenza nel campo della programmazione di fare mashup tra più applicazioni. Sono anche disponibili alcuni servizi e/o software che permettono di creare mashup in modalità visuale, ovvero senza dover editare nemmeno una riga di codice nei vari linguaggi di programmazione, come Google Mashup Editor264, Microsoft Popfly e Yahoo Pipes265, senza contare una vasta quantità di siti266 contenenti articoli, tutorial, guide e suggerimenti sull’argomento.

263 Ciscato D., Trecordi V. (2009), Dall’Internet delle persone a quello degli oggetti – il futuro

delle reti IP, in Mondo digitale – n.2, Giugno 2009.

264 http://code.google.com/gme/ 265 http://pipes.yahoo.com/pipes/