- Docente: Antonio Corradi
- Crediti formativi: 9
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Antonio Corradi (Modulo 1) Antonio Corradi (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea in Ingegneria informatica (cod. 0926)
Conoscenze e abilità da conseguire
Conoscenza dei modelli, dei protocolli e degli strumenti per lo sviluppo di applicazioni di rete e sistemi distribuiti. Capacità di progetto e realizzazione di applicazioni in reti di calcolatori.
Contenuti
1. Generalità e Concetti di Base Generalità dei sistemi distribuiti
- inquadramento generale e definizioni di base
- sistemi distribuiti decentralizzati ed eterogenei
- necessità di standardizzazione delle soluzioni (ISO/OSI ed Internet)
Si presentano alcuni modelli caratteristici, come
- modelli a memoria condivisa ed a scambio di messaggi
- modello di interazione cliente/servitore
- affidabilità dei sistemi e modelli di guasto
- modelli di connessione, di replicazione, ecc.
2. Ambienti Standard
Standardizzazione
Organizzazione a livelli ISO OSI
- livello di trasporto e di rete
- livelli applicativi: sessione, presentazione, e applicazione
Alcune applicazioni standard distribuite
3. Protocolli TCP/IP TCP/IP e protocolli
I protocolli della suite TCP/IP: livelli di rete e di
trasporto
Applicazioni comuni per:
- servizi sincroni: terminale remoto virtuale, trasferimento di file,
- servizi asincroni: mail, news, e altri
Alcuni strumenti a larga diffusione in ambiente UNIX e Windows
ai diversi livelli
4. Alcuni strumenti di riferimento
Socket e relative primitive Socket in C (per UNIX) e in
Java
Esempi di interazione in sistemi UNIX e collegamenti con
TCP/IP
Alcune applicazioni cliente servitore
Chiamate di Procedura Remota o RPC
RMI, operazioni remote in Java
5. Sistemi Operativi Distribuiti e
servizi
Sistemi operativi distribuiti
Naming delle risorse
Granularità dei processi e loro interazione
Gestione delle risorse
File system
Alcuni problemi e possibili soluzioni
Sistemi di nomi e DNS
Soluzioni per evitare congestione ed evoluzione dei
protocolli.
Testi/Bibliografia
G. Coulouris, J. Dollimore, T. Kindberg: 'Distributed Systems: concepts and Design', quarta edizione, Addison-Wesley, 2005.
M.L. Liu: 'Distributed Computing', Addison-Wesley, 2003.
J.F. Kurose, K.W. Ross: 'Internet e Reti', McGraw-Hill, 2001 (tradotto nel 2001 da 'Computer Networking: a Top-Down Approach Featuring the Internet', 2001).
A.S. Tanenbaum: 'Computer Networks', Prentice-Hall, 1988 (tradotto in 'Reti di Calcolatori', Jackson).
D. Reilly, M. Reilly: 'Java Network Programming and Distributed Computing', Addison-Wesley, 2002.
Metodi didattici
oLe esercitazioni durante il corso sono svolte con la stessa
modalità del progetto finale (parte in ambiente C e in Java).
In particolare si richiedono competenze per il progetto di piccoli
casi cliente/servitore, in diversi ambiti e con diversi
strumenti:
- socket da usare in C e Java, per diversi protocolli e diversi
casi di uso;
- RPC, per progetto di clienti e servitori ad alto livello, con
tecnologie SUN;
- RMI, per progetto in Java di clienti servitori.
Lo studente è responsabile delle proprie risorse di calcolo
e del materiale che ha a disposizione per lo svolgimento delle
prove:
in particolare si richiede la consegna preliminare durante
le esercitazioni degli schemi di programma (template di soluzione)
come base per il lavoro sui singoli sottoprogetti.
Qualunque tentativo di copiare verrà perseguito e
punito.
URL: lia.deis.unibo.it/Courses/RetiLA
Modalità di verifica e valutazione dell'apprendimento
Gli esami consistono di
- una prova di conoscenza dei temi del corso, valutata con alcune domande (senza accesso ad alcun materiale),
- una prova scritta svolta come un progetto in laboratorio con
tempo limitato e qualunque materiale di supporto,
- una prova orale successiva.
Una consegna dei template di progetto (ossia la base sorgente per lo sviluppo dei progetti) è preliminare alla prima prova.
Strumenti a supporto della didattica
In aula si usano lucidi e discussioni di piccoli progetti.
Sito web del corso ad URL: lia.deis.unibo.it/Courses/RetiLA
In laboratorio sono presenti strumenti di sviluppo e di supporto alla esecuzione dei progetti.
Gli studenti sono invitati a familiarizzare con questi o altri strumenti di uso personale.
Link ad altre eventuali informazioni
http://lia.deis.unibo.it/Courses/RetiT
Orario di ricevimento
Consulta il sito web di Antonio Corradi