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.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Corso di Fondamenti di Informatica
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Web Services.
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 -
Università degli Studi di Modena e Reggio Emilia
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
ING. CARLO MANFUCCI COMUNE DI GROSSETO
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.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Programmazione su Reti
Architettura del World Wide Web
Corso di Informatica A.A
Crawling Saverio Caminiti.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
Introduzione ad ASP.net
Corso di PHP.
1 Internet e nuove tecnologie Anno Accademico Prof. Flavio De Paoli Dott. Marco Loregian.
Ing. Enrico Lecchini BetaTre S.r.l.
Corso di Informatica per Giurisprudenza Lezione 7
Come funziona il PHP.
HTML Creazione di moduli Prof.ssa Daniela Decembrino.
Elaborazioni server-side: dalle CGI al PHP
BIOINFO3 - Lezione 311 PAGINA HTML Confrontiamo il codice sorgente della pagina restituitaci dal programma con il programma originale Come si può notare,
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
Applicazioni Web HTTP, HTML e CSS Elaborato da Gianluca Lauteri e Daniele Filannino.
BIOINFO3 - Lezione 121 Alter Table Alter table permette di cambiare la struttura di tabelle esistenti. Ad esempio e` possibile aggiungere o cancellare.
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Sistemi di Elaborazione dellInformazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 4 – Caching HTTP.
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
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.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
1 Applet ed HTML Fondamenti di Informatica Corso D.
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.
JavaScript Programmare il client. Cenni storici Alice Pavarani2  Nasce nel 1995 (Netscape): da LiveScript a JavaScript  La risposta di Microsoft: Jscript.
Web Information Systems Prof
Premessa Con i FORMS (moduli) l'utente può interagire con il sito spedendo un proprio commento, avanzando richieste senza necessità di scrivere via ,
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.
Greco Rodolfo 2002 Application Trasport Network Phisic HTTP IP UDPTCP DNS SNAP MAC ARP L’utente fa una richiesta di pagina.
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
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.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
UN SINGOLO COMPONENTE... ? Finora ci siamo concentrati su un singolo programma = un singolo componente –si leggono i dati di ingresso... –... si elabora.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Servizi Internet Claudia Raibulet
Eprogram informatica V anno.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Eprogram informatica V anno. Programmare in rete.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
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 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

3 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)

4 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

5 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*&£$

6Esecuzione Il server riconosce dallURl che la risorsa richiesta dal cliente e un eseguibile

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

8Esecuzione Il server lancia in esecuzione lapplicazione richiesta P$&*£

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

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

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

12 Form (moduli) Input dallutente Come: con parametri (<INPUT type=): –text boxes (text) –buttons (submit) –radio buttons (radio) –password (password) –hidden (valore fisso, non visibile allutente) 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 unaltra richiesta http di una pagina speciale (eseguibile)

13 FORM HTML Esempio: invio al server il nome dellutente <form action= method=post> Dimmi il tuo nome:

14 FORM HTML

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

16

17 Struttura di un programma CGI leggi le variabili dambiente leggi le variabili dambiente stampa codice HTML stampa codice HTML elabora stampa intestazione MIME stampa intestazione MIME cout << Content-type: text/html << endl << endl;

18 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?

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

20 A Web page (containing a list of links)

21 A unique page-scheme: ProfessorListPage ProfessorListPage ProfessorList Name ToProfP

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

23 Heterogeneous Union and Forms

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

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

26 Maintenance: example

27 Tecnologie per lintegrazione Web/Basi di dati

28 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

29 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

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

31Invocazione Il cliente specifica nellURL 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

32 Esempio di CGI per accesso a DB main(char Cognome[]) { 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...

33 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 "); }

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

35 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

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

37 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

38 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

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

40 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 dellinterfaccia tra dispatcher e applicazione server

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

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

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

44 Architettura di base BROWSER WEB SERVER LOCAL FILE SYSTEM

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

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

47 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

48 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

49 Web server Loggetto comunica direttamente con lapplication server Risposta < sec Oggetto distribuito che comunica direttamente con un oggetto sul lato server e restituisce la citta dato il CAP Terza soluzione CAP Application server

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

51 Server API Server API PRO –efficienza: il gateway e nello stesso processo del Web server (es. e una libreria collegata dinamicamente) –ancora parzialmente basato su standard aperti (URL, HTTP, HTML) CONTRO –dipendenza da API proprietarie (NSAPI, ISAPI ) non standardizzate

52 Server Proprietario Server Proprietario Web server DBMS Gateway Costruito dal venditore del Web server o DBMS

53 Server Proprietario PRO –efficienza: il server Web diventa una applicazione cliente della base di dati CONTRO –dipendenza dallo specifico Web Server e DBMS (a meno che il gateway non utilizzi prodotti di connettivita come ODBC)

54 Java Servlet Java Servlet Differenze rispetto a fast-cgi: –protocollo basato su NCGI, versione semplificata di fast-cgi –applicazioni (servlet) scritte in Java –servlet eseguite nello stesso processo del web server, per minor carico di comunicazione interprocesso

55 Java Servlet: vantaggi Java Servlet: vantaggi Indipendenza dalla piattaforma grazie a Java Sicurezza gestita mediante Security Manager della JVM Gestione degli errori con il meccanismo delle eccezioni Java Disponibilita: distribuzione gratuita di Java Servlet Development Kit contenente la libreria Java servlet Servlet Status Introdotto nel 1995 Version 2.1 JSDK (ServletRunner) disponibile

56 Servlet+JDBC Uso di JDBC a lato client è oneroso: –caricamento dei driver –traffico di spedizione dati Uso di dispatcher e processo CGI ottimizza laccesso ma è difficile da programmare Soluzione: uso di servlet+JDBC

57 Dispatcher con i Servlet Servlet DBMS engine Database JDBC + SQL Web Server JVM Dispat cher Application Server

58 Server-side scripting CGI, FastCGI, Java Servlet sono architetture general-purpose per eseguire applicazioni via HTTP Sono complesse da programmare Server-side scripting: una soluzione più semplice per produrre testo marcato in modo dinamico a lato server

59 Client-side scripting Il codice script è interpretato dal browser + marcatura & scripting e componenti <HTML>….</HTML><script>…...</script> contenutotesto Ciao!Ciao! Textbox pagina interattiva

60 Server-side scripting Il codice script è interpretato dal server Il browser riceve HTML puro <HTML><BODY> …. ….</BODY></HTML> <HTML>….</HTML><script>…...</script> Template: testo+script da interpretare sul server

61 1 Flusso dei messaggi BROWSER SERVER DATABASE Lutente richiede una pagina 2. Il server preleva la pagina 3. Il server passa il file al browser 4. Lutente compila la form e la passa al server 5. Il server esegue il codice ASP 6. Il file ASP comporta laccesso ad un database 7. Lesecuzione ASP genera una pagina HTML 8. Il server invia la pagina HTML al browser

62 l Active Server Pages o Architettura server-side scripting proprietaria o Rilasciate da Microsoft a partire dalla versione 3.0 di IIS o Linguaggio di scripting di default VBScript o Componenti server-side ActiveX, COM, DCOM, JavaBeans Microsoft Active Server Pages (ASP)

63 Concetti Generali ASP è un ambiente di sviluppo che permette di creare script lato server allinterno di documenti HTML, consentendo di realizzare applicazioni Web dinamiche e interattive Web Server Active Server Pages HTTP Request HTTP Response Browser Requisiti minimi Microsoft Internet Information Server versione 3.0 su Windows NT Server Microsoft Peer Web Services versione 3.0 su Windows NT Workstation Microsoft Personal Web Server su Windows 9x

64 l Un file.asp contiene una combinazione di: o Testo o Tag HTML o Comandi Script l Si ottiene un file.asp anche semplicemente ridenominando un file.html o.htm l MS IIS mette a disposizione un ambiente per processare gli script (interprete VB) File ASP

65 l Delimitatori ASP o Comandi Server-side scripting. Per esempio: response.write() o Espressioni da valutare ASP: sintassi Esempio 1 <% If Time >=#12:00:00 AM# And Time < #12:00:00 PM# Then Greeting = Good Morning Else Greeting = Hello End if %> Esempio 2

66 Oggetti server-side Request object –METODI: querystring, form, cookies Session object Application object –METODI: lock, unlock Response object –METODI: write, redirect, end, flush, cookies –PROPRIETÀ: buffer, cookies Server object –METODI: createobject, mappath, URLencode, HTMLencode –PROPRIETÀ: scripttimeout

67 l Indipendenza dal tipo di browser utilizzato o Il browser vede solamente pagine HTML o Allutente non sono necessari programmi proprietari o estensioni del browser l Facilità di apprendimento e utilizzo l Oggetti di utilità l Nasconde la presenza di programmi script agli utenti e ad eventuali hacker l Consente un collegamento semplice ed efficiente a qualsiasi database via ADO Vantaggi di ASP

68 Accesso a database con ASP Esempio di server proprietario (Microsoft) Accesso semplice ed efficiente Utilizzo di componenti Active Data Object (ADO) Accesso tramite interfaccia ODBC e linguaggio SQL

69 Modello ADO Connection: oggetto che descrive una connessione con la base di dati –open, close,... Command: oggetto che descrive la query da eseguire execute.. RecordSet: oggetto che descrive il risultato della query (insieme di tuple) BOF, EOF, clone, close, delete, move, moveNext, open, requery, resynch, update,...

70 Connessioneequery Connessione e query Ogni accesso deve essere preceduto da una connessione al database <%Conn.Open ADOSamples Set RS = Conn.Execute(SELECT * FROM Table) Do While Not RS.EOF.. RS.MoveNext Loop RS.Close Conn.Close%> Si può mantenere una connessione aperta per tutta la sessione SUB Session_OnStart ----Open ADO connection to ----database Conn.Open UserDB1, userdblogin, userdbpassword END SUB