Corso di Basi di Dati
Sistemi Informativi sul Web
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
Web Information System
² Integ razione 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?
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):
HEAD, POST, GET, PUT, DELETE, 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
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
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)
1. HTTP request MT
6. HTTP response
2. Parametri
3. SQL Query
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)
http://www.cs.unibo.it/myscript.cgi?nome=marco &corso=db
Nome del programma CGI,
non della risorsa 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
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
<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>
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
MIGRAZIONE MIGRAZIONE
SOLUZIONE1:
MIGRAZIONE + FUSIONE dei DB
Web Information System
DBMS DBMS
DBMS
Oracle MySQL
MicrosoftSQL SOAP
Web Service1
WSDL
Web Service2
WSDL
Web Service3
WSDL
PROBLEMA: Integrazione sistemi informativi.
SOLUZIONE2:
UTILIZZO DEI WEB SERVICE