Il Panorama tecnologico web 2.0€¦ · fonti di dati non correlate), ... linguaggio standard XML...
Transcript of Il Panorama tecnologico web 2.0€¦ · fonti di dati non correlate), ... linguaggio standard XML...
Le infrastrutture tecnologiche del web di seconda generazione
Il Panorama tecnologico web 2.0
Elementi di informatica e web – a.a. 2011/2012 di Guido Fusco
UNIVERSITÀ DEGLI STUDI DI NAPOLI – FEDERICO II FACOLTÀ DI SOCIOLOGIA - CORSO DI LAUREA IN CULTURE DIGITALI E DELLA COMUNICAZIONE
Licenza Creative Commons
Il presente materiale è pubblicato con licenza Creative Commons 3.0 Italia
“Attribuzione - Non commerciale - Condividi allo stesso modo”
http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it
Panorama tecnologico del Web 2.0
Il panorama tecnologico del Web 2.0, oltre che complesso, è in continua evoluzione. Gli
approcci che contraddistinguono questa nuova generazione del web, vanno oltre a
quello che noi, comunemente, intendiamo come sito web.
Cercando di dare ordine ad un mondo ancora in evoluzione, possiamo elencare alcune
delle tecniche che tipicamente compongono un sito Web 2.0:
q R.I.A. (Rich Internet Application), come AJAX
q XHTML (linguaggio di marcatura) e CSS (linguaggio di stile)
q RSS (gruppi di aggregazione)
q Mashup
q Cloud computing
q Realtà aumentata
Applicazioni RIA
Le RIA o (Rich Internet Application) sono applicazioni web dalle caratteristiche simili alle
applicazioni desktop (cioè residenti sul computer), hanno dimostrato di saper migliorare
l’interattività delle applicazioni web, fornendo all’utente maggiori esperienze d’uso.
In un certo senso le RIA rappresentano una generazione di applicazioni che permette una
“user experience” totalmente rinnovata, fondata sul meglio delle caratteristiche funzionali
e progettuali che finora erano prerogativa alternata del web o delle applicazioni desktop.
Le RIA si caratterizzano per la :
Infatti la parte dell'applicazione che elabora i dati è trasferita a livello client e fornisce una
pronta risposta all'interfaccia utente, mentre la gran parte dei dati e dell'applicazione
rimane sul server remoto, con notevole alleggerimento per il computer utente.
• dimensione interattiva;
• multimedialità e per la velocità utente;
• velocità utente.
Codici prima e dopo la richiesta
Il Client inoltra la richiesta mediante HTTP
Server Il Server invia al client le varie componenti del documento
Codice HTML prima di una
richiesta
Codice HTML dopo la
risposta del server
Spesso il codice della pagina da cui prende il via la richiesta è in gran parte simile a quello
del documento in cui viene mostrata la risposta dell’elaborazione del server.
Ciò comporta uno spreco inutile di banda e un’interfaccia utente molto più lenta di
quanto potrebbe essere.
Ajax
Il linguaggio client - side più importante è sicuramente JavaScript. Nonostante in principio
fosse stato scarsamente utilizzato, unito con altri sviluppi in Dynamic HTML è riuscito a
costruire un sistema RIA molto diffuso.
“Google Suggest e Google Maps, sono due esempi di un nuovo approccio alle applicazione web che noi ad Adaptive Path abbiamo chiamato Ajax. Il nome è un’abbreviazione per Asynchronous JavaScript + XML e rappresenta un passo fondamentale verso quello che sarà possibile sul web”
Nonostante queste tecnologie circolassero negli ambienti informatici già da molto tempo,
fu Google che, con applicazioni come Google Map e Google Suggest, pose per primo
l’attenzione su questo HTML dinamico.
James Garrett di Adaptive Path diede un nome a questo modello: Ajax.
Ajax engine
Confrontato ad altri sistemi di pagine web, Ajax si distingue principalmente per tre
caratteristiche
browser client
browser client
WEB or XML SERVER
USER INTERFACE
USER INTERFACE
WEB SERVER
Ajax engine
JavaScript call HTML+CSS data
HTTP request XML data HTML+CSS data HTTP request
Backend processing
Backend processing
Server-side system Server-side system
CLASSIC
Web application model
AJAX
Web application model
1. Utilizza un motore (ajax engine)
client-side come intermediario tra
la UI (Interfaccia Utente) e il server.
2. L’attività dell’utente fa in modo che
JavaScript si rivolga al motore
evitando di chiedere al server il
caricamento di una pagina
3. Impiega il linguaggio XML tra server
e motore
Comunicazione asincrona e sincrona
Il termine comunicazione asincrona, significa che si ottiene la risposta da parte del server
quando disponibile, senza aspettare l’apertura di una nuova pagina
Il motore ajax, che consiste di funzioni JavaScript e non richiede alcun plug-in o
installazione da parte dell’utente, è responsabile della comunicazione tra utente e server
e si occupa sia di ciò che deve apparire sull’interfaccia utente, sia di trasmettere le
richieste al server con linguaggio XML
Il modello di una classica applicazione web (comunicazione sincrona faceva in modo
che le azioni dell’utente dessero il via ad una richiesta, veicolata dal protocollo HTTP verso
il server. Questo elaborava i dati e restituiva i risultati al cliente, con una pagina HTML
Mashup
Un marchio distintivo della seconda generazione di applicazioni Web sono i mashup
Rappresentano un genere davvero innovativo di applicazioni Web interattive che si
interfacciano con dati presi da fonti esterne per creare servizi totalmente nuovi e
rivoluzionari.
L’etimologia di questo termine, dato che è stato preso in prestito dalla scena della pop
music, dove un mashup è una nuova canzone che mixa le tracce vocali e strumentali di
due brani differenti (solitamente appartenenti a generi eterogenei). Come queste canzoni
"pop bastarde", un mashup è una originale ed innovativa unione di contenuti (spesso da
fonti di dati non correlate), fatte per il consumo umano.
Le tecnologie correlate ai Mashup
Le due principali tecnologie che stanno facilitando lo sviluppo dei mashup.
q API (Application Programming Interface)
Si indica ogni insieme di procedure disponibili al programmatore, che permette ad altri
programmi di accedere ai servizi offerti da un’applicazione.
Per esempio, si può utilizzare il codice API di Google Maps per inserire
intere mappe di Google sui propri siti web
q AJAX (Asynchronous JavaScript and XML)
Alcune tipologie di Mashup: mapping
q Mapping
All’interno dell’incredibile mole di dati su cose ed attività che si vanno raccogliendo,
contengono anche informazioni geografiche possono essere rappresentati anche
attraverso l’uso delle mappe.
Uno degli eventi che ha catalizzato l’avvento dei mashup è stato l’introduzione da parte
di Google delle Google Maps API.
Il fatto che queste API fossero pubbliche ed aperte ha permesso agli sviluppatori web
(nonché agli hobbisti, agli smanettoni e ad altri) di mescolare tutti questi tipi di dati
(qualsiasi cosa dai disastri nucleari alle mucche della CowParade di Boston) e di mostrarli
su delle mappe.
• Google (Google Maps)
• Microsoft (con Virtual Earth);
• Yahoo (con Yahoo Maps);
• AOL (MapQuest).
Alcune tipologie di Mashup: Video e foto
L’emergere di fenomeni come siti di foto hosting e social
networking come Flickr e youtube con le API disponibili hanno
permesso una varietà incredibile di mashup.
Grazie al fatto che coloro che caricano le foto, vi associano dei
metadati (come chi ha scattato la foto, cosa rappresenta la foto,
quando e dove è stata scattata, ecc), coloro che ideano i
mashup possono unire le foto con altre informazioni che possono
essere associate con i metadati.
q Video e foto
RSS (Really Simple Syndacation)
L'RSS, acronimo di Really Simple Syndacation, è un sistema basato sul
linguaggio standard XML per la distribuzione di contenuti; è un linguaggio che
permette di distribuire con grande facilità i contenuti di un sito e di riaggregarli
e presentarli sotto altre forme.
Essi, infatti, consentono di monitorare i contenuti di un sito e di usufruirne anche al di fuori del
sito stesso avvisandoci in tempo reale ogni qualvolta vi siano degli aggiornamenti.
Gli aggregatori RSS, detto anche lettore di feed: sono software o
applicazioni Web che raccolgono contenuti web come titoli di
notiziari, blog, podcast, e vlog in un unico spazio per una
consultazione facilitata.
Gli aggregatori riducono il tempo e gli sforzi necessari per
seguire regolarmente aggiornamenti di un sito web e
permettono di creare uno spazio di informazione unico, in
pratica un "notiziario personale."
Nel cloud computing le capacità di elaborazione e di storage vengono fornite da provider
specializzati, attraverso internet, a una moltitudine di utenti
“Cloud computing si intende un insieme di tecnologie
informatiche che permettono l'utilizzo di risorse
hardware (storage, CPU) o software distribuite in
remoto.”
(Wikipedia)
Guardare il video: http://www.youtube.com/watch?v=5ZSCZzo1BnI
Cloud computing
Vecchia piattaforma di
elaborazione
dalla rete come insieme di dati… …alla rete come insieme di applicazioni
dai “fat client”… …al “thin client”
dal software come prodotto… …al software come servizio
dal software come release… …al miglioramento continuo
dal lavoro individuale… …al lavoro cooperativo
dalla centralità delle funzioni… …alla centralità dei dati
dall’era di Microsoft… …all’era di Google
Nuova piattaforma di
elaborazione
Internet
…si sposta
funzionamento
Internet
Mainframe computing 1 computer / molti utenti
Client-server computing molti computer / molti utenti
Cloud computing internet / moltissimi utenti
1965 1985 2005 +
Evoluzione
Si possono distinguere tre tipologie fondamentali di Cloud Computing
q SaaS (Software as a Service) - Consiste nell'utilizzo di programmi in remoto, spesso
attraverso un server web.
q PaaS (Platform as a Service) - È simile al SaaS, ma, invece che uno o più programmi
singoli, viene eseguita in remoto una piattaforma software che può essere costituita da
diversi servizi, programmi, librerie, etc.
q IaaS (Infrastructure as a Service) - Utilizzo di risorse hardware in remoto. Questo tipo di
Cloud è quasi un sinonimo di Grid Computing, ma con una caratteristica imprescindibile:
le risorse vengono utilizzate su richiesta al momento in cui un cliente ne ha bisogno, non
vengono assegnate a prescindere dal loro utilizzo effettivo
Definizione di Tipologie di Cloud computing
• Accessible Search • AdSense • AdWords • Alerts Google • Google Analytics • Google Answers • Google Calendar, • Google Talk, • Google Page Creator • Art Project • Block Notes • Blog Search • Blogger • Google Bookmarks • Google Book Search • Google Buzz • Gmail. • Google Catalogs • Google Checkout • Chrome Cloud Print • Google Desktop • Google Docs • Google Earth • Health • iGoogle • Google Notebook • Picasa • Product Search • Google Wave • Google Zeitgeist
SaaS (Software as a Service) PaaS (Platform as a Service)
• Accessible Search • AdSense • AdWords • Alerts Google • Google Analytics • Google Answers • Google Calendar, • Google Talk, • Google Page Creator • Art Project • Block Notes • Blog Search • Blogger • Google Bookmarks • Google Book Search • Google Buzz • Gmail • Google Catalogs • Google Checkout • Chrome Cloud Print • Google Desktop • Google Docs • Google Earth • Health • iGoogle • Google Notebook • Picasa • Product Search • Google Wave • Google Zeitgeist
Google labs
Esempi di cloud computing
• Servizi di storage
• Servizi di office automation
• Servizi di web building
• Servizi di social network building
Esempi di Cloud computing
cloud computing strorage sono piattaforme che offrono un servizio di file hosting e
sincronizzazione automatica basate su tecnologia cloud computing
Altri servizi di storage: • http://www.mozy.com • http://www.box.net • http://www.wuala.com • http://www.rapidshare.com
http://www.dropbox.com/
DropBox è un software multi-piattaforma (PC, Mac e Linux) che
semplifica notevolmente la condivisione ed il salvataggio dei
propri file online. Attraverso questo programma è possibile
utilizzare un hard disk remoto senza l’incombenza di imparare
l’uso di nuove interfacce o nuovi comandi: il software è
completamente trasparente all’utente finale così come accade
per iDisk di Apple.
Video dimostrativo: https://www.dropbox.com/screencast
Cloud computing storage
cloud computing office automation sono applicazioni web che forniscono in una sola
piattaforma online la possibilità di modificare ed elaborare i propri documenti, mediante
un’interfaccia familiare e nota agli utenti che riescono a usarle in modo semplice e
immediato
Thin client
Da<
Applicazioni
Da<
Applicazioni
Fat client
Esempio:
Esempio:
Cloud computing automation
cloud computing office
q Nessun software da scaricare e installare sul proprio computer
q Nessuna necessità di upgrading del software quando vengono aggiunte nuove funzioni o
eliminati problemi esistenti
q È sufficiente un thin client con minimi requisiti hardware
q Si può accedere ai propri documenti praticamente da ogni computer dotato di una
connessione a banda larga
q È possibile condividere i documenti con altri utenti, senza bisogno di un proprio server
q Non si deve acquistare una licenza software (e i suoi upgrade). Ci si abbona al servizio
(SaaS); in alcuni casi il servizio è gratuito
q Nessun problema in caso di crash del proprio computer: i documenti sono al sicuro sul
server.
I pro
cloud computing office
q Sicurezza dei dati: tutti i propri dati risiedono su un server remoto, di cui non si ha il
controllo (anche se si possono effettuare regolari backup).
q Velocità: Le office suite attualmente disponibili richiedono spesso una connessione a
banda larga
q Completezza funzionale: Attualmente, le funzioni fornite dalle suites online sono meno
complete di quelle fornite dalle suite tradizionali.
q Non è agevole lavorare off-line: per ricevere e trasmettere le modifiche occorre essere
connessi.
I contro
ü Semplici wordprocessor, spreadsheet e presentation gratuiti, web based, utilizzabili dal
proprio browser ü Nessun software da installare sul client; per default i documenti vengono salvati sui server
Google ü i propri documenti sono potenzialmente accessibili da qualunque PC in rete
ü Supporto al lavoro cooperativo in rete (condivisione, accesso, editing contemporaneo,
vedi video seguente)
ü I documenti possono essere pubblicati in rete (URL)
ü Servizio “premium” a pagamento (per aziende)
Google docs
• Più di un milione di utenti
• Versione base tutta on-line, gratuita
• Anche funzioni di blog, e-commerce, adsense;
• Dopo aver finito sarà possibile scaricare i files creati (per utilizzarli sul proprio spazio web) o
decidere di metterli online sul server weebly: in questo caso il vostro sito sarà raggiungibile
all’indirizzo nomescelto.weebly.com
cloud computing web site builder sono applicazioni web che forniscono in una sola
piattaforma online la possibilità creare siti web dinamici senza che gli utenti abbiano
conoscenza o competenze specifiche
Esistono numerose piattaforme che offrono questo servizio.
Un elenco di 45 web builders: http://tinyurl.com/siti-web
La caratteristica principale che weebly offre è il servizio drag&drop , ovvero
per solo trascinamento è possibile comporre il proprio sito web
Cloud compiting web site builder
• Permette di costruire social network “private” • Nessun software da scaricare: costruzione e accesso vengono fatti online • Nessuna esperienza di programmazione necessaria • Oltre mezzo milione di social networks attive
cloud computing social network sono applicazioni web, che permettono di creare siti web
sociali o reti sociali (social network) senza avere cognizioni di programmazione.
Creato da Marc Andreessen, colui il quale ha già scritto il proprio nome nella
storia del web in qualità di inventore del primo browser (Mosaic) e di
fondatore del mito Netscape.
Cloud computing social network
28
Interfaccia Desktop
Documenti; Cartelle;
Applicazioni
Alta Usabilità
Applicazioni sembrano garantire
un’esperienza utente più ricca di ordini
di grandezza rispetto alle applicazioni
web tradizionali
Ad esempio l’editing di un wordprocessor
Interfaccia Cloud
Documenti; Cartelle;
Applicazioni
Usabilità???
Web tradizionali Web cloud computing
Per reggere il paragone bisogna pensare a
“qualcosa” che permette di distinguersi, non solo
in piacevolezza o l’appeal estetico, ma soprattutto
per il modo semplice, diretto e coinvolgente
attraverso il quale il Cliente fruisce il servizio.
Tecnologia RIA a servizio del cloud
Realtà aumentata
La realtà aumentata è un'applicazione web-based di ultima generazione che consente di
visualizzare direttamente in streaming una sovrapposizione fra elementi reali e virtuali
(animazioni 3d, filmati, elementi audio e multimediali). La Realtà aumentata, può essere
fruita attraverso i monitor del pc dotati di webcam, grazie all'utilizzo di markers stampati.
L’utente non è più immerso in un ambiente virtuale realizzato al computer, sono le
informazioni ad “uscire” dal mondo virtuale ed invadere la realtà attraverso dispositivi che
permettono di aggiungere layer informativi al mondo fisico.