CODE 86799 ACADEMIC YEAR 2025/2026 CREDITS 6 cfu anno 2 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 1° Semester OVERVIEW The course provides the student with the technical and methodological tools to understand and describe the characteristics, functions and interactions of a Distributed System. AIMS AND CONTENT LEARNING OUTCOMES The course aims to provide an understanding of the principles on which the Internet and other distributed systems are based, their architecture, algorithms and design, and how they meet the demands of contemporary distributed applications, including the following topics: Distributed systems characterization; Coordination of distributed systems; Physical and logical clock synchronization; Distributed mutual exclusion; Election algorithms and protocols; Consistency of distributed systems; Data centric systems; Client centric systems; Consistency protocols; Resilience of distributed systems; Distributed process pooling and resilience; Reliable distributed communication services; Distributed operation commit; Recovery of faulty systems; Case studies: Hyperledger permissioned blockchains, Google distributed storage and computation, In memory Distributed Data Store, Office online collaboration platforms. AIMS AND LEARNING OUTCOMES The course aims to provide an understanding of the principles on which the Internet and other distributed systems are based, their architecture, algorithms and design, and how they meet the demands of contemporary distributed applications, including the following topics: Distributed systems characterization; Coordination of distributed systems; Physical and logical clock synchronization; Distributed mutual exclusion; Election algorithms and protocols; Consistency of distributed systems; Data centric systems; Client centric systems; Consistency protocols; Resilience of distributed systems; Distributed process pooling and resilience; Reliable distributed communication services; Distributed operation commit; Recovery of faulty systems; Case studies: Hyperledger permissioned blockchains, Google distributed storage and computation, In memory Distributed Data Store, Office online collaboration platforms. PREREQUISITES Software platforms course. TEACHING METHODS Lessons held in presence. SYLLABUS/CONTENT 1. Distributed systems characterization 2. Coordination of distributed systems Physical and logical clock synchronization Distributed mutual exclusion Election algorithms and protocols 3. Consistency of distributed systems Data centric systems Client centric systems Consistency protocols 4. Resilience of distributed systems Distributed process pooling and resilience Reliable distributed communication services Distributed operation commit Recovery of faulty systems 5. Case studies Hyperledger platform for permissioned blockchains Office/Spreadsheet online collaboration platform Kubernetes platform for the management of containerized workloads and services RECOMMENDED READING/BIBLIOGRAPHY Material provided during the course and made available through Aulaweb: https://2024.aulaweb.unige.it/course/view.php?id=2625 TEACHERS AND EXAM BOARD PIERPAOLO BAGLIETTO Ricevimento: Personal apointment. Please contact the teacher by email. MASSIMO MARESCA Ricevimento: At the end of the lectures in the first semester Upon appointment in the rest of the year LESSONS LESSONS START https://courses.unige.it/11160/p/students-timetable Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION Oral discussion. Please send an email to ask for an appointment. ASSESSMENT METHODS Oral discussion on the course topics. FURTHER INFORMATION Home work to be developed at the end of the lab activity.