Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di...

27
Protocolli e architetture Protocolli e architetture per WIS per WIS

Transcript of Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di...

Page 1: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Protocolli e architetture Protocolli e architetture per WISper WIS

Page 2: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Cronologia di Internet

• 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock)

• 1967 Nasce il progetto Arpanet• 1969 Primo login di Arpanet• 1972 Prima demo pubblica• 1972-74 Lavori di Cerf e Kahn su TCP• 1979 Nasce CSNET• 1983 TCP/IP protocollo ufficiale Arpanet• 1986 Entra in funzione la rete ad uso civile

NSFNET

• ... Il Web non esiste ancora..

Page 3: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Cronologia del WEB

• 1989 Tim Berners Lee pubblica “Hypertexts at Cern”

• 1990-91 Il primo browser WWW in uso al Cern

• 1994 Marc Andressen fonda Netscape• 1995 versione 1.0 di MS Internet Explorer

(progetto O’Hare, distribuito con il nome di Internet Jumpstart Kit in Microsoft Plus! per Windows 95)

Page 4: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

ARCHITETTURA BASE CLIENT SERVER

Web server

FILE SYSTEM - pagine statiche

A.html

B.html

C.html

D.html

HTTPWeb client

(browser)

Page 5: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Il protocollo HTTP

• HyperText Transfer Protocol• Protocollo a livello di applicazione per lo scambio di

ipertesti multimediali• Prescrive il formato di– nomi delle risorse (URL)– domande– risposte

• Versioni: HTTP/0.9, 1.0,

Page 6: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web browser (client)

• Applicazione in grado di:– accedere alla rete secondo il protocollo HTTP– richiedere risorse (pagine Web) identificate da un URL

a un server– interpretare comandi di formattazione (pagine Web

HTML) e rendere a video la risposta del server

Page 7: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web browser dinamico

– capacita’ di eseguire script• Client-side scripting (ad es. JavaScript, VisualBasic scripting)• Javascript permette di scrivere script in pagine web, eseguiti

dal browser, che accedono a oggetti del browser modificandoli dinamicamente

– capacita’ di eseguire programmi (es. Java applets)• Programmi java inseriti in pagine web ed eseguiti all’interno di

pagine web, mediante Java virtual machine

Page 8: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Client-side scripting• Obiettivo: rendere le pagine più interattive• Soluzione: inserire nella pagina HTML piccoli programmi detti

script • Uno script reagisce a un evento prodotto dall’utente e modifica il

documento• Il codice script è interpretato dal browser

+ marcatura &+ marcatura &scripting scripting

<HTML> <HTML> ……..</HTML> </HTML> <script> <script> ……......</script></script>

contenutocontenuto

testotesto

Ciao!Ciao!Ciao!Ciao!

TextboxTextbox

pagina interattivapagina interattiva

Page 9: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web server

• Funzioni base:– accesso alla rete secondo il protocollo HTTP– invio di risorse identificate da un URL a un client

(pagine memorizzate sulla macchina server)– lancio di programmi in risposta a richieste– controllo e registrazione degli accessi =====

• Per produrre pagine “al volo” in base alle esigenze dell’utente e prelevando da contenuti strutturati (p.e. database)– Scripting client-side non basta

– Soluzioni:

Architetture per produrre contenuti dinamici a lato-server

Page 10: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web server dinamico

• Funzioni avanzate:– monitoraggio e amministrazione

– connessione a basi di dati

– esecuzione efficiente di applicazioni esterne

• Web server dinamico– non solo recupera pagine HTML dal file system ma può

eseguire applicazioni

TECNOLOGIE :

CGI; API, Java Servlet; Java Server Pages JSP (..ASP, PHP)

Page 11: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web server + Common Gateway Interface

Interfaccia che consente al Web Server di Interfaccia che consente al Web Server di eseguire applicazioni esterne in grado di creare eseguire applicazioni esterne in grado di creare pagine pagine dinamicamentedinamicamente

CGI

Page 12: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web server + CGI

Web server

FILE SYSTEM - pagine statiche

A.html

B.html

C.html

D.html

Cgi-bin

Xyz.exe abc.exe

Pagine eseguibili

CGIHTTP

Web client (browser)

Page 13: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Intercetta le richieste, verifica se sono ammesse, Intercetta le richieste, verifica se sono ammesse, decodifica i parametri e lancia le applicazioni decodifica i parametri e lancia le applicazioni esterneesterne

Scopi:Scopi:Consente al web server di eseguire applicazioni Consente al web server di eseguire applicazioni richieste dal clientrichieste dal client

CGI

Page 14: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Caratteristiche di CGI

• CGI script, programma eseguibileCGI script, programma eseguibile• Definisce un insieme di Definisce un insieme di variabili di ambientevariabili di ambiente utili alla applicazione (ad es. parametri inviati utili alla applicazione (ad es. parametri inviati dal client)dal client)

%&£$$pp*&£$

Page 15: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Invio di parametri a un programma CGIInvio di parametri a un programma CGI• Il client puo’ usare due metodi:•GET•POST

•GET: i parametri sono codificati nell’URLhttp://www.mioserver.it/cgi-bin/xyz?par=val•POST : i parametri sono spediti al server separatamente, usando il body del messaggio di richiesta HTTP•NB: il metodo POST richiede l’uso di un costrutto HTML chiamato FORM (modulo da compilare)

Page 16: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Programma CGI- accesso BDProgramma CGI- accesso BD

Web serverWeb server

CGICGI

DBMSDBMS

Page 17: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Accesso a BD - CGI

1. l’utente richiede il servizio selezionando il bottone submit, dopo aver completato i campi della form

2. il server richiama il gateway

3. il gateway esegue il proprio codice con i parametri ricevuti; in questa fase può interagire con altre risorse, quindi anche con una BD.

4. il gateway restituisce i risultati al server Web

5. il server Web restituisce i risultati al client

Page 18: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Revisione critica di CGIRevisione critica di CGI

• Il web server genera un nuovo processo cgi ad ogni richiesta

• Il processo viene terminato alla fine del computo della risposta

• Altissimo sovraccarico di esecuzione per la creazione e distruzione di processi

• Impossibile:– Tenere informazioni sulla sessione dell’utente in memoria

centrale (serve un database)– Tenere allocate risorse condivise tra più richieste o più utenti

(es. pool di connessioni a database)

Page 19: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web Server Dinamico - Application server

BROWSER

WEB SERVER

DATABASE1

API,

JAVA

SERVLET

2

JSP…

Scripted page

HTML page

Scripting lato server

Estensione con API, Servlets

Page 20: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web Server - APIWeb Server - API

Web Web serverserver

DBMSDBMS

GatewayGateway

APIAPI API = interfaccia per estendere il servercon servizi non standard

Page 21: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Accesso a BD - JDBC

• JDBC (Java Database Connectivity): insieme di interfacce (API) che realizzano la connettività ai DBMS commerciali più diffusi

– Basato sul linguaggio Java – Offre supporto per le operazioni normalmente eseguite

su una BD attraverso SQL: • Uso di applet Java: applicazione che risiede sul server

Web e che viene scaricata e visualizzata attraverso un browser, ogni volta che la pagina HTML che la ospita viene richiesta.

• Sviluppo di vere e proprie applicazioni Java che accedono a database diversi.

Page 22: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web Server - APIWeb Server - API

• PRO– efficienza: l’interfaccia e’ nello stesso processo

del Web server (es. e’ una libreria collegata dinamicamente)

• CONTRO– dipendenza da API proprietarie (NSAPI, ISAPI )

non standardizzate

Page 23: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Web Server - Java ServletWeb Server - Java Servlethttp://java.sun.com/products/servlet/index.html

• Applicazioni (servlet) scritte in Java • Servlet eseguite nello stesso processo del web server, per minor

carico di comunicazione interprocesso• Indipendenza dalla piattaforma grazie a Java• Sicurezza gestita mediante Security Manager della JVM• Gestione degli errori con il meccanismo delle eccezioni Java• Disponibilita’: distribuzione gratuita di Java Servlet Development

Kit contenente la libreria Java servlet

Page 24: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Valutazione• La presentazione HTML è mescolata al

codice applicativo• Esigenza: serve una soluzione più

semplice per produrre pagine in modo dinamico a lato server

Page 25: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

Server-side scripting

• Idea: inserire istruzioni per il calcolo dei contenuti dinamici all’interno della pagina HTML

• Il codice è interpretato dal server

<HTML> <HTML> <BODY><BODY> … …..</BODY></BODY></HTML> </HTML>

<HTML> <HTML> ……..</HTML> </HTML> <%> <%> ……......</%></%>

Template: testo+script da interpretare sul server

Web server +Web server +Esecutore scriptEsecutore script

Page 26: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

• JSP è una architettura per server-side scripting proposta da Sun (come alternativa a ASP di Microsoft)

• Si fonda su tecnologia Java: linguaggio Java, Java Servlet, Java Beans

• E’ necessario disporre di un ambiente di compilazione apposito (ad es. Tomcat di Apache Jakarta)

Java Server Pages (JSP)

Page 27: Protocolli e architetture per WIS. Cronologia di Internet 1961-1964 ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.

1

Esempio Flusso dei messaggiEsempio Flusso dei messaggi

BROWSER

SERVER

DATABASE

3

5

24

6

7

8

1. L’utente richiede una pagina

2. Il server preleva la pagina

3. Il server passa il file al browser

4. L’utente compila la form e la passa al server

5. Il server esegue il codice JSP

6. Il file JSP comporta l’accesso ad un database

7. L’esecuzione JSP genera una pagina HTML

8. Il server invia la pagina HTML al browser