Presentazione del corso - Università degli Studi di Ferrara

Sistemi Distribuiti (A.A. 2012/2013)
Corso di Laurea Magistrale in Ingegneria Informatica e dell’Automazione
Prof. Ing. Cesare Stefanelli
http://www.unife.it/ing/lm.infoauto/sistemi-distribuiti
Sistemi Distribuiti - Presentazione - 1
Programma del corso
Il corso è strutturato in due parti:
Programmazione Concorrente – 3 CFU – SOLO per gli studenti del II anno
(quelli del I anno seguiranno un corso completo sulla programmazione
concorrente da 6 CFU il prossimo anno)
Le lezioni saranno dal 1 ottobre fino a circa il 24 ottobre (pubblicazione
data esatta sul sito Web).
Sistemi Distribuiti – 6 CFU – Per tutti (I e II anno)
Le lezioni saranno dal 25 ottobre fino a fine corso (pubblicazione data
esatta di inizio sul sito Web).
Sistemi Distribuiti - Presentazione - 2
Programma del corso
Programmazione Concorrente (prima parte, 3 CFU)
Introduzione alla programmazione concorrente: motivazioni, concorrenza e parallelismo
Modelli di processi ad ambiente globale e locale
Programmazione concorrente in ambiente globale:
I principali costrutti per la sincronizzazione dei processi (semafori e monitor)
Esempi di programmazione concorrente con i semafori e i monitor
La programmazione concorrente in Java, costrutti base e avanzati
Esercizi di programmazione concorrente in Java
I Sistemi Distribuiti (seconda parte, 6 CFU)
I sistemi distribuiti: modelli e proprietà
I sistemi di nomi
Middleware RPC/RMI/CORBA
Il Web 2.0
Il Mobile Computing
Il linguaggio Ruby e il framework Ruby on Rails - mini corso
Smartphone programming (sulle piattaforme Android e iPhone) - mini corso
Sistemi Distribuiti - Presentazione - 3
Materiale Didattico: testi e letture
Copia dei lucidi delle lezioni sarà messa sul sito Web, di volta in volta.
Per la parte di programmazione concorrente:
•  P. Ancilotti, M. Boari, Programmazione concorrente e distribuita, McGraw-Hill, 2007.
•  J. Magee, J. Kramer, Concurrency, State Models and Java programs, second edition,
Wiley, 2006.
•  S. Oaks, H. Wong, Java Threads, third edition, O’Reilly, 2004.
•  D. Lea, Concurrent Programming in Java, Addison-Wesley, 1999.
Per la parte di sistemi distribuiti:
•  G.Couloris, J. Dollimore, T. Kindberg, G. Blair, Distributed Systems – Concepts and
Design, fifth edition, Addison Wesley, 2011.
•  A. Tanenbaum, M.Van Steen, Sistemi Distribuiti, Prentice Hall, 2007
Per tutti gli argomenti si consiglia di consultare le riviste edite da ACM (Association for
Computing Machinery) e IEEE (Institute of Electrical and Electronic Engineering) che si possono
trovare in biblioteca. Siti di riferimento www.computer.org e www.comsoc.org
Riviste più divulgative : IEEE Computer, ACM Communications.
Riviste per approfondimenti: IEEE Internet Computing, IEEE Communications, Distributed
Systems OnLine (dsonline.computer.org), ACM Computing Surveys, ACM Transactions on...
IEEE Transactions on .... , tutte le IETF Request for Comments (RFC)
Sistemi Distribuiti - Presentazione - 4
Propedeuticità
Si richiede un’ottima conoscenza dei linguaggi C e Java e del sistema operativo Unix.
(per i laureati di Ferrara, i corsi di Fondamenti 1, Fondamenti 2, Sistemi Operativi, Reti
di Calcolatori).
Modalità di esame
L’esame è costituito solo da una prova orale (che comprende però un esercizio scritto
di programmazione concorrente). Iscrizioni via Web.
Frequenza degli appelli:
•  uno ogni settimana durante le sessioni di esame.
•  nei periodi di lezione, appelli SOLO per studenti fuori corso (circa ogni 15 gg.)
Sistemi Distribuiti - Presentazione - 5
Laboratori
Tutti i laboratori informatici della Facoltà. Ogni studente può utilizzare il proprio
account di Ateneo per l’autenticazione.
Servizio WIFE per l’accesso wireless alla rete Internet dalla Facoltà.
Accesso previa autenticazione attraverso le proprie credenziali di Ateneo.
La macchina linuxdid.ing.unife.it è una macchina Linux per gli studenti, accessibile
anche da remoto (via ssh e scp).
Sistemi Distribuiti - Presentazione - 6
Argomenti di tesi (di maggiore impegno) (si veda il sito Web)
La tesi dovreste vederla come il vostro primo passo nel mondo del lavoro, non solo
come ultimo passo del vostro lungo percorso di studi.
Tesi di ricerca in ambito mobile/pervasive computing:
•  Distribuzione di servizi multimediali con QoS in ambiente wireless Internet e ad
hoc network
•  Supporto alla mobilità degli utenti/terminali/sessione
Collaborazione con Florida Institute for Human & Machine Cognition (tesi negli Stati
Uniti):
•  Progetto Mockets. Sviluppo di un framework di comunicazione per il supporto alla
session mobility in ambienti wireless Internet e MANET
•  Progetto DisService. Studio e realizzazione di soluzioni per la disseminazione
opportunistica di informazioni in ambienti MANET
Collaborazione con Hewlett Packard Research Lab di Palo Alto:
•  Modellazione e ottimizzazione di organizzazioni per incident management
Per queste tesi è richiesta un’ottima conoscenza dei linguaggi C++, Java e Ruby. In caso
di soggiorno all’estero, si richiede ottima conoscenza della lingua inglese e buona
autonomia di lavoro. Disponibilità di borse di studio.
Sistemi Distribuiti - Presentazione - 7
Argomenti di tesi (di maggiore impegno) (si veda il sito Web)
Tesi di ricerca applicata o industriale
Attività di tesi presso il laboratorio CenTec (www.centec.it) del Tecnopolo di Unife
(anche con borse di studio). Sono tesi nel campo del trasferimento tecnologico, prevedono
sempre uno stage aziendale. Temi di interesse:
•  E-maintenance per il telecontrollo delle macchine automatiche (ad esempio, in
Carpigiani)
•  Utilizzo di sistemi operativi Linux embedded per il controllo delle macchine
automatiche (ad esempio, in Carpigiani)
•  Remotizzazione dell’interfaccia di controllo di una macchina automatica su
dispositivi tablet (ad esempio, in IMA)
•  Sviluppo di componenti software di ERP su dispositivi tablet (ad esempio, in
Centro Software)
•  Sviluppo di applicazioni Web 2.0 nei sistemi di controllo industriale (ad esempio,
in VM motori)
•  Sviluppo di servizi di comunicazione innovativi su tecnologie VoIP Open Source
(ad esempio, in FBCommunication e in Unife)
Attività di tesi presso presso l'Ufficio Reti e Sistemi dell'Ateneo:
•  Progetto e realizzazione di sistemi e servizi Web in ambito Web 2.0
Sistemi Distribuiti - Presentazione - 8