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

Teacher: S. Balsamo
balsamo@unive.it

CFU: 6

Goals | Program | Books | Slides | Advice | Examinations

Goals

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.

Program

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.


Textbook

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

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


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


Slides

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

Notes

Seminars

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.

Info:
> 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.

Laboratory

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

Calendar year 2021-2022: 7-14-21-28/4/2022, Lab.3 h. 12.15-13.45
Laboratory on distributed programming, client-server architectures, RPC/RMI and cloud programming in AWS. Internal mechanisms of RMI: reproducing a tiny version of the Java RMI library that will be implemented by students.
Further information will be available on moodle


Exams

The written exam could be substituted by two intermediate written test.
Students that pass both the intermediate test can substitute the written exam.
Further information and calendar to be defined


First intermediate written test: 5 April 2022, h. 14.00 Aula B, further information available on moodle
Note: it is necessary to sign for the Test on moodle within 23/3/2022

Second intermediate written test: 6 June 2022, h. 10, Aula 1

Program First Written Test: topics from the program
1 (Introducion to distributed systems and cloud computing)
2 (IPC: RMI, RPC, indirect)
3 (Mechanisms for RMI, RPC and indirect communication)
6 (Distributed operating systems)
8 (Synchronization and coordination)<
Reference: [C2012] Cap: 1-2-3-4-5-6-7-14-15 -- [T2018] Cap 1-2-3-4-6
Note: it is necessary to sign for the Test on moodle

Program Second Written Test: topics
4 (Fondamentals Cloud computing)
5 (Cloud Service and applications)
7 (Distributed File Systems)
9 (Shared data: transactions, concurrency control, distributed transactions, replication and consistency. Mobility)
Note: The second intemediate test reserved only to those students with sufficient evaluation of the first intermediate test Some exercises - other exercises

Exams results

Exam results:

2022: 1/2/2022 - 6/6/2022 - Intermediate test: I 31/3/2021 - I and II 6/6/2022
2021: 8/9/2021 - 22/6/2021 - 7/6/2021 - 20/1/2021 - Intermediate test: I 31/3/2021, I and II 7/6/2021,