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
© Copyright 2024 ExpyDoc