Sistemi distribuiti
Informazioni generali
Docenti
Prof. Claudio Bettini
Dott. Sergio Mascetti (per la parte di laboratorio)
Orari delle lezioni
Mer 9.00 - 11.30 in aula Alfa (via Comelico)
(con pausa di circa 20 minuti)
Orario di ricevimento studenti
Mar 17.30 - 19.30
Stanza P121
Sito del corso
Materiale didattico
- Testo: "Distributed Systems: Principles and Paradigms" - Andrew S. Tanenbaum & Martin Steen Van - Prentice Hall, 2002, ISBN 0-13-088893-1
- I lucidi delle lezioni sono presenti sul sito ufficiale del corso. Per accedere al materiale è necessario avere username e password.
Modalità d'esame
Se si sceglie di sostenere il primo appello (quello a giugno) si potrà lavorare ad un progetto durante le ore di laboratorio che verrà valutato alla fine delle lezioni pratiche. Le lezioni di laboratorio si svolgeranno nei giorni: 5, 12, 19, 26 aprile, 3 e 10 maggio in aula Sigma (via Comelico). Successivamente, a giugno, si sosterrà un esame scritto (test a scelta multipla e domande a risposta aperta). Il voto sarà dato dalla media dei due voti ottenuti nelle due prove (verrà dato pari peso a pratica e teoria - 3 crediti per entrambe).
Se si decide di dare l'esame dopo giugno bisognerà sostenere un orale durante il quale si dovrà presentare anche il proprio progetto.
Progetto
Il testo del progetto potete trovarlo a questo link.
Il progetto non puo' essere fatto a gruppi e il testo resta valido fino ad aprile 2007.
Diario del corso
Lezione di Mercoledì 8 marzo 2006
- Introduzione
- Definizione di "Sistema distribuito"
- Trasparenza
- Scalabilità
- Concetti hardware
- Concetti software
Lezione di Mercoledì 15 marzo 2006
- Paragone tra sistemi
- Esempio di Client
- Esempio di Server
- Architetture multitiered
- Distribuzione verticale e orizzontale di un Web Server
- Modello peer-to-peer
- Livelli del modello OSI (breve ripasso)
- Servizi di comunicazione middleware
- Persistenza, mancanza di persistenza; sincronia, asincronia nella comunicazione
- Socket
- Remote Procedure Call
- Remote Object Invocation
Note dal docente: il 7 giugno ci sarà la prova finale; la prossima lezione sarà molto importante (algoritmi di sincronizzazione)!!
Lezione di Mercoledì 22 marzo 2006
- Sincronizzazione (capitolo 5 del Tanenbaum)
- Clock
- Orologi fisici, TAI, UTC
- Cristian's Algorithm
- The Berkley Algoritm
- Orologi Logici
- Algoritmo di Lamport
- Esempi e applicazioni
- Stato Globale di un Sistema Distribuito
- Algoritmo per Distributed Snapshot
- Elezione di un coordinatore
- L'algoritmo di Bully per l'elezione di un coordinatore
- L'algoritmo ad anello (Ring/Token Ring algorithm)
- Mutual Exclusion - Un algoritmo centralizzato
Note dal docente: le prossime 5 lezioni saranno dedicate alla parte di laboratorio; di queste cinque, le prime tre si terranno in aula Alfa, le ultime due in aula Sigma.
Lezione di Mercoledì 29 marzo 2006
- Elementi fondamentali delle reti TCP/IP
- Il livello di trasporto: TCP e UDP
- Programmazione con le socket: cosa sono e come si usano
- Esempio e commento del codice per la comunicazione di un client e di un server in TCP usando le socket
- Esempio e commento del codice per la comunicazione di un client e di un server in UDP usando le socket (concetto di datagramPacket)
Lezione di Mercoledì 05 aprile 2006
- Server Concorrenti
- Progettare un server concorrente
- Thread in Java
- Versione Multithread del TCP Server
- Sincronizzazione
- Metodi non sincronizzati
- Metodi sincronizzati
- Struttura di un server concorrente
- Join(), Sleep(), Wait(), Notify()
Lezione di Mercoledì 12 aprile 2006
- RMI
- Registry
- Stub
- Funzionamento RMI
- Creazione di un sistema distribuito con RMI
- Definizione interfaccia remota
- Definizione implementazione oggetto remoto
- Definizione della classe che associa una stringa all'oggetto remoto
- Definizione dell'applicazione client
- Compilazione ed esecuzione oggetto remoto e client
- Esempi di client-server con RMI
- Presentazione del progetto