Prof. Dr. Alexandra Mikityuk
HTW Berlin
Sommersemester 2026
Telefon: +49 30 5019-2664
Büro: Raum 308
2 SWS Vorlesung
10-11 Vorlesungen im Semester
Theorie + interaktive Elemente
2 SWS Übung
Semesterprojekt in Teams
Präsentation am Semesterende
Masterkurs - Sie arbeiten eigenständig an einem Projekt und präsentieren Ihre Ergebnisse!
"A distributed system is a system in which I cannot get any work done, because some machine I have never heard of has crashed."
-- Leslie Lamport, Turing Award 2013
Ein Verteiltes System besteht aus mehreren unabhängigen Computern/Prozessen, die mittels Nachrichten miteinander kommunizieren und dem Benutzer als ein einheitliches System erscheinen.
"Ein verteiltes System ist eine Ansammlung unabhängiger Computer, die den Benutzern wie ein einzelnes kohärentes System erscheinen."
-- A. Tanenbaum, M. van Steen: Distributed Systems, 2017
Eigener Speicher, eigene CPU, eigenes OS
Einheitliches, konsistentes Verhalten
Verteiltheit für Benutzer unsichtbar
1960-70er: Timesharing & Mainframes
1 Rechner für viele Benutzer. Batch-Verarbeitung, Terminal-Zugang.
1970er: ARPANET & erste Netzwerke
Paketvermittlung, TCP/IP, E-Mail. Grundstein für das Internet.
1980er: Personal Computer & LAN
1 Rechner pro Benutzer. Ethernet, Client-Server-Modell entsteht.
1990er: World Wide Web & Internet
HTTP, HTML, Browser. Viele Rechner pro Benutzer. Globale Vernetzung.
2005+: Cloud, IoT & Blockchain
Multicore, Sensornetze, Bitcoin (2009), dezentrale Netzwerke.
Heute: Web3, DeFi, Edge Computing, KI
Dezentrale Anwendungen, Smart Contracts, KI-Agenten, Federated Learning.
☁
AWS, Azure, Google Cloud
Millionen Server weltweit
⚙
Smart Home, Sensornetze
Milliarden vernetzte Geräte
☍
Bitcoin, Ethereum
Tausende Knoten, kein Server!
Blockchain ist ein perfektes Beispiel für ein verteiltes System: kein zentraler Server, Konsens zwischen Knoten, Fehlertoleranz, Replikation.
★
Ein zentraler Server
Alle Clients verbinden sich dorthin
Beispiel: Klassische Webserver, Datenbank-Server
Single Point of Failure
★★★
Mehrere unabhängige Server
Keine zentrale Koordination
Beispiel: DNS, E-Mail-System
Robuster, aber komplex
⋯⋯⋯
Alle Knoten gleichberechtigt
Gemeinsame Ressourcen
Beispiel: Blockchain, BitTorrent
Maximal fehlertolerant
🖥
Zentraler Server
Klare Rollenverteilung: Server bietet Dienste an, Clients nutzen sie
Einfache Verwaltung und Kontrolle
Einzelner Ausfallpunkt (SPOF)
HTTP/REST Datenbanken
🌐
Dezentrales Netzwerk
Alle Knoten sind gleichberechtigt (Peers)
Kein einzelner Ausfallpunkt
Vertrauen durch Kryptografie & Konsens
Blockchain BitTorrent
Achtung: "Transparenz" bedeutet hier nicht Offenheit, sondern Unsichtbarkeit — die Komplexität des verteilten Systems wird vor dem Benutzer verborgen.
Die Verteiltheit soll für den Benutzer unsichtbar sein:
Ortstransparenz
Zugriff ohne Kenntnis des Ortes
Zugriffstransparenz
Gleiche Operationen lokal & entfernt
Replikationstransparenz
Kopien sind unsichtbar für den Benutzer
Fehlertransparenz
Ausfälle einzelner Komponenten bleiben für den Benutzer unsichtbar — das System funktioniert trotzdem weiter
Migrationstransparenz
Verschiebung von Ressourcen bleibt unsichtbar
Nebenläufigkeitstransparenz
Gleichzeitiger Zugriff ohne Konflikte
Blockchain-Perspektive: Der Benutzer sendet eine Transaktion - er muss nicht wissen, welcher Knoten sie verarbeitet oder wie die Daten repliziert sind.
Das OSI-Referenzmodell beschreibt die Kommunikation in 7 Schichten. Für VS sind besonders die oberen Schichten relevant:
7
Anwendung
HTTP, REST, MQTT, gRPC
6
Darstellung
JSON, XML, TLS/SSL
5
Sitzung
Sessions, RPC
4
Transport
TCP, UDP - Sockets!
3
Netzwerk
IP, Routing
2
Sicherung
Ethernet, Wi-Fi
1
Physisch
Kabel, Funkwellen
Middleware = Software-Schicht zwischen Betriebssystem und Anwendung
Sie verbirgt die Heterogenität und Komplexität des verteilten Systems.
Remote Procedure Call - Aufruf entfernter Funktionen wie lokale
Kafka, RabbitMQ - asynchrone Nachrichtenübermittlung
REST, SOAP, gRPC - standardisierte Schnittstellen
Docker, Kubernetes - moderne Middleware-Plattformen
Blockchain als Middleware? Smart-Contract-Plattformen (Ethereum) bieten eine dezentrale Middleware für vertrauenswürdige Transaktionen.
Um verteilte Systeme zu verstehen, brauchen wir Grundlagen aus dem Betriebssystem:
Ein laufendes Programm mit eigenem Adressraum, Stack, Registern. Isoliert von anderen Prozessen.
Leichtgewichtiger Ausführungsstrang innerhalb eines Prozesses. Teilt Adressraum mit anderen Threads.
CPU-Zeit, Speicher, Dateien, Netzwerk-Sockets - werden vom OS verwaltet und den Prozessen zugeteilt.
Inter-Process Communication: Pipes, Shared Memory, Sockets - Prozesse müssen kommunizieren können!
Jeder Prozess befindet sich zu jedem Zeitpunkt in einem von drei Zuständen:
(Running)
CPU führt gerade Befehle dieses Prozesses aus
Nur 1 Prozess pro CPU-Kern
(Ready)
Könnte rechnen, wartet aber auf CPU-Zuteilung
Scheduler wählt aus
(Blocked)
Wartet auf ein Ereignis (I/O, Netzwerk, Nachricht)
Typisch in VS!
In verteilten Systemen ist der Zustand "blockiert" besonders häufig: Prozesse warten auf Nachrichten aus dem Netzwerk.
Milliarden von Geräten kommunizieren über Netzwerke: Sensoren, Aktoren, eingebettete Systeme.
MQTT CoAP LoRaWAN
Drahtlose Sensorknoten erfassen Umgebungsdaten. Stark ressourcenbeschränkt (Energie, Speicher, Bandbreite).
IoT + Blockchain: Dezentrale Identität und Datenintegrität für Sensordaten
"The most profound technologies are those that disappear."
-- Mark Weiser, 1991
Allgegenwärtiges Rechnen: Computer verschmelzen mit der Umgebung und werden unsichtbar.
Smartphones, Wearables, Smart Environments
Durchdringendes Rechnen: Eingebettete Systeme in Alltagsgegenständen, die miteinander kommunizieren.
Context-Awareness, adaptive Systeme
Herausforderung: Wie organisiert man Milliarden unsichtbarer, verteilter Geräte? Verteilte Systeme liefern die Antwort!
Im Laufe des Semesters werden wir diese Technologien kennenlernen:
Direkte Netzwerkkommunikation (TCP/UDP)
Nebenläufige Programmierung innerhalb eines Prozesses
Web-Schnittstellen - das Rückgrat moderner Anwendungen
Publish/Subscribe - IoT & Echtzeit-Nachrichtenübermittlung
Wir werden diese Konzepte in den Vorlesungen interaktiv erarbeiten!
🖥
Zentraler Server
Ein Server, viele Clients
Einzelner Ausfallpunkt (SPOF)
Vertrauen in den Betreiber
🌐
Dezentrales Netzwerk
Alle Knoten sind gleichberechtigt
Kein einzelner Ausfallpunkt
Vertrauen durch Kryptografie & Konsens
Blockchain vereint alle Kernkonzepte verteilter Systeme:
Nebenläufigkeit
Tausende Knoten verarbeiten Transaktionen parallel
Konsens
Wie einigen sich Knoten ohne zentrale Autorität?
P2P-Kommunikation
Nachrichten verbreiten sich im Gossip-Protokoll
Fehlertoleranz
Byzantinische Fehlertoleranz - das ultimative Problem
Blockchain wird unser roter Faden sein, an dem wir VS-Konzepte veranschaulichen!
A) Prozesse kommunizieren über Nachrichten
B) Komponenten können unabhängig ausfallen
C) Es gibt immer eine globale, synchrone Uhr
D) Nebenläufigkeit der Prozesse
A) Der Benutzer kann sehen, wo alle Server stehen
B) Der Benutzer greift auf Ressourcen zu, ohne deren physischen Standort zu kennen
C) Alle Daten werden am selben Ort gespeichert
D) Der Ort des Clients bestimmt die Server-Auswahl
VL 1: Einführung in Verteilte Systeme Heute
VL 2-3: Prozesse, Threads & Nebenläufigkeit
VL 4-5: Interprozesskommunikation & Socket-Programmierung
VL 6: Kommunikationsmodelle & Synchronisation
VL 7-8: Web-Technologien: HTTP, REST, Datenformate
VL 9: MQTT & Publish/Subscribe
VL 10: Blockchain als Verteiltes System: Konsens, P2P & Smart Contracts
VL 11: Zusammenfassung & Projektpräsentationen
Statt klassischer Übungen: Sie entwickeln ein eigenes verteiltes System!
2-3 Personen pro Team
Eigenständige Projektplanung
Am Semesterende
Demo + kurzer Vortrag
Details & Projektthemen werden in der ersten Übung besprochen!
Verteilter Messenger mit Sockets, Threads und REST-API
Sockets Threads
Sensordaten per MQTT sammeln und live visualisieren
MQTT IoT
Eigene Blockchain mit P2P-Netzwerk und Konsens-Algorithmus
P2P Konsens
Verteilte Webanwendung mit REST, Docker und Load Balancing
REST Docker
Suchmaschine auf mehreren Knoten mit verteiltem Index
MapReduce
Eigene Ideen sind willkommen - Abstimmung mit der Dozentin
Kreativität
✓ Definition verteilter Systeme (Tanenbaum, Lamport)
✓ Historische Entwicklung
✓ Eigenschaften & Transparenz
✓ Client-Server vs. P2P
✓ Middleware-Konzepte
✓ OSI-Modell & Netzwerk-Grundlagen
✓ Prozesse, Threads & Zustände
✓ IoT, Ubiquitous Computing
✓ Blockchain als roter Faden
✓ Kommunikationsparadigmen
Nächste Woche: Prozesse, Threads & Nebenläufigkeit
→ A. Tanenbaum, M. van Steen: Distributed Systems, Prentice-Hall
→ A. Tanenbaum, M. van Steen: Verteilte Systeme, Pearson Studium
→ Coulouris, Dollimore, Kindberg: Verteilte Systeme: Konzepte und Design, Pearson
→ R. Oechsle: Parallele und verteilte Anwendungen in Java, Hanser
→ G. Bengel: Grundkurs Verteilte Systeme, Vieweg
→ A. Schill, T. Springer: Verteilte Systeme, Springer
→ A. Antonopoulos: Mastering Bitcoin & Mastering Ethereum
Kontakt:
Prof. Dr. Alexandra Mikityuk
Telefon: +49 30 5019-2664
Büro: Raum 308
Willkommen im Kurs!