Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side I Server Web e Gli Standard della Comunicazione Fondamenti di Informatica II
il Server Side Il Server Side Che cosa deve poter fare un Server Web? Deve possedere un indirizzo IP ed un hostname registrati presso qualche DNS. Deve avere un applicativo che supporta il Protocollo HTTP. Deve mantenere su qualche disco un albero di contenuti web: file html, immagini, file javascript, file css, jars etc. Mantenere una mappa che associa agli URI le risorse memorizzate in locale. Che cosa può fare un Server Web? Riconoscere che più richieste HTTP arrivano dallo stesso utente. Anzichè fornire dei file HTML memorizzati nel file System, il Server può elaborare i contenuti mediante codice di programmazione. L Elaborazione dei contenuti può avvenire in molti modi A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 2 / 18
il Server Side Elaborazione dei contenuti HTML Alcune tecnologie Server-Side per l elaborazione dei contenuti HTML CGI (Common Gateway Interface): la prima tecnologia, basata su una serie di interfacce disponibili nei linguaggi C/C++ e Perl PhP (PHP: Hypertext Preprocessor, l acronimo è ricorsivo): la tecnologia ad oggi più diffusa, più documentata ed utilizzata. Servlet : tecnologia Java. Il termine deriva da un parallelo col termine Applet. JSP (Java Server Pages) : una ulteriore alternativa in Java, legata alla Servlet, ma con un meccanismo di elabotazione dei contenuti HTML più simile a quello del PhP. ASP (Active Server Pages) : tecnologia caratteristica dei Server Microsoft. I Ruoli di queste tecnologie: Usano codice di programmazione per alterare il contenuto delle Pagine HTML. Fornire strumenti per la gestione delle sessioni. Fornire librerie per l utilizzo delle basi di dati, nei servizi web dove questo sia utile. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 3 / 18
PhP Php : Hypertext Preprocessor Il linguaggio Php è un linguaggio di scripting che consente di alterare il contenuto di un file HTML. I semi Tag speciali <? o <?php e >? consentono di inserire codice PhP all interno del codice HTML. Quando la pagina viene interpretata dall interprete PhP, il codice PhP viene rimosso ed eseguito. Al posto del codice Php nella pagina compaiono eventuali stringhe di testo prodotto attaverso funzioni di stampa come print o echo. Il linguaggio è di tipo procedurale e ricorda sotto certi aspetti il linguaggio C, anche se di recente è stato esteso con funzionalità ad oggetti. L Apache HTTP Server L Apache HTTP Server è nel modo più assoluto il Server Web più diffuso, ed è spesso utilizzato in combinazione con il suo interprete PhP. Apache è anche il nome di un Gruppo di Sviluppo Open, che negli anni ha contribuito, oltre che all ononimo Server HTTP, allo sviluppo di un grande insieme di Server per il Web. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 4 / 18
PhP Php : un Esempio Codice PhP <html> <head> <title> Esempio 1 </title> </head> <body> <?php echo Ciao Studenti del Corso di Fondamenti!! ;?> </body> </html> Codice Html <html> <head> <title>esempio 1</title> </head> Ciao Studenti del Corso di Fondamenti!! <body> </body> </html> Quando questa pagina viene richiesta al Server, il codice php viene interpretato da un interprete php che rielabora il contenuto html prima che venga spedito via http. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 5 / 18
PhP Il Concetto di Sessione Una Sessione è una catena di richieste-risposte che un Client ed un Server si effettuano a vicenda. Durante una sessione il Server si ricorda del Client con cui sta comunicando. Ogni sessione è caratterizzata da: Fase di Apertura Messaggi Chiusura Uno dei ruoli più importanti dei linguaggi di elaborazione Lato Server è quello di fornire contenuti HTML differenti a seconda di informazioni mantenute all interno di una sessione. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 6 / 18
PhP Il Concetto di Sessione : un Esempio PhP (Server)sessione.php <?php session start(); $user= Utente Generico ; if(isset($ GET[ user ])) $user=$ GET[ user ]; else if(isset($ SESSION[ user ])) $user=$ SESSION[ user ]; $ SESSION[ user ]=$user;?> <html> <head> <title>esempio 2</title></head> <body> <?php echo Ciao ; echo $ SESSION[ user ]; echo!?> </body> </html> (Client, prima volta)sessione.php <html> <head> <title>esempio 2</title></head> <body> Ciao Utente Generico! </body> </html> (Client, seconda volta)sessione.php?user=marco <html> <head> <title>esempio 2</title></head> <body> Ciao Marco! </body> </html> A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 7 / 18
PhP Il Server Apache TomCat e le Servlet TomCat è il Sistema Server Web di riferimento nel mondo Java. Sviluppato da Apache. E Basato sulla Tecnologia Java Servlet. Supporta inoltre la tecnologia JSP (Java Server Page), tecnologia molti simile come meccanismo al PhP, ma dove gli script sono scritti in linguaggio quanto più simile a Java. Le Pagine JSP sono ricompilate sotto forma di Servlet. Java Servlet Il Termine deriva da Server Let, ed è nato con riferimento al termine Applet. Le Servlet sono Classi Java che implementano un servizio di risposta HTTP, utilizzando codice Java per l elaborazione dinamica dei contenuti HTML e per l interogazione delle Basi di Dati. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 8 / 18
PhP Il Server Apache TomCat e le Servlet Una semplice Servlet import java. io. ; import javax. servlet. ; import javax. servlet. http. ; public class HelloWorld extends HttpServlet { public void doget( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { response. setcontenttype ( text/html ); PrintWriter out = response. getwriter (); out. println( <html > ); out. println( <head > ); out. println( <title >Hello World!</ title > ); out. println( </head > ); out. println( <body> ); out. println( <h1>hello World!</h1> ); out. println( </body> ); out. println( </html > ); } } A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 9 / 18
Il Formato XML XML : extensible Markup Language il formato XML è nel modo più assoluto lo standard per la formattazione dei Dati che vengono scambiati attraverso la rete. Definito alla fine degli anni 90, con una sintassi che ricorda quella di HTML. Da HTML, eredita il meccanismo dei Tag. XML è tuttavia un meta-linguaggio: fornisce una serie di regole sintattiche per la definizione di linguaggi più specifici. Non è del tutto sbagliato ridurre il discorso dicendo che un XML non è nient altro che l applicazione della sintassi dei TAG alla formattazione di qualsiasi insieme di dati strutturato. Un formato XML è sempre accompagnato dal suo Document Type Definition (DTD) Il vantaggio di usare l XML è quello di uniformare la struttura dei dati che attraversano la rete e quindi uniformare le tecnologie per gestirli. L XHTML è una versione rivisitata di HTML che rispetta completamente il formalismo e le caratteristiche dei linguaggi XML. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 10 / 18
Il Formato XML XML: un esempio (1/2) Descrivere i dati di una Università <?xml version= 1.0 encoding= UTF-8?> <uni> <docenti> <docente nome= Giovanni cognome= Brambilla > <corso nome= Fondamenti di Chimica I /> <corso nome= Fondamenti di Chimica II /> </docente> <docente nome= Paolo cognome= Rossi > <corso nome= Fondamenti di Fisica III /> <corso nome= Teoria dei Circuiti /> </docente> </docenti> <studenti> <studente nome= Gianni cognome= Verdi /> <studente nome= Paolo cognome= Bianchi /> <studente nome= Sara cognome= Rossi /> </studenti> </uni> A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 11 / 18
Il Formato XML XML: un esempio (2/2) il DTD: definizione del formato <! ELEMENT persona (nome, cognome)> <!DOCTYPE uni [ <!ELEMENT uni (docenti,studenti)> <!ELEMENT docenti (docente)> <!ELEMENT studenti (studente)> <!ELEMENT docente (corso)> <!ATTLIST docente nome CDATA #REQUIRED cognome CDATA #REQUIRED>]> <!ELEMENT corso (#PCDATA) > <!ELEMENT studente> <!ATTLIST studente nome CDATA #REQUIRED cognome CDATA #REQUIRED>]> ]> A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 12 / 18
Il Formato XML XML: il Document Object Model Il DOM è una concetto largamente utilizzato e di supporto ai linguaggi XML. Il DOM è una descrizione ad oggetti degli elementi appartenenti ad un documento. Il DOM è utilizzato tanto per descrivere file HTML che XML, con particolare riferimento alla struttura ramificata (ad albero) che questi documenti hanno. Il DOM è uno standard pensato sia per fornire un modello di documentazione degli elementi di una sintassi XML sia un modello di riferimento per librerie di programmazione che debbano dati formattati in XML. In particolare il DOM è usato nel linguaggio Javascript, che contiene funzionalità standard per l accesso dei dati XML attraverso il DOM. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 13 / 18
Il Formato XML Lo standard XML e i servizi Web Java Java Enterprise Edition La Java Enterprise Edition è un insieme molto vasto di librerie Java frammiste a tool per lo sviluppo di tecnologie Web. Il Server Web OpenSource GlassFish, originariamente sviluppato da Sun Microsystem, è il Server Web di riferimento per queste tecnologie. Caratteristiche principali della piattaforma: Un massiccio insieme di librerie per: Gestire documenti XML e HTML Gestire le sessioni e l accesso alle basi di dati. Procedure standard per il salvataggio di oggetti su file xml, o per la lettura di file xml che contengono informazioni relative ad oggetti. Basate sulla serializzazione e sulla riflessione. Basate su standard per la codifica delle classi. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 14 / 18
Il Formato XML XML e Javascript : la Cosidetta Tecnologia AJAX Il termine AJAX (Asynchronous JavaScript and XML) è un termine di marketing usato negli ultimi anni per indicare una tecnologia che sfrutta i vantaggi combinati del linguaggio Javascript, delle Librerie Javascript che consentono di gestire il DOM, e dei documenti XML. Ajax non è un linguaggio, ma è semplicemente un modo diverso di usare strumenti che erano già disponibili. Tuttavia Ajax cambia significativamente il modo di concepire il Web. L Obiettivo è quello di delegare a Javascript l inserimento all interno di pagine HTML. Javascript modifica il contenuto HTML andando ad interrogare il server. Il Server fornisce i dati a Javascript usando un linguaggio XML (eventualmente l XHTML). Fra tanti, Gmail è uno degli esempi più significativi della tecnologia Ajax. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 15 / 18
Il Formato XML Tecnologia AJAX: comunicazione vecchio stile Client HTML Reload (2) (1) Server Modulo PhP HTML Nuovo (3) Reload (1) Il Client chiede al Server una pagina HTML. (2) Sul Client, l utente interagisce con una pagina cliccando su un pulsante. Questo provoca un ricaricamento dei dati. (3) Il Server risponde con una nuova pagina HTML. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 16 / 18
Il Formato XML Tecnologia AJAX: un nuovo modo di comunicare. HTML (1.3)(2,3) modifica JS onload (1.1) (1) Server Client Reload (2) onclick (1.2),(2,1) (1.2),(2.2) (1.2),(2.2) XML Modulo PhP (1) Il Client chiede al Server una pagina HTML. (1.1)onLoad il modulo Javascript (1.2) chiede un documento XML contenente i dati per modificare il contenuto (1.3) HTML. (2) Sul Client, l utente interagisce con una pagina cliccando su un pulsante. Questo provoca un ricaricamento dei dati, e si ripete il processo già avvenuto al punto (1). Con AJAX, i contenuti grafici, il testo HTML, gli stili CSS e gli script Javascript vengono caricati all inizio una volta per tutte. Le informazioni cambiano e si aggiornano in modo dinamico senza provocare un reload della pagina. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 17 / 18
Il Formato XML AJAX, ed Web 2.0 HTML 5 Il Web oggi: Javascript ed AJAX La flessibilità introdotta dalla tecnologia Javascript e dal metodo AJAX consente una alterazione flessibile dei contenuti HTML senza doversi adattare a continui reload. Queste soluzioni hanno tra l altro il vantaggio di alleggerire i servizi Web. Web 2.0 Col termine Web 2.0 si indica solitamente la diffusione di una serie di servizi, applicazioni e tecnologie messe a disposizione in rete, e che rendono più semplice lo sviluppo di pagine Web. Tra questi troviamo blog, forum, wiki, mail systems etc. HTML 5 HTML5 è l ultima versione di HTML. HTML prevede tra le altre cose la definitiva integrazione di Javascript come parte di HTML ed una separazione più marcata tra contenuti di stile e struttura dei documenti. A. Martinelli () Architetture Web I Server Web e gli Standard della Comunicazione 27/03/2012 18 / 18