Informazioni Generali

Risultati dell'apprendimento

Metodologie, principi e tecnologie per la progettazione ed implementazione di sistemi e servizi software distribuiti a larga scala, inclusi i sistemi e servizi Cloud.

Prerequisiti

Il corso presuppone una conoscenza dei protocolli di rete, della progettazione e programmazione di applicazioni di rete (linguaggi C e Java), dell'organizzazione e gestione di basi di dati, dell'infrastruttura Web.

Orario delle lezioni

Orario valido dal 3/10/2016 al 27/1/2017 (primo semestre)
  • Lunedì dalle 9:30 alle 11:15, aula B9 edificio didattica
  • Mercoledì dalle 14:00 alle 15:45, aula B9 edificio didattica
  • Venerdì dalle 9:30 alle 11:15, aula C8 edificio didattica

Docente

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (è necessario specificare [SDCC] nell'oggetto della mail)
Ufficio: stanza D1-17, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento:
  • martedì dalle 9:00 alle 11:00 in ufficio.


Avvisi

  • new 21 marzo 2017 - Venerdì 31 marzo dalle 14:00 alle 17:00 in aula A2 si terrà un seminario su AWS e microservizi a cura di XPeppers. Maggiori informazioni sono disponibili su ACM | Rome Tor Vergata.
  • 15 marzo 2017 - La lezione integrativa su AWS (incluso come richiedere il grant) si terrà martedì 21 marzo alle 9:30 in aula B12.
  • 1 marzo 2017 - Disponibili i risultati della seconda prova in itinere ed i risultati finali delle prove in itinere (vedi Appelli).
  • 27 gennaio 2017 - Disponibile la traccia del progetto 1 (Sistema di monitoraggio e controllo dell’illuminazione pubblica per Smart Cities), proposto nell'ambito del CINI Smart City University Challenge (vedi Progetti).
    Le altre tracce saranno pubblicate entro venerdì 3 febbraio.
  • 24 gennaio 2017 - Ricordo che la prenotazione alla seconda prova in itinere è obbligatoria e deve essere effettuata entro il 30 gennaio.
  • 22 gennaio 2017 - Disponibili i risultati della prima prova in itinere (vedi Appelli).
  • 12 gennaio 2017 - Aggiunti i lucidi da 36 in poi in TolleranzaSD.pdf.
  • 12 gennaio 2017 - Aggiunti i lucidi da 61 in poi in ConsistenzaSD.pdf.
  • 19 dicembre 2016 - Aggiunti i lucidi da 25 in poi in ConsistenzaSD.pdf.
  • 13 dicembre 2016 - Fissate le date degli appelli invernali (vedi Appelli).
  • 13 dicembre 2016 - La seconda prova intermedia si terrà venerdì 3 febbraio 2017 alle ore 9:30 in aula C2 (vedi Appelli).
  • 12 dicembre 2016 - Aggiunti i lucidi da 65 in poi in SincronizzazioneSD.pdf.
  • 1 dicembre 2016 - Ricordo che la prenotazione alla prima prova in itinere è obbligatoria e deve essere effettuata entro il 3 dicembre.
  • 1 dicembre 2016 - Gli argomenti della prima prova intermedia includono la sincronizzazione fino al multicasting causalmente ordinato compreso.
  • 1 dicembre 2016 - Aggiunti i lucidi da 43 in poi in SincronizzazioneSD.pdf.
  • 26 novembre 2016 - Aggiunti i lucidi da 136 in poi in ComunicazioneSD.pdf.
  • 23 novembre 2016 - Aggiunti i lucidi da 98 in poi in ComunicazioneSD.pdf.
  • 16 novembre 2016 - Aggiunti i lucidi da 69 in poi in ComunicazioneSD.pdf.
  • 14 novembre 2016 - Per informazioni e la registrazione al Google Technologies for Cloud and Web Development segnalato a lezione, vedere Google Technologies for Cloud and Web Development 2016/2017. Per maggiori informazioni, rivolgersi al prof. Italiano che organizza l'iniziativa.
  • 9 novembre 2016 - Modificati i lucidi da 63 in poi in Virtualizzazione.pdf.
  • 4 novembre 2016 - Modificati i lucidi da 40 a 44 ed aggiunti i lucidi da 45 in poi in Virtualizzazione.pdf.
  • 4 novembre 2016 - La prima prova intermedia si terrà mercoledì 7 dicembre alle ore 13:45 in aula 1 (vedi Appelli).
  • 4 novembre 2016 - La lezione di recupero prevista per martedì 8 novembre dalle 11:30 alle 13:15 si terrà in aula C3.
  • 28 ottobre 2016 - La lezione di lunedì 30 ottobre non si terrà e sarà recuperata martedì 8 novembre dalle 11:30 alle 13:15 (aula da comunicare).
  • 8 ottobre 2016 - Le lezioni di mercoledì 12 ottobre e venerdì 14 ottobre non si terranno a causa di un impegno all'estero della docente. Saranno recuperate martedì 11 ottobre dalle 11:30 alle 13:15 in aula C3 e martedì 18 ottobre dalle 11:30 alle 13:15 in aula C3.
  • 3 ottobre 2016 - Per la registrazione al corso, usare Delphi oppure inviare una email alla docente.

Materiale Didattico

Testi consigliati

Testi "classici" sui sistemi distribuiti:

Testi che trattano in modo esteso i sistemi e le applicazioni Cloud:

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
3/10/2016 Organizzazione del corso
Introduzione ai SD
Organizzazione.pdf
IntroSD.pdf
3/10/2016
6/10/2016
5/10/2016 Introduzione ai SD vedi lezione precedente
7/10/2016 Introduzione ai SD
Introduzione al Cloud computing
vedi lezione del 3/10
IntroCloud.pdf

11/10/2016
10/10/2016 Introduzione al Cloud computing vedi lezione precedente
11/10/2016 Introduzione al Cloud computing vedi lezione del 7/10
17/10/2016 Architetture dei SD: pattern e architetture di sistema ArchitettureSD.pdf 20/10/2016
18/10/2016 Architetture dei SD: reti P2P non strutturate e strutturate vedi lezione precedente
19/10/2016 Architetture dei SD: reti P2P strutturate e sistemi self-* vedi lezione del 17/10
21/10/2016 Processi e concorrenza nei SD
Thread POSIX: introduzione e gestione dei thread
ProcessiSD.pdf
Pthreads.pdf
26/10/2016
26/10/2016
24/10/2016 Thread POSIX: meccanismi di sincronizzazione vedi lezione precedente
26/10/2016 Thread POSIX: meccanismi di sincronizzazione ed esempi vedi lezione del 21/10
28/10/2016 Thread POSIX: signal vs broadcast
Virtualizzazione: introduzione
vedi lezione del 21/10
Virtualizzazione.pdf

9/11/2016
2/11/2016 Virtualizzazione: VMM e virtualizzazione della memoria vedi lezione precedente
4/11/2016 Virtualizzazione: a livello di SO, casi di studio: Xen e Docker vedi lezione del 28/10
7/11/2016 Virtualizzazione: Docker, resizing e migrazione di VM e container vedi lezione del 28/10
8/11/2016 Virtualizzazione: storage, network, cluster
Comunicazione nei SD: introduzione
vedi lezione del 28/10
ComunicazioneSD.pdf

26/11/2016
9/11/2016 Esercizi su Pthreads: I intermedia 2010/11
  I intermedia 2012/13
Comunicazione nei SD: introduzione e tipi di comunicazione
ex_1int2010.c
ex_1int2012.c
vedi lezione precedente
16/11/2016
16/11/2016
 
11/11/2016 Comunicazione nei SD: semantica della comunicazione
Esercizi su Pthreads: I intermedia 2011/12
 
vedi lezione dell'8/11
ex_1int2011_v1.c
ex_1int2011_v2.c
 
16/11/2016
16/11/2016
14/11/2016 Comunicazione nei SD: RPC vedi lezione dell'8/11
16/11/2016 Comunicazione nei SD: Java RMI vedi lezione dell'8/11
18/11/2016 Comunicazione nei SD: compute engine in Java RMI, MOM vedi lezione dell'8/11
21/11/2016 Comunicazione nei SD: esempi di MOM, stream, multicast vedi lezione dell'8/11
23/11/2016 Comunicazione nei SD: protocolli di gossiping
Esercizi su Pthreads: I intermedia 2013/14
vedi lezione dell'8/11
ex_1int2013.c

26/11/2016
25/11/2016 Sincronizzazione nei SD: introduzione, tempo fisico, sincronizzazione fisica SincronizzazioneSD.pdf 12/12/2016
28/11/2016 Sincronizzazione nei SD: clock logico scalare e vettoriale
Esercizio su Pthreads
vedi lezione del 25/11
 

 
30/11/2016 Sincronizzazione nei SD: multicasting totalmente e causalmente ordinato, algoritmo del panificio di Lamport, introduzione alla mutua esclusione nei SD vedi lezione del 25/11
2/12/2016 Sincronizzazione nei SD: mutua esclusione nei SD vedi lezione del 25/11
5/12/2016 Esercitazione
7/12/2016 Prima prova in itinere
12/12/2016 Sincronizzazione nei SD: mutua esclusione nei SD e algoritmi di elezione vedi lezione del 25/11
14/12/2016 Consistenza nei SD: introduzione, consistenza stretta, linearizzabile, sequenziale ConsistenzaSD.pdf 3/1/2017
16/12/2016 Consistenza nei SD: consistenza causale, consistenza finale, teorema CAP vedi lezione del 14/12
19/12/2016 Consistenza nei SD: consistenza client-centrica, protocolli di consistenza vedi lezione del 14/12
21/12/2016 Consistenza nei SD: protocolli di distribuzione
Tolleranza ai guasti nei SD: dependability e definizioni
vedi lezione del 14/12
TolleranzaSD.pdf

12/1/2017
23/12/2016 Tolleranza ai guasti nei SD: TMR, condizioni accordo, accordo bizantino vedi lezione precedente
9/1/2017 Tolleranza ai guasti nei SD: Paxos, multicast affidabile semplice vedi lezione del 21/12
11/1/2017 Tolleranza ai guasti nei SD: Raft, sincronia virtuale, 2PC vedi lezione del 21/12
13/1/2017 Tolleranza ai guasti nei SD: approfondimenti su Paxos e 2PC, 3PC, ripristino
Presentazione del progetto nell'ambito del CINI Smart City University Challenge
vedi lezione del 21/12
 

16/1/2017 Sistemi Web distribuiti: Web cluster SistemiWeb.pdf 18/1/2017
18/1/2017 Sistemi Web distribuiti: Web cluster e multi-cluster vedi lezione del 16/1
20/1/2017 Sistemi Web distribuiti: Web multi-cluster con esempi vedi lezione del 16/1
23/1/2017 Sistemi Web geografici per content delivery CDN.pdf 24/1/2017
25/1/2017 Sistemi di storage nel Cloud
Correzione prima prova in itinere
StorageCloud.pdf
 
26/1/2017
 
27/1/2017 Introduzione ai sistemi data-intensive
Presentazione dei progetti
Esercitazione per seconda prova in itinere
IntroBigData.pdf
 
 
4/2/2017
 
 
21/3/2017 Amazon Web Services AWS.pdf 21/3/2017

Articoli

I seguenti articoli approfondiscono ed integrano gli argomenti trattati a lezione; la loro lettura è caldamente raccomandata.

Introduzione ai SD

  • A. Rotem-Gal-Oz, "Fallacies of Distributed Computing Explained". (pdf)
  • M. van Steen, A.S. Tanenbaum "A Brief Introduction to Distributed Systems", Computing, vol. 98, no. 10, pp. 967-1009, 2016. (pdf)
  • S. Vinoski, "Rediscovering Distributed Systems", IEEE Internet Computing, Vol. 18, No. 2, Mar.-Apr. 2014. (pdf)

Introduzione al Cloud Computing

  • M. Armbrust et al., "Above the Clouds: A Berkeley View of Cloud Computing", EECS Department, University of California Berkeley Technical Report No. UCB/EECS-2009-28, Feb. 2009. (pdf)
  • S.A. Baset, "Cloud SLAs: Present and Future", SIGOPS Oper. Syst. Rev., Vol. 46, No. 2, pp. 57-66, July 2012. (pdf)
  • N. Herbst, R. Krebs, G. Oikonomou, G. Kousiouris, A. Evangelinou, A. Iosup, S. Kounev, "Ready for Rain? A View from SPEC Research on the Future of Cloud Metrics", SPEC Research Group - Cloud Working Group, Standard Performance Evaluation Corporation (SPEC), Technical Report SPEC-RG-2016-0, 2016. (pdf)
  • P. Mell, T. Grance, "The NIST Definition of Cloud Computing", Sept. 2011. (pdf)

Architetture dei SD

  • H. Balakrishnan, M.F. Kaashoek, D. Karger, R. Morris, I. Stoica, "Looking Up Data in P2P Systems", Communications of the ACM, Vol. 46, No. 2, pp. 43-48, Feb. 2003. (pdf)
  • W. Emmerich, "Software Engineering and Middleware: a Roadmap", Prof. of the Conference on The Future of Software Engineering, pp. 117-129, 2000. (pdf)
  • P.T. Eugster, P.A. Felber, R. Guerraoui, A.-M. Kermarrec, "The Many Faces of Publish/Subscribe", ACM Computing Surveys, Vol. 35, No. 2, pp. 114-131, June 2003. (pdf)
  • J.O. Kephart, D.M. Chess, "The Vision of Autonomic Computing", IEEE Computer, Vol. 36, No. 1, Jan. 2003. (pdf)
  • I. Stoica, R. Morris, D. Liben-Nowell, D.R. Karger, M.F. Kaashoek, F, Dabek, H. Balakrishnan, "Chord: a Scalable Peer-to-peer Lookup Protocol for Internet Applications", IEEE/ACM Trans. Netw., Vol. 11, No. 1, pp. 17-32, Feb. 2003. (pdf)

Thread POSIX

  • B. Barney, "POSIX threads programming", 2015. (html)
  • D. Butenhof, “Programming with POSIX Threads”, Addison Wesley, 1997. Chapter 3 (pdf)
  • W.R. Stevens, S.A. Rago, “Advanced Programming in the UNIX(R) Environment, 3rd Edition”, Addison-Wesley, 2013. Chapter 11 "Using Threads within a UNIX Process" (html)
  • G. Ippolito, "POSIX thread (pthread) libraries", 2013. (html)
  • A. Park, "Multithreaded programming (POSIX pthreads tutorial)", 2013. (html)
  • "Pthreads arguments passing", 2009. (html)
  • "Condvars: signal with mutex locked or not?", 2010. (html)
  • U. Drepper, "Futexes are tricky", 2011. (pdf)

Virtualizzazione

  • K. Hwang, J. Dongarra, G.C. Fox, "Virtual machines and virtualization of clusters and data centers", chapter 3 of Distributed and Cloud Computing, Morgan Kaufmann, 2011. (pdf)
  • J. Daniels, "Server virtualization architecture and implementation", Crossroads, Sept. 2009. (pdf)
  • M. Rosenblum, T. Garfinkel, "Virtual machine monitors: current technology and future trends", IEEE Computer, pp. 39-47, May 2005. (pdf)
  • J.E. Smith, R. Nair, "The architecture of virtual machines", IEEE Computer, pp. 32-38, May 2005. (pdf)
  • C. Clark, K. Fraser, S. Hand, J.G. Hansen, E. Jul, C. Limpach, I. Pratt, A. Warfield, "Live migration of virtual machines", Proc. of 2nd Symposium on Networked Systems Design & Implementation (NSDI'05), pp. 273-286, 2005. (html)
  • R. Jain, S. Paul, "Network virtualization and Software Defined Networking for Cloud computing - a survey", IEEE Communications, pp. 24-31, Nov. 2013. (pdf)
  • OS-level virtualization

  • D. Bernstein, "Containers and Cloud: From LXC to Docker to Kubernetes", IEEE Cloud Computing, Vol. 1, No. 3, pp. 81-84, Sept. 2014. (pdf)
  • C. Pahl, "Containerisation and the PaaS Cloud", IEEE Cloud Computing, Vol. 2, No. 3, pp. 24-31, May 2015. (pdf)
  • C. Wang, "Containers 101: Linux containers and Docker explained", InfoWorld, 2016. (html)
  • Performance comparison of hypervisors and containers

  • J. Hwang, S. Zeng, F. Wu, T. Wood, "A component based performance comparison of four hypervisors", Proc. of IFIP/IEEE Integrated Network Management Symposium (IM 2013), May 2013. (pdf)
  • J. Li, Q. Wang, D. Jayasinghe, J. Park, T. Zhu, C. Pu, "Performance overhead among three hypervisors: an experimental study using Hadoop benchmarks", Proc. of IEEE Big Data, 2013. (pdf)
  • R. Morabito, J. Kjällman, M. Komu, "Hypervisors vs. lightweight virtualization: a performance comparison", Proc. of 1st Int'l Workshop on Container Technologies and Container Clouds, 2015. (pdf)

Comunicazione nei SD

  • K.P. Birman, M. Hayden, O. Ozkasap, Z. Xiao, M. Budiu, Y. Minsky, "Bimodal multicast", ACM Trans. Comput. Syst., Vol. 17, No. 2, pp. 41-88, May 1999. (pdf)
  • M. Castro, P. Druschel, A-M. Kermarrec, A. Rowstron, "SCRIBE: A large-scale and decentralised application-level multicast infrastructure", IEEE Journal on Selected Areas in Communications, Oct. 2002. (pdf)
  • P. Th. Eugster, R. Guerraoui, A.-M. Kermarrec, L. Massoulie, "From epidemics to distributed computing", IEEE Computer, Vol. 37, No. 5, pp. 60-67, May 2004. (pdf)
  • A.-M. Kermarrec, M. van Steen, "Gossiping in distributed systems", ACM Operating System Review, Vol. 41, No. 5, Oct. 2007. (pdf)
  • M. Jelasity, "Gossip", In Self-Organising Software: From Natural to Artificial Adaptation, Springer, pp. 139-162, 2011. (pdf)
  • E. Petron, "Remote Procedure Calls", Linux Journal, Oct. 1997. (html)
  • M. Portmann, A. Seneviratne, "The cost of application-level broadcast in a fully decentralized peer-to-peer network", Proc. of ISCC 2002, 2002. (pdf)
  • Trail: RMI (The Java tutorials) (html)

Sincronizzazione nei SD

  • C. Baquero, N. Preguiça, "Why logical clocks are easy" ACM Queue, Jan. 2016. (pdf)
  • L. Lamport, "Time, clocks and the ordering of events in a distributed system", ACM Communications, Vol. 21, No. 7, pp. 558-565, July 1978. (pdf)
  • M. Raynal, M. Singhal, "Logical time: Capturing causality in distributed systems", IEEE Computer, Feb. 1996. (pdf)

Consistenza e replicazione nei SD

  • P. Bailis, A. Ghodsi, "Eventual consistency today: limitations, extensions, and beyond", Communications of the ACM, Vol. 56, No. 5, pp. 55-63, May 2013. (pdf)
  • E. Brewer, "CAP twelve years later: how the "rules" have changed", IEEE Computer, Feb. 2012. (pdf)
  • D.K. Gifford, "Weighted voting for replicated data", Proc. of the 7th ACM Symposium on Operating Systems Principles, Dec. 1979. (pdf)
  • D.B. Terry, A.J. Demers, K. Petersen, M.J. Spreitzer, M.M Theimer, B.B. Welch, "Session guarantees for weakly consistent replicated data", Proc. of the 3rd Int'l Conference on Parallel and Distributed information Systems, pp. 140-150, 1994. (pdf)
  • D. Terry, "Replicated data consistency explained through baseball", Commun. ACM Vol. 56, No. 12, pp. 82-89, Dec. 2013. (pdf)
  • M. van Steen, G. Pierre, "Replicating for performance: case studies", book chapter in Replication - Theory and Practice, LNCS vol 5959, Feb. 2010. (pdf)
  • W. Vogels, "Eventually consistent", Communications of the ACM, Vol. 52, No. 1, pp. 40-44, Jan. 2009. (pdf)

Tolleranza ai guasti nei SD

  • A. Avizienis, J.-C. Laprie, B. Randell, C. Landwehr, "Basic concepts and taxonomy of dependable and secure computing", IEEE Trans. on Dependable and Secure Computing, 2004. (pdf)
  • L. Lamport, "Paxos made simple", ACM SIGACT News, Vol. 32, No. 4, Dec. 2001. (pdf)
  • D. Ongaro and J. Ousterhout, "In search of an understandable consensus algorithm", Proc. of USENIX Annual Technical Conference 2014, 2014. (pdf)
  • The Paper Trail, "Consensus Protocols: Paxos", 2009. (html)

Sistemi Web distribuiti

  • V. Cardellini, E. Casalicchio, M. Colajanni, P.S. Yu, "The state of the art in locally distributed Web-server systems", ACM Computing Surveys, Vol. 34, No. 2, pp. 263-311, June 2002. (pdf)
  • R. Nishtala, H. Fugal, S. Grimm, M. Kwiatkowski, H. Lee, H.C. Li, R. McElroy, M. Paleczny, D. Peek, P. Saab, D. Stafford, T. Tung, and V. Venkataramani, "Scaling Memcache at Facebook", Proc. of 10th USENIX Conference on Networked Systems Design and Implementation (NSDI'13), pp. 385-398, 2013. (pdf)

Sistemi Web geografici per content delivery

  • V.K. Adhikari, Y. Guo, F. Hao, M. Varvello, V. Hilt, M. Steiner, Z.-L. Zhang, "Unreeling Netflix: Understanding and improving multi-CDN movie delivery", Proc. of IEEE INFOCOM 2012, pp. 1620-1628, March 2012. (pdf)
  • B.M. Maggs and R.K. Sitaraman, "Algorithmic nuggets in content delivery", SIGCOMM Comput. Commun. Rev., July 2015. (pdf)
  • E. Nygren, R.K. Sitaraman, J. Sun, "The Akamai network: a platform for high-performance Internet applications", ACM SIGOPS Operating Systems Review, Vol. 44, No. 3, July 2010. (pdf)
  • R. Torres, A. Finamore, Jin Ryong Kim, M. Mellia, M.M. Munafo, S. Rao, "Dissecting video server selection strategies in the YouTube CDN", Proc. of IEEE 31 Int'l Conf. on Distributed Computing Systems (ICDCS '11), pp. 248-257, June 2011. (pdf)

Sistemi di Cloud storage

  • G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, W. Vogels, "Dynamo: Amazon's highly available key-value store", Proc. of the 21 ACM SIGOPS Symposium on Operating Systems Principles (SOSP '07), pp. 205-220, 2007. (pdf)
  • S. Ghemawat, H. Gobioff, S.-T. Leung, "The Google File System", Proc. of the 19th ACM SIGOPS Symposium on Operating Systems Principles (SOSP '03), 2003. (html)
  • H. Hu, Y. Wen, T.-S. Chua, X. Li, "Toward scalable systems for Big Data analytics: a technology tutorial", IEEE Access, Vol. 2, pp. 652-687, 2014. (html)

Data intensive computing and data stream processing

  • J. Dean and S. Ghemawat, "MapReduce: simplified data processing on large clusters", Proc. of 6th Symposium on Operating System Design and Implementation (OSDI 2004), Dec. 2004. (pdf)
  • K. Shvachko, S. Hairong Kuang, S. Radia, R. Chansler, "The Hadoop distributed file system", Proc. of IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST 2010), May 2010. (pdf)

Esempi thread POSIX

Argomento Codice Ultima modifica
Gestione dei pthread pthreads_management.zip 26/10/2016
Sincronizzazione dei pthread pthreads_synchro.zip 26/10/2016
Server TCP multithreaded pthreads_TCPserver.zip 27/10/2014

Esempi SUN RPC

Argomento Codice Ultima modifica
Square
(tratto da Stevens, "Network Programming Vol. 2")
square.zip 13/11/2014
Echo
echo.zip 13/11/2014
Average
(tratto da E. Petron, "Remote Procedure Calls")
avg.zip
13/11/2014
Remote directory listing
(tratto da "ONC+ Developers Guide")
rls.zip 9/11/2015

Esempi Java RMI

Argomento Codice Ultima modifica
Echo
echo_rmi.zip 16/11/2016
Compute engine
http://docs.oracle.com/javase/tutorial/rmi

Link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma provvisorio

Introduzione ai sistemi distribuiti
Introduzione al Cloud computing
Architetture per sistemi distribuiti
Processi e thread nei sistemi distribuiti
Virtualizzazione
Comunicazione nei sistemi distribuiti
Meccanismi di naming
Sincronizzazione nei sistemi distribuiti
Consistenza e replicazione nei sistemi distribuiti
Tolleranza ai guasti
Sistemi e servizi per content delivery
Architetture orientate ai servizi e microservice
Storage e database nel Cloud
Data intensive computing e data stream processing
Esempi di sistemi e servizi Cloud

Esami

Modalità di esame

Sono previste 2 modalità di esame:

  • A per l'esame da 9 CFU (immatricolati A.A. 2016/17),
  • B per l'esame da 9/10 CFU (immatricolati A.A. 2015/16 o precedenti).

Esame da 9 CFU (modalità A)
E' rivolto agli studenti immatricolati al primo anno della Laurea Magistrale nell'A.A. 2016/17 e agli studenti immatricolati in anni precedenti e che optano per il programma dell'A.A. 2016/17.
L'esame si compone di:

  • Progetto e relativa discussione.
  • Prova scritta sugli argomenti dell'intero corso (programma A.A. 2016/17); la prova scritta prevede domande a risposta aperta ed esercizi. Si raccomanda di sostenere la prova scritta prima del progetto.
  • Prova orale facoltativa sugli argomenti dell'intero corso (programma A.A. 2016/17).
In alternativa alla prova scritta, si terranno due prove scritte intermedie.
Se entrambe le prove intermedie saranno superate positivamente, verrà proposto un voto finale per la prova scritta. Non sarà possibile recuperare le prove intermedie in modo parziale.
Non ci sono vincoli sulla partecipazione alle prove (eccetto la prenotazione obbligatoria per le prove scritte).
Tuttavia, la partecipazione ad una prova scritta comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova scritta precedente.
E' possibile sostenere la prova orale facoltativa in un appello diverso da quello in cui si è sostenuto la prova scritta, purchè nella stessa sessione.
E' possibile sostenere la prova scritta e l'eventuale prova orale in una stessa sessione e posticipare la discussione del progetto ad un'altra sessione.

Esame da 9/10 CFU (modalità B)
E' rivolto agli studenti immatricolati al primo anno della Laurea Magistrale nell'A.A. 2015/16 o precedenti e che intendono sostenere l'esame in base al programma dell'A.A. in cui hanno frequentato il corso. Le modalità di esame sono analoghe a quelle della modalità A (eccetto il programma) ma non prevedono le prove intermedie.
In alternativa, tali studenti possono optare per la modalità A previa comunicazione alla docente.

Progetti

Per poter sostenere nell'A.A. 2016/17 l'esame di Sistemi Distribuiti e Cloud Computing entro venerdì 26/2/2017 devono essere comunicate via e-mail al docente le seguenti informazioni:
- nominativi ed indirizzi di e-mail dei componenti del gruppo;
- progetto scelto.
Nel caso in cui il numero di prenotazioni per il progetto scelto abbia raggiunto la soglia massima prevista, sarà necessario effettuare una nuova scelta tra i progetti ancora disponibili.
Eventuali modifiche relative al gruppo devono essere tempestivamente comunicate al docente e concordate con il docente.
Il progetto è valido solo per l'A.A. 2016/17 e e deve essere consegnato improrogabilmente entro il 29/9/2017.
La prova d'esame scritta deve essere superata entro la sessione autunnale 2016/17.

Per la realizzazione del progetto, è possibile usufruire del grant offerto da Amazon Web Service tramite il programma AWS Educate, a cui l'Università di Roma "Tor Vergata" ha aderito nel 2015. Per l'iscrizione al programma AWS Educate, si raccomanda di seguire le istruzioni fornite a lezione ed inviate via email agli studenti iscritti al progetto.

La consegna del progetto deve avvenire circa dieci giorni prima della data (da concordare con il docente) in cui si intende sostenere la discussione del progetto.
Ciascuno studente esporrà una presentazione individuale tramite lucidi di una parte del progetto (max 10 minuti per studente).
Tutti i componenti del gruppo devono sostenere la presentazione del progetto nella stessa data.

Progetto 1: Sistema di monitoraggio e controllo dell’illuminazione pubblica per Smart Cities
SDCC1617_progetto1.pdf
3 o 4 componenti per gruppo;
prenotazioni disponibili all'1/3/2017: 0 su 17.

Progetto 2: Sistema di auto-scaling proattivo
2 componenti per gruppo;
prenotazioni disponibili all'1/3/2017: 15 su 15.

Progetto 3: Sistema di storage collaborativo
prenotazioni disponibili all'1/3/2017: 15 su 15.

Progetto 4: Your Own Distributed System using Consensus Protocols
2 o 3 componenti per gruppo;
prenotazioni disponibili all'1/3/2017: 8 su 15.

Esami passati

Appelli

  • I prova intermedia
  • Mercoledì 7 dicembre 2016, ore 13:45 aula 1 edificio Didattica.
    Per la prenotazione, usare il servizio di prenotazione su Delphi entro sabato 3 dicembre.
    In caso di problemi con il servizio, inviarmi una e-mail entro il 3 dicembre, indicando nel subject [SDCC prenotazione I intermedia] e nel testo cognome, nome e numero di matricola.
    Testo e Risultati
  • II prova intermedia
  • Venerdì 3 febbraio 2017, ore 9:30 aula C2 edificio Didattica.
    Per la prenotazione, usare il servizio di prenotazione su Delphi entro lunedì 30 gennaio.
    In caso di problemi con il servizio, inviarmi una e-mail entro il 30 gennaio, indicando nel subject [SDCC prenotazione II intermedia] e nel testo cognome e nome e numero di matricola.
    Testo e Risultati
    Risultati finali delle prove intermedie
  • I appello sessione invernale
  • Prova scritta: martedì 14 febbraio 2017, ore 9:30 aula C5 edificio Didattica.
  • II appello sessione invernale
  • Prova scritta: giovedì 2 marzo 2017, ore 9:30 aula C5 edificio Didattica.
  • I appello sessione estiva
  • II appello sessione estiva
  • I appello sessione autunnale
  • II appello sessione autunnale

  •