Sistemi Distribuiti

Informazioni generali dell'insegnamento

Nome dell'insegnamento:Sistemi Distribuiti [MN1-1239]
Docente:Giacomo Cabri
Corso di Studio:Informatica [16-209]
Tipologia:Caratterizzante
CFU:9
Periodo Didattico:Secondo Ciclo Semestrale

Avvisi (in ordine cronologico inverso)

Venerdì 12 e sabato 13 giugno il sistema ESSE3 non sarà disponibile per iscriversi agli esami e neanche per compilare il questionario di valutazione.
È disponibile una traccia per la scrittura della documentazione del progetto; si veda la voce esami.
Le lezioni terminaranno il 9 giugno 2009.
Lunedì 1 giugno 2009 la lezione di Sistemi Distribuiti non si terrà.
Sono disponibili le slide del seminario su Social Context Awareness dell'11 maggio 2009.

Obiettivo dell'insegnamento

L'obiettivo dell'insegnamento è presentare i principali modelli e tecnologie per la gestione di sistemi software distribuiti. Gli obiettivi specifici sono lo studio delle architetture dei sistemi distribuiti avanzati. In particolare, verranno analizzati i sistemi client-server basati su oggetti, i sistemi a componenti autonomi (agenti) e le loro problematiche di coordinazione. Infine si analizzeranno le tecnologie per la mobilità e le relative problematiche.

NOTA: Nell'AA 2008/09 l'insegnamento di Sistemi Distribuiti della Laurea Magistrale in Informatica è fruito dagli studenti della Laurea Specialistica in Ingegneria Informatica con il nome Sistemi Software Distribuiti per 5 CFU.
Le informazioni riportate si applicano in generale ad entrambi gli insegnamenti; le differenze (in particolare riguardo alle modalità di svolgimento dell'esame) verranno evidenziate.

Programma dell'insegnamento

Sistemi distribuiti

  • Introduzione e concetti generali
  • Comunicazione e sincronizzazione distribuita
  • File system distribuiti
  • Tolleranza ai guasti tramite replicazione

Architetture ad oggetti distribuiti

  • Introduzione e problematiche
  • RPC
  • RMI
  • CORBA
  • .NET

Mobilità

  • Mobilità del codice e relative problematiche
  • Mobilità del codice in Java
  • Dispositivi mobili

Agenti software

  • Agenti software
  • Agenti mobili
  • Coordinamento degli agenti

Orario delle lezioni

Orario per l'AA 2008/09:
  • Lun 11.00 - 13.00, Aula FA-1A Facoltà di Ingegneria;
  • Mar 9.00 - 11.00, Aula FA-2F Facoltà di Ingegneria;
  • Mer 14.00 - 16.00, Lab. Zironi Matematica;
  • Gio 9.00 - 11.00, Aula FA-1A Facoltà di Ingegneria;
ATTENZIONE: le lezioni inizieranno il 15 aprile 2009.
Si veda anche l'orario del Corso di Laurea Magistrale in Informatica.

Materiale didattico

Lucidi A.A. 2008/09

Introduzione all'insegnamento

Sistemi distribuiti

Sistemi a oggetti distribuiti

Mobilità

Agenti software

  • Seminario sulla Social Context Awareness (Ing. Gabriella Castelli)

  • Codice degli esercizi su RPC: eserciziRPC1.tar
    NOTA: su MacOS X il portmapper potrebbe non essere avviabile in modo facile; qui è riportata una soluzione che modifica il file /System/Library/LaunchDaemons/ com.apple.portmap.plist

    Codice dell'esempio CORBA EsempioCORBA.zip

    Codice dell'esempio .NET EsempioDotNET.zip

    Libri di riferimento

    • A. Tanenbaum, M. van Steen, Distributed Systems - Principles and Paradigms, Prentice Hall
    • An Introduction to Multiagent Systems by Michael Wooldridge. Published in February 2002 by John Wiley & Sons (Chichester, England). ISBN 0 47149691X
    • Stefano Russo, Carlo Savy, Domenico Cotroneo, Antonio Sergio, Introduzione a CORBA, McGraw Hill

    Strumenti software

    CORBA

    Un ORB per Java: JavaORBv2_2_7.zip

    .NET

    È possibile ottenere una copia dei CD di installazione di Visual Studio .NET richiedendola al tecnico del laboratorio InfoMec. Tale copia è prevista per i soli studenti.
    In alternativa, è possibile usare SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/), uno strumento Open Source per C# e VB.NET.

    Esami

    Regole d'esame

    Per gli studenti della Laurea Magistrale di Informatica (insegnamento da 9 CFU) l'esame si compone di due parti:
    • la presentazione di un progetto in gruppi di lavoro;
    • una prova orale su tutto il programma.
    Agli studenti della Laurea Specialistica in Ignegneria Informatica è richiesta solo la prova orale.

    Progetto

    Il progetto consiste nello sviluppo di una applicazione distribuita sfruttando una o più tecnologie spiegate durante il corso.

    Per l'AA 2008/09 il progetto è lo sviluppo di un gestore di file distribuito; ad ogni gruppo viene chiesto di svolgere l'analisi e il progetto dell'applicazione usando le tecniche dell'ingegneria del software, e di implementarla seguendo una delle seguenti linee:
    1. funzioni di base implementate con tecnologie diverse, oppure
    2. funzioni avanzate implementate con una sola tecnologia

    La documentazione da fornire deve conprendere:
    • Descrizione dei requisiti, ed in particolare delle funzionalitè messe a disposizione (ad es. tramite SRS);
    • Descrizione dell'architettura (ad es. tramite diagramma);
    • Descrizione dei protocolli usati (client-server o server-server, ad es. tramite diagrammi UML).
    Nella documentazione vanno anche riportati i seguenti punti:
    • Come è stato definito lo spazio dei nomi;
    • Come è strutturata l'interfaccia utente del client;
    • Se è presente una forma di replicazione e in caso positivo di che tipo;
    • Quale è il punto di accesso del sistema;
    • Quali meccanismi aggiuntivi della gestione dei file sono stati considerati (ad es., diritti).
    Si cerchi di essere sintetici ma esaustivi.

    Appelli d'esame

    Si ricorda di iscriversi all'esame attraverso ESSE3.

    Nessun esame presente per questo insegnamento.