Anteprima
Vedrai una selezione di 9 pagine su 37
Sistemi Distribuiti - Riassunto del corso Pag. 1 Sistemi Distribuiti - Riassunto del corso Pag. 2
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 6
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 11
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 16
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 21
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 26
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 31
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Sistemi Distribuiti - Riassunto del corso Pag. 36
1 su 37
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

</STYLE>

</HEAD>

Classi: per specificare che lo stile deve applicarsi solo agli elementi H1 di una

- specifica classe:

<HEAD>

<STYLE type=”text/css”>

H1.miaclass{

border-width:1;

border:solid;

text-align:center;

}

</STYLE>

</HEAD>

<BODY>

<H1 class=”miaclass”>testo</H1>

</BODY>

ID: tramite id è possibile limitare l’applicazione dello stile ad una sola istanza:

- <HEAD>

<STYLE type=”text/css”>

#miaid{ border-width:1; border:solid; text-align:center;}

<H1 class=”miaclass”…</H1>

<H1 id=”miaid”>testo</H1>

</BODY>

CSS esterno: si può scrivere il CSS su un file esterno, in modo da condividerlo

- fra più pagine

Il collegamento ad un foglio (es. special.css) esterno si può fare così,

o nell’intestazione:

<HEAD>

<LINK href=”special.css” rel=”stylesheet” type=”text/css”>

</HEAD>

Layout senza tabelle: un layout table-less si realizza attraverso l’uso dei div

- Un div è un contenitore generico di blocchi (generic-block-level element)

o Può contenere qualsiasi tipo di elemento html

▪ La sua presentazione naturale (quindi senza fogli di stile) è

▪ totalmente neutra; infatti questo elemento si presenta di default

senza margini, bordi o padding

Un div è quindi il contenitore per eccellenza per realizzare layout senza

o l’uso di tabelle: ad ogni div portante verrà associata una sezione

della pagina

Cascading: il termine “cascata” indica una delle caratteristiche principali dei

- CSS, infatti questi possono essere inseriti più di uno nello stesso documento

seguendo regole gerarchiche (quindi ci sono CSS più importanti e altri meno)

Una cascata potrebbe includere fogli di stile applicabili a media differenti

o (schermo, stampa)

Sia LINK che STYLE possono essere usati con l’attributo media

▪ È compito dell’interprete filtrare quei fogli di stile che non si

▪ applicano al medium corrente

Ereditabilità: il meccanismo della cascata è usato quando un certo numero di

- regole di stile è applicato a un elemento. Il meccanismo permette agli interpreti

di ordinare le regole per specificità, di determinare quale regole

applicare. Se nessuna regola è disponibile, il passo successivo dipende dal

fatto che le proprietà di stile possano essere ereditate o meno. Non tutte

le proprietà. Per tali proprietà il linguaggio dei fogli di stile fornisce i valori

predefiniti da usare quando non ci sono specifiche regole per un particolare

elemento.

Se la proprietà può essere ereditata, l’interprete esamina l’elemento

o accluso per vedere se una regola si applica ad esso. Questo processo

continua fino al reperimento di una regola applicabile. Questo

meccanismo permette ai fogli di stile di essere specificati in modo

compatto. Per esempio, gli autori possono specificare la famiglia di

caratteri per tutti gli elementi all’interno del BODY (corpo) con una

singola regola che si applica all’elemento BODY

Lezione 3: Applicazioni Web – Servlet

Dal web alle applicazioni

Il Web supporta l’interazione tra client e server via http

- Per realizzare un’applicazione, il Web Server si fa aiutare da un Application

- Server

Un Application Server è caratterizzato dal protocollo di interazione con il Web

- Server

L’interazione con il client è sempre http

-

Tecnologia Server Side

La computazione avviene lato server e può avvenire tramite programmi

- compilati o script interpretati

Nel caso di programmi compilati il web Server si limita ad invocare, su

o richiesta del client, un eseguibile

L’eseguibile può essere scritto in un qualsiasi linguaggio che

▪ supporti l’interazione con il web server – tipicamente Java, C#, C+

+

Nel caso di esecuzione con script, il web server ha al suo interno un

o motore in grado di interpretare il linguaggio di scripting usato

Si perde in velocità di esecuzione ma si guadagna in facilità di

▪ scrittura dei programmi

I linguaggi più diffusi sono PHP, Phyton e Perl

http/CGI

URL definisce un naming globale

- http:

- fornisce un modello di tipo RPC basato su socket

o permette di invocare programmi sul server

o

CGI (Common gateway Interface):

- Permette al server di attivare un programma e di passargli le richieste e i

o parametri provenienti dal client

Utilizzo di linguaggi interpretati

Il processo CGI implementa un interprete per il linguaggio utilizzato

- Vantaggi:

- Portabilità

o Utilizzo di strutture ben definite

o Serve programmare solo le logiche delle applicazioni

o

Esempi:

- Phyton

o Java/Servlet

o PHP

o

Applicazioni Web lato Client

L’URL nella pagina Web deve riferirsi all’applicazione lato server come “risorsa”

- ….

<p><a href=http://149.132.196.196/Scripts/nome>

Click per eseguire

</p>

Il browser invia una richiesta tipo:

- GET /Scripts/nome http/1,1

o

Inviare dati alla Web App

Si possono usare le form per inviare dati

-

-

Caratteristiche:

Applicazione Web (http) a confronto con una applicazione distribuita nativa

- Limiti del protocollo http a caratteri:

o Lentezza: occorre tradurre e ritradurre i dati (es. da testo a

▪ numeri: da “256” a 256)

Utilizzo di HTML per input e output: uso di FORM per

▪ l’acquisizione e costruzione delle pagine in HTML in risposta

Consumazione senza stato (memoria)

o Ogni richiesta è un messaggio autonomo

▪ Per creare sessioni di lavoro (legare più richieste tra loro) occorre

▪ includere informazioni con mezzi espliciti

Cookie

● Campi nascosti

Java Servlet

Sono piccole applicazioni Java residenti sul server

- Esempio: Apache/Tomcat

o

Una servlet è un componente gestito in modo automatico da un container o

- engine

Ha un’interfaccia che definisce il set di metodi (ri)definibili

- Vantaggi: semplicità e standardizzazione

o Svantaggi: rigidità

o

Il container controlla le servlet (attiva/disattiva) in base alle richieste dei client

- Sono residenti in memoria

- Mantengono uno stato

o Consentono l’interazione con un’altra servlet

o

Stateless VS Stateful

http non prevede persistenza (stateless)

- Non si possono mantenere informazioni tra un messaggio e i successivi

o Non si possono identificare i client

o

Mantenere lo stato della conversazione con le servlet

- Cookies:

o Informazioni memorizzate sul client

▪ Permettono di gestire sessioni

Httpsession

o Gestito automaticamente dal container (con cookie o riscrittura

▪ delle URL)

Interfaccia Servlet

Ogni servlet implementa l’interfaccia javax.servlet.Servelet, con 5 metodi:

- void init (ServletConfig config)

o Inizializza la servlet

ServletConfig getServletConfig()

o Restituisce i parametri di inizializzazione e il ServletContext che dà

▪ accesso all’ambiente

void service (ServletRequest request, ServletResponse response)

o Invocato per gestire richieste del client

String getServletInfo()

o Restituisce informazioni tipo autore e versione

void destroy()

o chiamata quando la servlet termina (es. per chiudere un file o una

▪ connessione con un database)

Classi astratte

L’interfaccia è solo la dichiarazione dei metodi che, per essere utilizzabili,

- devono essere implementati in una classe

Sono presenti due classi astratte, cioè che implementano i metodi

- dell’interfaccia in modo che non facciano nulla

javax.servlet.GenericServlet

o javax.servlet.http.HTTPServlet

o Definisce metodi per l’uso in ambiente web

Questo semplifica la scrittura delle servlet vere e proprie in quanto basta

- implementare (ridefinendoli) solo i metodi che interessano

La classe HTTPServlet

Implementa service in modo da invocare i metodi per servire le richieste dal

- web doGet

o processa le richieste di tipo GET

doPost

o processa le richieste di tipo POST

Parametri:

o HTTPServletRequest

▪ HTTPServletResponse

Eccezioni

o ServletException

▪ IOException

Richieste e risposte

Anche i parametri sono stati adattati al protocollo http; cioè consentono di

- ricevere (inviare) messaggi http leggendo (scrivendo) i dati nell’head e nel body

di un messaggio

Interfaccia HTTPServletRequest

- Viene passato un oggetto da service

o Contiene la richiesta del client

o Estende ServletRequest

o

Interfaccia HTTPServletResponse

- Viene passato un oggetto da service

o Contiene la risposta per il client

o Estende ServletResponse

o

I metodi principali:

- String getParameter (String name)

o Restituisce il valore dell’argomento name

Enumeration getParameterNames()

o Restituisce l’elenco dei nomi degli argomenti

String[] getParameterValues (String name)

o Restituisce i valori dell’argomento name

Cookie[] getCookies()

o Restituisce i cookies del server sul client

void addCookie (Cookie cookie)

o Aggiunge un cookie nell’intestazione della risposta

HTTPSession getSession (boolean create)

o Una HTTPSession identifica il client

▪ Viene creata se create = true

void setContentType (String Type)

o Specifica il tipo MIME della risposta per dire al browser come

▪ visualizzare la risposta

Esempio: “text/html” dice che è HTML

ServletOutputStream getOutputStream()

o Restituisce stream di byte per scrivere la risposta

PrintWriter getWriter()

o Restituisce lo stream di caratteri per scrivere la risposta

Esecuzione di una servlet

Viene creata un’istanza della servlet

- Condivisa da tutti i client

o Ogni richiesta genera un thread che esegue la doXXX appropritata

o

o

Ciclo di vita

Una servlet viene creata dal container

- Quando viene effettuata la prima chiamata

o

Viene invocato il metodo init() per inizializzazioni specifiche

- Una servlet viene distrutta

- Quando non ci sono servizi in esecuzione

o Quando è scaduto un tiemout predefinito

o

All’occorrenza di uno dei due eventi viene invocato il metodo destroy() per

- terminare correttamente la servlet

Terminazione

Container e richieste dei c

Dettagli
Publisher
A.A. 2015-2016
37 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher RickyBolt di informazioni apprese con la frequenza delle lezioni di Sistemi distribuiti e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof De Paoli Flavio Maria.