Architetture distribuite I Web Server 28/03/2007 Cinzia Bocchi
Contenuti Applicazioni distribuite e paradigmi di comunicazione I Web Server Il Web Server Apache 28/03/2007 Cinzia Bocchi
Intervento didattico V ITI indirizzo informatico SISTEMI II Quadrimestre Livello Applicazione Architettura TCP/IP 28/03/2007 Cinzia Bocchi
Prerequisiti HTML Pagine dinamiche Modello ISO/OSI Architettura e protocolli Internet Indirizzamento livello Network (IPv4) e livello Transport (TCP) Connessioni TCP Web browser 28/03/2007 Cinzia Bocchi
Obiettivi - conoscenze Paradigmi di comunicazione basati sullo scambio di messaggi (client/server – peer to peer) Architetture three tier Funzionalità Web Server Protocollo HTTP Alias Host virtuali 28/03/2007 Cinzia Bocchi
Obiettivi - abilità Installazione e configurazione di Apache Creazione di alias con Apache Creazione e utilizzo di host virtuali con Apache 28/03/2007 Cinzia Bocchi
Obiettivi - Competenze Saper installare, configurare e utilizzare applicazioni software, avvalendosi della documentazione a disposizione o ricercando autonomamente informazioni Saper collaborare, all’interno di un gruppo, accettandone le regole e apportando il proprio contributo 28/03/2007 Cinzia Bocchi
Strumenti/Attrezzature SO Windows XP professional Piattaforma di e-learning Moodle LAN Ethernet (laboratorio sistemi) Aula per presentazioni multimediali 28/03/2007 Cinzia Bocchi
Sussidi didattici Presentazioni multimediali Dispense cartacee Moodle (LMS, blog, forum,…) Social bookmarking (Delicious) 28/03/2007 Cinzia Bocchi
Metodologia Lezione frontale con ausilio strumenti multimediali Discussione/dibattito Tutorial Progetto 28/03/2007 Cinzia Bocchi
Tempi 11 ore: 3 ore in aula attrezzata per multimedia 8 ore in laboratorio 28/03/2007 Cinzia Bocchi
Attività per la valutazione Installazione di Apache Configurazione Apache Configurazione alias e virtual host Creazione pagine HTML per Apache Accesso ai web server della LAN Questionario di autovalutazione Riflessione nel blog personale 28/03/2007 Cinzia Bocchi
Sceneggiatura 28/03/2007 Cinzia Bocchi
Fase 1 (3 ore) Presentazione multimediale di Applicazioni distribuite e paradigmi di comunicazione Web Server Discussione (dubbi, domande, ipotesi) Docente facilitatore Materiali di studio su Moodle 28/03/2007 Cinzia Bocchi
Vediamo i contenuti della fase 1 28/03/2007 Cinzia Bocchi
Applicazioni distribuite e paradigmi di comunicazione 28/03/2007 Cinzia Bocchi
Applicazioni distribuite Composte da più unità software cooperanti su macchine di una rete Le unità devono “parlarsi” Servono protocolli Più applicazioni cooperanti Sistemi distribuiti 28/03/2007 Cinzia Bocchi
Esempi di sistemi distribuiti WWW Email….. In generale i servizi del livello Applicazione di Internet 28/03/2007 Cinzia Bocchi
Paradigmi di comunicazione Client/Server (C/S) Peer to peer (p2p) 28/03/2007 Cinzia Bocchi
Client/Server Client chiede servizi al Server Server risponde alle richieste dei client Es. Web Browser/Web Server 28/03/2007 Cinzia Bocchi
HTTP Web Browser e Web Server comunicano basandosi sul protocollo HTTP (HyperText Transfer Protocol) HTTP è: Asimmetrico Stateful 28/03/2007 Cinzia Bocchi
Peer to peer Ogni host può diventare client o server Ci può essere un server per la centralizzazione degli indici 28/03/2007 Cinzia Bocchi
Architetture three-tier Tre moduli: GUI Business logic Dati persistenti Che comunicano a coppie secondo lo schema C/S 28/03/2007 Cinzia Bocchi
Architetture n-tier Application server per pagine dinamiche Es. Tomcat 28/03/2007 Cinzia Bocchi
I Web Server 28/03/2007 Cinzia Bocchi
Web server Hanno un web space per contenere le risorse richieste dai client 28/03/2007 Cinzia Bocchi
Web Server Ascoltano sulla porta 80 Servono il client con processi figli Notificano gli errori Terminano la connessione 28/03/2007 Cinzia Bocchi
HTTP 2 versioni: 2 tipi di messaggi HTTP 1.0 HTTP 1.1 HTTP request HTTP response 28/03/2007 Cinzia Bocchi
HTTP request Request line (metodo + URI) Header (host + user agent) Metodi: GET, POST,… Request line Header Body 28/03/2007 Cinzia Bocchi
Metodi HTTP Metodi HTTP Metodo Significato GET POST HEAD PUT DELETE Recupera qualsiasi tipo di file identificato dall'URI specificato POST Usato di norma per inviare informazioni al server (ad esempio i dati di un form); in questo caso l'URI specifica che cosa si sta inviando e il body ne indica il contenuto HEAD Simile a GET, ma recupera solo i campi dell’header del file PUT Carica il file specificato nel body, sul server DELETE Cancella un file sul server (se il client è autorizzato) TRACE Traccia una richiesta, visualizzando come viene trattata dal server OPTIONS Richiede l'elenco dei metodi permessi dal server 28/03/2007 Cinzia Bocchi
HTTP response Status line (codici stato) Header (server+ content type) Body 28/03/2007 Cinzia Bocchi
Codici di stato Codici di stato HTTP Metodo Significato 200 301 302 OK - richiesta soddisfatta 301 Moved Permanently - La risorsa richiesta non è raggiungibile perché è stata spostata in modo permanente 302 Found - La risorsa è raggiungibile con un altro URI indicato nell’ header. Di norma i browser eseguono la richiesta all'URI indicato in modo automatico, senza interazione dell'utente 400 Bad Request – La richiesta non è comprensibile al server 404 Not Found - La risorsa richiesta non è stata trovata e non se ne conosce l'ubicazione. Di solito avviene quando l'URI è stato indicato in modo scorretto, oppure è stato rimosso il contenuto dal server. 500 Internal Server Error - Il server non è in grado di rispondere alla richiesta per un suo problema interno 505 HTTP Version Not Supported - La versione di http non è supportata 28/03/2007 Cinzia Bocchi
Fase 2 (1 ora LAB) Installazione di Apache Vengono fornite istruzioni mediante i materiali Gli studenti, individualmente, procedono all’installazione usufruendo dei materiali del docente (Moodle) e di informazioni reperite in Internet Il docente interviene il minimo indispensabile I link più interessanti su Delicious 28/03/2007 Cinzia Bocchi
Fase 3 (1 ora LAB) Configurazione di Apache ServerAdmin ServerName DocumentRoot DirectoryIndex… Upload su Moodle della copia del file di configurazione 28/03/2007 Cinzia Bocchi
Fase 4 (2 ore LAB) Creazione Alias Configurazione Virtual Host Il docente introduce brevemente gli argomenti Gli allievi operano seguendo le istruzioni riportate sui materiali del docente (Moodle) e cercando in Internet Utilizzo di Delicious Upload su Moodle della copia del file di configurazione 28/03/2007 Cinzia Bocchi
Vediamo i contenuti delle fasi 3-4 28/03/2007 Cinzia Bocchi
Il Web Server Apache 28/03/2007 Cinzia Bocchi
Apache Istruzioni di installazione Configurazione (httpd.conf) Alias Virtual Host 28/03/2007 Cinzia Bocchi
Alias Link a directory che contengono risorse per Apache Es. Alias /images/ "C:/images/“ <Directory "C:/images"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> 28/03/2007 Cinzia Bocchi
Virtual Host Siti diversi sullo stesso host Nomi di dominio diversi Stesso IP ES. <VirtualHost *:80> DocumentRoot "C:/mioSito/mioSito2" ServerName myHost </VirtualHost> 28/03/2007 Cinzia Bocchi
Fase 5 (3 ore LAB) Costruzione pagine HTML per il server web e per l’host virtuale Accesso a Web server sulla LAN 28/03/2007 Cinzia Bocchi
Fase 6 (1 ora LAB) Compilazione questionario autovalutazione (Moodle + correzione automatica) Riflessione nel blog 28/03/2007 Cinzia Bocchi
Riferimenti A. Lorenzi et al. – “Linux Il sistema operativo L’amministrazione I server di rete” – ed. ATLAS, 2005 A.S. Tanenbaum – “Reti di computer” – ed. UTET, terza edizione B. Ball et al. – “Red Hat Linux 9” – ed. APOGEO, 2003 Wikipedia: Web Server http://en.wikipedia.org/wiki/Web_server Wikipedia: HTTP http://it.wikipedia.org/wiki/HTTP Wikipedia: Architettura three-tier http://it.wikipedia.org/wiki/Architettura_three-tier HTML.IT: Apache e Tomcat http://server.html.it/guide/lezione/2721/tomcat-e-apache HTML.IT: Guida Apache http://server.html.it/guide/lezione/2224/apache-per-windows 28/03/2007 Cinzia Bocchi