Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati e Web Credits to: Prof. M. Di Felice UniBO
" 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)
" Architettura client-server del WWW 1. HTTP request Browser (client) 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).
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.
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):!"#$%&'()*%&+"*%&&',*%&$"-"*"% etc
" WIS (Web information System) 1. HTTP request Browser (client) 6. HTTP response DBMS " Le pagine Web sono create dinamicamente, accedendo ad informazioni contenute in un DBMS. " Il processamento delle risorse avviene lato-server.
Componenti di un WIS: " Web-server (HTTP-based) " DBMS (relazionale) " Meta-tier di collegamento 1. HTTP request 2. Parametri 3. SQL Query Browser (client) 6. HTTP response DBMS
Componenti di un WIS: " Web-server (HTTP-based) " DBMS (relazionale) " Meta-tier di collegamento 1. HTTP request 2. Parametri 3. SQL Query Browser (client) 6. HTTP response DBMS
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
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.
Componenti di un WIS: " Web-server (HTTP-based) " DBMS (relazionale) " Meta-tier di collegamento 1. HTTP request 2. Parametri MT 3. SQL Query Browser (client) 6. HTTP response DBMS
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.
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.
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.
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..//01223334564789:;49/2<=65>90/45?9@8;<ab<c>5;&d5;>6;be:& 65>90/ Nome del programma CGI, non della risorsa Parametri
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
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.
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.
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 risultante viene spedito indietro come risposta al client.
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 HTTP request DBMS Browser (client) HTTP response Web server
RISORSA RICHIESTA F./<GH& F.ACEH& F2.ACEH& F:;E=H& F0H&& F:H&$C/C&5;>>A8/A1&F2:H& F@0.0&& A5.;&EC/AIJ<4E4=JKL&@H& F20H& F2:;E=H& F2./<GH& http://www.cs.unibo.it/data.php F./<GH& F.ACEH& F2.ACEH& F:;E=H& F0H&& F:H&$C/C&5;>>A8/A1& F2:H& MM4NM4MNF20H& F2:;E=H& F2./<GH&
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.
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: " ASP.NET " Allocazione di risorse (es. memoria). " PHP " Gestione " Python della + sessione. Django " Librerie/moduli " Ruby on Rails per connessione a DBMS. " Java Server Pages (JSP) "
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.
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 HTTP request Browser (client) HTTP response Web server Application Server DBMS
" 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 REQUEST WEB SERVICE RESPONSE INTERNET " 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 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: 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)
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> PARTE ASTRATTA <porttype> gruppo di operazioni</porttype> <binding> modalita scambio messaggi</binding> <service> dove reperire il servizio</service> PARTE CONCRETA
PROBLEMA: Integrazione sistemi informativi. MIGRAZIONE DBMS MIGRAZIONE DBMS Oracle DBMS MySQL SOLUZIONE1: MIGRAZIONE + FUSIONE dei DB DBMS MicrosoftSQL
PROBLEMA: Integrazione sistemi informativi. Web Service 1 WSDL SOAP Web Service 2 WSDL DBMS DBMS Oracle Web Service 3 MySQL SOLUZIONE2: UTILIZZO DEI WEB SERVICE WSDL DBMS MicrosoftSQL