31
Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Embed Size (px)

Citation preview

Page 1: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Basi di Dati e Sistemi

Informativi

Sistemi Informativi sul Web

Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: 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 in applicazioni/interfacce Web (Web Information System, WIS)

Page 3: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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.

Page 4: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 5: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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.

Browser (client) Web server

HTTP request

HTTP response

Page 6: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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.

Page 7: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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>

Page 8: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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

Page 9: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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

Page 10: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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.

Page 11: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 12: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 13: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

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.

Common Gateway Interface (CGI)

http://www.cs.unibo.it/myscript.cgi?nome=marco &corso=db

Nome del programma CGI,non della risorsa

Parametri

Page 14: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 15: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 dello stesso tipo.

Common Gateway Interface (CGI)

Page 16: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 17: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 risultatante viene spedito indietro come risposta al client.

Scripting Server-Side

Page 18: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

In questo caso, il Meta-Tier e’ incluso nel web-server, che funge anche da interprete dgli script server-side.

Scripting Server-Side

Browser (client) Web server

HTTP request

HTTP response

DBMS

INTERPRETE

META-TIER

Page 19: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 20: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 21: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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

Page 22: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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 23: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

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.

Application Server

Browser (client) Web server

HTTP request

HTTP response DBMS

INTERPRETE

META-TIER

ApplicationServer

Page 24: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

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

Application Server

Page 25: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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)

Page 26: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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

DBMS

Oracle MySQL

MicrosoftSQL

DATI

Page 27: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

Soluzione1: Integrazione/Migrazione dei DB esistenti.

DBMS

DBMS

DBMS

Oracle MySQL

MicrosoftSQL

DBMSMIGRAZIONE MIGRAZIONE

Page 28: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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)

Page 29: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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>

<portType> … gruppo di operazioni</portType>

<binding> … modalita’ scambio messaggi</binding>

<service> … dove reperire il servizio</service>

PARTEASTRATTA

PARTECONCRETA

Page 30: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

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

HEADER

BODY

Metadati relativi al messaggio

Contenuto del messaggio(es. nome del servizio da invocare +

Eventuali parametri in input)

Page 31: Basi di Dati e Sistemi Informativi Sistemi Informativi sul Web Home page del corso: difelice/dbsi

Web Information System

DBMS

DBMS

DBMS

Oracle MySQL

MicrosoftSQL

SOAP

Soluzione2: Utilizzo di Web-services …Web

Service1

WSDL

Web Servic

e2

WSDL

Web Servic

e3

WSDL

SOAP