Informatica per la comunicazione" - lezione 9 Internet ≠ Web!" • Il web è solo uno degli aspetti di internet." • In particolare, chiamiamo web tutta l’informazione che riusciamo a ottenere collegandoci ad altri calcolatori per mezzo di un browser" • Il browser è un’applicazione che consente la visualizzazione su schermo del contenuto di pagine ipermediali provenienti da altri computer e trasferite per mezzo del protocollo HTTP" Che cos’è Internet?" Questo è solo un aspetto di Internet." Che cos’è Internet?" • • • • "Internet è una realtà molto complessa, di cui distinguiamo numerosi aspetti:" le infrastrutture fisiche (hardware) utilizzate per il trasferimento dell’informazione" i protocolli di gestione di tali infrastrutture, dai livelli più bassi legati ai fenomeni fisici nell’hardware fino a quelli più alti riguardanti le applicazioni per gli utenti finali" i servizi offerti all’utente da applicazioni software che sfruttano internet per il trasferimento di informazione" le organizzazioni e le società di gestione che creano e mantengono le condizioni affinché internet possa funzionare regolarmente" Gestione di Internet" "Per quanto riguarda le organizzazioni di gestione di internet ricordiamo:" • gli enti di gestione delle infrastrutture fisiche (come il GARR in Italia)" • gli enti che definiscono e pubblicano i protocolli per internet, come l’International Organization for Standardization (ISO), che si occupa di standard di ogni tipo, o il World Wide Web Consortium (W3C), che si occupa in particolare degli standard del Web" • le agenzie che assegnano su richiesta (e a pagamento) a individui e organizzazione i nomi dei domini (come www.unibg.it) da utilizzare negli indirizzi web" • queste agenzie, dette domain name registrar, fanno in ultima analisi riferimento alla Internet Corporation for Assigned Names and Numbers (ICANN), a sua volta controllata dal governo degli Stati Uniti " Internet / Intranet / Extranet" • Le tecnologie di internet possono essere utilizzate anche in reti ‘chiuse’, riservate ad esempio ai membri di un’organizzazione" • In genere si distingue fra:" – intranet: una rete privata, riservata ai membri di un’organizzazione, basata sulle tecnologie di internet" – extranet: una rete analoga a un’intranet, ma estesa a certe categorie di partner esterni di un’organizzazione (clienti, fornitori, ecc.)" Applicazioni Internet / Web" • Una rete telematica può essere utilizzata per creare applicazioni che si basano sull’interazione di più componenti che girano su host diversi e sfruttano la rete per trasferire dati da uno host all’altro" • In particolare, quando la rete utilizzata è internet, queste applicazioni sono denominate “applicazioni internet”" • Le applicazioni che consentono a un utente di accedere a certi servizi utilizzando un browser prendono il nome di “applicazioni web” (esempi: easyjet, trenitalia, ticketone, google maps)" • Altre applicazioni internet, invece, richiedono da parte dell’utente l’uso di un’applicazione speciale (in genere scaricata dalla rete e installata sul computer (esempio: google earth)" Architettura Client - Server" • Le applicazioni internet possono essere realizzate secondo differenti architetture" • L’architettura più semplice e diffusa è l’architettura client-server" "Nei sistemi client-server:" – una componente dell’applicazione, detta server, ha il compito di fornire determinati servizi" – un’altra componente, detta client, ha il compito di consumare i servizi forniti dal server" • In genere c’è una forte asimmetria fra la componente server (spesso piuttosto complessa) e la componente client (di solito piuttosto semplice)" • Si noti che molte copie del client possono interagire contemporaneamente e da host diversi con un unico server" Esempio di client-server" • Google Earth" – il server è un’applicazione che gira sui computer di Google Inc., in grado di fornire mappe satellitari di tutta la superficie terrestre, integrate con svariate informazioni accessorie (confini, strade, condizioni meteorologiche ecc.)" – il client è un’applicazione che gestisce la visualizzazione delle informazioni inviate dal server, e che può essere scaricata dal sito web di Google Inc. e installata su qualsiasi computer" Applicazioni Web C-S" • Nelle applicazioni web, il client è costituito semplicemente da un browser" • Il browser può interpretare ed eseguire localmente dei programmi contenuti all’interno delle pagine web scaricate dal server" • I programmi contenuti in una pagina web ed eseguiti dal client all’interno del browser sono denominati applet (cioè “applicazioncine”)" • Esempi:" – animazioni visualizzate all’interno di pagina" – visualizzazione di un video di YouTube" – giochi online" • In altri casi, durante la navigazione di un sito web certi programmi sono eseguiti dal server e i risultati dell’esecuzione vengono poi inviati al client" • Esempi:" – generazione di pagine web dinamiche" – pagine web interattive" Lo stato dell’interazione" • Le applicazioni web si basano sul protocollo http, che presenta un problema:" – l’interazione è “senza memoria” o, come si dice con un termine tecnico, priva di stato (stateless)" – ciò significa che ogni richiesta che giunge al server da parte del client è trattata dal server come una nuova richiesta, indipendente dalle richieste precedenti" – in altre parole il server non tiene memoria delle eventuali fasi precedenti dell’interazione" "Attenzione però:" • il client può conservare memoria delle sue richieste precedenti – il punto è che non lo fa il server" • alcune tecnologie particolari, come le servlet Java, consentono al server di mantenere una rappresentazione dello stato dell’interazione" Cookies" • Per molte applicazioni questo costituisce un problema: sono quindi state sviluppate tecniche per rappresentare lo stato dell’interazione (state management)" • La soluzione più comune si basa sull’uso dei cookie:" – quando un server deve conservare per il futuro certi dati concernenti l’interazione con un certo client, memorizza questi dati direttamente sullo host del client; questi dati sono rappresentati sotto forma di file denominati “cookie”" – quando il server ha necessità di utilizzare i dati conservati in un cookie, li legge direttamente dallo host del client" • L’uso di questa tecnica non è priva di problemi, perché consentire al server l’accesso al file system del client comporta rischi per la sicurezza e la privatezza dei dati" "I browser danno quindi la possibilità di escludere l’invio dei cookie da parte di un server, ma a volte questa limitazione può impedire al server di operare correttamente" Parte III: il computer come strumento per l’interazione e la comunicazione " Web 1.0" Web 1.0" Che cosa vuol dire 1.0?" " In informatica, la numerazione x.y per indicare la versione di un prodotto ha questo significato: se le modifiche apportate non sono particolarmente rivoluzionarie, si considera il nuovo prodotto solo una variante della stessa versione, quindi si lascia intatto x e si aumenta y di 1. Quando invece si è di fronte a un cambiamento radicale, si aumenta x di 1 e si azzera y per segnare l’inizio di una nuova era del prodotto." " Web 1.0" 1.1" 1.2" 2.0" • Il Web (o più precisamente World Wide Web, noto anche come WWW o W3) è nato nell’agosto del 1991 presso il CERN di Ginevra, grazie a un’idea di Tim Berners-Lee" • Secondo quanto riportato sul blog di Google, il Web contava nel luglio 2008 più di 1000 miliardi di pagine distribuite su più di 100 milioni di host" • Che cos’è il Web?" – un colossale ipertesto, formato da miliardi di ‘pagine’ collegate fra loro?" – un archivio distribuito di informazioni?" – una rete di servizi fruibili in certi luoghi virtuali chiamati “siti”?" Evoluzione del Web" • Nell’evoluzione del Web si distinguono oggi diverse fasi:" – Web 1.0: la fase iniziale, dal 1991 ai primi anni del 2000" – Web 2.0: dai primi anni del 2000 a oggi (il termine “Web 2.0” è stato usato per la prima volta nel 2004)" – Web 3.0: ciò che il Web dovrebbe diventare nei prossimi anni" – ..." • La distinzione fra queste fasi è piuttosto vaga, e autori diversi le definiscono in modi differenti: per comodità faremo comunque uso di questa terminologia, almeno in modo informale" Il Web 1.0" risorse rese disponibili " problemi e soluzioni" la tipologia dell’interazione" Risorse rese disponibili" • Il Web 1.0 è innanzitutto un ipertesto multimediale distribuito:" – ipertesto: il Web 1.0 è costituito da pagine collegate fra loro da link, che consentono a un utente di navigare nell’ipertesto" – multimediale: le pagine contengono un testo audiovisivo nel senso più ampio del termine: testo linguistico, grafici, immagini, video" – distribuito: le pagine dell’ipertesto risiedono su molti host distinti, connessi tramite internet" • Un insieme di pagine web correlate (in genere, ma non necessariamente, memorizzate su un singolo host) costituiscono un sito Web" Problemi e soluzioni" • La seguente tabella schematizza i principali problemi del Web 1.0 e le relative soluzioni:" " problema" soluzione" costruire le pagine" linguaggio HTML (HyperText Markup Language)" pubblicare le pagine" protocollo HTTP, URL (Uniform Resource Locator)" trovare le pagine" motori di ricerca" visualizzare le pagine" browser" lato server" " lato client" I linguaggi di marcatura" • Un linguaggio di marcatura (markup language) è un sistema di simboli convenzionali (chiamati tag) che possono essere utilizzati per marcare certe sezioni di un testo, associando una determinata proprietà a ciascuna sezione" • Esempio:" " <titoloOpera>La Divina Commedia</titoloOpera> <nomeAutore>Dante Alighieri</nomeAutore> <titoloVolume>Inferno</titoloVolume> <titoloCapitolo>Canto I</titoloCapitolo> <testo> Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura ché la diritta via era smarrita ... </testo> • I tag si comportano come delle parentesi: a ogni tag di apertura deve corrispondere un tag di chiusura e fra questi è contenuta la sezione marcata del testo:" " <titoloOpera>Il cacciatore di aquiloni</titoloOpera> • È possibile inserire l’una nell’altra sezioni marcate di testo:" " <capitolo> <titoloCapitolo>Uno</titoloCapitolo> <periodo> Sono diventato la persona che sono oggi all’età di dodici anni, in una gelida giornata invernale del 1975. ... </periodo> ... </capitolo> ... Il linguaggio HTML" • HTML (HyperText Markup Language) è un linguaggio standard per la marcatura di ipertesti, ovvero di testi che possono contenere collegamenti (link) ad altre pagine" • HTML prevede un insieme prefissato di tag, il cui significato è definito da una raccomandazione W3C" "Esempi di tag HTML:" " "<head> ... </head> <style>... </style> <title>... </title> <body> ... </body> "HTML (HyperText Markup Language) è un linguaggio standard per la marcatura di ipertesti, ovvero di testi che possono contenere collegamenti (link) ad altre pagine" "HTML prevede un insieme prefissato di tag, il cui significato è definito da una raccomandazione W3C" "Esempi di tag HTML:" " "<head> ... </head>“Significato” va sempre <style>... </style> inteso in maniera molto <title>... </title> debole in informatica. <body> ... </body>Ricordatevi della stanza cinese. " Significato?" <題>Freedom</題> Il W3C dice:" Authors should use the TITLE element to identify the contents of a document. Since users often consult documents out of context, authors should provide context-rich titles. Thus, instead of a title such as "Introduction", which doesn't provide much contextual background, authors should supply a title such as "Introduction to Medieval Bee-Keeping" instead." Le pagine HTML" • Nel caso più semplice, una pagina web è un file di testo marcato tramite tag HTML "" • per costruire una pagina è possibile: " • scrivere direttamente un file HTML utilizzando un editor di file di testo" • oppure scrivere una pagina web con uno strumento software specifico, che la traduce automaticamente in HTML" • per visualizzare una pagina è possibile:" • utilizzare un browser, che è in grado di visualizzare i file HTML interpretando i tag in modo coerente con le raccomandazioni W3C"