slide fornite dal docente

Transcript

slide fornite dal docente
Impianti di Elaborazione
Applicazioni e Servizi
M.G. Fugini COMO IMPIANTI 08-09
Indice dei contenuti

Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News,
Chat, Videoconferenza,…)

World Wide Web

Tecnologie per lo sviluppo di applicazioni sul WWW

Web Service
Fugini Impianti Como 08-09
2
1
Alcune fra le applicazioni più diffuse
WWW
- Browser (MS Internet Explorer, Netscape Navigator,
Mozilla,..)
- Web Server (MS IIS Server, Apache)
Email
- Mail Client (MS Outlook, Eudora)
- Mail Server (MS Exchange Server)
File transfer
- FTP Server
- FTP Client
Peer to Peer
- Server (Napster, Gnutella)
- Client (Napster, Gnutella)
Multimedia applications
- Streaming video server
- Multimedia Client (Real Player, Real One, MS
Windows Media Player)
Fugini Impianti Como 08-09
3
Posta elettronica (E-Mail)





E-mail: scambio di messaggi tra computer
I messaggi E-mail sono solitamente codificati come testo ASCII, ma possono
essere inviati anche file non di testo, ad esempio immagini grafiche e suoni, come
allegati inviati in flussi binari
La posta elettronica è stata una delle prime applicazioni su Internet ed è ancora
quella più popolare tra gli utenti. Una larga percentuale del traffico totale
circolante su Internet è costituita da e-mail. E-mail possono anche essere
scambiate tra utenti di servizi on line e in reti diverse da Internet, sia pubbliche sia
private
Le e-mail possono essere inviate a liste di persone o a singoli individui. Una lista di
distribuzione può essere gestita utilizzando un e-mail reflector. Alcune mailing list
permettono la sottoscrizione della lista mediante l’invio di una richiesta
all’amministratore
Indirizzo di posta elettronica: Struttura
Casellapostale@calcolatore
Fugini Impianti Como 08-09
4
2
Formato dei messaggi E-Mail
 Il formato dei messaggi di posta elettronica consiste in un file ASCII diviso
in due parti:
 Intestazione (header) che riporta mittente, destinatari, data, formato
del contenuto
 Corpo (body) che riporta il testo del messaggio
 Il corpo di un messaggio non deve sottostare ad alcuna regola di
strutturazione
 L’intestazione è strutturata rigidamente: è costituita da una sequenza di
parole chiave seguite da due punti e dai valori corrispondenti
 Alcune parole chiave sono obbligatorie, altre sono facoltative
 Esempi di parole chiave sono: From:, To: Cc:, Date:, Subject:, Replay-to:,
X-Charset: (codifica dei caratteri adottata, solitamente ASCII), X-Mailer:
(programma di posta usato per trasmettere il messaggio), X-Sender:
(copia dell’indirizzo del mittente)
Fugini Impianti Como 08-09
5
Estensioni Polifunzionali (MIME,
Multipurpose Internet Mail Extension)






Con la diffusione della posta elettronica, è stata introdotta la possibilità di spedire
in insieme di informazioni arbitrarie: testo, immagini, programmi, ecc.
Queste informazioni, codificate in codice binario, vengono tradotte in formato testo
e spedite mediante posta elettronica
Dato che esistono molti standard di codifica, IETF ha proposto lo standard MIME al
fine di coordinare e unificare gli standard di conversione
Con MIME il mittente e il destinatario scelgono lo schema di codifica ritenuto più
conveniente
Il mittente include nell’intestazione una riga che indica l’uso di MIME (MIMEVersion:) e nel corpo alcune informazioni che specificano il tipo di dati inviati e lo
schema di codifica adottato (MIME ammette anche che le parti di uno stesso
messaggio siano codificate in modo diverso: viene usato per codificare file binari
associati a mail di testo)
Il vantaggio principale introdotto dall’utilizzo di MIME è la flessibilità concessa ai
Client di posta elettronica
Fugini Impianti Como 08-09
6
3
Trasferimento della posta


I messaggi di posta elettronica vengono scritti mediante un’interfaccia e-mail (email interface) e poi spediti mediante un programma di trasferimento della posta
(e-mail transfer program)
Il programma di trasferimento opera ciclicamente, attendendo di avere un
messaggio di posta nella coda dei messaggi in uscita e verificando la presenza di
messaggi nella coda di posta in arrivo
Fugini Impianti Como 08-09
7
Protocollo SMTP (Simple Mail Transfer
Protocol)
Il programma di trasferimento, per contattare un Server che risiede su di
un’altra macchina, richiede una connessione TCP
 Stabilita la connessione, i due programmi utilizzano il protocollo SMTP che
permette al mittente di
 qualificarsi
 specificare il destinatario
 trasferire il messaggio
 SMTP deve garantire una consegna affidabile:
 Il mittente deve trattenere copia del messaggio fino a che il
destinatario non abbia memorizzato su disco il messaggio ricevuto
 Deve garantire la verifica preventiva dell’esistenza di una data casella
postale
 …

Fugini Impianti Como 08-09
8
4
Protocollo SMTP (Simple Mail Transfer
Protocol)


Il programma di trasferimento, per contattare un Server che risiede su di un’altra
macchina, richiede una connessione TCP
Stabilita la connessione, i due programmi utilizzano il protocollo SMTP che
permette al mittente di
 Qualificarsi
 Specificare il destinatario
 Trasferire il messaggio
Fugini Impianti Como 08-09
9
Protocollo POP (Post Office Protocol)





La casella postale è un “deposito” presso il quale il programma di
trasferimento della posta accede per consegnare un dato messaggio email
La casella postale deve quindi essere sempre reperibile sulla rete e deve
poter essere contattata da più Client in modo concorrente
Per questo motivo, si è scelto di installare su delle macchine specifiche: i
Server postali ()
Mail Server: devono essere macchine con sistema operativo concorrente
ed essere in esercizio sempre
La famiglia dei protocolli TCP/IP mette a disposizione il protocollo POP
(Post Office Protocol) per permettere l’accesso a distanza alle caselle
postali (e richiede l’esecuzione di un Mail Server sul calcolatore che le
ospita)
Fugini Impianti Como 08-09
10
5
Indice dei contenuti

Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News,
Chat, Videoconferenza

World Wide Web

Web Service
Fugini Impianti Como 08-09
11
La rappresentazione dei documenti







I documenti che compongono l’archivio WWW sono detti pagine
La pagina principale dell’archivio di un ente (Sito Web) è detta homepage e
l’archivio è organizzato in modo reticolare (ipertesto)
In genere l’esplorazione dei documenti di un Sito Web parte dalla sua homepage
I documenti web sono scritti nel linguaggio HTML (HyperText Markup Language)
HTML fornisce indicazioni generali per la visualizzazione dei documenti, anche se la
scelta dei dettagli dell’impaginazione è lasciata ai browser
Quindi browser diversi possono mostrare lo stesso documento HTML in modi
differenti
I browser più diffusi sono stati negli anni (a partire dal 1992) Gopher, Mosaic,
Netscape Navigator e Internet Explorer
Fugini Impianti Como 08-09
12
6
HTML:
modello di funzionamento
client
Web browser
Documento
HTML
<HTML>
<HEAD>
<TITLE> Esempio
</TITLE>
</HEAD>
<BODY>
Testo del documento
<BR>
<A
HREF="http://www.cp
i.polimi.it/it/EBLa
b/"> Visita il
Centro EBLab</A>
</BODY>
</HTML>
server
Connessione HTTP
Web server
Richiesta doc. HTML
Risposta doc. HTML
HTML
Chiusura HTTP
Fugini Impianti Como 08-09
13
Hypertext Markup Language
 Un file HTML è composto da un insieme di informazioni e di simboli di "markup“ (o
marcatori) che specificano al Browser come visualizzare le informazioni
 I marcatori indicano al Browser come visualizzare il testo e le immagini di una
pagina Web
 I singoli marcatori sono chiamati più comunemente tag
 HTML è uno standard raccomandato dal World Wide Web Consortium (W3C) e a cui
aderiscono i principali produttori di Browser
 La versione corrente dell’HTML è l’ HTML 4. Sia Internet Explorer che Netscape
Navigator implementano alcune caratteristiche in modo differente e forniscono delle
estensioni non standard
 Gli sviluppatori Web che usano le caratteristiche più avanzate dell’HTML 4
dovrebbero progettare le pagine per entrambi i browser ed inviare la versione più
appropriata in base al singolo utente
 Le caratteristiche avanzate dell’HTML 4 sono a volte indicate in generale come
Dynamic HTML. Quello che a volte è indicato come HTML 5 è una forma estensibile
di HTML chiamata XHTML
Fugini Impianti Como 08-09
14
7
Descrizione HTML dei contenuti
<TITLE>Laptop Computer</TITLE>
<BODY>
<UL>
<LI>DELL INSPIRON 7500
<LI>650 Mhz
<LI>256 Mb
<LI>23 Gb
<LI>4.1 pounds
<LI>$3200
</UL></BODY>
Fugini Impianti Como 08-09
15
Descrizione XML dei contenuti
<COMPUTER TYPE=“LAPTOP”>
<MANUFACTURER>DELL</MANUFACTURER>
<LINE>INSPIRON</LINE>
<MODEL>7500</MODEL>
<SPEED>650 Mhz</SPEED>
<MEMORY>256 Mb</MEMORY>
<DISK>23 Gb</DISK>
<WEIGHT UNIT=“POUND”>4.1 </WEIGHT>
<PRICE CURRENCY=“USD”>3200</PRICE>
</COMPUTER>
Fugini Impianti Como 08-09
16
8
Alle origini di XML





L’eXtensible Markup Language (XML) nasce nel febbraio del 1998 come
raccomandazione del W3C
E’ una tecnologia che permette di rappresentare informazioni in formato testuale e
strutturato ed è derivato dall’SGML (Standard Generalized Markup Language)
La sua definizione prescinde dal campo di applicazione e dall’ambiente di lavoro di
utilizzo
XML è un metalinguaggio che permette di rappresentare contenuti testuali
organizzati in una gerarchia
E’ oggi lo standard di riferimento per:
 La definizione di contenuti semantici per il Web
 La gestione di scambi informativi fra applicazioni software
 La rappresentazione semantica di basi di dati
 La definizione di linguaggi
 …
Fugini Impianti Como 08-09
17
XML

I file XML sono caratterizzati da:
 Sono basati su marcatori (TAG), come nell’HTML: <nome> </nome>. I TAG
permettono di leggere le informazioni contenute e le qualificano come elementi
logici (senza preoccuparsi di come questi elementi appariranno in fase di
visualizzazione)
 Permettono di separare i dati puri dalla loro rappresentazione grafica
 Sono accomunati da un insieme di regole di sintassi che permettono di leggere
e scrivere, nello stesso modo e con strumenti analoghi, i contenuti
rappresentati
 A ogni documento XML è possibile associare la descrizione della struttura dei
dati utilizzata al suo interno, al fine non solo di renderla facilmente
comprensibile anche da parte di chi non la conosce, ma anche per rendere
rapido il processo di verifica e controllo che tale struttura sia rispettata nel
documento
 Le modalità di rappresentazione grafica sono definite da altri linguaggi,
chiamati fogli di stile (XSL, eXtensible Stylesheet Language o CSS, Cascading
Style Sheet)
Fugini Impianti Como 08-09
18
9
Validazione





Un documento XML che rispetta le regole “grammaticali” è well-formatted. Questo
non implica che abbia anche senso dal punto di vista semantico
Chi definisce la struttura corretta dei contenuti dei file XML?
Ai documenti è possibile associare le definizioni di struttura che descrivono il nome
e la posizione dei TAG e degli attributi nel documento
Il meccanismo che permette di verificare che un documento XML oltre ad essere
leggibile rappresenta dei contenuti sensati dal punto di vista semantico, per chi lo
deve utilizzare, è detto validazione
Le tecniche di validazione sono:
 DTD (Document Type Definition): è una tecnologia diffusa. Si tratta del primo
meccanismo utilizzato e non era nato per descrivere XML
 XRD (Xml Data Reduced): è una proposta di Microsoft che ha promosso e
utilizzato XRD come alternativa più completa alle DTD, in attesa che il W3C
rilasciasse una raccomandazione in merito
 XSD (Xml Schema Definition): è una raccomandazione del W3C
(2 maggio 2001) ed è lo standard della validazione. Tutti i produttori di parser
(IBM, Microsoft, Sun, ecc.) lo supportano
Fugini Impianti Como 08-09
19
Limiti delle DTD



Le DTD rappresentano un adattamento all’XML di qualcosa nato per descrivere altro
Il limite principale delle DTD consiste nel fatto che XML e DTD non adottano lo
stesso linguaggio
Le DTD sono carenti di tipi di dati elementari (insieme dei valori che possono
assumere gli elementi e gli attributi):
 Quando si definisce una struttura dati è necessario lo stesso repertorio di tipi di
dati presente nei linguaggi di programmazione; invece con le DTD si devono
definire manualmente anche tipi comuni come le date
 Devono essere definite manualmente tutte le strutture dati, anche se hanno
variazione minima (attività svolta in modo semplice dai meccanismi di
ereditarietà e specializzazione dei linguaggi orientati agli oggetti)
Fugini Impianti Como 08-09
20
10
XML Schema Definition (XSD)
Il W3C ha elaborato una soluzione ai problemi delle DTD rilasciando una
raccomandazione che specifica la “grammatica” di XSD
Il concetto di base è che essendo XML un metalinguaggio può essere utilizzato per
rappresentare altri linguaggi
XSD utilizza quindi il linguaggio XML per descrivere la struttura dei dati
Attraverso XSD è possibile definire qualunque struttura dati per mezzo di:
 Definizione di TAG e attributi
 Caratterizzazione del contenuto di TAG e attributi tramite tipi di dati noti
 Controllo del valore di eventuali nodi di tipo testo o attributo tramite espressioni
regolari




Fugini Impianti Como 08-09
21
Validazione e visualizzazione
4a
Se il documento XML non rispetta
la sintassi definita dalla DTD
associata, il parser restituisce un
errore
ERRORI
Il modulo software parser
XML verifica in modo
automatico la validità del
documento XML
4b
Documento
non valido
3
Se il documento rispetta la
sintassi, viene dichiarato
valido
6
Il documento XML validato
viene passato al processore
XML/XSL che genera l’output
adatto al supporto specifico
Si crea un nuovo
documento XML
2
Documento
XML
Parser XML
Documento
XML
validato
Processore
XML/XSL
Output per
un supporto
specifico
7
1
Struttura
DTD
Il documento XML fa
riferimento ad una o più
strutture DTD che ne
definiscono la
sintassi…
Fugini Impianti Como 08-09
XML
Schema
… oppure ad una o più
XML Schema
XSL
5
XSL: linguaggio per
rappresentare l’output di
XML. XSL adatta il contenuto
del documento XML ai diversi
canali (Web, wireless, sintesi
vocale, ecc.)
22
11
XML e XSL:
modello di funzionamento client side
server
client
Web browser
XML
XSL
Connessione HTTP
Web server
Richiesta di doc
XML
Schema
Documento
HTML
<HTML>
<HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
risposta
XML
XSL
-------------------------------------------------------------------------------------------
Chiusura HTTP
Fugini Impianti Como 08-09
23
XML e XSL:
modello di funzionamento server side
server
client
Web browser
Documento
HTML
<HTML>
<HEAD>
<TITLE> Esempio
</TITLE>
</HEAD>
<BODY>
Testo del documento
<BR>
<A
HREF="http://www.cp
i.polimi.it/it/EBLa
b/"> Visita il
Centro EBLab</A>
</BODY>
</HTML>
Connessione HTTP
Web server
Documento
HTML
richiesta
<HTML>
<HEAD>
-------------</HEAD>
<BODY>
-------------------------</BODY>
</HTML>
risposta
XML
XSL
Chiusura HTTP
XML
Schema
Fugini Impianti Como 08-09
24
12
HTTP: Hypertext Transfer Protocol (1/2)





La navigazione del Web segue il modello client/server. Quando l’utente
specifica la stringa URL che identifica il documento, il browser diventa
client di un server residente sulla macchina specificata dalla stringa
L’interazione tra browser e server Web è regolata dal protocollo HTTP
(Hyper Text Transport Protocol), un semplice protocollo che permette ai
browser di richiedere uno specifico documento e al server web di
trasmetterlo attraverso la connessione
Rispetto alla suite di protocolli TCP/IP, HTTP è un protocollo applicativo
Nelle versioni non recenti dell’HTTP (fino alla 1.1), la connessione fra client
e server rimaneva attiva per il solo tempo necessario al trasferimento di
una specifica informazione. Ogni visualizzazione di un’immagine o click su
un collegamento comportava l’apertura e la chiusura di una connessione
(HTTP è un protocollo “stateless”)
A partire dalla versione 1.1, HTTP prevede di mantenere la connessione
attiva fra Client e Server. Se il server non riceve più richieste dal browser,
un timer gli ordinerà di chiudere la connessione
Fugini Impianti Como 08-09
25
HTTP: Hypertext Transfer Protocol (2/2)



Ogni macchina Web Server contiene, oltre all’HTML e agli altri file dei contenuti, un
componente software detto HTTP daemon, progettato per aspettare le richieste
HTTP e gestirle quando arrivano.
Un Web Browser è un client HTTP che invia richieste alle macchine server. Quando
l’utente del browser inserisce una richiesta di file, sia “aprendo” un file Web
(indicando URL) sia cliccando su un collegamento ipertestuale, il browser costruisce
una richiesta HTTP e la invia all’indirizzo IP specificato dall’URL
L’HTTP daemon della macchina server di destinazione riceve la richiesta e, dopo
averla elaborata, restituisce il file richiesto.
Fugini Impianti Como 08-09
26
13
Modello del protocollo HTTP

Il modello di lavoro collaborativo client/server dell’HTTP consiste nel seguire
i quattro passi seguenti
 Connessione: il client stabilisce una connessione con il server
 Richiesta: il client manda un messaggio di richiesta al server
 Risposta: il server risponde al client con un risultato
 Chiusura: il client o il server chiude la connessione
Connessione
Web Client
(Browser)
Richiesta
Risposta
Chiusura
Web Server
(Server)
Fugini Impianti Como 08-09
27
I cookies

Tecnicamente un cookie è, nell’architettura client/server, un’informazione relativa al client,
che il server colloca e conserva (attraverso un file di testo) sul client stesso per poterla
recuperare durante le successive connessioni

I cookies sono nati per automatizzare il login ad un sito da parte degli utenti registrati:
quando un utente naviga uno di questi siti, il browser controlla che sull’hard disk sia
presente il cookie relativo ad esso; in caso affermativo, lo invia al server insieme ad ogni
richiesta di una pagina Web

I cookies possono anche essere utilizzati per tenere traccia dei prodotti di un ordine, mentre
l’utente sta inserendo oggetti nel proprio shopping basket e non ha ancora completato
l’ordine; in aggiunta il cookie può contenere le informazioni relative al pagamento,
facilitando la transazione

I cookies possono essere usati dal server anche per tenere traccia dei movimenti dell’utente
all’interno del sito, arrivando anche a delineare tutto il percorso di navigazione seguito

Queste informazioni possono essere utilizzate per migliorare la struttura e la navigabilità di
un sito, per ruotare i banner pubblicitari collocati nelle pagine Web inviate all’utente, per
personalizzare la pubblicità stessa in base ad informazioni fornite dall’utente al sito

In generale è l’utente che deve autorizzare il salvataggio di un cookie sul suo computer,
anche se ciò dipende dalle impostazioni che ha scelto nel proprio browser
Fugini Impianti Como 08-09
28
14
Indice dei contenuti

Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News,
Chat, Videoconferenza

World Wide Web

Tecnologie per lo sviluppo di applicazioni sul WWW

Web Service
Fugini Impianti Como 08-09
29
Classificazione delle tecnologie per
Applicazioni WEB
Interattività client-side
Interattività server-side
• HTML
• CGI
• XML
• Java Servlet
• Applet Java
• Java Server Pages (JSP)
• Java Script
• Active Server Pages
• ActiveX
• Plug-in
Fugini Impianti Como 08-09
30
15
Common Gateway Interface (CGI)
La Common Gateway Interface (CGI) è un sistema standard che un Web
Server utilizza per passare la richiesta di un utente ad un programma e per
riceverne la risposta da trasferire poi all’utente stesso
 Per esempio, quando una form in una pagina Web viene compilata dall’utente e inviata al Web
Server, deve essere solitamente processata da un’applicazione
 Tipicamente, il Web Server passa le informazioni contenute nella form ad un piccolo
HTML Pages
CGI
CGI Gateway
http
Web Server
Web Browser
programma, che ne processa i dati e che restituisce un messaggio di conferma
Web Site
Application
CGI script
 Il metodo (o convenzione) per passare i dati avanti e indietro tra il Server e
l’applicazione è chiamato CGI (Common Gateway Interface) ed è parte del
protocollo HTTP del Web
 I programmi sono chiamati CGI script: ricevono l’input dal server Web, lo passano
all’applicazione e restituiscono l’output
Fugini Impianti Como 08-09
31
CGI:
modello di funzionamento
server
client
Web browser
richiesta
Documento
HTML
Web server
<HTML>
<HEAD>
Documento
HTML
<HTML>
<HEAD>
<TITLE> Esempio
</TITLE>
</HEAD>
<BODY>
Testo del documento
<BR>
<A
HREF="http://www.cp
i.polimi.it/it/EBLa
b/"> Visita il
Centro EBLab</A>
</BODY>
</HTML>
html
risposta
CGI
script
Write (
-------------</HEAD>
<BODY>
-------------------------</BODY>
</HTML>
CGI Gateway
)
Perl
Database
html
Fugini Impianti Como 08-09
32
16