Il Panorama tecnologico web 2.0 - Corso di elementi di informatica e

UNIVERSITÀ DEGLI STUDI DI NAPOLI – FEDERICO II
FACOLTÀ
DI
SOCIOLOGIA - CORSO
DI
LAUREA
IN
CULTURE DIGITALI
E
DELLA COMUNICAZIONE
Il Panorama tecnologico
web 2.0
Le infrastrutture tecnologiche del web di seconda
generazione
Elementi di informatica e web – a.a. 2012/2013
di Guido Fusco
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
XML e XHTML
Mentre l’HTML serve per visualizzare i dati e si focalizza su come i dati devono apparire (con
un gruppo limitato di tag) l’XML serve per descrivere i dati e si focalizza sul cosa contiene il
dato (con un gruppo di tag che definisce all’occorrenza l’utente)
<?xml version="1.0"?>
<GATTO>
<NOME>Silvestro</NOMEE>
<RAZZA>Siamese</RAZZA>
<ETA’>6</ETA’>
<LICENZA>Izz138bod</LICENZA>
<PROPRIETARIO>Antonio Rossi</PROPRIETARIO>
</GATTO>
Nel XHTML non ci sono nuovi tag, nulla di rivoluzionario rispetto all’HTML 4.0. Eppure, quello
che è attualmente il linguaggio raccomandato dal Consortium per la realizzazione di pagine
web, è davvero un passo decisivo e fondamentale.
•  Codice pulito
•  Portabilità
•  Estendibilità
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 :
•  dimensione interattiva;
•  multimedialità;
•  velocità utente.
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.
Codici prima e dopo la richiesta
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.
Codice HTML prima di una
richiesta
Codice HTML dopo la
Il Client inoltra la richiesta mediante HTTP
risposta del server
Il Server invia al client le varie componenti del documento
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.
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.
“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”
Ajax engine
Confrontato ad altri sistemi di pagine web, Ajax si distingue principalmente per tre
caratteristiche
browser client
USER INTERFACE
JavaScript call HTML+CSS data
browser client
USER INTERFACE
1.  Utilizza un motore (ajax engine)
client-side come intermediario tra
la UI (Interfaccia Utente) e il server.
Ajax engine
2.  L’attività dell’utente fa in modo che
HTTP request
HTML+CSS data
HTTP request
XML data
JavaScript si rivolga al motore
evitando di chiedere al server il
caricamento di una pagina
WEB SERVER
WEB or XML SERVER
3.  Impiega il linguaggio XML tra server
Backend processing
Backend processing
Server-side system
Server-side system
CLASSIC
AJAX
Web application model
Web application model
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 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
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
Mashup
Mashup
Il Mashup è un sito o un'applicazione web di tipo ibrido, cioè tale da includere
dinamicamente informazioni o contenuti provenienti da più fonti per creare un servizio
completamente nuovo.
Nuovo Dinamico Il mashup non avrebbe potuto svilupparsi nel web 1.0 proprio per la mancanza delle fonti,
dei contenuti che l'utente può produrre e mette a disposizione degli altri utenti in rete e la
mancanza soprattutto della cultura di circolazione dei dati, anche in formato open,
cultura che si fa strada solo negli ultimi anni.
API (Application Programming Interface)
Per creare un mashup è essenziale poter ricavare informazioni dai siti web (o almeno
poter convertire in informazione strutturata il contenuto del sito una volta estratto).
Il meccanismo più efficace per accedere a un servizio web è probabilmente la sua API
Application Programming Interface (Interfaccia di Programmazione di un'Applicazione)
Si indica ogni insieme di procedure disponibili al programmatore, che permette ad altri
programmi di accedere ai servizi offerti da un’applicazione.
Ma perché un sito dovrebbe fornire API pubbliche ed esporre le proprie informazioni –
quindi la fonte del proprio valore – gratuitamente online?
Permettere agli utenti di manipolare intensivamente i contenuti di un sito web o di invocare
i suoi servizi da un client di un’applicazione esterna, è un ottimo modo per testare
l’applicazione: quando centinaia (o addirittura migliaia) di utenti cominciano a sviluppare
servizi web sfruttando i contenuti di un sito, questo è di fatto sottoposto a un test su larga
scala, e presumibilmente, i bachi contenuti nell’applicazione verranno scoperti e sanati.
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).
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."
Cloud computing
Cloud computing
“Cloud computing si intende un insieme di tecnologie
informatiche che permettono l'utilizzo di risorse
hardware (storage, CPU) o software distribuite in
remoto.”
Nel cloud computing le capacità di elaborazione e di storage vengono fornite da provider
specializzati, attraverso internet, a una moltitudine di utenti
Guardare il video: http://www.youtube.com/watch?v=5ZSCZzo1BnI
funzionamento
Nuova piattaforma
di
elaborazione
Vecchia piattaforma
di
elaborazione
Internet
…si sposta
dalla rete come insieme di dati…
dai “fat client”…
dal software come prodotto…
dal software come release…
…alla rete come insieme di applicazioni
…al “thin client”
…al software come servizio
…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
Evoluzione
Internet
Mainframe computing
1 computer / molti utenti
1965
Client-server computing
molti computer / molti utenti
1985
Cloud computing
internet / moltissimi utenti
2005 +
Alcuni servizi cloud
Saleforce Google Microso6 Zoho Yahoo Apple Longjump Definizione di Tipologie di Cloud computing
Si possono distinguere tre tipologie fondamentali di Cloud Computing
q  SaaS (Software as a Service) - Il Software as a Service è probabilmente quello più
facilmente comprensibile e di più largo consumo.
Il modello di servizio Software as a
Service prevede che il servizio offerto sia un'applicazione software che può essere
utilizzata su richiesta. In questo caso, il fornitore del servizio installa l'applicazione nei propri
data center, e fornisce agli utenti un’interfaccia per utilizzarla, come ad esempio
un’interfaccia web.
q  PaaS (Platform as a Service) - Il modello di servizio Platform as a Service prevede che il
fornitore del servizio metta a disposizione dell’utente un’interfaccia di programmazione
(API) con la quale l’utente può scrivere applicazioni che interagiscono con il servizio.
q  IaaS (Infrastructure as a Service) - Il modello di servizio Infrastructure as a Service prevede
che il servizio offerto consista in un’infrastruttura con capacità computazionale, di
memorizzazione, e di rete, sulla quale l’utente possa installare ed eseguire il software a lui
necessario, dal sistema operativo alle applicazioni. Quando acquisto un servizio IaaS, ho
a disposizione una virtualizzazione dell’hardware di un computer tradizionale: quindi ho
della CPU, della RAM, dello Storage e delle schede di rete con connettività.
I pro
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 contro
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.
Ubiquitous computing
Realtà aumentata
Ubiquitous Computing (Ubicomp), Pervasive Computing, Internet every-where, Internet of
Things (IoT). Numerosi nomi sono usati per descrivere sinteticamente il nuovo paradigma di
computazione.
Un percorso nello sviluppo tecnologico in base al quale, attraverso la rete Internet,
potenzialmente ogni oggetto - smart things (oggetto intelligente) - della nostra esperienza
quotidiana acquista una sua identità nel mondo digitale, può essere localizzato, e dotato di
capacità d’interazione con l’ambiente circostante e di elaborazione dati
L’Ubiquitous Computing è quasi l’opposto della realtà virtuale, Infatti, se la realtà virtuale
mette le persone dentro un “computer-generated world”, il Pervasive Computing obbliga i
computer a vivere qui fuori, nel mondo, insieme alle persone.
QR Code (Quick Read Code)
Un QR Code è la versione evoluta dei codici a barre: si tratta sostanzialmente di
un’immagine contenente dei dati in un formato facilmente acquisibile dalla fotocamera di
uno smartphone o cellulare di ultima generazione.
I QR Code, a differenza dei codici a barre, possono contenere non solo semplici sequenze di
numeri, ma possono essere associate altre informazioni.
Ad esempio:
•
URL sito web;
•
Testo (pubblicitario, slogan, vario, ecc..);
•
Numero telefonico;
•
Collegamento con i propri Social Network;
•
Indirizzi o percorsi associati a Google Maps;
•
Messaggi SMS;
•
Collegamenti a video su Youtube;
•
Accesso Wi-Fi;
Realtà aumentata
La realtà aumentata è La Realtà Aumentata, (Augmented Reality, abbreviata solitamente
con l’acronimo AR) è il risultato della sovrapposizione di oggetti virtuali al mondo reale.
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.
h>ps://www.youtube.com/watch?v=tnRJaHZH9lo