Informazioni in aggiornamento fino al 30/06/2026 CODICE 98460 ANNO ACCADEMICO 2026/2027 CFU 6 cfu anno 1 COMPUTER ENGINEERING 11965 (LM-32) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE IINF-05/A LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE 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. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI 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. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO 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. PREREQUISITI Object Oriented Programming in Java Computer Networks MODALITA' DIDATTICHE Lessons held in presence. PROGRAMMA/CONTENUTO 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 TESTI/BIBLIOGRAFIA Documnetation provided during the course and made available through Aulaweb: https://aulaweb.unige.it DOCENTI E COMMISSIONI PIERPAOLO BAGLIETTO Ricevimento: Personal appointment. Please send an email to ask and define it. CARLO CAVAZZONI LEZIONI INIZIO LEZIONI https://courses.unige.it/11160/p/students-timetable Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Oral discussion on the course program. Please send an email to ask for an apointment. MODALITA' DI ACCERTAMENTO Oral discussion on the course topics. Home work to be developed at the end of the lab activity.