Introduzione all’elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web • Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un facile accesso a questi computer e al loro contenuto. • Il Web ha un’architettura client/server: applicazioni basate su server comunicano con stazioni di lavoro tramite una rete Gli utenti, a casa o in ufficio, lavorano su computer dal lato client connessi a Internet e utilizzano programmi chiamati browser Web (es. Netscape e Explorer) I server Web sono computer dal lato server e spesso sono computer aziendali, sono connessi alla rete Internet ed eseguono software speciale per server Web . Fa parte di questo software un componente chiamato listener che controlla i messaggi inviati al server dai browser del client. • • • Prof.ssa M. Cesa 2 1 Concetti base del Web • Una pagina Web è generalmente un file il cui nome ha suffisso .htm o .html che contiene tag dello Hypertext Markup Language e testo • Il linguaggio HTML non è un linguaggio di programmazione. Serve soprattutto per definire la struttura e l’aspetto delle pagine Web e per inserirvi collegamenti ipertestuali con altre pagine • Quando un server Web riceve un messaggio da un browser che chiede una pagina Web, rimanda al browser dell’utente, attraverso Internet , il file HTML richiesto (ovvero la pagina web) . Il browser web visualizza il file che si presenta come una pagina formattata in base ai tag HTML contenuti Prof.ssa M. Cesa 3 Concetti base del Web Richiesta della pagina Web Richiesta della pagina Web Rete File Html della pagina Web File Html della pagina Web Browser Web Server Web Prof.ssa M. Cesa 4 2 Protocolli di comunicazione e indirizzi Web • • • • • • I protocolli di comunicazione sono accordi tra un mittente e un ricevente sul modo in cui i dati sono inviati e interpretati Internet è costruita su due protocolli di comunicazione : il T(ransmission) C(ontrol) P(rotocol) e l’ I(nternet) P(rotocol) : TCP/IP Tutti i dati che vengono trasportati attraverso Internet sono divisi in pacchetti, piccole porzioni di dati che si possono instradare separatamente attraverso Internet. Il TCP ha la responsabilità della suddivisione di un messaggio in pacchetti, quando il messaggio viene inviato, e del riassemblaggio dei pacchetti in messaggi completi, presso il computer ricevente. L’IP specifica invece come indirizzare i messaggi. Ciascun computer connesso a Internet ha un indirizzo IP univoco, che specifica la posizione del computer nella rete. Generalmente gli indirizzi IP sono espressi tramite quattro numeri (il cui valore va da 0 a 255) separati da punti. Prof.ssa M. Cesa 5 Protocolli di comunicazione e indirizzi Web • • • • • • Un indirizzo IP si può rappresentare anche mediante un dominio, ovvero un nome significativo. I server dei nomi dei domini sono computer che tengono aggiornate tabelle in cui ai nomi di dominio corrispondono i relativi indirizzi IP . I server dei nomi di domino sono gestiti dagli Internet Service Provider (ISP) che forniscono ai clienti l’accesso commerciale a Internet, e da organizzazioni. Generalmente le informazioni del Web vengono trasferite mediante un protocollo chiamato HTTP (Hypertext Transfer Protocol). I browser web accettano anche protocolli Internet come FTP Un utente richiede una pagina Web a un server inserendo nel suo browser l’indirizzo Web della pagina. Prof.ssa M. Cesa 6 3 Protocolli di comunicazione e indirizzi Web • • • • • Un indirizzo Web, chiamato anche URL (Uniform Resource Location), è una stringa di caratteri, numeri e simboli che specifica: il protocollo di comunicazione, il nome del dominio /indirizzo IP di un server Web e , facoltativamente, il percorso della cartella dove si trova il file HTML della pagina Web, oltre al nome del file HTML della pagina. Se in un URL non viene specificato il protocollo di comunicazione, i browser web assumono che sia HTTP Se non viene specificato il percorso della cartella, il server web considera quale posizione di partenza predefinita la cartella radice dei documenti del server. Quando l’amministratore Web configura il server, specifica il percorso esatto della sua cartella radice dei documenti, che può essere una qualsiasi cartella del disco rigido del server Web Se l’utente inserisce nel suo browser web solo il nome del dominio del server Web, il server Web invia la sua pagina predefinita , pertanto l’amministratore deve costruire questa pagina (es. default.html, index.html, home.html) Prof.ssa M. Cesa 7 Concetti essenziali dei database • I database conservano i dati di un’organizzazione utilizzando un formato standardizzato. • Per accedere ai dati dei database e per gestirli si possono usare diversi programmi • Ciascun programma interagisce con i dati del database attraverso i DBMS • Un DBMS è un’applicazione che si usa per gestire i dati di un database e l’accesso degli utenti Prof.ssa M. Cesa 8 4 Relazione fra database, DBMS, programmi applicativi Gestione clienti Esempio Gestione fornitori Database DBMS Database della società commerciale Gestione Scorte Prof.ssa M. Cesa 9 Database personali e client/server • I primi database risiedevano su grandi computer mainframe centralizzati, ai quali gli utenti accedevano tramite terminali • Negli anni ’80 , con l’avvento dell’informatica distribuita e i microcomputer emersero due tipi di database: i database personali e i database client/server • I DBMS personali (Microsoft Access p.e.) sono concepiti per utenti individuali. Quando si trasferisce un database personale in un ambiente client/server utilizzandolo per applicazioni multiutente possono verificarsi dei problemi: grosse moli di dati da trasferire … .I • Prof.ssa M. Cesa 10 5 Utilizzo di un database personale per un’applicazione multiutente Server dei file: 1. Riceve le richieste 2. Invia e riceve file Richiesta di file aggiornati RETE File richiesti File richiesti R.F.A. Stazione di lavoro client 2 Stazione di lavoro client 1 Prof.ssa M. Cesa 11 Database Client/server • I database client/server (Oracle, Microsoft NT , SQL Server) operano diversamente e non presentano questi problemi: • separano il DBMS dai programmi che operano sul database : il DBMS viene installato ed eseguito su un server, mentre i programmi che usano il database vengono installati ed eseguiti sul client. • I programmi in esecuzione sul client inviano richieste di dati al DBMS attraverso la rete • Quando il server del DBMS di tipo Client/server riceve una richiesta, reperisce i dati dal database, esegue le funzioni richieste sui dati, restituisce al client, attraverso la rete, solo il risultato finale della query Prof.ssa M. Cesa 12 6 Server di Database Server di database 1. Riceve le richieste di dati, di dati nuovi e di aggiornamenti 2. Filtra i dati richiesti dal database e linvia al client 3. Oppure aggiunge o aggiorna i dati Richiesta dati, input e agg dati Dati filtrati Dati filtrati Richiesta dati, input e agg.dati Client 1 Prof.ssa M. Cesa Client 2 13 Database personali e client/server (in applicazioni multiutente) • Altre differenze:Gestione delle cadute del client • quando si ha una caduta del client in un sistema db personale è possibile che il database rimanga danneggiato a causa di query di comando interrotte. • Per contro la caduta di un client in un db client/server incide di meno sul database . Le query del client vengono perse ma gli altri client non ne risentono. • Anche nel caso di caduta del server ci sono meccanismi che riducono i danni ( in ambiente c/s) Prof.ssa M. Cesa 14 7 Database personali e client/server (in applicazioni multiutente) • Altre differenze: gestione delle transazioni utente in competizione. • Quando un utente invia una query di comando, un DBMS client/server blocca i record associati in modo da renderli non disponibili per l’aggiornamento da parte di altri utenti finchè sono impegnati dalla transazione Un database personale come M. Access , per applicazioni multiutente, predispone il blocco del record ottimistico . Un meccanismo basato sulla speranza che non si verifichino contemporaneamente due transazioni in competizione. Se il computer client che sta effettuando le modifiche si blocca a metà di un gruppo di transazioni, il registro delle transazioni nella sua • memoria viene perso. Prof.ssa M. Cesa 15 Database personali e client/server (in applicazioni multiutente) • Riassumendo: • i database client/server sono indispensabili 1. Per applicazioni database in cui molti utenti possono inserire, aggiornare o eliminare dati nello stesso tempo 2. Per applicazioni essenziali per la sopravvivenza dell’azienda, in quanto sono in grado si gestire le cadute di sistema, hanno meccanismi di ripristino e possono lavorare per transazioni 3. Per sistemi che richiedono un solido sistema di sicurezza per regolare l’accesso degli utenti ai dati Prof.ssa M. Cesa 16 8 Database personali e client/server (in applicazioni multiutente) • Riassumendo: • I database personali sono utili : • Per installazioni Web nelle quali l’unica operazione sul database consiste nel consultare i dati e non si usano query di comando • Dove si possono tollerare sistemi di sicurezza e di ripristino meno robusti Prof.ssa M. Cesa 17 PAGINE WEB DINAMICHE • • • • Le pagine web possono essere: Statiche Dinamiche Una pagina Web dinamica fornisce informazioni più immediate e aggiornate rispetto a una pagina statica • Le pagine dinamiche giocano quindi un ruolo importante nella creazione di siti Web pilotati da database. Prof.ssa M. Cesa 18 9 Pagine Web Dinamiche • • • In una pagina Web statica il contenuto viene stabilito nel momento in cui viene creata In una pagina Web dinamica i contenuti cambiano in funzione delle richieste o dell’input dell’utente Si possono costruire pagine Web dinamiche per: 1. Interrogare un database 2. Modificare il contenuto di un database Prof.ssa M. Cesa 19 Pagine Web Dinamiche: interrogazione di un database • L’utente chiede una pagina Web dinamica • Il browser dell’utente inoltra la richiesta al server web • Il server Web avvia un programma per elaborare la richiesta • Il programma compone una query e la invia al database • Il database restituisce al programma i dati richiesti • Qui i dati vengono formattati in una pagina Web HTML dal server Web • Il server rimanda la pagina Web dinamica al browser dell’utente Prof.ssa M. Cesa 20 10 Pagine Web Dinamiche: modifica del database • All’utente viene presentato un modulo/form per consentirgli di immettere i dati che verranno impiegati per inserire nuovi record/modificare/cancellare • Il browser dell’utente inoltra la richiesta al server web • Questo input viene tradotto in una query di comando da un programma in esecuzione sul server Web • La query viene inoltrata al database dove sarà elaborata • Se la query ha esito positivo viene restituito un messaggio di conferma che sarà inoltrato al browser dell’utente altrimenti viene trasmesso un messaggio di errore Prof.ssa M. Cesa 21 Pagine Web Dinamiche:ricerca su db 1.Rich.pagine din. 2.Rich.pag.web din. 3.Rich.dati RETE 6.Dati reperiti 8.File Html di pag.web din. 4.Rich.dati 7.File Html di pagina Web Din. 5.Dati Reperiti Server Web Browser Web Server di database Prof.ssa M. Cesa 22 11 Pagine Web Dinamiche:modifica db - query di comando 2. Input dell’utente 1.Input utente 3.Query di comando RETE 6.Messaggio di conferma/errore 8.Messaggio conferma/errore Browser Web 4.Query di comando 7.Messaggio di conferma/errore 5.Messaggio di conferma/errore Server Web Server di database Prof.ssa M. Cesa 23 Pagine Web Dinamiche: elaborazione lato client • Scaricamento ed esecuzione di programmi compilati nella stazione di lavoro client (Applet Java, Programmi Activex) • Costruzione Script lato Client (Java Script, VBScript) Prof.ssa M. Cesa 24 12 Pagine Web Dinamiche: elaborazione lato server • Programmi Compilati (Programmi per servizi CGI, Programmi per servizi ISAPI) • Script dal lato Server (ASP,…) Prof.ssa M. Cesa 25 13