Applicazioni Web LNF 4 Settembre 2008 Dael Maselli
Applicazioni Web LNF – 4 Settembre 2008 Dael Maselli
Componenti n n World Wide Web (Web Server, HTTP e HTML) ¨ L’interfaccia verso gli utenti ¨ Pagine dinamiche Database ¨ n Dove risiedono i dati, come sono organizzati Authentication & Authorization ¨ L’autenticazione e autorizzazione degli utenti e’ oggi una problematica che necessita di essere gestita separatamente
World Wide Web
Web Server n E’ un programma che si occupa di fornire, su richiesta di un browser, un contenuto (file) n Puo’ servire pagine qualsiasi tipo di file, e’ poi compito del browser interpretarne il contenuto n Per la comunicazione viene utillizzato il protocollo HTTP (Hyper. Text Transfer Protocol)
HTTP – Analisi di una connessione Richiesta del browser al server: GET /index. html HTTP/1. 1 Host: www. infn. it Connection: Keep-Alive User-Agent: Mozilla/5. 0 (compatible; Konqueror/3. 2; Linux) (KHTML, like Gecko) Accept: text/html, image/jpeg, image/png, text/*, image/*, */* Accept-Encoding: x-gzip, x-deflate, gzip, deflate, identity Accept-Charset: iso-8859 -1, utf-8; q=0. 5, *; q=0. 5 Accept-Language: en Risposta del server al browser: HTTP/1. 0 200 OK Date: Mon, 28 Jun 2004 10: 47: 31 GMT Server: Apache/1. 3. 29 (Unix) PHP/4. 3. 4 Vary: Accept-Encoding, Cookie Cache-Control: private, s-maxage=0, max-age=0, must-revalidate Content-Language: it Content-Type: text/html; charset=utf-8 Connection: close <!DOCTYPE HTML PUBLIC "-//W 3 C//DTD HTML 4. 01 Transitional//EN"> <html> <head> <title>Istituto Nazionale di Fisica Nucleare</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859 -1"> </head> <body leftmargin="5" topmargin="0" marginwidth="5"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top"><table border="0" cellspacing="0" cellpadding="0"> [. . . ]
HTML n Le pagine web sono scritte utillizzando il linguaggio HTML n E’ un linguaggio di formattazione, non di programmazione n Definisce la struttura di una pagina (sezioni, paragrafi, titoli, ecc) n Non definisce lo stile della pagina (colori, font, ecc), per il quale si utilizza il linguaggio CSS
HTML <html> <head> <title>Pagina di prova</title> </head> <body> <h 1>Primo paragrafo</h 1> <p> Questo è il testo del primo paragrafo </p> <h 1>Secondo paragrafo</h 1> <p> Questo è il testo del secondo paragrafo. Approfondisci l’HTML sul <a href=“http: //www. w 3. org”>sito del W 3 C</a> </p> </body> </html>
HTML
CSS n I CSS, (Cascading Style Sheets) o fogli di stile definiscono l’aspetto delle parti della pagina n Gli stili di una sezione vengono ereditati dalle sezioni in essa contenute n Possono essere definiti in un file separato dal contenuto (pagina HTML)
CSS <html> <head> <title>Pagina di prova</title> </head> <body> <h 1>Primo paragrafo</h 1> <p style=“font-size: 200%; ”> Questo è il testo del primo paragrafo </p> <h 1>Secondo paragrafo</h 1> <p> Questo è il testo del secondo paragrafo </p> </body> </html>
CSS
CGI n Il webserver oltre che servire file statici presenti su disco puo' generare pagine dinamiche n E' possibile fare in modo che i contenuti serviti siano generati tramite delle applicazioni n Nel caso della directory /cgi-bin/ di un sito web, ad esempio, il server esegue il file richiesto ed invia al browser l'output dell'applicazione
CGI n Se nella directory /cgi-bin/ del server creiamo il file prova. sh contenente: #!/bin/bash echo "Content-Type: text/plain" echo "La data di oggi: " date n Puntanto il browser su http: //sito/cgi-bin/prova. sh avremo una pagina dinamica che mostra sempre l'ora del server aggiornata n Generalmente i CGI sono scritti con linguaggi piu' "furbi", come il PERL
PHP n Grazie al linguaggio PHP (PHP Hypertext Preprocessor) e' possibile inserire delle istruzioni direttamente nelle pagine web n Questo semplifica molto le cose durante la programmazione n Inoltre il PHP e' un linguaggio studiato per il Web e di conseguenza implementa molte funzioni specifiche per la generazione di pagine dinamiche
PHP <html> <head> <title>Pagina di prova</title> </head> <body> <h 1>Primo paragrafo</h 1> <p style=“font-size: 200%; ”> Questo è il testo del primo paragrafo La radice quadrata di 9 e': <? php echo sqrt(9); ? > </p> <h 1>Secondo paragrafo</h 1> <p> Questo è il testo del secondo paragrafo </p> </body> </html>
Database
Database I dati, nelle applicazioni web, vengono gestiti attraverso dei Data. Base Management System, DBMS n Garantiscono un’intefaccia standard con le applicazioni, detta Standard Query Language, SQL n Gestiscono la struttura della memorizzazione per ottimizzare le permormance e l’utilizzo di risorse n Danno garanzia di integrita’ dei dati n Spesso permettono una configurazione failover, ovvero la garanzia della disponibilita’ del servizio
Database – struttura dei dati (1) n I dati nei database sono suddivisi in campi in ognuno dei quali risiede una singola informazione ¨ esempi di campi possono essere: nome, cognome, indirizzo, ecc n I campi con informazioni relative alla stessa entita’ vengono raggruppati in record ¨ In un record possiamo trovare il nome, cognome e indirizzo della stessa persona
Database – struttura dei dati (2) n Tutti i record che hanno la stessa categoria di informazione e con stessa struttura di campi vengono raggruppati all’interno di tabelle ¨ esempio: l’anagrafica, che contiene un record per ogni persona a sua volta contenente sempre le stesse informazioni (nome, cogome, indirizzo, ecc) n Le tabelle sono infine racchiuse in schemi ¨ Uno schema raccoglie i dati appartenenti ad una applicazione o scopo delle infomazioni, ad es: personale, stipendi, catalogo libri, ecc.
Database – interfaccia n L’interfaccia verso l’esterno di un database e’ il linguaggio SQL, un linguaggio standard che permette di interrogare il server n Ecco un esempio di interrogazione: Richiesta dell’utente: SELECT Nome, Cognome, Num. Tel FROM anagrafica WHERE Congome=‘maselli’ OR Cognome=‘mazzitelli’; Risposta del server: +----------------+--------+ | Nome | Cognome | Num. Tel | +----------------+--------+ | Dael | Maselli | 0694032214 | +----------------+--------+ | Giovanni | Mazzitelli | 0694032411 | +----------------+--------+
Autenticazione e Autorizzazione
Autenticazione n Come tutti i sistemi multiutente, anche le applicazioni web possono aver bisogno del riconoscimento degli utenti n La questione della autenticazione era una volta gestita internamente alle applicazioni ¨ Con conseguente proliferare di database e metodi diversi per farsi riconoscere n Oggi si tende ad astrarre i sistemi autenticazione e separarli dalle applicazioni di
AAI (Authentication & Authorization Infrastructure) n Si creano quindi delle infrastrutture di autenticazione centralizzate n Permettono di riconoscere tutti gli utenti appartenenti ad un ente n Per ogni utente vengono resistrate varie informazioni che determinano le autorizzazioni che questo ha nei confronti delle applicazioni
INFN AAI n La Commissione Calcolo e Reti dell'INFN ha formato un gruppo per lo studio e l'implementazione di una infrastruttura di Autenticazione ed Autorizzazione per l'INFN n Il lavoro e' molto complesso nonche' ambizioso, ci vorranno diversi mesi prima che sia concluso
F I N E Dael Maselli Dael. Maselli@LNF. INFN. IT
- Slides: 25