g. mecca – [email protected] – università della basilicata tecnologie di sviluppo per il web...

28
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Upload: bertrando-bertoni

Post on 01-May-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

G. Mecca – [email protected] – Università della Basilicata G. Mecca – [email protected] – Università della Basilicata

Tecnologie di Sviluppo per il Web

Introduzione

Architettura di Riferimento

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Sommario

Introduzione Architettura Client-Server

Architettura a Due LivelliArchitettura a Tre Livelli

Server Web Browser Web

Architettura >> Sommario

Page 3: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

La storia di questo corso comincia nell’89Tim Berners-Lee al CERN, progetto WWWprimi prototipi nel 1991

Idea: “distributed hypermedia”un ipertesto multimediale distribuitoipertesto = testo a sviluppo non linearemultimediale = più di un “medium”distribuito = dislocato sui nodi di una rete

Architettura >> Introduzione

Page 4: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

Tre idee fondamentaliun protocollo client-server (HTTP)un sistema di indirizzamento (URL)un linguaggio per la compilazione (HTML)

Inizialmentepubblicazione di contenuti (documenti)

Oggi80% dei flussi Internet è basato su HTTPcontenuti e servizi (sistemi informativi)

Architettura >> Introduzione

Page 5: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architettura Client-Server

Architettura Client-Server

Architettura >> Architettura

Serverprotocollo

HTTP

risorse

richieste (URL)

risposte Rete

TCP/IPbrowser

HTTP

clientHTTP

Applicazione(es: Java)

Page 6: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Terminologia

“Web Characterization Terminology”, W3C Risorsa

qualsiasi cosa sia accessibile su un server Server

ruolo svolto da un’applicazione che fornisce risorse Client

ruolo svolto da un’applicazione che richiede risorse Messaggio

unità di comunicazione scambiata tra client e server

Architettura >> Architettura

Page 7: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Terminologia

Richiestamessaggio inviato dal client al server per richiedere

una operazione su una risorsa Risposta

messaggio contenente il risultato dell’esecuzione di una richiesta

Utentesoggetto che interagisce con il client per accedere

risorse Autore o Sviluppatore

chi pubblica risorse su un server

Architettura >> Architettura

Page 8: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architettura Client-Server

World Wide Webservizio applicativo di Internet basato su

un’architettura client/serverma non è l’unico

Nel caso del Webrisorse: documenti, immagini ed altri media,

servizi interattiviclient: tipicamente il browserserver: server per l’accesso a risorse Web

Architettura >> Architettura

Page 9: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architetture di Riferimento

Due livelli, pagine statiche

Architettura >> Architettura

pagine (file html)

ServerHTTP

Internetintranet

browser

browser

centrata sui contenutinessun servizio

Page 10: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architetture di Riferimento

Tre livelli con componenti

Architettura >> Architettura

HT

TP

Internetintranet

browser

browser

centrata sui servizi

architettura applicativacompleta

Pagine

ServerApplicativo

DB

DBMS

Page 11: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architettura

Compiti del browservisualizzare le risorse e gestire l’interazione

con l’utente Compiti del server

nel caso di documenti: inviare il contenuto di file contenuti sul disco locale

nel caso di servizi interattivi: eseguire un’applicazione e restituire i risultati dell’esecuzione

Architettura >> Architettura

Page 12: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Applicazione softwareche fornisce accesso ad un sito Web

Caratteristichefornisce servizi basati su HTTPconsente l’accesso a documenti staticiconsente l’accesso a servizi interattivi

(applicazioni) >> server applicativo

Architettura >> Server Web

Page 13: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Apache HTTP Server (httpd.apache.org)open source (deriva da NCSA)server HTTPvari protocolli di interfaccia con server

applicativi (es: CGI, PHP) Microsoft Internet Information Services

server HTTP integrato con il server applicativo .NET

Architettura >> Server Web

Page 14: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Apache Tomcat (jakarta.apache.org)server applicativo open source per Servlet e JSPinclude server HTTP

IBM WebSphere, Bea WebLogic ed altriserver applicativi commerciali per J2EEincludono server HTTP

JBoss (www.jboss.org)server applicativo open source per J2EEinclude server HTTP

Architettura >> Server Web

Page 15: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Apache è il server Web più diffuso

Architettura >> Server Web

Page 16: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Architettura di un Server Web

Contiene vari moduli Server HTTP

implementa il protocollo HTTPinclude vari altri servizi; es: caching, logging

Gestore del file systemcontenuti statici salvati come file

Server applicativogestore di applicazioni e componenti

Architettura >> Server Web

Page 17: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Architettura di un Server Web

Architettura a 3 livelli

Architettura >> Server Web

DB

DBMSH

TT

P

Rete

TCP/IP

file

systemGes

tore

dei

Fie

ServerApplicativo

componenti

browserHTTP

clientHTTP

Applicazione(es: Java)

Page 18: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Registrazioni (Logging)

Servizio di registrazionetutto quello che avviene sul server viene

registrato in opportuni file di registro (log) File principali

richieste: IP del richiedente, URI richiesto, data, esito

erroriprovenienza (referer)

Architettura >> Server Web

Page 19: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

Registrazioni (Logging)

Architettura a 3 livelli

Architettura >> Server Web

DB

DBMSH

TT

P

Rete

TCP/IP

file

systemGes

tore

dei

Fie

ServerApplicativo

componenti

browserHTTP

clientHTTP

Applicazione(es: Java)

Registrazionedegli accessi (log)

Page 20: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Caching

Cachingservizio fondamentale offerto dai server Weborientato a migliorare le prestazioni

Più in generaletecnica essenziale per l’accesso ai dati

distribuitinell’architettura di riferimento esistono

meccanismi di caching a più livelli

Architettura >> Architettura >> Caching

Page 21: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

DB

DBMSHT

TP

file

systemGes

tore

dei

Fie

ServerApplicativo

componenti

Registrazionedegli accessi (log)

Caching

Caching a vari livelli delle risposte

Architettura >> Architettura >> Caching

browser

Cac

he

del

ser

ver

Cachedel browser

Cachedel proxy

ServerProxy

Page 22: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Server Web

In sintesi: Principali servizi del serverservizio HTTP verso il client (include

autenticazione e autorizzazione)gestione delle risorse sul file systemgestione delle applicazioniregistrazione degli accessi (logging)gestione dei meccanismi di caching

Architettura >> Server Web

Page 23: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Browser Web

Principali serviziconsente di specificare le richieste (URL)implementa il protocollo HTTPvisualizza il contenuto delle risposte e

consente la navigazionecache localealtri servizi (preferiti, stampa, salva, ecc.)

Browser diversi, diverse compatibilità

Architettura >> Browser Web

Page 24: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Browser Web

Microsoft Internet Explorerleader di mercato

Netscape e Mozilla (Gecko)prima: Netscape Navigator (2, 3, 4 fino a 4.78)

Opera“adware”

Lynxbrowser esclusivamente testuale

Architettura >> Browser Web

Page 25: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Browser Web

Browser per disabilies: IBM Home Page Reader

Browser per dispositivi mobilies: Eudora Web per Palmes: Pocket Internet Explorer per Pocket PC

Altri browserAmaya, browser di del consorzio W3CKonqueror, browser di KDEGaleon, browser di Gnome

Architettura >> Browser Web

Page 26: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

26G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Browser Web: Statistiche

Architettura >> Browser Web

Browser Fonte 3Fonte 2Fonte 1

IE6 (>) 48%60%56%

IE5 (<) 25%25%37%

0.15%0.05%0%NN3

0.3%1.5%0%Altri

0.95%1.7%0.5%Opera (>)

Gecko (>) 14%6.6%2.2%

Fonte: http://www.upsdell.com/BrowserNews/, marzo 2003

1.9%2.7%1.5%NN4 (<)

1.1%0.55%1.4%IE4 (<)

Page 27: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

27G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo

Introduzione Architettura Client-Server

Architettura a Due LivelliArchitettura a Tre Livelli

Server Web Browser Web

Architettura >> Sommario

Page 28: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.0 Questo

28G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Termini della Licenza

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.