87474 - DISTRIBUTED SYSTEMS

Anno Accademico 2025/2026

  • Docente: Andrea Omicini
  • Crediti formativi: 6
  • SSD: ING-INF/05
  • Lingua di insegnamento: Inglese
  • Moduli: Andrea Omicini (Modulo 1) Giovanni Ciatto (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Cesena
  • Corso: Laurea Magistrale in Ingegneria e scienze informatiche (cod. 6699)

Conoscenze e abilità da conseguire

At the end of the course, students got acquainted with the fundamental issues of distributed systems, the computational models capturing their essence, and the technologies currently helping facing them in the most systematic and effective way. In particular, students become familiar with the fittest solutions, technologies, architectures, and methodologies to design distributed systems, and is capable of devising out the most critical aspects of distributed systems coming from physical distribution determining the most proper methodological approaches selecting the fittest technologies for implementing the solutions detected

Contenuti

  • Case Studies
    • The CAP Theorem. Availability, Consistency, Failure in Distributed Systems
    • The Problem of Consensus in Distributed Systems
    • Distributed Ledger Technology. Blockchain as Middleware
    • Representational State Transfer (ReST)
    • Logical Clocks
    • Simple Agents in JADE
    • Coordination in Linda
    • Code Mobility
  • General Issues of Distributed Systems
    • Why Distributed Systems?
    • Replication & Consistency in Distributed Systems
    • Dependability in Distributed Systems
    • Roots of Distributed Systems. Computation in Space & Time
    • Definitions & Goals for Distributed Systems
    • Sorts of Distributed Systems
    • Modelling Distributed Systems. Software & System Architectures
    • Modelling Distributed Systems. Process Algebra
    • Computing with Time
    • Agents for Distributed Systems
    • Coordination of Distributed Systems
    • Computing with Space
  • Technologies for Distributed Systems
    • Infrastructural components and interaction patterns for distributed systems
    • Tools and diagrams for distributed systems modelling
    • Basic mechanisms for distributed systems
    • Communication mechanisms (stream- and packet-based interaction with sockets) in Python
    • Data presentation, serialization and deserialization: tools and technologies
    • Anatomy of Remote Procedure Calls
    • Case study: guided design and implementation of a distributed system from scratch

Testi/Bibliografia

The bibliography is made available through the course web site.

Metodi didattici

  • Lessons with slides
  • Examples discussed and built by the teachers
  • Lab activity

Modalità di verifica e valutazione dell'apprendimento

  • Development of an individual/group project involving the design and prototyping of a distributed system (software+report)
  • Presentation and discussion of the aforementioned project

Strumenti a supporto della didattica


Link ad altre eventuali informazioni

https://apice.unibo.it/xwiki/bin/view/Courses/Series/Ds/

Orario di ricevimento

Consulta il sito web di Andrea Omicini

Consulta il sito web di Giovanni Ciatto

SDGs

Istruzione di qualità Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.