Architetture Web: un ripasso



Documenti analoghi
Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Protocolli e architetture per WIS

Programmazione server-side: Java Servlet

Architetture Web I Server Web e gli Standard della Comunicazione

Come funziona internet

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

Gestire le sessioni con le Servlet

Tener traccia del client

Tecnologie di Sviluppo per il Web

Basi di dati e world wide web

Componenti Web: client-side e server-side

Tipi fondamentali di documenti web

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

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

Tecnologie di Sviluppo per il Web

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

Svantaggi delle servlet

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

Laboratorio di Basi di Dati e Web

sito web sito Internet

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

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

Note pratiche sullo sviluppo di servlet (I)

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

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

Introduzione al linguaggio Java: Servlet e JSP

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Corso di PHP. Prerequisiti. 1 - Introduzione

Le tecnologie software Internet

Le tecnologie software Internet

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Architetture Web parte 2

Flavio De Paoli

Introduzione alla programmazione Http lato server in Java

Architetture Web I Server Web e gli Standard della Comunicazione

Tomcat struttura delle directory

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

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Siti interattivi e dinamici. in poche pagine

Corso basi di dati Introduzione alle ASP

Introduzione al Web. dott. Andrea Mazzini

Antonio d Acierno 13/01/2006

XML e PHP. Gestire XML con PHP. Appendice

19. LA PROGRAMMAZIONE LATO SERVER

Server-side Programming: Java servlets Parte II

APPENDICE A Servlet e Java Server Page

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

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

Framework di Middleware. per Architetture Enterprise

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

modulo: siti web centrati sui dati

Laboratorio di sistemi Prima Web Application JSP [Java]

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A

Servlet API. Programmazione in Ambienti Distribuiti A.A

Implementazione di MVC. Gabriele Pellegrinetti

Programmazione Web. Introduzione

Server Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di dati

Il Web Server e il protocollo HTTP

Corso di Informatica Modulo T3 B1 Programmazione web

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

Le scelte tecnologiche di RUP System

DBMS e Linguaggi di programmazione nell'era di Internet

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

1 JSPDynPage, componenti portale e Java Server Pages

Un contatore di accessi

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

Corso di Applicazioni Telematiche

Strutture di accesso ai dati

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

SERVLET & JSP DISPENSE

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

Informatica. Prof. A. Longheu. Introduzione a Java

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Concetti base. Impianti Informatici. Web application

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Tecnologie di Sviluppo per il Web

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Servlet e JDBC. Programmazione in Rete e Laboratorio

venerdì 31 gennaio 2014 Programmazione Web

Corso di PHP. Prerequisiti. 1 - Introduzione

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Web & basi di dati. Basi di dati & Web. Problema. Pregi e difetti di basi di dati e Web. Architettura generale a livelli. Una gerarchia di soluzioni

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue

Il Protocollo HTTP e la programmazione di estensioni Web

SWIM v2 Design Document

Sistemi avanzati di gestione dei Sistemi Informativi

Servlet A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet:

Capitolo 7. Sviluppi futuri. 7.1 Generazione automatica di pagine WML

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

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

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

Architetture per le applicazioni web-based. Mario Cannataro

Transcript:

Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server

Revisione critica di HTTP HTTP non prevede metodi per identificare l utente Ogni richiesta è trattata come un evento isolato Una nuova richiesta non ricorda nulla della precedente Non esiste il concetto di sessione interattiva dell utente Impossibile fare applicazioni personalizzate

Motivazioni Produrre pagine al volo in base alle esigenze dell utente e da contenuti strutturati (p.e. database) Scripting & componenti client-side non bastano Soluzioni: Architetture per produrre contenuti dinamici a lato-server

Common Gateway Interface Interfaccia che consente al Web Server di eseguire applicazioni esterne in grado di creare pagine dinamicamente

Invocazione Il cliente specifica nell URL il nome del programma da eseguire Il programma deve stare in una posizione precisa (di solito il direttorio cgi-bin) http://mio.server.web/cgi-bin/xyz.exe root cgi-bin xyz.exe

Revisione critica di CGI Il web server genera un nuovo processo cgi ad ogni richiesta Il processo viene terminato alla fine del computo della risposta Altissimo sovraccarico di esecuzione per la creazione e distruzione di processi Impossibile: Tenere informazioni sulla sessione dell utente in memoria centrale (serve un database) Tenere allocate risorse condivise tra più richieste o più utenti (es. pool di connessioni a database)

Obiettivi delle architetture server side Migliori prestazioni: creare processi solo in fase di inizializzazione del sistema e riusare un pool di processi pronti Mantenimento dello stato: sfruttare la persistenza del processo per mantenere informazioni sulla sessione dell utente (stateful application) Condivisione delle risorse: mantenere allocate le risorse condivise Scalabilità: aumentare il numero di processi applicativi all aumentare del traffico

Architetture application server Applicazioni Base di dati Client Web server Application server App. Servers

Java Servlet http://java.sun.com/products/servlet/index.html HTTP Request parametri JVM Servlet container Browser HTTP Response risposta Applicazioni (servlets) Servlet container: un programma Java che fornisce un ambiente persistente di esecuzione per applicazioni Web ed espone le caratteristiche del Web server come oggetti Java Servlet: l analogo di uno script CGI nel mondo Java

Esempio di servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class RequestInfo 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>request Information Example</TITLE>"); out.println("</head>"); out.println("<body>"); out.println("<h3>request Information Example</H3>"); out.println("method: " + request.getmethod()); out.println("<br>"); out.println("request URI: " + request.getrequesturi()); out.println("<br>"); out.println("user Agent:"+request.getHeader("User-Agent")); out.println("</body>"); out.println("</html>"); } }

Risultato

Valutazione Astrazione object-oriented delle proprietà di un server HTTP esteso (request, response, session ecc) Programmazione complessa perchè bisogna produrre sia il testo statico che i contenuti dinamici La presentazione HTML è mescolata al codice applicativo Esigenza: serve una soluzione più semplice per produrre pagine in modo dinamico a lato server

Server-side scripting Idea: inserire istruzioni per il calcolo dei contenuti dinamici all interno della pagina HTML Il codice è interpretato dal server Il browser riceve HTML puro <HTML>. </HTML> <%>... </%> Web server + Esecutore script <HTML> <BODY>. </BODY> </HTML> Template: testo+script da interpretare sul server

Java Server Pages (JSP) JSP è una architettura per server-side scripting proposta da Sun (come alternativa a ASP di Microsoft) Si fonda su tecnologia Java: linguaggio Java, Java Servlet, Java Beans

File JSP Un file.jsp contiene una combinazione di: Testo Tag HTML Istruzioni di server-side scriptinging E necessario disporre di un ambiente di compilazione apposito (ad es. Tomcat di Apache Jakarta)

Esempio <HTML> <HEAD> <TITLE>Request Information Example</TITLE> </HEAD> <BODY> <H3>Request Information Example</H3> Method: <%= request.getmethod() %> <BR> Request URI: <%= request.getrequesturi() %> <BR> User Agent: <%= request.getheader("user-agent") %> </BODY> </HTML> Risultato: la stessa pagina computata dal servlet mostrato in precedenza

Compilazione Il file JSP viene prima tradotto in un servlet Il servlet viene compilato in bytecode La versione compilata viene tenuta in memoria per rendere più veloce una successiva richiesta della pagina NB: La versione originaria di Microsoft ASP (non ASP.NET) non compilava i template

Valutazione Indipendenza dal tipo di browser utilizzato Il browser vede solamente pagine HTML All utente non sono necessari programmi proprietari o estensioni del browser Maggior facilità f di apprendimento e utilizzo rispetto a servlet Oggetti di utilità Nasconde la presenza di programmi script agli utenti e ad eventuali hacker Resta però codice (anche se poco) frammisto a markup HTML

Tag eseguiti a lato server Obiettivo: togliere il codice dai template di pagina Soluzione: nascondere il codice dietro tag magici, eseguiti dal server <%@ taglib uri="http://www.myserver.com/mytaglib" prefix= mytag" %> <HTML> <HEAD><TITLE>Esempio di tag iteratore</title></head> <BODY> <mytag:iteratore att1= un att2= due att3= tre! > <p><mytag:elemento></p> </mytag:iteratore> </BODY> </HTML>