Fundamentals of Distributed Systems

Faculteit Science and Engineering
Jaar 2021/22
Vakcode WMCS022-05
Vaknaam Fundamentals of Distributed Systems
Niveau(s) master
Voertaal Engels
Periode semester II a

Uitgebreide vaknaam Fundamentals of Distributed Systems
Leerdoelen At the end of the course, the student is able to:
1) reproduce, explain, and relate central problems and approaches of distributed systems and corresponding algorithms.
2) show a deep understanding of fundamental distributed algorithms and programming paradigms. Students can explain their properties and they can demonstrate, analyze, and prove their behavior.
3) interpret models and abstractions of distributed systems and select appropriate mechanisms that allow to deal with communication delays and failures. The student can compare the suitability of algorithms for specific distributed systems scenarios.
4) explain limitations of distributed systems concepts for different system properties, e.g., for synchronous and asynchronous systems or in the context of different failure models.
5) relate findings of distributed systems principles to applicable and exemplary knowledge of current developments, e.g., in the context of blockchains, in-network computing, or data management.
Omschrijving Distributed systems are the key in order to have applications and services of computing systems implemented such they can ensure availability, scalability, reliability and extensibility. Services and applications are distributed over a collection of distinct computer systems whereas distributed systems concepts aim to hide the complexity of distribution. Nowadays, almost any IT-System, e.g., distributed databases, financial transactions, or IoT applications build on principles of distributed systems. This course aims to give an overview on the fundamentals of distributed systems. The topics addressed and the level of detail have been chosen in such a way that an understanding of the structuring principles as well as the basic concepts and procedures of today's distributed systems used in practice is obtained. This should enable students to analyze and evaluate even complex distributed systems in terms of functionality, operation and performance and, of course, to apply them.

Main Topics:
- Introduction to Distributed Systems: Definition, Classes, Architecture
- Communication: Message Passing, Rendezvous, Remote Procedure Call (RPC), Queued Message Processing
- Names and Name Services: Types of Names, Implementation Aspects; Examples: X.500, Domain Name System (DNS)
- Times and Clocks: Applications, Physical Clocks, Logical Clocks (Scalar, Vector)
- Global State: Snapshot Problem, Concepts, Snapshot Algorithm, Distributed Debugging
- Consensus Protocols and Variants, e.g., Transaction Processing and Blockchains
- Data Replication: Primary Copy, Majority Consensus, Weighted Voting, Update as soon as Possible
- Broadcast Algorithms: Reliable / FIFO / Causal / Atomic Broadcast, Timed Broadcast
Uren per week
Onderwijsvorm Hoorcollege (LC), Opdracht (ASM), Practisch werk (PRC), Werkcollege (T)
Toetsvorm Opdracht (AST), Practisch werk (PR), Presentatie (P), Schriftelijk tentamen (WE)
(Mandatory presence: Yes , For evaluation of programming assignments and labs, students are expected on demand to introduce their solutions to TAs in the respective tutorial slots.)
Vaksoort master
Coördinator Prof. Dr. B. Koldehofe
Docent(en) Prof. Dr. B. Koldehofe
Verplichte literatuur
Titel Auteur ISBN Prijs
Distributed Systems: Concepts And Design 5th 2017 G. F. Coulouris, J. Dillimore, T. Kindberg 978-9332575226 €  40,00
Distributed Systems 3.01 2017 M. van Steen, A. S. Tanenbaum 978-1543057386 €  35,00
Concurrency Control and Recovery in Database Systems 4.3 1987 P. Bernstein, V. Hadzilacos, N.Goodman 0-201-10715-5
Introduction to Reliable and Secure Distributed Programming
2 2011
C. Cachin, R. Guerraoui, L. Rodrigues 978-3-642-15259-7 €  50,00
Reliable Distributed Systems: Technologies, Web Services, and Applications 1 2006 K. Birman 9780387276014 €  45,00
Entreevoorwaarden Pre-Knowledge on fundamental aspects in computing science obtained for instance in a BSc-Program computing science, in particular
- Data structures and algorithms, Complexity Analysis
- Basic concepts of Programming Languages
- Basic knowledge on Computer Networks, Computer Architecture or Operating System Principles
Opgenomen in
Opleiding Jaar Periode Type
MSc Artificial Intelligence  (C - Elective Course Units) - semester II a keuze
MSc Computing Science: Software Engineering and Distributed Systems  (Guided choice course units) - semester II a keuze
MSc Courses for Exchange Students: AI - Computing Science - Mathematics - semester II a