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)

Componenti Web: client-side e server-side

19. LA PROGRAMMAZIONE LATO SERVER

Come funziona internet

Flavio De Paoli

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

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

Siti interattivi e dinamici. in poche pagine

Corso di PHP. Prerequisiti. 1 - Introduzione

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

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

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

Protocolli e architetture per WIS

Esercizi di JavaScript

Corso di Informatica Modulo T3 B1 Programmazione web

Programmazione server-side: Java Servlet

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

Una metodologia di progettazione di applicazioni web centrate sui dati

1. BASI DI DATI: GENERALITÀ

Database e reti. Piero Gallo Pasquale Sirsi

sito web sito Internet

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

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

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

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

Corso di Informatica Modulo T3 B2 - Database in rete

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

Corso basi di dati Introduzione alle ASP

Lezione 9. Applicazioni tradizionali

DBMS e Linguaggi di programmazione nell'era di Internet

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

extensible Markup Language

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

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

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

Architetture Applicative

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Le Basi di Dati. Le Basi di Dati

Implementazione di MVC. Gabriele Pellegrinetti

Lezione V. Aula Multimediale - sabato 29/03/2008

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

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Il Web Server e il protocollo HTTP

La realizzazione di WebGis con strumenti "Open Source".

EXPLOit Content Management Data Base per documenti SGML/XML

Informatica I per la. Fisica

Linguaggi per il web oltre HTML: XML

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Database. Si ringrazia Marco Bertini per le slides

HTML il linguaggio per creare le pagine per il web

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

Capitolo 4 Pianificazione e Sviluppo di Web Part

Esercitazione 8. Basi di dati e web

Architetture Informatiche. Dal Mainframe al Personal Computer

Informatica per le discipline umanistiche 2 lezione 10

DATABASE.

Seminario di Sistemi Distribuiti RPC su SOAP

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

XML. XML è contemporaneamente: XML non è:

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Protocolli applicativi: FTP

Introduzione ai database relazionali

Manuali.net. Nevio Martini

MetaMAG METAMAG 1 IL PRODOTTO

Web Programming Specifiche dei progetti

Presentazione Data Base

Progettazione : Design Pattern Creazionali

Architetture Informatiche. Dal Mainframe al Personal Computer

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

Il database management system Access

Access. P a r t e p r i m a

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Sistemi avanzati di gestione dei Sistemi Informativi

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

Reti di Telecomunicazione Lezione 6

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

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

Il Protocollo HTTP e la programmazione di estensioni Web

Guida all uso delle Web View su ios

Transcript:

Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server Side I Server Web Il Formato XML 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 01/04/2015 2 / 22

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 01/04/2015 3 / 22

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. A. Martinelli Architetture Web I Server Web e gli Standard della Comunicazione 01/04/2015 4 / 22

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 01/04/2015 5 / 22

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 01/04/2015 6 / 22

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> (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 01/04/2015 7 / 22

PhP Elaborazione dei Contenuti: Il Server SQL I Dati delle Applicazioni Distribuite sulla Rete sono solitamente descritti all interno di Tabelle secondo le strutture previste dal Modello Relazionale. I Server DB offrono un meccanismo di catalogazione e recupero dei dati mediante lo standard SQL ( Structured Query Language ). Linguaggi come il Php contengono istruzioni per Aprire una Sessione con una Base di Dati e formulare una Serie di Interrogazioni. Questo consente di trasformare le pagine Web in applicazioni, in grado di memorizzare nel tempo i dati degli utenti che transitano sul Web, e di visualizzarli quando necessario. Il Server SQL Il Server SQL è in grado di interagire con qualsiasi client attraverso il linguaggio SQL, che consente l inserimento e le interrogazioni sui dati, organizzati in Tabelle come previsto dal Modello Relazionale. Il Modello Relazionale, il Linguaggio Standard SQL ed i metodi per la strutturazione dei Dati saranno i temi principali del corso di Basi di Dati. A. Martinelli Architetture Web I Server Web e gli Standard della Comunicazione 01/04/2015 8 / 22

PhP Php ed SQL : Un Esempio (1/2) Alcune Query (Interrogazioni) SQL select count(*) from Studenti: Conta tutti i record del DB Studenti select * from Studenti: Restituisce tutti i record del DB Studenti. select Matricola from Studenti: Restituisce solo l elenco delle Matricole. Solitamente, nelle API che danno accesso all SQL i dati sono restituiti all interno di vettori. A. Martinelli Architetture Web I Server Web e gli Standard della Comunicazione 01/04/2015 9 / 22

PhP Php ed SQL : Un Esempio (2/2) Codice php: lettura dei Dati <?php $dbconnection=mysql connect($dbhost, $dbuser, $dbpass); mysql select db( studenti fiii ); $query=select * from Studenti; $res=mysql query($query); if($res!=false){ while($riga = mysql fetch array($res)){?> Matricola: <?php echo $riga[ Matricola ];?>, Nome: <?php echo $riga[ Nome ];?>, Cognome: <?php echo $riga[ Cognome ];?> <br/> <?php } mysql close($dbconnection); }?> A. Martinelli Architetture Web I Server Web e gli Standard della Comunicazione 01/04/2015 10 / 22

I Server Web I Server Web Nel Mondo del Web, il termine Server è inevitabilmente legato a doppio nodo con alcune Tecnologie Standard. Tra queste ricordiamo: Il Server Open Apache HTTP. Il Server Open Apache TomCat. Server Microsoft Internet Information Services. Il Database MySql. Il Sistema di Database Oracle. Il Sistema di Applicazioni e librerie Java Enterprise Edition. 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 01/04/2015 11 / 22

I Server Web 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 01/04/2015 12 / 22

I Server Web 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 01/04/2015 13 / 22

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 01/04/2015 14 / 22

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 01/04/2015 15 / 22

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>]> ]> Nota Attraverso i DTD è possibile realizzare dei tool Automatici per la gestione dei dati XML e riutilizzabili per qualsiasi formato dati rappresentato con XML. A. Martinelli Architetture Web I Server Web e gli Standard della Comunicazione 01/04/2015 16 / 22

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 01/04/2015 17 / 22

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 01/04/2015 18 / 22

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 01/04/2015 19 / 22

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 01/04/2015 20 / 22

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 01/04/2015 21 / 22

Il Formato XML 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. JSON La JavaScript Object Notation è talvolta usata come alternativa ad XML nelle architetture AJAX. Essa è la rappresentazione testuale di un DOM Javascript. 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 01/04/2015 22 / 22