Informatica per le discipline umanistiche 2 - lezioni 4 e 5 si ringrazia il Prof. Marco Colombetti (Università della Svizzera Italiana) per il prezioso aiuto
Reti e Web Parte III: il computer come strumento per l interazione e la comunicazione
Informatica = Informazione + Automatica
Telematica = Telecomunicazione + Informatica
Lʼevoluzione della comunicazione a distanza. Di fatto, solo il primo (le lettere) non è basato su una codifica.
Noi ci concentreremo sullʼultimo modo: quello basato sui computer, naturalmente.
Una rete telematica può essere vista come un grafo composto da nodi collegati direttamente o indirettamente (ovvero tramite altri nodi). Un computer connesso a una rete telematica (cioè un nodo della rete) viene denominato host. H2 H3 H1 H5 H4
Classificazione delle reti telematiche
Criteri: topologia estesione spaziale canale di trasmissione modalità di connessione
Topologia costo, velocità, robustezza, affidabilità
Estensione spaziale Local Area Network Metropolitan Area Network Wide Area Network
Rete locale (LAN, Local Area Network): connette computer e unità periferiche, in genere allʼinterno di un singolo edificio senza ricorrere a un fornitore di servizi commerciali di telecomunicazione Rete geografica (WAN, Wide Area Network): supera le dimensioni di una singola area urbana, ricorrendo a fornitori di servizi pubblici di telecomunicazione o a enti di gestione speciali (spesso enti pubblici) Rete metropolitana (MAN, Metropolitan Area Network): fornisce le connessioni fra computer situati in una stessa area urbana, ricorrendo a fornitori di servizi commerciali di telecomunicazione
Canale di trasmissione Reti locali: sfruttano cavi appositamente disposti nellʼarea interessata (tecnologia ethernet) oppure connessioni senza fili (Wi-Fi, da Wireless Fidelity) in cui la trasmissione avviene tramite onde radio
Canale di trasmissione Reti pubbliche: utilizzano infrastrutture e servizi messi a disposizione da un fornitore del settore delle telecomunicazioni si basano su diversi tipi di tecnologie: linea telefonica tradizionale (analogica), ISDN, ADSL, fibre ottiche
Velocità di trasmissione Linea telefonica 56Kbit/s ISDN (Integrated Services Digital Network) 128Kbit/s ADSL (Asymmetric Digital Subscriber Line) 10 & 1Mbit/s Fibre ottiche 100 Mbit/s
Linea telefonica 56Kbit/s ISDN (Integrated Services Digital Network) 128Kbit/s ADSL (Asymmetric Digital Subscriber Line) 10 & 1Mbit/s Fibre ottiche 100 Mbit/s
Che cosa sono i bit?
567872872983093948748974987498748467101 187627862876783546354137676129123621352 413651243873614983502385746754779090939 423847293847283478237492384723894728347 298374283647165155155625465463546354376 473658475984759824757671511019824928493 849340283918091740375474783474736478364 734637843940109134813409463074560384756 038476501837465087314650138746507834560 384756037486578346574658734506183745601 837465018376456758403876573480187364571 088573465783104587134653178451103874650
In realtà
i numeri devono essere a loro volta codificati per essere elaborati dal computer
010101010101010001001110101010101010101 011101010000101010101010111010101010110 101010010011111111010101010101010010101 010101010111111001010001101010100011101 010101011110101101010001010100111010011 010100111000101011101010100010101011010 100011011010101110101001010001010101000 101110101010101110010101010100010101010 101010101110101010100010101010111010101 010110101011111010111000001110001110011 100110101011100111000111000101010101111 000011100001010101010110010101011111000
Codifica binaria dei numeri Numerazione con base 10: 215 = 2 10 2 + 1 10 1 + 5 10 0 Numerazione con base 2: 110010111 = 1 2 8 + 1 2 7 + 0 2 6 + 0 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 1 2 1 + 1 2 0
Perché 0 e 1? Tensione elettrica alta: 1 Tensione elettrica bassa: 0
Che cosʼè un bit? Eʼ lʼunità di base dellʼinformazione elaborata da un computer: vale 0 oppure 1. 8 bit (b) = 1 Byte (B).
Canale di trasmissione Oltre alle reti locali e a quelle pubbliche, esistono le reti di trasporto: connettono fra loro non singoli utenti finali, ma nodi speciali che a loro volta, tramite reti metropolitane o locali, raccolgono e smistano il traffico aggregato di molti utenti. Sono reti di trasporto le dorsali internet (internet backbone), linee ad alta velocità e capacità che trasportano a grandi distanze il traffico di dati della rete internet.
rete di trasporto sul suolo statunitense
reti di trasporto sottomarine
Modalità di connessione commutazione di circuito commutazione di pacchetto
Commutazione di circuito La commutazione di circuito è tipica della telefonia tradizionale: quando un utente compone il numero telefonico di un altro utente, una serie di centrali di commutazione stabiliscono una connessione fra i due utenti che dura per tutta la telefonata La commutazione di circuito è semplice da realizzare, ma ha il difetto di impegnare completamente una linea di comunicazione per tutta la durata della telefonata, indipendentemente dal fatto che a un determinato istante i due utenti stiano o non stiano sfruttando la linea.
Commutazione di pacchetto
Commutazione di pacchetto Tipica delle reti telematiche Funziona così: un messaggio viene dapprima frammentato in elementi più piccoli, detti pacchetti ogni pacchetto viene inviato a destinazione separatamente dagli altri (e può seguire una strada diversa dagli altri pacchetti) quando tutti i pacchetti sono giunti a destinazione viene ricostituito il messaggio originario In questo modo la capacità di trasmissione delle linee può essere sfruttata al massimo
Protocolli
Nel campo della telematica un protocollo è un insieme di direttive per la gestione degli scambi di dati fra i nodi di una rete. Tipicamente i protocolli sono strutturati a più livelli: i livelli più bassi riguardano la gestione dei dispositivi fisici di cui è costituita la rete i livelli intermedi concernono le modalità di trasmissione dei dati i livelli più alti concernono lʼinterazione con le applicazioni software che girano sul computer e si scambiano i dati
Noi siamo interessati a capire come internet possa mettere in comunicazione host diversi nellʼuso di svariate applicazioni, quindi vedremo protocolli di livello medio (per il trasporto di pacchetti da host a host) e di livello alto (per lʼuso di applicazioni).
Protocolli di livello intermedio: TCP/IP
IP: Internet Protocol Eʼ il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in generale privi di una connessione fisica diretta. Si occupa, cioè, dellʼinstradamento (routing) dei pacchetti. Ogni host è connesso in rete grazie a una scheda di rete. Ogni scheda di rete è identificata da un ʻindirizzoʼ univoco (detto indirizzo IP), che intuitivamente può essere visto come una specie di numero telefonico della scheda di rete.
Indirizzi IP Un indirizzo IP è formato da 4 Byte, solitamente rappresentati come quattro numeri naturali in notazione decimale (ciascuno compreso fra 0 e 255) separati da punti, ad esempio: 195.176.39.49
128.201.4.78 195.176.39.49
Routing Lʼinstradamento (routing) è il processo di scelta del percorso che un pacchetto segue a partire dallo host mittente per raggiungere lo host destinatario La strada seguita da un pacchetto non viene decisa a priori con una pianificazione a livello globale Al contrario, ciascun nodo intermedio del percorso è responsabile della scelta del prossimo nodo a cui inviare un pacchetto in transito Un dispositivo che esegua queste scelte è denominato router Un router può essere un normale computer su cui giri unʼapposita applicazione software oppure un dispositivo specializzato
128.201.4.78 195.176.39.49
Su un computer funzionano contemporaneamente numerosi programmi
? 195.176.39.49 128.201.4.78
TCP: Transmission Control Si occupa di realizzare una connessione stabile fra due applicazioni, che in genere girano su host diversi Il servizio offerto da TCP è la realizzazione di un flusso affidabile di dati TCP garantisce che i pacchetti trasmessi tramite il protocollo IP arrivino nellʼordine corretto e che gli eventuali pacchetti perduti vengano nuovamente inviati TCP realizza un flusso bidirezionale di dati fra due ʻpunti virtualiʼ, detti socket, che le applicazioni software utilizzano per inviare e per ricevere dati Un socket è costituito da: lʼindirizzo IP di una scheda di rete una porta TCP (TCP port), che può essere considerata come una specie di casella postale 195.176.39.49:80
I protocolli dei livelli più alti definiscono gli standard per la comunicazione tra la rete e le applicazioni software che girano sui singoli host Esempi di protocolli applicativi standard sono: Protocolli applicativi FTP (File Transfer Protocol): per il trasferimento di file HTTP (HyperText Transfer Protocol): per il trasferimento di pagine Web ( Internet!) SMTP (Simple Mail Transfer Protocol): per lʼinvio di messaggi di posta elettronica POP (Post Office Protocol): per la gestione locale dei messaggi di posta elettronica sul proprio computer IMAP (Internet Message Access Protocol): per la gestione dei messaggi di posta elettronica su un server di posta remoto
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
Per quanto riguarda le organizzazioni di gestione di internet ricordiamo: Gestione di Internet 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 clientserver 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
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: Applicazioni Web C-S animazioni visualizzate allʼinterno di pagina visualizzazione di un video trasmesso da YouTube
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 I programmi contenuti in una pagina web ed eseguiti dal server possono utilizzare diverse tecnologie (ad esempio gli script CGI o le servlet Java) 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