Il Panorama tecnologico del web 2.0 Un file in formato HTML è un

Il Panorama tecnologico del web 2.0
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>
• 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
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)
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.
• 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.
• 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.
• 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.
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.
Silvestro Siamese 6 Izz138bod Antonio Rossi
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à;
• velocità utente.
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 è 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).
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”.
Confrontato ad altri sistemi di pagine web, Ajax si distingue principalmente per tre caratteristiche:
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
I principali componenti che rappresentano l’attuale tendenza del web 2.0




RSS
Mashup
Cloud Computing
Internet of Things
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."
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. 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. 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. 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 ridottiGli 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.
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
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
Mainframe computing 1965 1 computer / molti utenti
Client-server computing 1985 molti computer / molti utenti
Cloud computing 2005 internet / moltissimi utenti
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.
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-peruse. 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.
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.
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
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
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 (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 datiL’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. 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;
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.