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