Fundamentals of Distributed Systems

Faculteit | Science and Engineering |
Jaar | 2022/23 |
Vakcode | WMCS022-05 |
Vaknaam | Fundamentals of Distributed Systems |
Niveau(s) | master |
Voertaal | Engels |
Periode | semester II a |
ECTS | 5 |
Rooster | rooster.rug.nl |
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 |
|
||||||||||||||||||||||||
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 |
||||||||||||||||||||||||
Opmerkingen | |||||||||||||||||||||||||
Opgenomen in |
|