Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei...

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

Transcript of Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei...

Page 1: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

Basi di Dati e Web

Basi di Dati

Prof. Alfredo CuzzocreaUniversità degli Studi di Trieste

Credits to: Prof. M. Di Felice – UniBO

Page 2: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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?

Page 3: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 4: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 5: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 6: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 7: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 8: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 9: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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 …

Page 10: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 11: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 12: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 13: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 14: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 15: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 16: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 17: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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)

Page 18: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 19: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 20: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 21: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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&

[email protected]&&

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&

Page 22: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 23: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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)

"  …

Page 24: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 25: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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)

Page 26: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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.

Page 27: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 28: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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

Page 29: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

Web Information System

PROBLEMA: Integrazione sistemi informativi.

DBMS DBMS

DBMS

Oracle MySQL

MicrosoftSQL

DBMS DBMIGRAZIONE MIGRAZIONE

SOLUZIONE1:

MIGRAZIONE +

FUSIONE dei DB

Page 30: Basi di Dati - Prof. Alfredo Cuzzocrea, Università degli ... · " Sistema per la gestione dei dati. " Non si richiedono caratteristiche specifiche per l’utilizzo sul Web, se non

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