Cenni alle applicazioni distribuite e alle tecnologie per il web - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Cenni alle applicazioni distribuite e alle tecnologie per il web

Description:

Cenni alle applicazioni distribuite e alle tecnologie per il web Politecnico di Milano Facolt di Disegno Industriale Gianpaolo Cugola Dipartimento di Elettronica e ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 32
Provided by: hocEletPo
Category:

less

Transcript and Presenter's Notes

Title: Cenni alle applicazioni distribuite e alle tecnologie per il web


1
Cenni alle applicazioni distribuite e alle
tecnologie per il web
  • Politecnico di Milano
  • Facoltà di Disegno Industriale
  • Gianpaolo CugolaDipartimento di Elettronica e
    Informazionecugola_at_elet.polimi.ithttp//www.elet
    .polimi.it/cugola

2
Applicazione distribuita
  • Una applicazione è distribuita se
  • E costituita da più moduli (processi)
  • Che eseguono in parallelo su un insieme di unità
    di elaborazione autonome connesse da una rete di
    elaborazione
  • Senza condividere memoria
  • Comunicando tramite messaggi aventi un ritardo di
    trasmissione non trascurabile
  • In presenza di una forte cooperazione tra i
    diversi moduli nellesecuzione dellapplicazione

3
Caratteristiche di una applicazione distribuita
  • Caratteristiche
  • Numero arbitrario di processi
  • Numero arbitrario di unità di elaborazione
  • Comunicazione attraverso scambio di messaggi su
    una rete di calcolatori
  • Cooperazione tra i processi

4
Le applicazioni client/server
  • Con il termine applicazione client/server ci
    riferiamo ad una applicazione distribuita in cui
    è possibile distinguere due tipologie di
    componenti Client e Server
  • Client e server giocano ruoli diversi
  • Il server ha un ruolo passivo ed esporta un ben
    preciso insieme di servizi
  • Il client usa tali servizi agendo da componente
    attivo che da inizio alla comunicazione
  • In generale client e server risiedono su unità di
    elaborazione distinte connesse da una rete di
    comunicazione

5
Il www come esempio di applicazione C/S
6
Scomposizione logica di una applicazione
  • Le funzionalità offerte da una applicazione
    possono essere genericamente scomposte in tre
    insiemi
  • Funzionalità di interfaccia utente
  • Funzionalità di elaborazione
  • Funzionalità di gestione persistente dei dati
  • In applicazioni C/S, a seconda di come queste
    funzionalità siano allocate a processi distinti,
    distinguiamo tra
  • Architetture a due livelli (two-tiered
    architectures)
  • Architetture a tre livelli (three-tiered
    architectures)

7
Architetture a due livelli
Accessoremotoai dati
Presentazionedistribuita
Presentazioneremota
Logica distribuita
Base Datidistribuita
GUI
GUI
GUI
GUI
GUI
Client
Programmiapplicativi
Programmiapplicativi
Programmiapplicativi
Dati
GUI
Server
Programmiapplicativi
Programmiapplicativi
Programmiapplicativi
Dati
Dati
Dati
Dati
Dati
8
Architetture a due livelli
  • Presentazione distribuita tutta lintelligenza
    e nel server, il client si occupa solo di
    interagire con il server che gli affida compiti
    specifici di presentazione
  • es una form HTML pura presenta allutente una
    maschera di inserimento dati, ma non e in grado
    di effettuare nessun controllo sulla validita
    dei dati inseriti
  • Presentazione remota tutta la parte di
    presentazione e a carico del client.
  • Logica distribuita la logica dellapplicazione
    e suddivisa tra client e server

9
Architetture a due livelli
  • Accesso remoto ai dati la presentazione e la
    logica sono nel client che si rivolge al server
    per accedere ai dati, tipicamente attraverso una
    interfaccia SQL
  • Database distribuito le funzioni di gestione dei
    dati sono parte nel client e parte nel server
    (es. Distributed Relational Database Architecture
    di IBM)

10
Architetture a tre livelli
Schema tipico
Schemi alternativi
GUI
GUI
GUI
GUI
Programmiapplicativi
Programmiapplicativi
Programmiapplicativi
Programmiapplicativi
Programmiapplicativi

Programmiapplicativi
Programmiapplicativi
Programmiapplicativi
Dati
Dati
Dati
Dati
11
Architetture a tre livelli Caratteristiche
  • Nello schema tipico il componente intermedio
    contiene tutta la logica dellapplicazione.
  • Nei casi reali parti della logica sono gestite
    dal client e dal server
  • Vantaggio disaccoppiamento tra logica e dati e
    tra logica e presentazione
  • ci possono essere diverse sorgenti di dati
    distribuite
  • ci possono essere diverse tipologie di client

12
Architetture a tre livelli, un esempioil Web
  • DBMS
  • TP Monitor
  • Ecc.
  • HTML
  • Forms

DBMSServer
  • Moduli CGI
  • Servlet
  • Script ASP
  • Base Dati

Web Server
  • Applet
  • Documenti HTML
  • Codice Servlet

13
Architetture a due e n livelli
2 livelli
Server
Client
Logicadellapplicazione
Gestione dei dati
Presentazione
Server
Componenteintermedio
Client
Componenteintermedio
Componenteintermedio
N livelli
14
Tecnologie per il Web
  • Il web architettura e tecnologie principali
  • Una analisi delle principali tecnologie per il
    web
  • Tecnologie di base
  • http, ssl, browser, server, firewall e proxy
  • Tecnologie lato client
  • html, linguaggi di scripting (javascript,
    vbscript), applet, tecnologie basate su plugin
    (flash, vrml, ...)
  • Tecnologie lato server
  • cgi-bin, linguaggi di scripting (asp, jsp, php),
    servlet

15
Il web Architettura di dettaglio
HTML javascript vbscript applet flash vrml ....
ApplicationServer
HTTP
16
HTTP
  • Il protocollo per la comunicazione tra browser e
    server
  • Sfrutta una connessione TCP
  • Usa gli URL come meccanismo di indirizzamento
  • Usa il protocollo MIME per definire il tipo dei
    dati trasportat

17
SSL Secure Socket Layer
  • Protocollo per la comunicazione sicura tra due
    partner
  • Originariamente sviluppato dalla Netscape è oggi
    uno standard accettato dalla IETF
  • Nasce per risolvere i problemi di sicurezza nella
    comunicazione tra client e server web ma
    definisce un protocollo generale indipendente
    dallapplicazione
  • Si utilizzano url del tipo https//... per
    indicare comunicazione basata su SSL
  • È stato pensato per essere facilmente estensibile
    e configurabile
  • Caratteristiche
  • Protocollo con connessione (client e server
    mantengono diverse informazioni relativi alla
    sessione a partire dalla chiave crittografica)
  • Basato su TCP/IP
  • Comunicazione crittografata
  • Possibilità di mutua autenticazione tra client e
    server basata su certificati
  • Caching dei parametri della comunicazione per un
    efficiente ripristino di comunicazioni interrotte

18
Il browser
  • Gioca il ruolo del client
  • Gestisce linterazione con lutente
  • Interpreta il linguaggio html e presenta i dati a
    video
  • Generalmente include
  • un interprete per i principali linguaggi di
    scripting lato client...
  • ... una JVM per lesecuzione degli applet ...
  • ... e la possibilità di invocare plug-in per
    visualizzare i formati non direttamente
    supportati
  • Esempi MS Internet Explorer, NS Mozilla, ...

19
Il server web
  • Risponde alle richieste del browser
  • Trasmettendo i dati richiesti (file html,
    immagini, applet, script flash, ...)
  • Invocando i programmi cgi
  • Spesso include
  • un interprete per i principali linguaggi di
    scripting lato server ...
  • ... una JVM per lesecuzione delle servlet ...
  • Esempi MS Internet Information Server, Netscape
    Server, Apache

20
Proxy e Firewall
  • Proxy
  • Si pone come intermediario tra client e server
  • Effettua il caching delle pagine web in maniera
    da migliorare le prestazioni percepite
    dallutente...
  • Riducendo il traffico di rete
  • Firewall
  • Filtra le comunicazioni per aumentare la
    sicurezza
  • In base al protocollo e/o agli indirizzi sorgente
    e destinazione
  • Generalmente
  • blocca tutte le comunicazioni provenienti
    dallesterno...
  • ... lascia passare le comunicazioni provenienti
    dallinterno

21
Linguaggi di scripting lato client
  • E possibile inserire piccoli programmi
    allinterno del codice html (tag ltscriptgt)
  • Tali programmi vengono interpretati dal browser
  • Attraverso tali linguaggi è possibile definire
    pagine web dinamiche
  • Il cui aspetto e contenuto cambia in risposta a
    eventi compiuti dallutente (es. click del mouse,
    ...)
  • Principali linguaggi
  • Javascript simile a Java, standard (ECMA
    script), utilizzabile con tutti i principali
    browser
  • VBscript derivato dal Visual Basic, proprietario
    (MS), direttamente utilizzabile con il solo
    Internet Explorer

22
Javascript Esempio
  • lthtmlgt
  • ltheadgt
  • ltscript language"Javascript"gt
  • function red_blue(data)
  • if(data.style.color"red") data.style.color"bl
    ue"
  • else data.style.color"red"
  • lt/scriptgt
  • lt/headgt
  • ltbody bgcolor"FFFFFF"gt
  • lth1 onclick"red_blue(this)"gtProva di
    javascriptlt/h1gt
  • Cliccare sul titolo per cambiare colore.
  • lt/bodygt
  • lt/htmlgt

23
Applet
  • E possibile specificare (tag ltappletgt) che in un
    certo punto di una pagina web deve essere
    inserita una applicazione Java
  • Il file .class dellapplicazione viene
    scaricato dal server ed eseguito dal browser (che
    integra una JVM)
  • Attraverso gli applet è possibile eseguire
    applicazioni di ogni tipo sul client scaricandole
    dinamicamente dal server
  • Si tratta d un esempio di mobilità di codice
  • Esempi di applet
  • Bottoni animati, banner pubblicitari, giochi,
    client per chat e altre applicazioni distribuite,
    ...

24
Plugin
  • Plugin Programmi esterni che si integrano con
    linterfaccia del browser per gestire formati
    proprietari
  • I browser più avanzati sono capaci di invocare
    plugin per gestire i formati che non vengono
    supportati direttamente
  • Esempio Macromedia flash player, plugin vrml, ...

25
Flash
  • Linguaggio definito da Macromedia per descrivere
    pagine multimediali animate
  • Integra funzionalità di descrizione di pagina
    (orientate a pagine grafiche) con un linguaggio
    di scripting per la gestione delle animazioni e
    degli eventi utente
  • Particolarmente indicato per pagine con grafica
    animata

26
VRML Virtual Reality Modeling Language
  • Si tratta di un linguaggio per la descrizione di
    ambienti (mondi) 3D...
  • ... contenenti hyperlink ad altri mondi o a
    pagine 2D in HTML
  • Nellultima versione supporta effetti complessi
    come luci di vario tipo, texture, effetto nebbia,
    meccanismi di collision detection, suoni...
  • ... e si integra con Java e Javascript per la
    gestione dinamica dei mondi
  • Non è unestensione di HTML, bensì ne è un
    complemento, pertanto richiede browser o plug-in
    dedicati
  • I mondi VRML possono essere creati a mano, ma
    solitamente vengono costruiti attraverso appositi
    editor grafici

27
CGI Common Gateway Interface
  • Si tratta di uno standard per interfacciare
    applicazioni esterne con server HTTP
  • Esempi di utilizzo generazione automatica di
    documenti prelevando dati da DB, interpretazione
    di dati provenienti da form, comunicazione con
    server applicativi di tipo diverso, ...
  • A fronte di una richiesta da parte del client
    viene eseguito sul server un programma che riceve
    come parametri i valori specificati nella
    richiesta
  • Il programma produce una risposta che viene
    impacchettata dal server e instradata al client

28
CGI Funzionamento
  • Un URL può referenziare un programma
  • Il server viene configurato in modo da tradurre
    particolari path (solitamente .../cgi-bin) in
    invocazioni di programmi in particolari directory
    (ad es. /www/scripts)

http//www.ms.com/cgi-bin/prg.tcl/usr/info?choice
yesqhigh
Directory CGI
Programma
Informazioni Extra
Query data
29
Programmi CGI e comunicazione server-gateway
  • I programmi CGI possono essere scritti in
    qualunque linguaggio di programmazione
  • C, C, Tcl, Perl, Bourne shell, ...
  • Esistono diverse librerie per limplementazione
    di programmi CGI
  • Per estrarre i dati provenienti dal client...
  • ... e per generare la risposta
  • La comunicazione tra server e gateway sfrutta
    speciali variabili dambiente e/o lo standard
    input per i dati in ingresso...
  • ... mentre i risultati sono prodotti dal gateway
    sullo standard output
  • Una volta che il programma CGI ha generato una
    risposta, il server vi aggiunge tutti i campi
    necessari alla gestione del protocollo HTTP
    (codice di stato, autenticazione etc.) e la
    spedisce al client

30
Linguaggi di scripting lato server
  • Invocare programmi esterni per generare pagine
    web al volo è molto costoso in termini
    prestazionali
  • Per ottenere lo stesso risultato si possono usare
    script inseriti allinterno della pagina html...
  • ... interpretati dal server per generare la
    pagina finale vera e propria
  • Principali linguaggi oggi in uso
  • VBscript o Javascript (ASP - Active Server
    Pages), Java (JSP - Java Server Pages), PHP
    (opensource)

31
Servlet
  • Programmi del tutto equivalenti ai programmi CGI
    ma scritti in Java, compilati, ed eseguiti in una
    JVM integrata nel server
  • Usate per generare pagine al volo...
  • ... accedendo a DBMS esterni...
  • ... o comunicando con server applicativi di tipo
    diverso
  • Più efficente rispetto alle tecnologie
    interpretate (si esegue codice Java compilato)
    e anche rispetto al protocollo CGI (la JVM nella
    quale le servlet eseguono è integrata nel server
    web)
Write a Comment
User Comments (0)
About PowerShow.com