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

Post on 04-Aug-2020

20 views 0 download

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&

F@0.0&&

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