Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client

992 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
992
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client

  1. 1. Corso di Basi di Dati e Laboratorio La programmazione Web Alfio Ferrara - Stefano Montanelli A.A. 2005/2006 Basi di Dati e Laboratorio 1 Indroduzione al Web • Il Web attuale si fonda su un’architettura gerarchica conforme al modello client/server (c/s) • Le macchine server ospitano le informazioni organizzate in siti Web e le rendono disponibili ad eventuali richieste di macchine client – Tipicamente i client, attraverso un browser, sottopongono ai server delle richieste HTTP A.A. 2005/2006 Basi di Dati e Laboratorio 2 Web statico e Web dinamico • I siti Web possono essere di natura statica o dinamica: – Statica: l’interazione con l’utente non prevede forme di elaborazione e interscambio di informazioni – Dinamica: con la richiesta di pagine, l’utente invia informazioni che richiedono al server una fase di elaborazione e modificano il contenuto e la forma degli oggetti restituiti A.A. 2005/2006 Basi di Dati e Laboratorio 3 1
  2. 2. Programmazione Web • Caratteristiche – Tempi di elaborazione ridotti – Multiutenza – Indipendenza dalla piattaforma – Assenza di stato (condizione stateless) • Benefici – Aumento delle capacità di elaborazione – Interfacciamento di risorse presenti lato server (database, file system) A.A. 2005/2006 Basi di Dati e Laboratorio 4 Architettura del Web Richiesta HTTP HTTP Server Client La pagina contiene script NO lato server? NO Gli script richiedono Sì Sì connessioni al DBMS? Interprete del linguaggio di scripting (ASP, PHP, …) DBMS Server A.A. 2005/2006 Basi di Dati e Laboratorio 5 Programmazione lato client • Strumenti – Codice interpretabile da moduli supportati dal browser (non ha quindi accesso alle risorse lato server) • Javascript, VBScript, … – Oggetti lato client: sono applicazioni compilate eseguite da moduli del browser detti plugin • Applet Java, Flash, … A.A. 2005/2006 Basi di Dati e Laboratorio 6 2
  3. 3. Programmazione lato server • Strumenti – Pagine server: si tratta di script associati a pagine Web, spesso embedded, che vengono interpretati da appositi moduli del server quando la pagina viene richiesta. • ASP, JSP, PHP, modPerl, … – CGI: consente di interfacciarsi con un’applicazione eseguita o compilata sul server • Perl, Python, VB, C, … – .NET: applicazione compilata sul server ed eseguita tramite processi dedicati A.A. 2005/2006 Basi di Dati e Laboratorio 7 Interazione con i DBMS • Il codice lato server è spesso usato per creare interfacce internet/intranet per basi di dati, sfruttando diverse modalità di connessione: – TCP/IP – ODBC – Chiamate RPC A.A. 2005/2006 Basi di Dati e Laboratorio 8 Condizione Stateless • L’assenza di stati implica la non persistenza delle informazioni fra le pagine che compongono l’applicazione. A questo scopo sono state individuate due soluzioni: – Sessioni. Memorizzano sul server le informazioni da mantenere per la persistenza – Cookie. Delegano al client la conservazione delle informazioni A.A. 2005/2006 Basi di Dati e Laboratorio 9 3
  4. 4. Questioni critiche • L’interazione con i DBMS attraverso il Web accentua alcune problematiche tipiche delle basi di dati – Affidabilità – Efficienza – Gestione delle transazioni – Identificazione utenti e sicurezza A.A. 2005/2006 Basi di Dati e Laboratorio 10 Strategia di progettazione • Una strategia di progettazione di un applicazione Web è strutturata secondo: 1. Analisi concettuale del dominio 2. Progettazione della base di dati 3. Schema navigazionale 4. Schema delle pagine 5. Generazione delle pagine La natura di alcune di queste attività consente parziale sovrapposizione A.A. 2005/2006 Basi di Dati e Laboratorio 11 Analisi concettuale • Indipendente da scelte implementative • Vengono utilizzati formalismi che permettano di modellare gli elementi del dominio – Diagrammi ER – Modelli ODMG – UML –… A.A. 2005/2006 Basi di Dati e Laboratorio 12 4
  5. 5. Progettazione BD • Scelta di un modello (relazionale, oggetti, logico,…) • Scelta di un DBMS • Definizione dello schema, dei vincoli, delle politiche di sicurezza • Normalizzazione • Realizzazione di sezioni amministrative • Popolamento A.A. 2005/2006 Basi di Dati e Laboratorio 13 Schema navigazionale • Definizione della struttura del sito, della mappa, dei percorsi a disposizione degli utenti per accedere le pagine • Obiettivi: – definire criteri di organizzazione dei contenuti – Facilitare l’accesso alle informazioni • Considerazioni: – NON RISPECCHIA NECESSARIAMENTE LO SCHEMA CONCETTUALE A.A. 2005/2006 Basi di Dati e Laboratorio 14 Schema navigazionale • Modalità di accesso alle informazioni – Link – Mappe – Menù –… • Navigazione personalizzata per livelli di utenza – Utenza generica – Utenza riconosciuta – Amministrazione A.A. 2005/2006 Basi di Dati e Laboratorio 15 5
  6. 6. Schema delle pagine • Identificazione di una struttura comune (griglia) per l’organizzazione dei contenuti in gruppi omogenei di pagine • L’utilizzo di griglie facilità la navigazione mediante impiego di elementi intuitivi e strutture ricorrenti A.A. 2005/2006 Basi di Dati e Laboratorio 16 Generazione delle pagine • Identificazione di una tecnologia/strumento per la generazione delle pagine • Codifica delle pagine – Possibile coesistenza di pagine statiche e dinamiche • pagine statiche (per contenuti a bassa obsolescenza) • dinamiche (per contenuti ad alta obsolescenza) A.A. 2005/2006 Basi di Dati e Laboratorio 17 Strategie alternative • Approccio metodologico alternativo – Vi sono applicazioni Web (tipicamente portali) in cui solo una parte dei contenuti derivano da una base di dati – In questi casi un approccio diffuso consiste nell’iniziare le fasi di progettazione con la definizione dell’alberatura concettuale del sito – Verranno differenziate • Struttura (organizzazione dei contenuti) • Navigazione (modalità di collegamento fra le pagine) • Presentazione (layout grafico degli elementi) A.A. 2005/2006 Basi di Dati e Laboratorio 18 6
  7. 7. Confronto di strategie • La seconda metodologia – Consente una rapida prototipizzazione di portali – Non realizza una chiara distinzione tra modello concettuale e schema navigazionale • Maggiore difficoltà in fase di analisi • Notevoli costi di riprogettazione in caso di modifica alle modalità di navigazione A.A. 2005/2006 Basi di Dati e Laboratorio 19 Client Side – Applet java • Miniapplicazione Java progettata per essere eseguita all’interno di un browser • Viene attivata in un file HTML con il codice <applet code=ClassName.class width=xxx height=yyy> <param name=ParamName value=ParamValue> … <param name=ParamName value=ParamValue> AlternateContent </applet> A.A. 2005/2006 Basi di Dati e Laboratorio 20 Client Side – Applet java • Esempio – Inserire il codice seguente nel file HelloApp.java import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; public class HelloApp extends Applet { Public void paint (Graphics g) { Color c = new Color(255, 180, 0); g.setColor(c); g.fillOval(40,40,100,50);}} – Compilare con Javac per ottenere HelloApp.class A.A. 2005/2006 Basi di Dati e Laboratorio 21 7
  8. 8. Client Side – Applet java • Invocazione – Inserire il codice seguente nel file HelloApp.html <html> <applet code=HelloApp.class width=300 height=100> </applet> </html> – Digitare da shell di comando appletviewer HelloApp.html – Caricare HelloApp.html con un browser A.A. 2005/2006 Basi di Dati e Laboratorio 22 Client Side – Applet java • Considerazioni – Realizzazione di sofisticate interfacce grafiche – Connessione ed interazione con applicazioni residenti sull’host del server web (via socket o RMI) – Problemi • Troppe versioni di JVM • Efficienza • Sicurezza (necessità di signed applets) A.A. 2005/2006 Basi di Dati e Laboratorio 23 Client Side - Javascript • Linguaggio di scripting interpretato • Disponibile anche server side (poco diffuso) • Interprete integrato nei browser • Il codice Javascript è visibile all’utente • Netscape ha sviluppato Javascript. – Microsoft ha sviluppato una versione corrispondente • Jscript A.A. 2005/2006 Basi di Dati e Laboratorio 24 8
  9. 9. Client Side – Javascript • Netscape e Microsoft hanno cooperato con ECMA (European Computer Manufactorers Association) per creare uno standard (EcmaScript o Ecma-262) – Javascript e Jscript supportano tale standard ma offrono estensioni diverse – www.ecma.ch A.A. 2005/2006 Basi di Dati e Laboratorio 25 Client Side – Javascript • Esempio <html><head> <script type=quot;text/javascriptquot;> function Fattoriale() { document.write(quot;<H2>Tabella di fattoriali</H2>quot;); for (i=1, fact=1; i<10; i++, fact *=i) { document.write(i+ quot;!=quot; +fact); document.write(quot;<br>quot;); }} </script></head> <body> <script type=quot;text/javascriptquot;> Fattoriale() </script> </body></html> A.A. 2005/2006 Basi di Dati e Laboratorio 26 Client Side – Javascript • Caratteristiche – Case-sensitive – Javascript è il linguaggio di default se la clausola type=quot;text/javascript” non è specificata – Sintassi in notazione puntata derivata dal modello ad oggetti – È buona norma terminare gli statement con “;” A.A. 2005/2006 Basi di Dati e Laboratorio 27 9
  10. 10. Client Side – Javascript – Dichirazione di variabili • var nomevariabile – Strutture di controllo • if/else, while, for, switch, … – Operatori simili al C • ==, !=, <=, ++, &&, ||, … A.A. 2005/2006 Basi di Dati e Laboratorio 28 Client Side – Javascript • Funzionalità offerte – Interazione con l’ambiente di esecuzione client • Rilevazione della tipologia di browser function TestBrowser() { if(navigator.appName==“MSIEquot;) alert(quot;E' in uso il browser MSIEquot;); else alert(quot;E' in uso un browser non Microsoftquot;); } • Visualizzazione della data di sistema • Generazione di nuove finestre con messaggi o elementi di input A.A. 2005/2006 Basi di Dati e Laboratorio 29 Client Side – Javascript – Gestione di eventi • <input type=“button” value=“clicca qui” onClick=“alert(‘Il bottone è stato premuto’)”> – Interazione con form HTML • Controlli di correttezza ed elaborazioni client side sui valori inseriti nei campi form – Lettura/scrittura dello stato del client tramite interazione con i cookie in esso memorizzati A.A. 2005/2006 Basi di Dati e Laboratorio 30 10
  11. 11. Client Side – Javascript • Limitazioni – Scarse capacità grafiche – Impossibilità di leggere/scrivere file – Lo standard non supporta connessioni a DBMS o ad altri applicativi • Sicurezza – Vengono adottate politiche restrittive – Netscape supporta la possibilità che gli script richiedano privilegi all’utente – Gli script possono essere firmati A.A. 2005/2006 Basi di Dati e Laboratorio 31 Client Side – gli oggetti • E’ possibile includere nelle pagine HTML degli oggetti che verranno trattati mediante plugin specifici – Es. filmati Macromedia Flash • Considerazioni – Notevoli potenzialità grafiche – Scarsa integrazione con altre applicazioni – Linguaggio di scripting proprietario A.A. 2005/2006 Basi di Dati e Laboratorio 32 Client Side – gli oggetti • Esempio <OBJECT WIDTH=quot;450quot; HEIGHT=quot;350quot; ALIGN=quot;quot;> <PARAM NAME=movie VALUE=quot;eyeFollow.swfquot;> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src=quot;eyeFollow.swfquot; quality=high bgcolor=#FFFFFF WIDTH=quot;450quot; HEIGHT=quot;350“ NAME=quot;eyeFollowquot; ALIGN=quot;“ TYPE=quot;application/x-shockwave-flashquot; PLUGINSPAGE= quot;http://www.macromedia.com/go/getflashplayerquot;> </EMBED> </OBJECT> A.A. 2005/2006 Basi di Dati e Laboratorio 33 11

×