1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

Slides:



Advertisements
Presentazioni simili
UNO STRUMENTO PER INTERAGIRE CON GLI UTENTI DELLE PAGINE WEB
Advertisements

CGI in Python & WebWare Marco Barisione. 2 CGI CGI = Common Gateway Interface È un modello di comunicazione fra browser e server I programmi CGI sono.
Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Corso di Fondamenti di Informatica
JavaScript 1. Per cominciare.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Java Enterprise Edition (JEE)
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Laboratorio di Progettazione Web Introduzione AA 2009/2010 Chiara Renso ISTI - CNR -
Connessione con MySQL.
Università degli Studi di Modena e Reggio Emilia
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Linguaggi per il Web Laboratorio di Applicazioni Informatiche II mod. A.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
1 Web Information Systems Progettazione di siti web Prof. Stefano Paraboschi.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Elaborazione di Franco Grivet Chin
Introduzione ad ASP.net
Corso di PHP.
Javascript Javascript è il linguaggio di scripting più diffuso sul Web
Ing. Enrico Lecchini BetaTre S.r.l.
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
HTML Creazione di moduli Prof.ssa Daniela Decembrino.
Elaborazioni server-side: dalle CGI al PHP
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Introduzione alla programmazione web
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Web Information Systems Prof
INTRODUZIONE A JAVASCRIPT
Premessa Con i FORMS (moduli) l'utente può interagire con il sito spedendo un proprio commento, avanzando richieste senza necessità di scrivere via ,
Form o moduli HTML Esistono degli oggetti standard che permettono una certa interattività con l'utente. Un utilizzo completo e significativo di tali elementi.
Lezione 8.
Pagine ASP parte 1 Introduzione Stefano Schacherl.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP.
Pagine ASP parte 3 I data base Stefano Schacherl.
1 Corso di Ingegneria del Web A A Domenico Rosaci 19 - Web Applications.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
MySQL Database Management System
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Protocolli e architetture per WIS. Cronologia di Internet ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 1 – World Wide.
Servizi Internet Claudia Raibulet
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Lezione 6: Form.  In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es.
Eprogram informatica V anno.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Corso Web Developer Lezione 2 – HTML e ASP. I limiti delle pagine HTML Nella lezione precedente abbiamo visto che con HTML e JavaScript è possibile scrivere.
Eprogram informatica V anno. Programmare in rete.
PHP HyperText Prepocessor.  Linguaggio di scripting lato server sviluppato per generare pagine web.  Permette ad un sito web di diventare dinamico 
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici

2 Tecnologie Web Pagine statiche e pagine dinamiche Architetture web: –CGI –Form –Progettazione con Form –Interazione con DB –Architetture complesse

3 GATEWAY I server Web possono richiamare qualunque programma –trasmettendo anche eventuali parametri collegamento tra ambiente web e altri ambienti chiamata dei programmi: http, URL, eventuali parametri

4 Web server e file Web server FILE SYSTEM - pagine statiche A.html B.htmlC.html D.html Cgi-bin Xyz.exeabc.exe Pagine eseguibili CGI HTTPHTTP Web client (browser)

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

6 Caratteristiche di CGI Non e’: Non e’: un linguaggio di programmazioneun linguaggio di programmazione un protocollo di comunicazioneun protocollo di comunicazione Definisce solo un insieme di variabili di ambiente utili alla applicazione (ad es. parametri inviati dal client) Definisce solo un insieme di variabili di ambiente utili alla applicazione (ad es. parametri inviati dal client) %&£$$ pp*&£$

7Esecuzione Il server riconosce dall’URl che la risorsa richiesta dal cliente e’ un eseguibile

8Esecuzione Il server decodifica i parametri inviati dal cliente e riempie le variabili d’ambiente es: request_method, query_string, content_length, content_type P$&*£

9Esecuzione Il server lancia in esecuzione l’applicazione richiesta P$&*£

10Esecuzione 4. L 4. L’applicazione stampa la sua risposta sullo standard output (la risposta puo’ essere una pagina web o di altro tipo - il tipo e’ dichiarato nella risposta)

11Esecuzione Il server ridireziona lo standard output sulla rete e quindi verso il client

12 Invio di parametri a un programma CGI Il client puo’ usare due metodi: GET POST GET: i parametri sono codificati nell’URL POST : i parametri sono spediti al server separatamente, usando il body del messaggio di richiesta HTTP NB: il metodo POST richiede l’uso di un costrutto HTML chiamato FORM

13 Form (moduli) Input dall’utente Come: con parametri (<INPUT type=): –text boxes (text) –buttons (submit) –radio buttons (radio) –password (password) –hidden (valore fisso, non visibile all’utente) i parametri hanno un nome a cui si associa un valore compilando la form submit: si invia il contenuto del modulo al server come parte di un’altra richiesta http di una pagina speciale (eseguibile)

14 FORM HTML Esempio: invio al server il nome dell’utente <form action= method=post> Dimmi il tuo nome:

15 FORM HTML

16 FORM HTML <form action= method=post> Dimmi il tuo nome: Password: docente studente

17

18 Struttura di un programma CGI leggi le variabili d’ambiente leggi le variabili d’ambiente stampa codice HTML stampa codice HTML elabora stampa intestazione MIME stampa intestazione MIME cout << “Content-type: text/html” << endl << endl;

19 Decodifica dei parametri leggi la variabile Request_method leggi la variabile Request_method leggi la variabile Query_string leggi la variabile Query_string GET leggi la variabile content_length leggi la variabile content_length leggi content_length caratteri da standard input leggi content_length caratteri da standard input POST Valore?

20 Programmi eseguibili per selezionare pagine Per accedere a pagine riservate per accedere a servizi –per accedere a basi di dati

21 A Web page (containing a list of links)

22 A “unique” page-scheme: ProfessorListPage ProfessorListPage ProfessorList Name ToProfP

23 An ADM Scheme ProfessorListPage ProfessorList Name ToProfP ProfessorPage Name Position Address ResearchList Area ToResP

24 Heterogeneous Union and Forms

25 Heterogeneous Union and Forms in ADM ProfessorListPage ProfessorList Name ToProfP ProfessorPage Name Position Address ResearchList Area ToResP Name Submit U SearchProfPage

26 Maintenance The Schemes help designers to maintain the hypertext structure Maintenance activities correspond to apply scheme transformations: –introduce multilevel lists –introduce forms –split pages –...

27 Maintenance: example

28 Tecnologie per l’integrazione Web/Basi di dati

29 Web & basi di dati : Obiettivi: ottenere la generazione dinamica di pagine a partire da dati contenuti in una base di datiottenere la generazione dinamica di pagine a partire da dati contenuti in una base di dati sfruttare i pregi di Web e basi di dati, aggirandone i difettisfruttare i pregi di Web e basi di dati, aggirandone i difetti

30 Pregi e difetti di basi di dati e Web pro contro semplicesemplice portabileportabile abasso costo indipendenteindipendente dalle interfacce ipermedialeipermediale basatobasato su file staticostatico modellimodelli dei dati linguaggilinguaggi di interrogazione funzionifunzioni di amministazione complessecomplesse proprietarieproprietarie navigazione e presentazione assentinavigazione e presentazione assentiWeb basi di dati

31 Programma CGI Programma CGI Web server CGI gatewaygateway DBMS via DBMS API, embedded SQL, ODBC...

32Invocazione 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) root cgi-bin xyz.exe

33 Esempio di CGI per accesso a DB main(char Cognome[]) { …. OMESSO CODICE PER LEGGERE VARIABILI IL CUI SCOPO E’ INSERIRE NELLA VARIABILE :Cognome il COGNOME USATO NELL’INTERROGAZIONE …. char Nome[20], Dipartimento[20], Citta[20]; char Indirizzo[60]; int Age, Stipendio; $ open connection to NewCompanyDB $ select Nome, Dipart, Citta, Indirizzo, Stipendio into :Nome, :Dipart, :Citta, :Indirizzo, :Stipendio from Impiegato I, Sede S where I.Sede = S.Citta and Cognome = :Cognome ; $ close connection...

34 if (sqlcode == 0){ printf(" \n %s %s",Nome,Cognome, " \n \n"); printf(" %s %s",Nome,Cognome," \n"); printf(" \n"); printf(" Dipartimento : %s", Dipartimento," \n"); printf(" Citta : %s",Citta,“ \n"); printf(" Indirizzo : %s", Indirizzo," \n"); printf(" Stipendio : %u", Stipendio," \n"); printf(" Progetti in corso \n"); printf(" \n \n "); } else { printf(" \n Error \n \n"); printf("niente impiegato %s\n",Cognome," \n "); }

35 Programma CGI per l’accesso a DB PRO –portabilità: usa solo standard aperti: URL, HTTP, CGI, HTML (attenzione però all’accesso al DB) CONTRO –prestazioni: creazione di un sotto- processo per ogni richiesta –aperture e chiusure ripetute della connessione con la base di dati

36 Form e CGI come interfacce di applicazioni Per applicazioni di qualsiasi tipo Problemi: –identificazione utente, sicurezza –affidabilita’, transazioni –sessioni –numero di processi attivati, operazioni di apertura e chiusura

37 Simulazione sessioni HTTP consente di richiedere una pagina alla volta Simulazione di sessioni: –con hidden parameters nelle form –con cookie (max 4KB) (inviato nell’intestazione della risposta e memorizzato come parte della configurazione del browser) e dizionario stato clienti

38 Processo CGI: FAST-CGI Processo CGI: FAST-CGI Il web server genera il processo fast-cgi in fase di inizializzazione Il processo esegue una routine di inizializzazione e si pone in attesa Ad ogni richiesta, il web server apre una connessione verso il processo fast-cgi Il processo genera output sulla connessione http con il client passatagli dal server http Il processo fast-cgi chiude la connessione e rimane in attesa di nuove connessioni

39 FAST-CGI: vantaggi FAST-CGI: vantaggi Migliori prestazioni: creazione di processi fast-cgi solo in fase di inizializzazione Mantenimento dello stato: la persistenza del processo fast-cgi consente di superare la natura stateless di http Disponibilita’: distribuito gratuitamente da Open Market come fast-cgi library

40 Applicazione server dispatcher Processo CGI Processo CGIDBMS Web server CGI dispatcher gateway

41 Processo CGI Processo CGI PRO –evita apertura e chiusura della connessione ad ogni richiesta –sfrutta le ottimizzazioni del DBMS –basato su standard CGI CONTRO –prestazioni: tempo di commutazione tra processi diversi (dispatcher - server) –complessita’ realizzativa dell’interfaccia tra dispatcher e applicazione server

42 GATEWAY Gateway Web-base di dati CLIENT DBMS HTTP server

43 Realizzazione di applicazioni su web Una molteplicita’ di soluzioni possibili Applicazioni –Lato server –Lato client

44 Una gerarchia di soluzioni Gateway su client su Server estensioneesterna basato su API estensioneinterna proprietario processo CGI programmaCGI basato su CGI

45 Architetture di servizi on line basati su Web Architettura di base clienti dinamici web applications soluzioni complesse

46 Architettura di base BROWSER WEB SERVER LOCAL FILE SYSTEM

47 Server API Server API Web server DBMS Gateway API API = interfaccia per estendere il server con servizi non standard

48 Scripted page Una scripted page è un file memorizzato nel file system del Web server che contiene degli script interpretabili Gli script interagiscono con oggetti sul server e alla fine producono un output HTML Una scripted page è molto simile ad una pagina HTML standard ma include dei tag/token speciali che sono interpretati dal server Esempi: Microsoft’s Active Server Pages (ASP) e Java Server Pages (JSP) e PHP

49 Applicazioni su web (server side) BROWSER WEB SERVER DATABASE JAVA SERVLET, API ASP JSP PHP Scripted page HTML page Scripting lato server CGI eseguibili

50 Tecnologie lato client Javascript Applet Java Microsoft ActiveX

51 Javascript Linguaggio che permette di scrivere script all’interno di pagine web … Non ha niente a che fare con Java Gli script vengono eseguiti lato client dal browser Gli script possono accedere a oggetti del documento e proprietà del browser, modificandoli dinamicamente –Es: cambio colore al passaggio del mouse

52 Clienti dinamici scripting lato client BROWSER HTML Script Compiled modules DOM

53 Applicazioni complesse: un esempio di modulo intelligente client CAP Web server Richiesta form Risposta 3 minuti Risposta con form con inclusione script per completare citta’ da CAP

54 CAP Web server Sottomissione form invocata da script Java Risposta 3 secondi Risposta con form ricostruito con completamento citta’ da CAP Seconda soluzione CAP ROMA

55 Web server L’oggetto comunica direttamente con l’application server Risposta < 1 sec Oggetto distribuito che comunica direttamente con un oggetto sul lato server e restituisce la citta’ dato il CAP Terza soluzione CAP Application server

56 Tecnologie Web Pagine statiche e pagine dinamiche Architetture web: –CGI –Form –Progettazione con Form –Interazione con DB –Architetture complesse

57 Bibliografia Libro Basi di Dati Cap. 14 Tutorial on line da sito Per approfondimenti: –Conallen, “Progettazione Web con UML”, Addison Wesley