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