SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M Sguestbe916c
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzioneguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
04 B Progettazione Logica E S
04 B  Progettazione Logica  E S04 B  Progettazione Logica  E S
04 B Progettazione Logica E Sguestbe916c
 
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comer
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para ComerF Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comer
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comerkolelmelilla
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
09 Esercizi Generali
09  Esercizi Generali09  Esercizi Generali
09 Esercizi Generaliguestbe916c
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Datiguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
08 Introduzione All Architettura Di Un D B M S
08  Introduzione All Architettura Di Un  D B M S08  Introduzione All Architettura Di Un  D B M S
08 Introduzione All Architettura Di Un D B M Sguestbe916c
 
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
India Wins At Perth
India Wins At PerthIndia Wins At Perth
India Wins At Perthlugos
 
Dijimos que estaba bien
Dijimos que estaba bienDijimos que estaba bien
Dijimos que estaba bienluisguil
 

Andere mochten auch (20)

Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzione
 
Verduras
VerdurasVerduras
Verduras
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
04 B Progettazione Logica E S
04 B  Progettazione Logica  E S04 B  Progettazione Logica  E S
04 B Progettazione Logica E S
 
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comer
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para ComerF Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comer
F Rutas, Verificacion Y Limpieza Para Ser Aptas Como Casher Para Comer
 
S Q L
S Q LS Q L
S Q L
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
PEREK SHIRA
PEREK SHIRAPEREK SHIRA
PEREK SHIRA
 
09 Esercizi Generali
09  Esercizi Generali09  Esercizi Generali
09 Esercizi Generali
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Dati
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
08 Introduzione All Architettura Di Un D B M S
08  Introduzione All Architettura Di Un  D B M S08  Introduzione All Architettura Di Un  D B M S
08 Introduzione All Architettura Di Un D B M S
 
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
India Wins At Perth
India Wins At PerthIndia Wins At Perth
India Wins At Perth
 
Dijimos que estaba bien
Dijimos que estaba bienDijimos que estaba bien
Dijimos que estaba bien
 
Wrapup
WrapupWrapup
Wrapup
 
Gudda
GuddaGudda
Gudda
 

Ähnlich wie Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client

Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apacheguestbe916c
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Giuseppe Vizzari
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiMajong DevJfu
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
Laboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q LLaboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q L
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q Lguestbe916c
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftFrancesco Fullone
 
Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Massimo Bonanni
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint Slide
Sviluppo Di Portali Tramite La Tecnologia Sharepoint   SlideSviluppo Di Portali Tramite La Tecnologia Sharepoint   Slide
Sviluppo Di Portali Tramite La Tecnologia Sharepoint SlideDenis Tomada
 

Ähnlich wie Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client (20)

Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Presentazione Tesi
Presentazione TesiPresentazione Tesi
Presentazione Tesi
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)
 
Esempi pratici
Esempi praticiEsempi pratici
Esempi pratici
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
Laboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q LLaboratorio Di  Basi Di  Dati 02  Il  D B M S  My S Q L
Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma Microsoft
 
Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
Web dynpro for abap 02
Web dynpro for abap 02Web dynpro for abap 02
Web dynpro for abap 02
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint Slide
Sviluppo Di Portali Tramite La Tecnologia Sharepoint   SlideSviluppo Di Portali Tramite La Tecnologia Sharepoint   Slide
Sviluppo Di Portali Tramite La Tecnologia Sharepoint Slide
 

Mehr von guestbe916c

Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioniguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logicaguestbe916c
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logicaguestbe916c
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazioneguestbe916c
 

Mehr von guestbe916c (14)

Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Algebra
AlgebraAlgebra
Algebra
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logica
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logica
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazione
 

Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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