Plan

Distributed Systems

(22 hours)

 

 

Overall goal:

Students understand the basics of how distributed systems work and are built, and can use distributed systems in their own research projects.

 

Part 1: What is a distributed system?

 

Structure of distributed systems

Distribution transparency

Openness

Dependability

Security

Scalability

 

Part 2: Classification of distributed system

 

High-performance distributed computing

Distributed information systems

Middleware and Enterprise Application Integration

Pervasive systems

Ubiquitous systems

Mobile computing

Sensor networks

 

Part 3: Architectures of distributed systems

 

Layered architecture

Service-oriented architectures

Publish-subscribe architectures

Middleware and distributed systems

Layered-system architectures

Structured peer-to-peer systems

Unstructured peer-to-peer systems

Super-peer networks

Cloud computing

Edge-server architecture

Blockchain architectures

 

Part 4: Introduction to parallel programming with Python

 

Processes, multitasking, and threads

The Abstract Interface: concurrent.futures

The Flexible Interface: threading and multiprocessing

Cooperative Multitasking

A Cooperative Web Crawler

 

Part 5: Processes

 

Threads and operating systems

Virtualization. Containers. Virtual machine and cloud computing

Client-server interaction. Servers and state

Object servers

Server clusters

Wide-area clusters

Code mobility

 

Part 6: Communication

 

Layered Protocols.RPC

Sockets

Messaging

Application-level multicasting

 

Part 7: Coordination

 

Physical clocks. Logical clocks. Vector clocks

Totally ordered multicast

Mutual exclusion

Token ring algorithm

ZooKeeper

Election algorithms

Gossip-based coordination

Secure gossiping

 

Part 8: Student Task

 

Create your own distributed system :

multiprocessor distributed computing systems,

or web pages,

or chatbots.

Presentation of mini-projects. Feedback and discussion

 

Literature

1. Maarten van Steen, M., & Tanenbaum, A. S. (2025). "Distributed Systems". 669 p.

2. Coulouris G., Dollimore J., Kindberg T., Blair D. Distributed Systems. Concepts and Design, Addison-Wesley, Munich, 5th Ed., 2012, 1063 p. ISBN 10: 0-273-76059-9

3. Johannes Ernesti, Peter Kaiser, Python 3, Rheinwerk Verlag GmbH, 2022, 1036 p. ISBN 978-3-8362-9131-6

4. MIT 6.824: Distributed Systems https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB

5. Distributed Programming: From Basics to Advanced Concepts

 https://dev.to/daviducolo/distributed-programming-from-basics-to-advanced-concepts-5h66

6. Kleppmann, M. (2017). "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems." O'Reilly Media.

7. Burns, B. (2018). "Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services." O'Reilly Media

Gesamtziel:
Die Studierenden verstehen die Grundlagen wissenschaftlicher Methoden und können diese in einem eigenen Forschungsprojekt anwenden.

Dieser Moodle-Raum dient zur Abstimmung und Vergabe der Projektarbeitsthemen an die wissenschaftlichen Betreuer