Information updated until 30/06/2026 CODE 98460 ACADEMIC YEAR 2026/2027 CREDITS 6 cfu anno 1 COMPUTER ENGINEERING 11965 (LM-32) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR IINF-05/A LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW The course provides the student with the technical and methodological tools to understand and describe the characteristics, functions and interactions of a Distributed Software Platforms. AIMS AND CONTENT LEARNING OUTCOMES Software Platforms is a fundamental module in the software development path. The development of complex software systems does not only require proficency in programming but also the knowledge of advanced models, paradigms and tools. Software Platforms describes the models, the paradigms and the tools which support Web Applications, Web Services and Microservices, and introduces the evolution toward serverless computing. AIMS AND LEARNING OUTCOMES The course aims to provide students with a comprehensive understanding of the principles upon which the Internet and modern software platforms are based, with particular emphasis on their architecture, algorithms, communication models, and design methodologies. The course explores how distributed software platforms are conceived, implemented, and managed in order to support the requirements of contemporary applications, including scalability, reliability, fault tolerance, consistency, availability, and performance in large-scale networked environments. The course introduces the characterization of distributed software platforms, analyzing their defining properties, architectural models, and the challenges associated with concurrency, heterogeneity, decentralization, transparency, and partial failures. Students will study the mechanisms that allow geographically distributed software components to cooperate efficiently while maintaining correctness and synchronization across dynamic and potentially unreliable networks. A major focus of the course concerns the coordination of distributed softare platforms, including inter-process communication, synchronization mechanisms, and event ordering strategies. Physical and logical clock synchronization techniques are presented to illustrate how distributed systems maintain temporal consistency and causal relationships among events occurring on different nodes. The course also examines distributed mutual exclusion algorithms and resource coordination protocols used to regulate access to shared resources in decentralized environments. Students will further explore election algorithms and distributed coordination protocols designed to support leader selection, consensus, fault detection, and agreement in distributed infrastructures. Different consistency models for distributed systems are analyzed in depth, including both data-centric and client-centric consistency approaches, replication models, caching techniques, and consistency protocols that balance performance and correctness in replicated environments. The theoretical concepts introduced throughout the course are complemented by the analysis of relevant industrial and technological case studies. These include permissioned blockchain platforms such as Hyperledger Fabric, large-scale distributed storage and computation infrastructures developed by Google, in-memory distributed data store architectures for high-performance applications, and collaborative online productivity platforms supporting real-time synchronization and multi-user interaction. By the end of the course, students will acquire the ability to understand, analyze, and evaluate distributed architectures and protocols, as well as design and reason about distributed solutions capable of addressing the demands of modern Internet-scale applications and cloud-based computing environments. PREREQUISITES Object Oriented Programming in Java Computer Netwiorks TEACHING METHODS Lessons held in presence. SYLLABUS/CONTENT 1. Distributed Software Platforms characterization 2. Coordination of distributed Software Platforms Physical and logical clock synchronization Distributed mutual exclusion Election algorithms and protocols 3. Consistency of distributed Software Platforms Data centric systems Client centric systems Consistency protocols 4. Resilience of distributed Software Platforms 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 Confidential Computing and software attestation RECOMMENDED READING/BIBLIOGRAPHY Documentation provided during the course and made available through Aulaweb: https://aulaweb.unige.it TEACHERS AND EXAM BOARD PIERPAOLO BAGLIETTO Ricevimento: Personal appointment. Please send an email to ask and define it. CARLO CAVAZZONI 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 on the course program. Please send an email to ask for an apointment. ASSESSMENT METHODS Oral discussion on the course topics. Home work to be developed at the end of the lab activity.