Cloud Computing and Distributed Systems
Università Ca' Foscari di Venezia
Computer Science Course
Year 2020-2021
alla versione italiana

Teacher: S. Balsamo

CFU: 6

Goals | Program | Books | Slides | Advice | Examinations


Introduction to the design of distributed systems and cloud computing. Design, architecture and technologies. Cloud applications, quality of service and security. Architectural principles, interprocess communication, remote invocation and remote procedure call. Algorithms for synchronization, coordination, data sharing, resource allocation, consistency, fault tolerance. Replication, consistency and concurrency control in transactional systems. Case study. Peer to Peer Systems.


1. Introduction to distributed systems and cloud computing. Fudamental. Introduction to distributed systems and cloud computing. Distributed architectural models and their programming. Principles, key features, design choices and related issues. Types of distributed systems.

2. Communication. Client-server paradigm and IPC. Group communication. Multicast communication. Network virtualization.

3. Mechanisms of invocation and remote call. Remote Method Invocation (RMI). Remote Procedure Call (RPC). Types and semantics. Examples. Indirect commuication, publish-subscribe paradigm.

4. Fundamental cloud computing. Cloud computing design. Mechanisms and architectures. Models, technologies and security.

5. Cloud service and applications. Metrics for the quality of service. Service Oriented Architecture. Security in the cloud.

6. Distributed operating systems. Processes: allocation and scheduling, migration and load balancing. Deadlock. Allocation of processes in distributed systems. Operating system virtualization.

7. Distributed File System. Model file service and design issues. Case studies: NFS, AFS. Case study: Google File System.

8. Synchronization and coordination in distributed systems.. Algorithms for synchronization and coordination. Clock synchronization, mutual exclusion, election of a leader. Calculation of the global state. Causal ordering.

9. Shared data. Replication, consistency and transactions. Consistency models. Architectural models of replication. Transactions and concurrency control in distributed systems. Mobility in distributed systems.


G. Coulouris, J. Dollimore and T. Kindberg, "Distributed Systems: concepts and design", 5th edition, Addison Wesley Masson, 2012. pagina web

T. Erl, R. Puttini, Z. Mahmood, "Cloud Computing: Concepts, Technology and Architecture", Prentice-Hall, 2014.

Some other recommended reading List

M. van Steen, A.Tanenbaum, "Distributed Systems, Priciples and Paradigms", Pub. by Maarten van Steen, 2018, ISBN: 978-15-430573-8-6 (prev. Prentice Hall, 2002), link


N.B. Slide are not meant as textbook and do not substitute lectures; they are just a reference of part of the lessons. Their can be periodically updated. Their content does not cover all the program, they cannot be used in place of the textbook. They cannot be considered neither sufficient nor complete to prepare the examination.
Refer tothe textbook for the exam preparation.

Copy of the slides of previouos year are available on moodle - periodic updates available after the lectures

Classes during the acadic year 2019-2020 were on line from 4/3/2020. More information are available on moodle



During the course the student can present a relation on a specific topic, related to the program course, to be presented within the end of the course in the form of written and oral presentation. The topic of the presentation must be agreed with the teacher, and the presentation accompanied by a short report.

> time for presentation: about 20 min
> the relation is presented with: (1) a written report with references, to be delivered in printed version and sent in pdf within the day of presentation. (2) a presentation of at most 20 minutes.
Note: do not repeat topics already presented in class, and use an appropriate level of details.


A practical laboratory is planned, further information will be provided.
Students are invited to participate to the laboratory.

Calendar year 2019-2020
> 19/3/2019, on Line, h. 16.30-18.00
> 25/3/2019, on Line, h. 17.30-19.00
> 26/3/2019, on Line, h. 17.30-19.00
> 1/4/2019, on Line, h. 17.30-19.00

Laboratory on the internal mechanisms of Remote Method Invocation by reproducing a tiny version of the Java RMI library that will be implemented by students.
Main goals:
> designing strong-typed object stubs supporting subtyping and polymorphism
> understanding object serialization and networking primitives
> providing a generic recursive serialization algorithm by using reflection


The written exam can be substituted by two intermediate written test.
Students that pass both the intermediate test can substitute the wtitten exam.
Further information and calendar to be defined
Some exercises - other exercises

Exams results

Exam results:

2020: 15/1/2020 - 3/6/2020 - 18/6/2020 - 8/9/2020