28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

43
28/03/2007 28/03/2007 Cinzia Bocchi Cinzia Bocchi 1 Architetture Architetture distribuite distribuite I Web Server I Web Server

Transcript of 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

Page 1: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 11

Architetture distribuiteArchitetture distribuite

I Web ServerI Web Server

Page 2: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

2228/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

ContenutiContenuti

Applicazioni distribuite e paradigmi di Applicazioni distribuite e paradigmi di comunicazionecomunicazione

I Web ServerI Web Server

Il Web Server ApacheIl Web Server Apache

Page 3: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

3328/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Intervento didatticoIntervento didattico

V ITI indirizzo informaticoV ITI indirizzo informatico

SISTEMISISTEMI

II QuadrimestreII Quadrimestre

Livello Applicazione Architettura TCP/IPLivello Applicazione Architettura TCP/IP

Page 4: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

4428/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

PrerequisitiPrerequisiti

HTMLHTMLPagine dinamichePagine dinamicheModello ISO/OSIModello ISO/OSIArchitettura e protocolli InternetArchitettura e protocolli InternetIndirizzamento livello Network (IPv4) e Indirizzamento livello Network (IPv4) e livello Transport (TCP)livello Transport (TCP)Connessioni TCPConnessioni TCPWeb browserWeb browser

Page 5: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

5528/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Obiettivi - conoscenzeObiettivi - conoscenze

Paradigmi di comunicazione basati sullo Paradigmi di comunicazione basati sullo scambio di messaggi (client/server – peer scambio di messaggi (client/server – peer to peer)to peer)

Architetture three tierArchitetture three tier

Funzionalità Web ServerFunzionalità Web Server

Protocollo HTTPProtocollo HTTP

AliasAlias

Host virtualiHost virtuali

Page 6: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

6628/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Obiettivi - abilitàObiettivi - abilità

Installazione e configurazione di ApacheInstallazione e configurazione di Apache

Creazione di alias con ApacheCreazione di alias con Apache

Creazione e utilizzo di host virtuali con Creazione e utilizzo di host virtuali con ApacheApache

Page 7: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

7728/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Obiettivi - CompetenzeObiettivi - Competenze

Saper installare, configurare e utilizzare Saper installare, configurare e utilizzare applicazioni software, avvalendosi della applicazioni software, avvalendosi della documentazione a disposizione o documentazione a disposizione o ricercando autonomamente informazioniricercando autonomamente informazioni

Saper collaborare, all’interno di un gruppo, Saper collaborare, all’interno di un gruppo, accettandone le regole e apportando il accettandone le regole e apportando il proprio contributoproprio contributo

Page 8: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

8828/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Strumenti/AttrezzatureStrumenti/Attrezzature

SO Windows XP professionalSO Windows XP professional

Piattaforma di e-learning MoodlePiattaforma di e-learning Moodle

LAN Ethernet (laboratorio sistemi)LAN Ethernet (laboratorio sistemi)

Aula per presentazioni multimedialiAula per presentazioni multimediali

Page 9: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

9928/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Sussidi didatticiSussidi didattici

Presentazioni multimedialiPresentazioni multimediali

Dispense cartaceeDispense cartacee

Moodle (LMS, blog, forum,…)Moodle (LMS, blog, forum,…)

Social bookmarking (Delicious) Social bookmarking (Delicious)

Page 10: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

101028/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

MetodologiaMetodologia

Lezione frontale con ausilio strumenti Lezione frontale con ausilio strumenti multimedialimultimediali

Discussione/dibattitoDiscussione/dibattito

TutorialTutorial

ProgettoProgetto

Page 11: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

111128/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

TempiTempi

11 ore:11 ore: 3 ore in aula attrezzata per multimedia3 ore in aula attrezzata per multimedia 8 ore in laboratorio8 ore in laboratorio

Page 12: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

121228/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Attività per la valutazioneAttività per la valutazione

Installazione di ApacheInstallazione di Apache

Configurazione Apache Configurazione Apache

Configurazione alias e virtual hostConfigurazione alias e virtual host

Creazione pagine HTML per ApacheCreazione pagine HTML per Apache

Accesso ai web server della LANAccesso ai web server della LAN

Questionario di autovalutazioneQuestionario di autovalutazione

Riflessione nel blog personaleRiflessione nel blog personale

Page 13: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 1313

SceneggiaturaSceneggiatura

Page 14: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

141428/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 1 (3 ore)Fase 1 (3 ore)

Presentazione multimediale di Presentazione multimediale di Applicazioni distribuite e paradigmi di Applicazioni distribuite e paradigmi di

comunicazionecomunicazione Web ServerWeb Server

Discussione (dubbi, domande, ipotesi)Discussione (dubbi, domande, ipotesi)

Docente facilitatoreDocente facilitatore

Materiali di studio su MoodleMateriali di studio su Moodle

Page 15: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 1515

Vediamo i contenuti Vediamo i contenuti della fase 1della fase 1

Page 16: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 1616

Applicazioni distribuite e Applicazioni distribuite e paradigmi di comunicazioneparadigmi di comunicazione

Page 17: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

171728/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Applicazioni distribuiteApplicazioni distribuite

Composte da più unità software Composte da più unità software cooperanti su macchine di una retecooperanti su macchine di una rete Le unità devono “Le unità devono “parlarsiparlarsi”” Servono protocolliServono protocolli

Più applicazioni cooperanti Più applicazioni cooperanti

Sistemi distribuiti

Page 18: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

181828/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Esempi di sistemi distribuitiEsempi di sistemi distribuiti

WWWWWW

Email…..Email…..

In generale i servizi del livello Applicazione In generale i servizi del livello Applicazione di Internetdi Internet

Page 19: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

191928/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Paradigmi di comunicazioneParadigmi di comunicazione

Client/Server (C/S)Client/Server (C/S)

Peer to peer (p2p)Peer to peer (p2p)

Page 20: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

202028/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Client/ServerClient/Server

Client Server

RICHIESTA

RISPOSTA

End User

Client chiede servizi al ServerClient chiede servizi al Server

Server risponde alle richieste dei clientServer risponde alle richieste dei client

Es. Web Browser/Web ServerEs. Web Browser/Web Server

Page 21: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

212128/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

HTTPHTTP

Web Browser e Web Server comunicano Web Browser e Web Server comunicano basandosi sul protocollo HTTP (HyperText basandosi sul protocollo HTTP (HyperText Transfer Protocol)Transfer Protocol)

HTTP è:HTTP è: AsimmetricoAsimmetrico Stateful Stateful

Page 22: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

222228/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Peer to peerPeer to peer

Ogni host può diventare client o serverOgni host può diventare client o server

Ci può essere un server per la centralizzazione Ci può essere un server per la centralizzazione degli indicidegli indici

Page 23: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

232328/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Architetture three-tierArchitetture three-tier

Tre moduli:Tre moduli: GUIGUI Business logicBusiness logic Dati persistentiDati persistenti

Che comunicano a coppie secondo lo schema C/SChe comunicano a coppie secondo lo schema C/S

Web Browser Web Server

RICHIESTA

RISPOSTA

DB Server

RICHIESTA

RISPOSTA

Page 24: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

242428/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Architetture n-tierArchitetture n-tier

Application server per pagine dinamicheApplication server per pagine dinamiche

Es. TomcatEs. Tomcat

Web Browser Web Server

RICHIESTA

RISPOSTA

DB Server

RICHIESTA

RISPOSTA

Application Server

RICHIESTA RISPOSTA

Page 25: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 2525

I Web ServerI Web Server

Page 26: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

262628/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Web serverWeb server

Hanno un web space per contenere le risorse Hanno un web space per contenere le risorse richieste dai clientrichieste dai client

Web ServerWeb Space

HD

Page 27: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

272728/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Web Server Web Server

Ascoltano sulla porta 80Ascoltano sulla porta 80

Servono il client con processi figliServono il client con processi figli

Notificano gli erroriNotificano gli errori

Terminano la connessione Terminano la connessione

Page 28: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

282828/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

HTTPHTTP

2 versioni:2 versioni: HTTP 1.0HTTP 1.0 HTTP 1.1HTTP 1.1

2 tipi di messaggi2 tipi di messaggi HTTP requestHTTP request HTTP responseHTTP response

Page 29: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

292928/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

HTTP requestHTTP request

Request line (metodo + URI)Request line (metodo + URI)

Header (host + user agent)Header (host + user agent)

Metodi: GET, POST,…Metodi: GET, POST,…

Request line

Header

Body

Page 30: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

303028/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Metodi HTTPMetodi HTTP

Metodi HTTP

Metodo Significato

GET 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

Page 31: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

313128/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

HTTP responseHTTP response

Status line (codici stato)Status line (codici stato)

Header (server+ content Header (server+ content type)type)

Codici stato: 301, 400,…Codici stato: 301, 400,…

Status line

Header

Body

Page 32: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

323228/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Codici di statoCodici di stato

Codici di stato HTTP

Metodo Significato

200 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

Page 33: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

333328/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 2 (1 ora LAB)Fase 2 (1 ora LAB)

Installazione di ApacheInstallazione di Apache Vengono fornite istruzioni mediante i materialiVengono fornite istruzioni mediante i materiali Gli studenti, individualmente, procedono Gli studenti, individualmente, procedono

all’installazione usufruendo dei materiali del all’installazione usufruendo dei materiali del docente (Moodle) e di informazioni reperite in docente (Moodle) e di informazioni reperite in InternetInternet

Il docente interviene il minimo indispensabileIl docente interviene il minimo indispensabile I link più interessanti su DeliciousI link più interessanti su Delicious

Page 34: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

343428/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 3 (1 ora LAB)Fase 3 (1 ora LAB)

Configurazione di ApacheConfigurazione di Apache ServerAdminServerAdmin ServerNameServerName DocumentRootDocumentRoot DirectoryIndex…DirectoryIndex…

Upload su Moodle della copia del file di Upload su Moodle della copia del file di configurazione configurazione

Page 35: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

353528/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 4 (2 ore LAB)Fase 4 (2 ore LAB)

Creazione AliasCreazione AliasConfigurazione Virtual HostConfigurazione Virtual Host Il docente introduce brevemente gli argomentiIl docente introduce brevemente gli argomenti Gli allievi operano seguendo le istruzioni Gli allievi operano seguendo le istruzioni

riportate sui materiali del docente (Moodle) e riportate sui materiali del docente (Moodle) e cercando in Internetcercando in Internet

Utilizzo di DeliciousUtilizzo di Delicious

Upload su Moodle della copia del file di Upload su Moodle della copia del file di configurazione configurazione

Page 36: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 3636

Vediamo i contenuti Vediamo i contenuti delle fasi 3-4delle fasi 3-4

Page 37: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

28/03/200728/03/2007 Cinzia BocchiCinzia Bocchi 3737

Il Web Server ApacheIl Web Server Apache

Page 38: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

383828/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

ApacheApache

Istruzioni di installazioneIstruzioni di installazione

Configurazione (Configurazione (httpd.confhttpd.conf))

AliasAlias

Virtual HostVirtual Host

Page 39: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

393928/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

AliasAlias

Link a directory che contengono risorse Link a directory che contengono risorse per Apacheper Apache

Es.Es.Alias /images/ "C:/images/“Alias /images/ "C:/images/“<Directory "C:/images"> <Directory "C:/images"> Options Indexes MultiViews Options Indexes MultiViews AllowOverride None AllowOverride None Order allow,deny Order allow,deny Allow from allAllow from all</Directory></Directory>

Page 40: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

404028/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Virtual HostVirtual Host

Siti diversi sullo stesso hostSiti diversi sullo stesso host Nomi di dominio diversi Nomi di dominio diversi Stesso IPStesso IP

ES.ES.<VirtualHost *:80> <VirtualHost *:80> DocumentRoot "C:/mioSito/mioSito2" DocumentRoot "C:/mioSito/mioSito2" ServerName myHostServerName myHost</VirtualHost></VirtualHost>

Page 41: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

414128/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 5 (3 ore LAB)Fase 5 (3 ore LAB)

Costruzione pagine HTML per il server Costruzione pagine HTML per il server web e per l’host virtualeweb e per l’host virtuale

Accesso a Web server sulla LANAccesso a Web server sulla LAN

Page 42: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

424228/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

Fase 6 (1 ora LAB)Fase 6 (1 ora LAB)

Compilazione questionario Compilazione questionario autovalutazione (Moodle + correzione autovalutazione (Moodle + correzione automatica)automatica)

Riflessione nel blogRiflessione nel blog

Page 43: 28/03/2007 Cinzia Bocchi 1 Architetture distribuite I Web Server.

434328/03/200728/03/2007 Cinzia BocchiCinzia Bocchi

RiferimentiRiferimenti

A. Lorenzi et al. – “A. Lorenzi et al. – “Linux Il sistema operativo L’amministrazione I Linux Il sistema operativo L’amministrazione I server di reteserver di rete” – ed. ATLAS, 2005” – ed. ATLAS, 2005A.S. Tanenbaum – “A.S. Tanenbaum – “Reti di computerReti di computer” – ed. UTET, terza edizione” – ed. UTET, terza edizioneB. Ball et al. – “B. Ball et al. – “Red Hat Linux 9Red Hat Linux 9” – ed. APOGEO, 2003 ” – ed. APOGEO, 2003 Wikipedia: Web Server Wikipedia: Web Server http://http://en.wikipedia.org/wiki/Web_serveren.wikipedia.org/wiki/Web_serverWikipedia: HTTPWikipedia: HTTPhttp://http://it.wikipedia.orgit.wikipedia.org//wikiwiki/HTTP/HTTPWikipedia: Architettura three-tierWikipedia: Architettura three-tierhttp://http://it.wikipedia.orgit.wikipedia.org//wikiwiki/Architettura_three-tier/Architettura_three-tier HTML.IT: Apache e TomcatHTML.IT: Apache e Tomcathttp://server.html.it/guide/lezione/2721/tomcat-e-apachehttp://server.html.it/guide/lezione/2721/tomcat-e-apacheHTML.IT: Guida ApacheHTML.IT: Guida Apachehttp://http://server.html.itserver.html.it/guide/lezione/2224//guide/lezione/2224/apache-per-windowsapache-per-windows