Il Panorama tecnologico del web 2.0

Università Degli Studi Di Napoli – Federico II
Dipartimento di Scienze Sociali - Corso di Laurea in Culture Digitali e Della Comunicazione
Il Panorama tecnologico
del web 2.0
Le infrastrutture tecnologiche del web di seconda generazione
Elementi di informatica e web – a.a. 2013/2014
di Guido Fusco
HTML
Un file in formato HTML è un file che, oltre a contenere il
testo che verrà visualizzato dal browser, contiene
anche dei comandi (racchiusi sempre tra i simboli "<" e
">" chiamati "tag") che associano al testo un
particolare attributo.
Generalmente l'aspetto di un tag è il seguente
<nome tag>Testo influenzato dal tag</nome tag>
Tag della head
• Metadata per convogliare informazioni utili ad
applicazioni esterne (es. motori di ricerca) o al
browser (es. codifica dei caratteri, utile per la
visualizzazione di alfabeti non latini)
•
Metadata di tipo http-equiv per controllare
informazioni aggiuntive nel protocollo HTTP
•
Collegamenti verso file di servizio esterni (CSS, script,
icone visualizzabili nella barra degli indirizzi del
browser)
•
Inserimento di script (codice eseguibile) utilizzati dal
documento
•
Informazioni di stile (CSS locali)
•
Il titolo associato alla pagina e visualizzato nella
finestra principale del browser
Tag del Body
•
Intestazioni (titoli di capitoli, di paragrafi eccetera)
•
strutture di testo (testo indentato, paragrafi,
eccetera)
•
Aspetto del testo (grassetto, corsivo, eccetera)
•
elenchi e liste (numerate, generiche, di definizione)
•
Tabelle
•
moduli elettronici (campi compilabili dall'utente,
campi selezionabili, menu a tendina, pulsanti
eccetera)
•
collegamenti ipertestuali e ancore
•
layout generico del documento
•
Inserimento di immagini
•
Inserimento di contenuti multimediali (audio,
video, animazioni eccetera)
•
Inserimento di contenuti interattivi (script,
applicazioni esterne)
XHTML
Il 26 gennaio 2000 il World Wide Web Consortium (W3C) rilascia
la prima specifica del linguaggio di markup destinato a
sostituire l’HTML. Quel linguaggio si chiama XHTML.
La specifica di XHTML occupa una sola pagina. Non ci sono nuovi tag, nulla di rivoluzionario
rispetto all’HTML 4.0. Eppure, l’ XHTML è attualmente il linguaggio raccomandato dal Consortium
per la realizzazione di pagine web, è davvero un passo decisivo e fondamentale.
Il tempo dell'anarchia, del codice "sporco ma basta che funzioni", degli elementi proprietari
imposti è finito.
Le principali proprietà dell’XHTML: Codice pulito e ben strutturato
• Codice pulito e ben strutturato
Con XHTML, almeno nella sua versione strict, si torna a un
linguaggio che definisce solo la struttura.
Infatti, l’HTML è nato come linguaggio per definire la
struttura di un documento. Non ha nulla a che vedere
con la presentazione. Eppure, è stato “stiracchiato” da
tutte le parti, costretto a svolgere compiti per cui non è
stato creato. Il caso delle tabelle è quello macroscopico.
Sono nate per la presentazione di dati tabulari. Sono
state impiegate come l'unico mezzo per costruire il
layout della pagina.
Semplicemente, se inserite elementi non supportati (font,
larghezza per le celle di tabelle o margini per il body, per
citare solo alcuni esempi) il documento non è valido.
Quindi: la formattazione si fa con i CSS. Mai più tag
<font>, mai più gif di un pixel, niente più tabelle per il
layout. Risultato: codice più pulito, più logico, più
gestibile.
Le principali proprietà dell’XHTML: Portabilità
• Portabilità
La portabilità è la capacità/possibilità di un documento
di essere visualizzato e implementato efficacemente su
diversi sistemi: PC, PDA, cellulari WAP/GPRS, WebTV. Ora,
se pensate alle limitazioni in termini di memoria,
ampiezza dello schermo e usabilità di un terminale
mobile, capirete perchè è importante un linguaggio
essenziale, centrato sulla struttura del documento, privo
di orpelli inutili.
Ciò che ha senso è avere un titolo della pagina,
un'intestazione, un paragrafo, una lista per scandire gli
argomenti.
Le principali proprietà dell’XHTML: Accessibilità
• Accessibilità
I documenti scritti in XHTML e validati sono naturalmente
più accessibili. Da una parte la validazione richiede l'uso
obbligatorio di funzionalità come il testo alternativo per
le immagini. Dall'altra, una pagina che evita elementi
non standard, ben definita nella struttura è di gran lunga,
meglio gestibile da browser alternativi come quelli vocali
o testuali. Per questi aspetti è obbligatoria la lettura delle
linee guida per l'accessibilità del contenuto Web
rilasciate dal W3C.
Esempio di elemento di blocco: div
div è l’elemento blocco per eccellenza:
<div id="container">
<div id="header">
<div id="navigation"></div>
</div>
<div id="main"></div>
<div id="sidebar"></div>
<div id="footer"></div>
</div>
XML
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>
Con i tag XML è possibile riconoscere esattamente il tipo di dati esaminati. Nell’esempio di
sopra, i dati fanno riferimento a un gatto ed è possibile individuarne facilmente il nome, l'età
e così via. La possibilità di creare tag per definire di fatto qualsiasi struttura di dati è ciò che
rende questo linguaggio estendibile.
Osservazione: I tag di questo esempio di codice non devono tuttavia essere confusi con
quelli presenti in un file HTML. Se ad esempio questa struttura XML viene incollata in un file
HTML che viene visualizzato nel browser, il risultato sarà simile al seguente:
Silvestro Siamese 6 Izz138bod Antonio Rossi
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 risposta
Il Client inoltra la richiesta mediante HTTP
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
AJAX è la più nota tecnica di sviluppo per la realizzazione di
applicazioni web interattive (Rich Internet Application).
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.
!
Il concetto è in parte espresso nell’acronimo scelto, cioè un utilizzo asincrono di JavaScript
che attraverso l’interfacciamento con XML, può permettere a un client di richiamare
informazioni lato server in modo veloce e trasparente, allargando così gli orizzonti delle
Rich Internet Applications (RIA).
Ajax: Principale vantaggio
Il vantaggio principale di AJAX rispetto alle altre tecnologie, sta nel fatto che è possibile
avere una pagina con più contenuti dinamici che si modificano contemporaneamente in
seguito all'azione di un utente. Questo consente innanzitutto di migliorare l’User-Experience
e rendere la Web GUI (Graphical User Interface) il più simile possibile all'interfaccia grafica
che abbiamo normalmente sui nostri computer, sui desktop dei nostri sistemi e quindi
abbassare moltissimo le differenze dal punto di vista percettivo che si hanno tra
un'interfaccia Web tipicamente percepita come poco interattiva.
“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
client-side come intermediario tra la
UI (Interfaccia Utente) e il server.
browser client
USER INTERFACE
1. Utilizza un motore (ajax engine)
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
WEB SERVER
caricamento di una pagina
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
I principali componenti che rappresentano l’attuale tendenza del web 2.0
• RSS
• Mashup
• Cloud Computing
• Internet of Things
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."
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)
Per API, 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.
API (Application Programming Interface)
I mashup possono essere creati da sviluppatori esperti in
grado di rilasciare applicazioni in breve tempo. Gli utenti
finali non sono coinvolti nella produzione dei mashup ma
traggono in ogni caso benefici dai tempi di sviluppo
ridotti
Gli sviluppatori esperti creano servizi adatti a essere composti
in un mashup e forniscono allo stesso tempo un ambiente
ben delimitato (sandbox) dove gli utenti finali possono
combinare i servizi. Il ruolo degli sviluppatori è quindi creare
servizi, mentre i mashup sono costruiti dagli utenti, i quali sono
maggiormente a conoscenza del dominio applicativo in cui i
mashup saranno utilizzati
Gli sviluppatori esperti rilasciano un ambiente che permette
a ognuno di creare i propri mashup.
Alcune tipologie di Mashup: mapping
❑ 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).
Cloud computing
Cloud computing
Il cloud computing è un ambiente di esecuzione elastico che
consente l'accesso via rete e su richiesta a un insieme condiviso di
risorse di calcolo configurabili (ad esempio rete, server, dispositivi di
memorizzazione, applicazioni e servizi) sotto forma di servizi a vari
livelli di granularità. Tali servizi possono essere rapidamente richiesti,
forniti e rilasciati con minimo sforzo gestionale da parte dell’utente e
minima interazione con il fornitore
National Institute of Standards and Technology (NIST) e da un gruppo di esperti riuniti dalla
Comunità Europea nel report “The Future of Cloud Computing”
N.B: 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
Microsoft
Zoho
Yahoo
Apple
Longjump
Visual Model of NIST Working Definition of Cloud Computing
Visual Model of NIST Working Definition of Cloud Computing
Caratteristiche essenziali del cloud Computing
❑ On-demand self-service - Un utilizzatore può unilateralmente fornire capacità di calcolo
come server time e network storage, se necessario, senza richiedere l’interazione umana
con alcun fornitore del servizio. Il servizio offerto è completamente automatizzato e
permette di modificare la richiesta a seconda della volontà del consumatore
❑ Broad Network Access - Le capacità sono disponibili in rete e provviste generalmente di
un accesso web-based, pertanto sono accessibili in qualsiasi momento non solo con PC o
notebook ma anche tramite “thin” o “thick” client forniti di connettività internet (ad
esempio cellulari e tablet, PDA). Gli utenti possono accedere al servizio in qualunque
momento e da qualsiasi luogo, condividere dati e collaborare diventa molto più
semplice..
❑ Resource pooling - Le risorse computazionali del fornitore di servizi sono messe a
disposizione per servire molteplici utenti finali utilizzando un modello multiutente, con
differenti risorse fisiche e virtuali assegnate e riassegnate dinamicamente secondo la
domanda dell'utilizzatore..
Caratteristiche essenziali del cloud Computing (II)
❑ Elasticità rapida - Le capacità di calcolo possono essere fornite rapidamente ed
elasticamente – in alcuni casi in modo automatico – incrementandole velocemente; e
rilasciate rapidamente decrementandole in modo altrettanto veloce. Per l'utilizzatore, le
capacità disponibili spesso appaiono illimitate e possono essere acquistate in qualsiasi
quantità e in ogni momento
❑ Servizio misurato
- I sistemi Cloud controllano e ottimizzano automaticamente l'utilizzo
delle risorse mediante misurazioni effettuate a un livello di astrazione adeguato al tipo di
servizio (ad esempio, storage, processore, banda, o utenti attivi). L'utilizzo delle risorse può
essere monitorato, controllato e relazionato – aggiungendo trasparenza sia per il fornitore
di servizio che per l'utilizzatore dello stesso.
❑ pay-per-use - L’utente può modificare in qualsiasi momento la richiesta secondo una
logica di pay-per-use. Infatti, può sfruttare i servizi cloud su richiesta, scegliendo il fornitore
e i servizi che ritiene opportuno a seconda delle proprie necessità, e può richiedere
l'utilizzo delle risorse solo quando necessarie e solo per il tempo necessario. L’utente verrà
poi addebitato dai fornitori di servizi solamente in base all’effettivo sfruttamento delle
risorse stesse.
Visual Model of NIST Working Definition of Cloud Computing
Visual Model of NIST Working Definition of Cloud Computing
Modelli di servizio del cloud Computing
❑ 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à. Uno dei migliori
esempi di cloud computing IaaS è la piattaforma di Amazon EC2 (Elastic Compute Cloud)
❑ 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.
Google AppEngine è una offerta tipicamente PaaS. Consente di costruire solide
applicazioni web utilizzando le stesse tecnologie utilizzate dalle più conosciute applicazioni
Google.
❑ 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.
Visual Model of NIST Working Definition of Cloud Computing
Visual Model of NIST Working Definition of Cloud Computing
Modelli d’implementazione del Cloud Computing
❑ Pubblic Cloud - I servizi cloud pubblici sono offerti da fornitori che mettono a disposizione
dei propri utenti/clienti la potenza di calcolo e/o di memorizzazione dei loro data center. Il
tipo di servizi cloud che vengono offerti dal fornitore (IaaS, PaaS, SaaS) dipende dalla
politica del fornitore stesso, così come il prezzo e la tariffazione.
❑ Private Cloud - Un cloud privato viene installato dall'utente nel suo data center per suo
utilizzo esclusivo. Il principale vantaggio di un cloud privato è che i servizi vengono forniti
da elaboratori che si trovano nel dominio dell'utente, e quindi l'utente ha il pieno controllo
delle macchine sulle quali vengono conservati i dati e vengono eseguiti i suoi processi. In
particolare, l'utente può applicare su queste macchine le politiche di sicurezza che ritiene
più opportune per la protezione dei suoi dati.
❑ Community Cloud - Nel Community cloud l’infrastruttura su cui sono installati i servizi cloud
è condivisa da un insieme di soggetti, aziende, organizzazioni, ecc, che condividono uno
scopo comune e che hanno le stesse esigenze, come ad esempio potrebbero essere i vari
soggetti della pubblica amministrazione. L’infrastruttura può essere gestita dalla comunità
stessa, oppure da un fornitore di servizi esterno
❑ Hybrid Cloud - Il cloud Ibrido è una combinazione del modello pubblico e di quello
privato, ovvero è un modello in cui l'utente utilizza risorse sia del suo cloud privato che di
un cloud pubblico. Il cloud Ibrido può essere utilizzato con successo in vari casi
I pro
cloud computing office
❑ Nessun software da scaricare e installare sul proprio computer
❑ Nessuna necessità di upgrading del software quando vengono aggiunte nuove funzioni o
eliminati problemi esistenti
❑ È sufficiente un thin client con minimi requisiti hardware
❑ Si può accedere ai propri documenti praticamente da ogni computer dotato di una
connessione a banda larga
❑ È possibile condividere i documenti con altri utenti, senza bisogno di un proprio server
❑ Non si deve acquistare una licenza software (e i suoi upgrade). Ci si abbona al servizio
(SaaS); in alcuni casi il servizio è gratuito
❑ Nessun problema in caso di crash del proprio computer: i documenti sono al sicuro sul
server.
I contro
cloud computing office
❑ 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).
❑ Velocità: Le office suite attualmente disponibili richiedono spesso una connessione a
banda larga
❑ Completezza funzionale: Attualmente, le funzioni fornite dalle suites online sono meno
complete di quelle fornite dalle suite tradizionali.
❑ 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.
https://www.youtube.com/watch?v=tnRJaHZH9lo
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