Distributed systems
Teacher |
Marco Peressotti
https://marcoperessotti.com/ |
Period |
Spring 2024 |
ECTS |
5 credits
|
Code |
DM883
(https://odin.sdu.dk/sitecore/index.php?a=fagbesk&id=95542&listid=1768&lang=en) |
Office hours |
Open door. |
Summary
The course aims to provide students with the foundations and tools for the
design and implementation of distributed systems. For this purpose, the course
is organised into three main parts:
- The first covers architectural aspects of distributed systems by analysing
the main paradigms and patterns.
- The second covers communication models that can be adopted in these
distributed systems and the corresponding middleware solutions.
- The third deals with the main problems that commonly arise in distributed
programming, such as achievement of consensus, detection of failures and
deadlocks, resource management and replication, by providing adequate
techniques and algorithmic solutions.
In relation to the competence profile of the degree it is the explicit focus of
the course to:
- Give the competence to: plan and carry out scientific projects at a high
professional level, including managing work and development situations that
are complex, unpredictable, and require new solutions.
- Give skills to: describe, analyse, and solve advanced computational
problems using the learned models; develop new variants of the methods
learned.
- Give knowledge and understanding of: a variety of specialized models and
methods developed in computer science, based on the highest international
research, including topics from the subject's research front; a scientific
basis to reflect on the subject area and to identify scientific issues.
Selected topics
The following main topics are contained in the course:
- Logical time and global state in distributed systems.
- Communication paradigms, message ordering, and group communication.
- Distributed coordination and shared memory.
- Consensus and agreement in distributed systems.
- Replication, consistency, and fault tolerance.
- Decentralised and peer-to-peer architectures.