modulo: siti web centrati sui dati

Documenti analoghi
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 /

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

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

Introduzione a Internet e World Wide Web

Informatica: arte e mestiere 3/ed

Capitolo 16 I servizi Internet

Antonio d Acierno 13/01/2006

IL LIVELLO APPLICAZIONI WEB e HTTP

Reti di Calcolatori. IL LIVELLO APPLICAZIONI WEB e HTTP

IL LIVELLO APPLICAZIONI WEB e HTTP

IL LIVELLO APPLICAZIONI WEB e HTTP

Il World Wide Web. Marco Porta - CIM: Web Design & Technologies

Informatica. Alfredo Cuzzocrea. Reti di Calcolatori

Livello applicazione. Fondamenti di Informatica

Architetture Web: un ripasso

INFORMATICA. Prof. MARCO CASTIGLIONE. Istituto Tecnico Statale Tito Acerbo - PESCARA

Tito Flagella - Introduzione alla programmazione di Servlet

Cenni Storici. Prof.ssa Daniela Zangirolami Dispense 1 Anno Triennio 1

Corso di Applicazioni Telematiche

Introduzione alle Reti e Linguaggio HTML

Uso di Internet: Esempio. Prof. Franco Callegati

Scuola di Specializzazione in Fisica Sanitaria a.a. 2004/2005. Corso di Informatica e Statistica Medica. Internet

Programmazione server-side: Java Servlet

Internet 2B IPIA

Progettazione Siti Web: Web

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

Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Architetture Client/Server e World Wide Web

Reti informatiche. 2. Internet e navigazione

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Internet. Internet. Internet Schema di indirizzamento. Internet. Storia: Definizioni: Schema di indirizzamento. 60: ARPAnet (Dip.

World Wide Web (WWW o Web)

Introduzione alla rete Internet

Internet come funziona?

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Scuola di Specializzazione in Fisica Sanitaria a.a. 2005/2006. Corso di Informatica e Statistica Medica. Internet

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Prova scritta del 13 luglio 2010

Basi di Dati Architetture Client/Server

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Servlet e JDBC. Programmazione in Rete e Laboratorio

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 8 novembre Corso di laurea in Economia

Parte II.4 World Wide Web

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

DOMINI E HOSTING Concetti generali

Architetture Web I Server Web e gli Standard della Comunicazione

Architettura MVC-2. Alberto Belussi. Anno accademico 2006/2007

MODELLI ISO/OSI e TCP/IP

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

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

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Laboratorio di Basi di Dati e Web

Sommario. Breve storia di Internet Commutazione di pacchetto e TCP/IP Il Web HTTP HTML CGI... Connessione tra basi di dati e Web

Online Essentials. 1. Concetti di navigazione in rete

Laboratorio di Basi di dati

MODELLI ISO/OSI e TCP/IP

DOMINI E HOSTING Concetti generali

Tutor: Dael Maselli Alunni: Adrian Mincu Roxana Ghencea

Il Web come Interfaccia Utente di un Sistema Informativo

Introduzione a Java Servlet Technology

Un contatore di accessi

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

World Wide Web. Angelo Di Iorio. ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA

Tecnologia dell Informazione

World Wide Web. WWW e Tim Berners Lee

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Introduzione alla rete Internet

Stack protocolli TCP/IP

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Introduzione all inguaggio HTML e CSS3 INTRODUZIONE. Prof.ssa Cristina Gena

Le Reti Informatiche

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

Introduzione alla rete Internet

Laboratorio di Basi di Dati e Web

Ciclo di vita di una Servlet

Collaborazioni on-line

Note pratiche sullo sviluppo di servlet (I)

Internet: la rete delle reti

Università del Salento Facoltà di Scienze della Formazione, Scienze Politiche e Sociali CORSO DI INFORMATICA. UD5. Internet = Web?

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

Basi di Dati-IX. Basi di dati e web. Introduzione. Schema. Basi di dati e web. Corso di Laurea in Informatica Anno Accademico 2013/2014

Metodologie Informatiche Applicate al Turismo

Reti e servizi internet

Laboratorio di Programmazione di Rete

Reti di calcolatori. Reti di calcolatori

Capitolo 16 I servizi Internet

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web

INTERNET La rete delle reti. Fondamenti di informatica. Bibliografia. Contatti. Argomenti HTML 1

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

Luca Tesei. Laboratorio di Sviluppo Web: Le Basi. Modulo IFTS. Fermo 31/03, 03/04, 07/ Prof. Luca Tesei Università di Camerino 1

Transcript:

Basi di dati e Web modulo: siti web centrati sui dati Alberto Belussi anno accademico 2008/2009

WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento per la diffusione e acquisizione di informazioni sotto forma di documenti digitali. Tale tecnologia si basa sul sistema di comunicazione planetario chiamato INTERNET.

INTERNET E una federazione di reti che comunicano attraverso la famiglia di protocolli TCP/IP. Riferimenti storici: ARPANET (dipartimento della difesa USA): è stata la prima rete a commutazione di pacchetto basata sul protocollo IP NSFnet (national science fundation net)

Struttura attuale della rete Internet è attualmente un insieme di reti locali (LAN) collegate tra loro e/o con altre porzioni di rete attraverso ROOTER (calcolatori dedicati alla gestione della rete) o dispositivi simili. LAN R R LAN LAN

Struttura attuale della rete I nodi della rete sono i calcolatori connessi ad una delle reti federate. Ogni calcolatore ha un indirizzo univoco, detto indirizzo IP, che ha la seguente forma: 157.27.252.11 252 11 Tale indirizzo può assumere anche un formato simbolico: arena.sci.univr.it

Struttura attuale della rete Come avviene la comunicazione sulla rete? Meccanismo di base: commutazione di pacchetto scambio di informazione organizzata in pacchetti Dati suddivisione in pacchetti IP X IP X IP X INTERNET

Struttura attuale della rete Livelli del Software di Rete secondo il protocollo TCP/IP. TELNET FTP HTTP TELNET FTP HTTP livello application TCP TCP livello transport IP IP livello network livello fisico trasferimento fisico pacchetti

Struttura attuale della rete Protocollo TCP/IP: Il protocollo IP (Internet Protocol) garantisce la spedizione del pacchetto a destinazione Il protocollo TCP (Transmission Control Protocol) gestisce la suddivisione in pacchetti dell informazione da spedire, garantisce la spedizione senza errori e gestisce il riassemblaggio dei pacchetti nell ordine corretto. I protocolli del livello application gestiscono l interazione via rete tra due calcolatori (nodi della rete). Si basano sul paradigma CLIENT-SERVER.

Protocollo HTTP Il protocollo HTTP gestisce i servizi collegati al WEB. L informazione disponibile in rete attraverso il protocollo HTTP è organizzata in documenti digitali detti IPERTESTI. HTTP significa infatti: HYPER TEXT TRANSFER PROTOCOL.

IPERTESTI IPERTESTO: è un documento con struttura non sequenziale, costituito da varie parti fra loro collegate. Tali legami sono detti LINK e consentono di navigare nell ipertesto. Le singole parti di un ipertesto si dicono PAGINE WEB. L insieme di pagine web gestite da un unico server HTTP della rete costituiscono un SITO WEB.

Linguaggio HTML Il linguaggio usato per specificare IPERTESTI si chiama: HTML (HYPER TEXT MARKUP LANGUAGE). Ogni pagina web diventa un file HTML; l HTML consente di specificare: La formattazione del testo per la presentazione La struttura della pagina (sezioni, tabelle, liste, ecc.) I legami con altre pagine (LINK) o con sottoparti della pagina Il contenuto informativo della pagina.

Linguaggio HTML LINK in HTML Come è possibile identificare in modo univoco un documento (risorsa) nel World Wide Web? Si introduce il concetto di URL (Uniform Resource Locator) protocollo://server/risorsa protocollo: ftp, mailto, http server: ip o nome simbolico del nodo risorsa: [path]nome_file[parametri]

Linguaggio HTML LINK in HTML: Link esterno: <a href= URL > testo t </a> Link interno: <a href= URL#label > testo </a> <a name= label > testo 2 </a>

Protocollo HTTP Consente lo scambio tra client (browser) e server (HTTP server) di pagine web (file HTML). CLIENT Browser Richiesta di connessione TCP Accettazione connessione TCP Richiesta della risorsa (URL) Esito richiesta (file HTML) SERVER HTTP Server

Protocollo HTTP Il protocollo HTTP è state-less less (senza stato): ogni connessione è completamente indipendente dalle altre. Il server non è in grado di mantenere informazioni sulle connessioni passate. Richieste HTTP: GET: richiede una pagina (URL) inviando i parametri in modo esplicito in coda all URL. POST: richiede un pagina (URL) con invio dei parametri in modo non visibile nell URL. PUT, HEAD, DELETE, OPTIONS.

Gestione delle pagine WEB Pagine statiche Sono File HTML memorizzati nel file system del server Pagine dinamiche: Vengono generate on the fly attraverso l esecuzione di programmi sul server che interagiscono con un DBMS che contiene i dati da mostrare nelle pagine.

Pagine statiche In questo caso le pagine vengono generate da un programmatore In questo caso le pagine vengono generate da un programmatore HTML e vengono rese disponibili sul server HTTP come file HTML.

Pagine dinamiche In questo caso invece le pagine vengono generate dal server in base ad altre applicazioni esterne o integrate nel server HTTP. La generazione dinamica delle pagine consente di estrarre da sistemi DBMS l informazione da presentare. Tali DBMS raccolgono gli aggiornamenti dei dati prodotti dai processi core dell organizzazione per cui si sta allestendo il sito web.

Pagine dinamiche: schema

Tecniche per realizzare pagine web dinamiche Esistono attualmente diverse tecniche, ma tutte derivano dalla prima tecnica applicata storicamente: CGI (Common Gateway Interface) SERVER richiesta HTTP File HTML HTTP Server nuovo processo GATEWAY DBMS Base di dati

Tecniche per realizzare pagine web dinamiche LIMITI DELL APPROCCIO CGI Richiede la creazione di un nuovo processo per ogni richiesta: tale creazione richiede tempo non trascurabile e necessita inoltre di uno specifico spazio di indirizzamento in memoria virtuale Il processo CGI attivato richiede necessariamente una nuova connessione al DBMS e la sua corrispondente chiusura a fine programma

Tecniche per realizzare pagine web dinamiche Tecniche alternative a CGI Soluzioni basate sull estensione del server HTTP che diventa un application server: questo ad esempio è il caso della tecnologia Servlet di Sun. Soluzioni basate sull immersione di codice nei file HTML: Java Server Pages (jsp), Active Server Pages (asp), Hypertext Preprocessor (php).

Tecniche per realizzare pagine web dinamiche SERVLET (Sun): si basa sul linguaggio JAVA. Vantaggi rispetto a CGI: Ogni richiesta genera un thread e non un processo; È possibile mantenere connessioni aperte con il DBMS tra una richiesta e l altra Portabilità JAVA

Tecniche per realizzare pagine web dinamiche Template Systems: si basano su versioni di HTML estese con tag per l inserimento di codice. Vantaggi rispetto a CGI: Tutti i vantaggi delle servlet; Il codice per la generazione delle parti dinamiche viene e inserito con opportuni tag nel file HTML che rappresenta invece la parte statica della pagina WEB. Evita al programmatore di generare dinamicamente anche le parti fisse.

Servlet Richiede l installazione di un SERVLET ENGINE da integrare nel server HTTP. Ogni servlet engine predispone un albero di direttori dove vanno inseriti i file contenenti le servlet, le classi java di supporto, i file html statici, ecc.. Servlet engine usato in laboratorio: TOMCAT

Servlet engine: struttura Richiesta risorsa URL HTTP server Servlet Container attivazione nuovo thread Risposta HTML Servlet attiva pagina web generata

Servlet container E un processo sempre attivo che implementa una JAVA VIRTUAL MACHINE

Servlet Ogni servlet è una classe JAVA ottenuta estendendo la classe HttpServlet. Esempio di servlet semplice: import java.oi.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doget ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Servlet { response.setcontenttype( text/html ); PrintWriter out = response.getwriter(); String doctype = <!DOCTYPE HTML ; out.println(doctype + <html>\n + <head><title>hello World</title> + </head>\n + <body>\n + <h1>hello World</h1>\n + </body></html> ); } // end doget } // end servlet

Servlet Note sui parametri di doget (dopost) request: consente di accedere a tutte le informazioni relative alla richesta HTTP che ha invocato la servlet. Alcuni metodi di request request.getparameter(nome_parametro) restituisce: una stringa (String) che rappresenta il valore della prima occorrenza del parametro NOME_PARAMETRO; la stringa vuota se il parametro esiste ma non ha valore; NULL se il parametro non esiste. request.getparametervalue(nome_parametro) restituisce un array di stringhe contenenti i valori di tutte le occorrenze del parametro NOME_PARAMETRO; un array con una stringa vuota se il parametro esiste ma non ha valore; NULL se il parametro non esiste. request.getparameternames() restituisce un array di stringhe contenenti i nomi dei parametri della richiesta HTTP.

Servlet response: gestisce l invio dell output (HTML) al server HTTP. Alcuni metodi di response response.getwriter() restituisce un oggetto della classe PrintWriter al quale è possibile inviare stringhe di caratteri con il metodo println. response.getbuffersize() restituisce la dimensione del buffer degli oggetti PrintWriter. request.setbuffersize() est setb e() consente di ridefinire la dimensione del buffer degli oggetti PrintWriter.