WEB e database

Transcript

WEB e database
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