Basi di Dati e Sistemi
Informativi
Sistemi Informativi sul Web
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
Web Information System
L’accesso tipico ad una base di dati avviene
mediante applicazioni integrate nel sistema
informativo.
 Integrazione di SQL in linguaggi di
programmazione ad alto livello.
 Integrazione
di
SQL
applicazioni/interfacce
Web
Information System, WIS)
in
(Web
Web Information System
I WIS presentano problematiche comuni ad
i sistemi informativi tradizionali, ma anche
delle peculiarita’:
 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
2. Parametri
1. HTTP request
Browser
(client)
6. HTTP response
3. SQL Query
DBMS
Web Information System
Ingredienti di un WIS: Il Word Wide Web (WWW)
Applicazione fruibile su una rete Internet per
lo scambio di ipertesti.
Basata su un’architettura client-server.
HTTP request
Browser
(client)
HTTP response
Web server
Web Information System
Ingredienti di un WIS: 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 di un WIS: HTML (Hypertext Markup Language)
 Come si presenta un file HTML.
<HTML>
<HEAD>
<TITLE> Titolo del documento </TITLE>
</HEAD>
<BODY>
<P align=“center”> <B> Hello world! </B></P>
<A href=“http://www.unibo.it”> Clicca qui per cambiare sito </A>
</BODY>
</HTML>
Web Information System
Ingredienti di un WIS: HTTP (Hypertext Transfer Protocol)
 Protocollo per l’interazione client/server,
basato su protocollo TCP (porta 80).
 Protocollo stateless, con 4 fasi.
 Comunicazione asimmetrica (pull-based)
 Comandi principali:
HEAD, POST, GET, PUT, OPTIONS, etc
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 (ovvie)
di: (i) gestione della concorrenza, (ii)
supporto multi-utente ed (iii) efficienza
operazionale.
 Esempi: MySQL, PostgreSQL, DB2, etc
Web Information System
Ingredienti di un WIS: MT (Middle-tier)
 Sistema di collegamento tra il Web-server
ed il DBMS.
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
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
Common Gateway Interface (CGI)
Si utilizza l’URL della richiesta HTTP per invocare
un programma presente sul server (programma CGI),
che viene eseguito (sul server) e calcola la pagina da
restituire al client.
http://www.cs.unibo.it/myscript.cgi?nome=marco &corso=db
Nome del programma CGI,
non della risorsa
Parametri
Web Information System
Common Gateway Interface (CGI)
Il web-server si limita a: passare i parametri in input al
programma CGI (es. myscript.cgi), ad a lanciare
l’esecuzione dello stesso.
HTTP request
myscript.cgi
Browser
(client)
HTTP response
Web server
DBMS
Web Information System
Common Gateway Interface (CGI)
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 dello stesso
tipo.
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
Scripting Server-Side
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 risultatante viene spedito indietro
come risposta al client.
Web Information System
Scripting Server-Side
In questo caso, il Meta-Tier e’ incluso nel web-server,
che funge anche da interprete dgli script server-side.
META-TIER
HTTP request
DBMS
Browser
(client)
HTTP response
Web server
Web Information System
RISORSA RICHIESTA
http://www.cs.unibo.it/data.php
<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
Scripting Server-Side
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
Programma del Corso
Linguaggi/Tecnologie di scripting server-side







ASP.NET
PHP
Python + Django
Ruby on Rails
Java Server Pages (JSP) and Java Servlet
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
Application Server
Un Application Server e’ una sistema dedicato
all’esecuzione di componenti riusabili che possono
venire sfruttati dagli script server-side per la
costruzione dinamica del codice HTML.
META-TIER
HTTP request
Browser
(client)
Application
Server
HTTP response
Web server
DBMS
Web Information System
Application Server
Tramite Application Server e’ possibile realizzare
sistemi distribuiti che si interfacciano con DBMS ed
in grado di garantire proprieta’ quali:




Tolleranza ai guasti
Gestione delle transazioni
Condivisione di risorse
….
Esempio: Enterprise Java Beans (EJB) in J2EE
Web Information System
L’avvento del Web ha stimolato la necessita’ di
integrare sistemi informativi eterogenei, sviluppati in
tempi diversi e con piattaforme differenti …
 Anagrafica (comune)
 Anagrafica studenti (universita)
 Fascicolo Sanitario Elettronico (regione)
 Fascicolo del contribuente (agenzia entrate)
 …
Web Information System
L’avvento del Web ha stimolato la necessita’ di
integrare sistemi informativi eterogenei, sviluppati in
tempi diversi e con piattaforme differenti …
DBMS
DBMS
DATI
Oracle
MySQL
DBMS
MicrosoftSQL
Web Information System
Soluzione1: Integrazione/Migrazione dei DB esistenti.
DBMS
DBMS
DBMS
Oracle
MySQL
DBMS
MicrosoftSQL
Web Information System
Per queste necessita’ di integrazione, il W3C ha
proposto l’utilizzo di Web Service:
 Def. di Web Service (W3C): Sistema per
supportare le interazioni tra macchine in rete.
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 Information System
Una specifica WSDL e’ un documento XML che
descrive: il servizio, le operazioni, i messaggi, ed i tipi
dei dati necessari per l’operazione.
<types> … definizione dei tipi utilizzati </types>
<message> … messaggio scambiato </message>
PARTE
ASTRATTA
<portType> … gruppo di operazioni</portType>
<binding> … modalita’ scambio messaggi</binding>
<service> … dove reperire il servizio</service>
PARTE
CONCRETA
Web Information System
Il protocollo SOAP definisce la struttura (XML) dei
messaggi che devono essere scambiati tra un mittente
ed un destinatario, e gestisce l’invio dei messaggi.
ENVELOPE
Metadati relativi al messaggio
Contenuto del messaggio
(es. nome del servizio da invocare +
Eventuali parametri in input)
HEADER
BODY
Web Information System
Soluzione2: Utilizzo di Web-services …
Web
Service2
Web
Service1
WSDL
SOAP
WSDL
DBMS
DBMS
Oracle
MySQL
Web
Service3
WSDL
DBMS
MicrosoftSQL
Scarica

Document