Distributed and Pervasive Systems

A.Y. 2024/2025
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
English
Learning objectives
The objective of this course is to illustrate the foundations of modern distributed systems and their extension to pervasive systems obtained by including smart objects, IOT, sensors and actuators as system nodes. In addition to classical topics like transparency, synchronization and distributed consensus, the course covers sensor data management techniques and context-awareness principles. A second objective is to provide a technological view of the topic describing the distributed systems that are behind the current cloud and edge computing offering and guiding the students in the design and implementation of a distributed system.
Expected learning outcomes
The student will learn the main problems involved in the design and development of complex distributed systems like Cloud, Edge and DLT systems. The student will also be able to design distributed systems handling sensor data streams. The student will also have a hands-on experience through a software project.
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Responsible
Lesson period
Second semester
Course syllabus
Introduction to Distributed and Pervasive Systems
- distribution transparency, openness, and scalability
- consistency and replication
- types of distributed systems (cluster, cloud, edge, mobile, pervasive, ...)

Part 1: Distributed Systems
Distributed system architectures
- Centralized architecture: client-server
- Distributed decentralized architectures: Peer-to-peer systems
-- Requirements for P2P middleware
-- P2P Overlay routing
Interprocess Communication
- Models of communication
- Message-oriented communication
-Remote Procedure Call and Remote Object Invocation
- Stream-oriented communication
Time and Synchronization
- Phisical clocks synchronization
- Logical clocks
- Election algorithms
Consensus problem and Distributed Ledger Technology


Part 2: Pervasive Systems
Types of pervasive systems
Sensor data management
Context-awareness and adaptivity

Part3. Privacy Aspects in Pervasive Systems

Laboratory
L1) Development of pervasive distributed systems (gRPC, MQTT, RESTful Web Services)
L2) Guided software project
Prerequisites for admission
Prerequisites for this course are good experience in object oriented programming (this is a strict requirement for being able to tackle the project) and the notions normally acquired in introductory courses on computer architecture, networking, and operating systems.
Teaching methods
Frontal lectures, industrial seminars, and computer laboratory with guidance to the project development.
Teaching Resources
Slides and links to online resources for each topic can be found on the course Web site available at https://myariel.unimi.it/.
The main suggested textbook is:
M. van Steen and A.S. Tanenbaum, Distributed Systems, 4th ed.,
distributed-systems.net, 2023.
Assessment methods and Criteria
The evaluation is done in two parts:
Theory part: written final exam at the end of classes or oral exam. The exam concerns all the topics covered in the course. The written exam is made of multiple choice and open questions one of which may be an exercise. Grades are between 0 and 32 with 18 as the minimum to pass.

Practical part: software project. The project is assigned during the course and has one year validity. It should be done individually and can be handed in only when the student has already passed the theory part. This can happen even in the same day of the theory or in one of the following exam dates in the same academic year. Grades are between 0 and 32 with 18 as the minimum to pass. The final grade is the arithmetic average of the grades of the two parts with any grade above 30 registered as '30 with honour'.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor: Bettini Claudio
Shifts:
Turno
Professor: Bettini Claudio
Professor(s)
Reception:
send email for an appointment
Room 7021, via Celoria 18