Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei...
Transcript of Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei...
Basi di Dati e Web
Basi di Dati
Prof. Alfredo CuzzocreaUniversità degli Studi di Trieste
Credits to: Prof. M. Di Felice – UniBO
Web Information System
! Integrazione di SQL in l inguaggi di
programmazione ad alto livello.
! Integrazione di SQL in applicazioni Web (Web
Information System, WIS)
" Molti sistemi software prevedono la presenza
di un database gestito da un DBMS …
" Come consentire l’accesso al database da
parte di applicazioni esterne al DBMS?
Web Information System
" Architettura client-server del WWW
Browser
(client)
1. HTTP request
6. HTTP response
Risorse (pagine HTML, immagini,
video, file binari, etc)
" Nel caso di pagine Web statiche, le risorse sono trasferite sul
client senza alcun processamento da parte del Web server.
" Interazione dell’utente client-side (es. Javascript, Java applet).
Web Information System
Ingredienti del WEB: HTML (Hypertext Markup Language)
" Linguaggio per la creazione di ipertesti
multimediali distribuiti.
" Tecnica di rappresentazione markup,
attraverso l’utilizzo di tag che definiscono
le proprieta’ grafiche o strutturali del testo.
" Separazione del contenuto del testo dalla
sua presentazione attraverso CSS.
Web Information System
Ingredienti del WEB: HTTP (Hypertext Transfer Protocol)
" Protocollo per l’interazione client/server,
basato su protocollo TCP (porta 80).
" Comunicazione asimmetrica (pull-based).
" Utilizza connessioni persistenti (HTTP 1.1),
ma in ogni caso il protocollo e’ stateless.
" Comandi principali (pochi):
!"#$%&'()*%&+"*%&&',*%&$"-"*"% etc
Web Information System
" WIS (Web information System)
Browser
(client)
1. HTTP request
6. HTTP response
" Le pagine Web sono create dinamicamente,
accedendo ad informazioni contenute in un DBMS.
" Il processamento delle risorse avviene lato-server.
DBMS
Web Information System
Componenti di un WIS:
" Web-server (HTTP-based)
" DBMS (relazionale)
" Meta-tier di collegamento
DBMS Browser
(client)
1. HTTP request
6. HTTP response
2. Parametri 3. SQL Query 3. SQL Q
Web Information System
Componenti di un WIS:
" Web-server (HTTP-based)
" DBMS (relazionale)
" Meta-tier di collegamento
DBMS Browser
(client)
1. HTTP request
6. HTTP response
2. Parametri 3. SQL Query 3. SQL Q
Web Information System
Ingredienti di un WIS: DMBS (Database Management System)
" Sistema per la gestione dei dati.
" Non si richiedono caratteristiche specifiche
per l’utilizzo sul Web, se non quelle di: (i)
gestione della concorrenza, (ii) supporto
multi-utente ed (iii) efficienza
operazionale (ricerca/aggiornamento).
" Esempi: Oracle, MySQL, PostgreSQL, DB2 …
Web Information System
I WIS presentano problematiche comuni ad
i sistemi informativi tradizionali, ma anche
delle caratteristiche nuove:
" Eterogeneita’ dei dati (testo, dati binari,
multimedia, etc).
" Asimmetria delle operazioni (ricerca/
aggiornamento).
" Eterogeneita’ dei dispositivi d’accesso.
Web Information System
Componenti di un WIS:
" Web-server (HTTP-based)
" DBMS (relazionale)
" Meta-tier di collegamento
DBMS Browser
(client)
MT 1. HTTP request
6. HTTP response
2. Parametri 3. SQL Query 3. SQL Q
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
" Sistema di collegamento tra il Web-server
(es. Apache) ed il DBMS (es. MySQL).
OPERAZIONI:
(1) Riceve i parametri in ingresso dal Web-server.
(2) Interroga il DMBS ed estrae le informazioni di
interesse (tramite SQL).
(3) Produce la pagina HTML con le info richieste.
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
" Sistema di collegamento tra il Web-server
ed il DBMS.
IN COSA CONSISTE un MT?
(1) Programma esterno CGI (Common Gateway Interface).
(2) Interprete di linguaggi di scripting server-side
integrato nel Web-server.
(3) Application-server multi-livello.
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
" Sistema di collegamento tra il Web-server
(es. Apache) ed il DBMS (es. MySQL).
IN COSA CONSISTE un MT?
(1) Programma esterno CGI (Common Gateway Interface).
(2) Interprete di linguaggi di scripting server-side
integrato nel Web-server.
(3) Application-server multi-livello.
Web Information System
Si utilizza l’URL della richiesta HTTP per invocare
un programma presente sul server (programma
gateway), che viene eseguito (sul server) e calcola la
pagina da restituire al client.
Common Gateway Interface (CGI)
.//01223334564789:;49/2<=65>90/45?9@8;<AB<C>5;&D5;>6;BE:&65>90/
Nome del programma CGI,
non della risorsa
AB<C>
Parametri
Web Information System
Il web-server si limita a: passare i parametri in input al
programma CGI (es. myscript.cgi), ad a lanciare
l’esecuzione dello stesso.
Common Gateway Interface (CGI)
Browser
(client) Web server
HTTP request
HTTP response
myscript.cgi
DBMS
m
Web Information System
L’applicabilita’ dei CGI e’ limitata da:
" Prestazioni # ad ogni richiesta, un nuovo
processo corrispondente al programma CGI deve
essere mandato in esecuzione.
" Risorse # quando un CGI termina, le sue risorse
sono deallocate e non e’ possibile riutilizzare
strutture dati per richieste consecutive.
Common Gateway Interface (CGI)
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
" Sistema di collegamento tra il Web-server
ed il DBMS.
IN COSA CONSISTE un MT?
(1) Programma esterno CGI (Common Gateway Interface).
(2) Interprete di linguaggi di scripting server-side
integrato nel Web-server.
(3) Application-server multi-livello.
Web Information System
La risorsa richiesta dall’utente contiene (oltre a codice
HTML) anche codice aggiuntivo scritto in un
linguaggio di scripting-server-side. Il web-server
include un interprete di tale linguaggio.
1) Il codice viene eseguito (lato server) dal web-server.
2) Il corrispondente codice HTML viene generato.
3) Il codice HTML risultante viene spedito indietro
come risposta al client.
Scripting Server-Side
Web Information System
In questo caso, il Meta-Tier e’ incluso nel web-server,
che funge anche da interprete degli script server-side.
Scripting Server-Side
Browser
(client) Web server
HTTP request
HTTP response
DBMS
META-TIER
Web Information System
http://www.cs.unibo.it/data.php RISORSA RICHIESTA hA
F./<GH&
F.ACEH&
F2.ACEH&
F:;E=H&
F0H&&
F:H&$C/C&5;>>A8/A1&F2:H&
A5.;&EC/AIJ<4E4=JKL&@H&
F20H&
F2:;E=H&
F2./<GH&
F./<GH&
F.ACEH&
F2.ACEH&
F:;E=H&
F0H&&
F:H&$C/C&5;>>A8/A1&
F2:H&
MM4NM4MNF20H&
F2:;E=H&
F2./<GH&
Web Information System
Oltre a fungere da interprete degli script, il MT
integrato nel web-server puo’ fornire l’ambiente di
supporto per l’esecuzione degli script:
" Allocazione di risorse (es. memoria).
" Gestione della sessione.
" Librerie/moduli per connessione a DBMS.
Scripting Server-Side
Web Information System
Oltre a fungere da interprete degli script, il MT
integrato nel web-server puo’ fornire l’ambiente di
supporto per l’esecuzione degli script:
" Allocazione di risorse (es. memoria).
" Gestione della sessione.
" Librerie/moduli per connessione a DBMS.
Scripting Server-Side
" ASP.NET
" PHP
" Python + Django
" Ruby on Rails
" Java Server Pages (JSP)
" …
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
" Sistema di collegamento tra il Web-server
ed il DBMS.
IN COSA CONSISTE un MT?
(1) Programma esterno CGI (Common Gateway Interface).
(2) Interprete di linguaggi di scripting server-side
integrato nel Web-server.
(3) Application-server multi-livello.
Web Information System
Un Application Server e’ una sistema dedicato
all’esecuzione di componenti riusabili che possono
venire utilizzati dagli script server-side.
Application Server
Browser
(client) Web server
HTTP request
HTTP response DBMS
META-TIER
Application
Server
Enterprise Java Beans
(EJB)
Web Information System
" Web Service (W3C): Sistema software per
supportare le interazioni tra macchine in rete,
garantendo l’interoperabilita’ tra piattaforme
eterogenee dal punto di vista hardware/software
INTERNET
CLIENT WEB SERVICE REQUEST
RESPONSE
" La comunicazione avviene tramite il protocollo HTTP.
" Il web-service e’ auto-descrittivo, ossia offre un’interfaccia
che ne consente l’utilizzo da parte di altre applicazioni.
Web Information System
Due componenti principali:
1. Linguaggio per la definizione dei servizi offerti da
un Web Service # WSDL (Web Service Definition Language)
2. Protocollo per lo scambio dei messaggi tra i
servizi # SOAP (Simple Object Access Protocol)
" Web Service (W3C): Sistema software per
supportare le interazioni tra macchine in rete,
garantendo l’interoperabilita’ tra piattaforme
eterogenee dal punto di vista hardware/software
Web Information System
Una specifica WSDL e’ un documento XML che
descrive: il servizio, le operazioni, i messaggi, ed i tipi
dei dati necessari per invocare il servizio.
<types> … definizione dei tipi utilizzati </types>
<message> … messaggio scambiato </message>
<portType> … gruppo di operazioni</portType>
<binding> … modalita’ scambio messaggi</binding>
<service> … dove reperire il servizio</service>
PARTE
ASTRATTA
PARTE
CONCRETA
Web Information System
PROBLEMA: Integrazione sistemi informativi.
DBMS DBMS
DBMS
Oracle MySQL
MicrosoftSQL
DBMS DBMIGRAZIONE MIGRAZIONE
SOLUZIONE1:
MIGRAZIONE +
FUSIONE dei DB
Web Information System
DBMS MS DBMS DB
DBMS DB
Oracle MySQL
MicrosoftSQL
SOAP
Web
Service1
WSDL
Web
Service2
WSDL
Web
Service3
WSDL
PROBLEMA: Integrazione sistemi informativi.
SOLUZIONE2:
UTILIZZO DEI
WEB SERVICE