![Page 1: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/1.jpg)
Corso di Basi di Dati
Sistemi Informativi sul Web
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
![Page 2: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/2.jpg)
Web Information System
Integrazione di SQL in linguaggi 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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/3.jpg)
Web Information System
Architettura client-server del WWW
Browser (client)
Web-server
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/4.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/5.jpg)
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): HEAD, POST, GET, PUT, DELETE, etc
![Page 6: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/6.jpg)
Web Information System
WIS (Web information System)
Browser (client)
Web-server
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/7.jpg)
Web Information System
Componenti di un WIS:
Web-server (HTTP-based) DBMS (relazionale) Meta-tier di collegamento
DBMSBrowser
(client)
Web-server
MT1. HTTP request
6. HTTP response
2. Parametri3. SQL Query
4. Dati
5. Pagin
a Web
(din
amica
)
![Page 8: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/8.jpg)
Web Information System
Componenti di un WIS:
Web-server (HTTP-based) DBMS (relazionale) Meta-tier di collegamento
DBMSBrowser
(client)
Web-server
MT1. HTTP request
6. HTTP response
2. Parametri3. SQL Query
4. Dati
5. Pagin
a Web
(din
amica
)
![Page 9: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/9.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/10.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/11.jpg)
Web Information System
Componenti di un WIS:
Web-server (HTTP-based) DBMS (relazionale) Meta-tier di collegamento
DBMSBrowser
(client)
Web-server
MT1. HTTP request
6. HTTP response
2. Parametri3. SQL Query
4. Dati
5. Pagin
a Web
(din
amica
)
![Page 12: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/12.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/13.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/14.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/15.jpg)
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)
http://www.cs.unibo.it/myscript.cgi?nome=marco &corso=db
Nome del programma CGI,non della risorsa
Parametri
![Page 16: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/16.jpg)
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
Parametri
DBMS
Pagina HTML
![Page 17: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/17.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/18.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/19.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/20.jpg)
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
INTERPRETE
META-TIER
![Page 21: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/21.jpg)
Web Information Systemhttp://www.cs.unibo.it/data.phpRISORSA RICHIESTA
<html><head></head><body><p> <b> Data corrente: </b><?php echo date("m.d.y"); ?></p></body></html>
<html><head></head><body><p> <b> Data corrente:</b>11.21.12</p></body></html>
SERVER-SIDE CLIENT-SIDE
![Page 22: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/22.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/23.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/24.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/25.jpg)
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
INTERPRETE
META-TIER
ApplicationServer
Enterprise Java Beans(EJB)
![Page 26: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/26.jpg)
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 SERVICEREQUEST
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/27.jpg)
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: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/28.jpg)
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>
PARTEASTRATTA
PARTECONCRETA
![Page 29: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/29.jpg)
Web Information System
PROBLEMA: Integrazione sistemi informativi.
DBMS
DBMS
DBMS
Oracle MySQL
MicrosoftSQL
DBMSMIGRAZIONE MIGRAZIONE
SOLUZIONE1:
MIGRAZIONE +FUSIONE dei DB
![Page 30: Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: difelice/dbsi](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb66497959361e8d265b/html5/thumbnails/30.jpg)
Web Information System
DBMS
DBMS
DBMS
Oracle MySQL
MicrosoftSQL
SOAP
Web Servic
e1
WSDL
Web Servic
e2
WSDL
Web Servic
e3
WSDL
SOAP
PROBLEMA: Integrazione sistemi informativi.
SOLUZIONE2:
UTILIZZO DEIWEB SERVICE