• collegato da un unico spazio di indirizzi basato sul protocollo IP

Presentazione del ciclo di lezioni
Tecnologie per applicazioni Web
•
•
•
•
Definizione e cronologia di Internet e del Web
Protocolli base (TCP/IP, HTTP)
Architetture per il Web
Progettazione di siti Web data-intensive
Parte prima: i protocolli di Internet e del Web
Basi di dati – Paolo Zirilli
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
Prima di Internet:
comunicazione punto a punto
Internet: una definizione
Sistema globale di informazione che:
• collegato da un unico spazio di
indirizzi basato sul protocollo IP
• consente di comunicare mediante
protocollo TCP/IP o sue estensioni
• rende accessibili, pubblicamente o
privatamente, servizi basati sulla
infrastruttura descritta
Nella comunicazione punto a punto
esiste un canale fisico dedicato
Federal Networking Council, 24/10/1995
Basi di dati – Paolo Zirilli
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
1
L’era di Internet:
la commutazione di pacchetto
Ipertesti multimediali
Nella commutazione di pacchetto il
messaggio viene diviso in atomi
“instradati”
instradati” lungo una rete di nodi
Basi di dati – Paolo Zirilli
[email protected]
Definizione di WWW
Web: un sistema client-server su Internet
per l’accesso a ipertesti multimediali
è un servizio su internet
richiesta
client
risposta
Basi di dati – Paolo Zirilli
Ipertesto multimediale: un documento
a lettura non sequenziale
con inserti multimediale
Basi di dati – Paolo Zirilli
[email protected]
Il protocollo TCP/IP
• Transfer Control Protocol / Internet Protocol
• Insieme di protocolli (suite) strutturati in
maniera gerarchica
• Ogni livello della gerarchia usa i servizi
forniti dal livello inferiore e offre servizi al
livello superiore
server
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
2
TCP e IP
Il protocollo HTTP
• Internet Protocol
– si occupa della spedizione in rete di unita’
di informazione (datagram)
– definisce il meccanismo di indirizzamento
dei nodi di Internet (IP address)
• Transfer Control Protocol
– converte il flusso dati proveniente dalla
applicazione in pacchetti (segment)
trasmissibili in rete
– verifica integrità e correttezza dei dati
trasmessi (recupero pacchetti persi,
rimozione duplicati ...)
Basi di dati – Paolo Zirilli
[email protected]
Gli attori di HTTP
Basi di dati – Paolo Zirilli
[email protected]
Gli attori di HTTP
•proxy:
proxy:
nodo intermedio
che può fungere
sia da client che
da server.
•cliente
(browser):
genera richieste
di risorse
Intercetta le
richieste e
verifica se può
soddisfarle da
solo, altrimenti
le inoltra al
server.
•(origin)
origin)
server:
depositario
della risorsa
richiesta
Basi di dati – Paolo Zirilli
• HyperText Transfer Protocol
• Protocollo a livello di applicazione per lo
scambio di ipertesti multimediali
• Prescrive il formato di
– nomi delle risorse URI (URL)
– domande
– risposte
• Versioni: HTTP/0.9, 1.0, 1.1…
• Riferimento: Tim Berners Lee, Request for
Comment 1945, HTTP/1.0
[email protected]
Basi di dati – Paolo Zirilli
Scopi:
•Migliorare le performance
•Filtrare le richieste
[email protected]
3
Gli attori di HTTP
Uniform Resource Locator (URL)
•gateway:
nodo intermedio
che può agire
solo da server.
Intercetta le
richieste,
verifica se sono
ammesse e le
traduce
Basi di dati – Paolo Zirilli
Scopi:
•Traduzione tra protocolli
•Protezione
[email protected]
Formato dei documenti
• È una stringa strutturata, ad esempio:
http://www.uniroma2/didattica/
• Protocollo: http, ma anche ftp e gopher
• Indirizzo della macchina:
– simbolico: www.uniroma2.it
– numerico (IP): 131.175.21.1
– puo’ includere il numero di porta (es. :8080)
• Path: sequenza di direttori
• Nome risorsa: identificativo di un file
– se la risorsa e’ un file html, può includere un
indirizzo interno(es.
fraterna.html#curriculum)
Basi di dati – Paolo Zirilli
[email protected]
Il browser HTTP
• I documenti risiedono sul server come file e
vengono inviati al client usando il campo
entity-body della risposta
• ES: Ipertesto = file ASCII scritto secondo la
sintassi HyperText Markup Language (HTML)
• Estensioni tipiche del file: *.html *.htm
• Il documento puo’ contenere inserti
multimediali (immagini, audio, video)
• Applicazione in grado di:
– accedere alla rete secondo il protocollo HTTP
– richiedere risorse identificate da un URL a un
server
– interpretare e rendere a video la risposta del
server
– il programma client carica e visualizza il testo
– poi richiede al server i file corrispondenti agli
inserti multimediali (con richieste separate)
Basi di dati – Paolo Zirilli
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
4
Il browser HTTP
Il server HTTP
• Funzioni base:
• I diversi prodotti differenziano per:
– La versione di HTML trattata
– La capacità di trattare estensioni non
standard di HTML (ad es. JavaScript,
VBscript)
– La capacità di eseguire programmi (es. Java)
– accesso alla rete secondo il protocollo HTTP
– invio di risorse identificate da un URL a un
client
– controllo degli accessi
– lancio di programmi in risposta a richieste
– registrazione degli accessi (logging)
• Funzioni avanzate:
– monitoraggio e amministrazione
– connessione a basi di dati
– esecuzione efficiente di applicazioni esterne
Basi di dati – Paolo Zirilli
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
INDICE
INTERNET
Valutazione
delle architetture
• Ogni scelta architetturale va valutata in base a
dimensioni critiche:
Progettazione
dell’architettura
di rete
•Prestazioni
•Scalabilità
•Disponibilità
•Mantenimento dello stato
•Sicurezza
• Obiettivo di un’architettura: massimizzare queste
dimensioni
Basi di dati – Paolo Zirilli
[email protected]
Basi di dati – Paolo Zirilli
[email protected]
5
INTERNET
INTERNET
Obiettivi (1)
Obiettivi (2)
• Prestazioni: garanzia di sopportazione del carico
di lavoro previsto, in termini di:
– N° utenti concorrenti
– N° pagine servite/secondo
– Tempo di risposta all’utente
• Scalabilità: possibilità di aggiungere potenza
computazionale al crescere del carico di lavoro,
per mantenere elevate prestazioni
Basi di dati – Paolo Zirilli
[email protected]
• Disponibilità: garanzia di continuità del servizio
anche a fronte di errori e/o malfunzionamenti
• Mantenimento dello stato: capacità di
memorizzazione delle interazioni e dello stato
dell’utente, anche in ambiente distribuito
• Sicurezza: protezione delle informazioni,
identificazione dell’utente, accesso controllato ai
dati
Basi di dati – Paolo Zirilli
[email protected]
INTERNET
INTERNET
Vincoli:
limitazioni nella scelta
Scenari di installazione
• Le scelte architetturale sono vincolate da
limiti fisici, economici ed organizzativi:
•Costi: il prezzo delle risorse tecnologiche
richieste (macchine, reti, software)
• Tendenza generale: OUTSOURCING.
• Possibili scenari:
•Interno: architettura interna all’azienda,
gestita dalla divisione IT
•Complessità: difficoltà e costi di
•Hosting: applicazione installata su
•Standard aziendali: risorse pre-esistenti,
•Housing: applicazione installata
installazione, gestione e manutenzione
esperienza pregressa, integrazione con i
sistemi aziendali
Basi di dati – Paolo Zirilli
[email protected]
architettura di provider esterno, che la
gestisce completamente
internamente su macchine aziendali,
gestita poi da un fornitore di servizi esterno
Basi di dati – Paolo Zirilli
[email protected]
6
INTERNET
Server HTTP: architettura base
Apache/2.0.59
I componenti essenziali dell’architettura:
Web Server
Application
Server
Components
Container
Clients
Script
Engine
Components
Scripts
Database
management
systems
•Web Server
•Script Engine
•Application Server
•Database Server
t
iennt
cclile
interfaccia
di rete
Basi di dati – Paolo Zirilli
[email protected]
Dbms
Mysql 5.0.24
Risorse
interfaccia
file system
interfaccia
applicazioni
Scelte architetturali per decidere:
•Quali componenti vanno su macchine separate
•Quante macchine servono per ogni componente
•Come collegare tra loro componenti
WE
Bs
erve
r
Php/5.1.6
Basi di dati – Paolo Zirilli
Applicazioni
[email protected]
PER IL PROGETTO INSTALLARE
le seguenti versioni o le successive:
Apache/2.0.59
Mysql 5.0.24
Php 5.1.6
Basi di dati – Paolo Zirilli
[email protected]
7