Reti di Calcolatori 2 ("Web computing")

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