Prof. Roberto Battiti
a.a. 2000/2001
Finalità
Il corso
illustra varie tematiche specifiche del livello application, e prevede
lo sviluppo di un progetto software
mediante
il linguaggio Java.
Programma
1) Architettura del World Wide Web (WWW)
1.1) Introduzione
al WWW
Caratteristiche
generali e funzionamento del WWW. Concetti di ipertesto, sistema client-server,
multimedialità. Caratteristiche
funzionali
e realizzative del programma client. Caratteristiche funzionali e realizzative
del programma server.
1.2) Sistema
di indirizzamento tramite URL
Definizione
e struttura di una URL. Componenti della URL: metodo, host, identità
della risorsa.
1.3) Linguaggio
HTML
Caratteristiche
del linguaggio. Tag e parametri. Struttura di un documento HTML. Inclusione
di immagini, link ipertestuali ed altri
oggetti.
1.4) Il
protocollo HTTP
Caratteristiche
generali del protocollo. Metodi principali. Metainformazioni. Tipi e sottotipi
MIME. Struttura di una richiesta
HTTP.
Struttura di una risposta HTTP.
1.5) Estensioni
del WWW
Estensione
attraverso form e CGI: tag HTML per immissione dati; lo standard CGI per
Unix; interazione fra client, server WWW,
programma
CGI ed applicazione esterna; meccanismi di trasferimento delle informazioni;
server side image map; client side
image
map; motori di ricerca. Estensione attraverso il linguaggio JavaScript:
caratteristiche generali del linguaggio; cenni sul
suo utilizzo
nei documenti HTML. Estensione tramite il linguaggio Java: storia e caratteristiche
del linguaggio; il compilatore
Java;
la macchina virtuale Java; i meccanismi di trasferimento e di funzionamento
dei programmi Java nell'ambito del WWW.
1.6) I
problemi del WWW
Scarsa
efficienza nell'uso delle connessioni di rete. Assenza del concetto di
sessione. Assenza di meccanismi per consentire
lo scambio
di dati riservati. Cenni al protocollo HTTP 1.1.
1.7) La
sicurezza
Aree di
competenza della sicurezza: controllo dei diritti di accesso, protezione
da danneggiamenti, riservatezza delle
comunicazioni,
autenticazione dei partner, integrità dei messaggi. Controllo dei
diritti di accesso: basic authentication nel
protocollo
HTTP 1.0; firewall e proxy. Protezione da danneggiamenti: rischi derivanti
dall'uso di programmi CGI e possibili
misure
protettive; meccanismi di protezione della macchina virtuale Java: Bytecode
Verifier, Class Loader, Security Manager.
Riservatezza
delle comunicazioni: introduzione alla crittografia; crittografia a chiave
segreta; crittografia a chiave pubblica;
cenni
agli algoritmi DES, IDEA, RSA. Autenticazione e integrità: funzioni
hash e message digest; certificati; Certificate Authority
(CA).
Protocolli crittografici: determinazione della chiave segreta di sessione;
Secure Socket Layer; Secure - HTTP.
2) Sviluppo di applicazioni di rete mediante il linguaggio Java
2.1) Fondamenti
del linguaggio
Caratteristiche
fondamentali del linguaggio. Struttura di un'applicazione. Abstract Window
Toolkit (AWT). Gestione degli eventi.
Eccezioni.
Input/Output. Socket e ServerSocket. Stream per la comunicazione: tipi
base di stream, stream di filtro. Thread e
concorrenza.
2.2) Stream
per la gestione di messaggi
Benefici
derivanto dall'uso di messaggi. Stream di base per la gestione di messaggi.
Stream per la gestione di code di
messaggi.
Stream per il multiplexing di messaggi. Stream e classi collegate per il
demultiplexing di messaggi.
2.3) Applicazioni
di rete
Semplice
client per accesso a servizi Internet testuali. Client e server per chatline
testuale. Client e server per sistema
transazionale,
basati sullo scambio di messaggi. Client e server per chatline grafica
e testuale, basati sul multiplexing di
messaggi.
3) Temi avanzati legati allo sviluppo di componenti
sofware
per il web computing (CORBA RPC, Object oriented
distribuito,
software di gestione di reti aziendali)
Testi
1. A. Tanenbaum
- Reti di Computer
Prentice
Hall International, 1997
ISBN 88-7750-453-6
2. Hughes,
C. Hughes, M. Shoffner, M. Winslow -
Java Network Programming - Manning Publications
Co.
(distribuito
da Prentice Hall)
o manuali
equivalenti su java
* Appunti su temi specifici verranno distribuiti
a lezione