Architetture Web I Server Web e gli Standard della Comunicazione



Documenti analoghi
Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web: un ripasso

Siti web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications)

Come funziona internet

Componenti Web: client-side e server-side

XML e PHP. Gestire XML con PHP. Appendice

Flavio De Paoli

Siti interattivi e dinamici. in poche pagine

Tecnologie di Sviluppo per il Web

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Esercizi di JavaScript

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tipi fondamentali di documenti web

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Internet Architettura del www

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

Tener traccia del client

19. LA PROGRAMMAZIONE LATO SERVER

Corso di PHP. Prerequisiti. 1 - Introduzione

Gestire le sessioni con le Servlet

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

XML: extensible Markup Language

Corso basi di dati Introduzione alle ASP

Programmazione server-side: Java Servlet

Il Web Server e il protocollo HTTP

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Svantaggi delle servlet

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

Protocolli e architetture per WIS

sito web sito Internet

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Implementazione di MVC. Gabriele Pellegrinetti

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Laboratorio Matematico Informatico 2

Corso di Informatica Modulo T3 B1 Programmazione web

Architetture Applicative

Corso di PHP. Prerequisiti. 1 - Introduzione

Seminario di Sistemi Distribuiti RPC su SOAP

extensible Markup Language

Corso di Informatica Modulo T3 B2 - Database in rete

DBMS e Linguaggi di programmazione nell'era di Internet

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Progetto ittorario Anno scol

Architetture Web parte 2

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni


Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Strutture di accesso ai dati

Protocolli applicativi: FTP

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Tecnologie di Sviluppo per il Web

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Progettazione : Design Pattern Creazionali

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Guida all uso delle Web View su ios

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

Introduzione all elaborazione di database nel Web

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Informatica A per Ingegneria Gestionale ( ) Il linguaggio HTML. Elisa Quintarelli-Laura Mandelli. HyperText Markup Language

Sistemi avanzati di gestione dei Sistemi Informativi

Informatica per le discipline umanistiche 2 lezione 10

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

I protocolli applicativi. POP (Post Office Protocol) Telnet FTP SMTP e POP NNTP HTTP e tecnologie per il web

HTML+XML= XHTML. Che cos è l XHTML

Database e reti. Piero Gallo Pasquale Sirsi

Le Basi di Dati. Le Basi di Dati

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Programmazione Server Side e Database in rete

Manuali.net. Nevio Martini

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale

Dal protocollo IP ai livelli superiori

Linguaggi per il web oltre HTML: XML

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Una metodologia di progettazione di applicazioni web centrate sui dati

Architettura client-server

Realizzazione di una chat su protocollo HTTP

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

CORSO DI PROGRAMMAZIONE JAVA

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Capitolo 4 Pianificazione e Sviluppo di Web Part

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

La realizzazione di WebGis con strumenti "Open Source".

XML. XML è contemporaneamente: XML non è:

EXPLOit Content Management Data Base per documenti SGML/XML

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

MetaMAG METAMAG 1 IL PRODOTTO

Lezione II: Web server e ambiente di lavoro

Simple & Efficient.

Transcript:

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