Sistemi Informativi sul Web Corso di Basi di Dati Sistemi Informativi sul Web Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
Web Information System 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? Integrazione di SQL in linguaggi di programmazione ad alto livello. Integrazione di SQL in applicazioni Web (Web Information System, WIS)
Web Information System Architettura client-server del WWW 1. HTTP request Web-server 6. HTTP response Browser (client) 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) 1. HTTP request Web-server DBMS 6. HTTP response Browser (client) Le pagine Web sono create dinamicamente, accedendo ad informazioni contenute in un DBMS. Il processamento delle risorse avviene lato-server.
Web Information System Componenti di un WIS: Web-server (HTTP-based) DBMS (relazionale) Meta-tier di collegamento 2. Parametri MT 3. SQL Query 1. HTTP request Web-server DBMS 5. Pagina Web (dinamica) 4. Dati 6. HTTP response Browser (client)
Web Information System Componenti di un WIS: Web-server (HTTP-based) DBMS (relazionale) Meta-tier di collegamento 2. Parametri MT 3. SQL Query 1. HTTP request Web-server DBMS 5. Pagina Web (dinamica) 4. Dati 6. HTTP response Browser (client)
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 2. Parametri MT 3. SQL Query 1. HTTP request Web-server DBMS 5. Pagina Web (dinamica) 4. Dati 6. HTTP response Browser (client)
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: Riceve i parametri in ingresso dal Web-server. Interroga il DMBS ed estrae le informazioni di interesse (tramite SQL). 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? Programma esterno CGI (Common Gateway Interface). Interprete di linguaggi di scripting server-side integrato nel Web-server. 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? Programma esterno CGI (Common Gateway Interface). Interprete di linguaggi di scripting server-side integrato nel Web-server. 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 gateway), 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. Parametri HTTP request Pagina HTML myscript.cgi Browser (client) HTTP response DBMS Web server
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.
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? Programma esterno CGI (Common Gateway Interface). Interprete di linguaggi di scripting server-side integrato nel Web-server. 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. Il codice viene eseguito (lato server) dal web-server. Il corrispondente codice HTML viene generato. Il codice HTML risultante 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 degli script server-side. META-TIER INTERPRETE HTTP request DBMS Browser (client) HTTP response Web server
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> SERVER-SIDE CLIENT-SIDE
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.
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. 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? Programma esterno CGI (Common Gateway Interface). Interprete di linguaggi di scripting server-side integrato nel Web-server. Application-server multi-livello.
Web Information System Application Server Un Application Server e’ una sistema dedicato all’esecuzione di componenti riusabili che possono venire utilizzati dagli script server-side. Enterprise Java Beans (EJB) META-TIER INTERPRETE HTTP request Application Server DBMS Browser (client) HTTP response Web server
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 CLIENT WEB SERVICE REQUEST INTERNET 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 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 Due componenti principali: Linguaggio per la definizione dei servizi offerti da un Web Service WSDL (Web Service Definition Language) 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 invocare il servizio. <types> … definizione dei tipi utilizzati </types> PARTE ASTRATTA <message> … messaggio scambiato </message> <portType> … gruppo di operazioni</portType> <binding> … modalita’ scambio messaggi</binding> PARTE CONCRETA <service> … dove reperire il servizio</service>
Web Information System PROBLEMA: Integrazione sistemi informativi. DBMS MIGRAZIONE MIGRAZIONE DBMS DBMS Oracle MySQL SOLUZIONE1: MIGRAZIONE + FUSIONE dei DB DBMS MicrosoftSQL
Web Information System PROBLEMA: Integrazione sistemi informativi. Web Service2 WSDL Web Service1 WSDL SOAP DBMS DBMS Oracle Web Service3 WSDL SOAP MySQL SOLUZIONE2: UTILIZZO DEI WEB SERVICE DBMS MicrosoftSQL