Distributed and pervasive systems

A.Y. 2020/2021
Overall hours
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.
Course syllabus and organization

Single session

Lesson period
Second semester
In case the emergency situation extends to the second semester 2020/21, all classes will be online on the Zoom platform.

If necessary the final exam will also be online. The written exam will be given using Zoom for videoconferencing and Moodle for the test. The oral parts will be on Zoom.
Course syllabus
Introduction to Modern Distributed and Pervasive Systems
- distribution transparency, openness, and scalability
- consistency and replication
- types of distributed systems (cluster, grid , cloud, 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

L1) Development of pervasive distributed systems (Java, grpc, RESTful Web Services)
L2) Guided software project
Prerequisites for admission
Prerequisites for this course are experience in object oriented programming 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.
The main suggested textbook is:
Distributed Systems: Concepts and Design, 5/e, Coulouris, Dollimore, Kindberg & Blair, Addison-Wesley, 2012, ISBN-10: 0132143011
Assessment methods and Criteria
NOTE: non-Italian speaking students should contact the instructor by email before the course starts.
The evaluation is done in two parts:
Theory part: written final exam at the end of the course or oral exam. This part is about 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
send email for an appointment
Room 7021, via Celoria 18