← Startseite

Verteilte Systeme

Vorlesung 1: Einführung in Verteilte Systeme

Prof. Dr. Alexandra Mikityuk

HTW Berlin

Sommersemester 2026

90 Minuten Masterkurs Blockchain als roter Faden

Kontakt

Telefon: +49 30 5019-2664

Büro: Raum 308

Kursorganisation

Vorlesung

2 SWS Vorlesung

10-11 Vorlesungen im Semester

Theorie + interaktive Elemente

Übung / Projekt

2 SWS Übung

Semesterprojekt in Teams

Präsentation am Semesterende

Masterkurs - Sie arbeiten eigenständig an einem Projekt und präsentieren Ihre Ergebnisse!

Was sind Verteilte Systeme?

"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.

Definition nach Tanenbaum

"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

Unabhängig

Eigener Speicher, eigene CPU, eigenes OS

Kohärent

Einheitliches, konsistentes Verhalten

Transparent

Verteiltheit für Benutzer unsichtbar

Historische Entwicklung

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.

Verteilte Systeme sind überall

Cloud Computing

AWS, Azure, Google Cloud

Millionen Server weltweit

Internet der Dinge

Smart Home, Sensornetze

Milliarden vernetzte Geräte

Blockchain

Bitcoin, Ethereum

Tausende Knoten, kein Server!

Blockchain ist ein perfektes Beispiel für ein verteiltes System: kein zentraler Server, Konsens zwischen Knoten, Fehlertoleranz, Replikation.

Zentralisiert vs. Dezentral vs. Verteilt

Zentralisiert

Ein zentraler Server

Alle Clients verbinden sich dorthin

Beispiel: Klassische Webserver, Datenbank-Server

Single Point of Failure

Dezentralisiert

★★★

Mehrere unabhängige Server

Keine zentrale Koordination

Beispiel: DNS, E-Mail-System

Robuster, aber komplex

Verteilt (P2P)

⋯⋯⋯

Alle Knoten gleichberechtigt

Gemeinsame Ressourcen

Beispiel: Blockchain, BitTorrent

Maximal fehlertolerant

Client-Server vs. Peer-to-Peer

Client-Server

🖥

Zentraler Server

Klare Rollenverteilung: Server bietet Dienste an, Clients nutzen sie

Einfache Verwaltung und Kontrolle

Einzelner Ausfallpunkt (SPOF)

HTTP/REST Datenbanken

Peer-to-Peer (P2P)

🌐

Dezentrales Netzwerk

Alle Knoten sind gleichberechtigt (Peers)

Kein einzelner Ausfallpunkt

Vertrauen durch Kryptografie & Konsens

Blockchain BitTorrent

Eigenschaften Verteilter Systeme

Kernmerkmale

  • Nebenläufigkeit - Prozesse laufen gleichzeitig
  • Keine globale Uhr - Synchronisierung nötig
  • Unabhängige Ausfälle - Teile können crashen
  • Nachrichtenaustausch - Kommunikation via Netzwerk

Und in der Blockchain?

  • Nebenläufigkeit - Tausende Knoten gleichzeitig
  • Keine globale Uhr - Block-Zeitstempel stattdessen
  • Ausfälle - Knoten gehen offline, Netzwerk läuft weiter
  • Nachrichten - Transaktionen = Nachrichten

Vorteile & Herausforderungen

Vorteile

  • Gemeinsame Ressourcennutzung (Drucker, Dateien, Rechenleistung)
  • Höhere Verfügbarkeit durch Replikation
  • Skalierbarkeit - einfach erweiterbar
  • Parallele Verarbeitung - mehr Leistung
  • Fehlertoleranz durch Redundanz

Herausforderungen

  • Netzwerk-Verzögerungen (Latenz)
  • Konsistenz der Daten
  • Sicherheit & Vertrauen
  • Komplexe Fehlerbehandlung
  • Synchronisation

Transparenzeigenschaften

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.

Rechnernetze: OSI-Modell im Überblick

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-Konzepte

Middleware = Software-Schicht zwischen Betriebssystem und Anwendung

Sie verbirgt die Heterogenität und Komplexität des verteilten Systems.

RPC / RMI

Remote Procedure Call - Aufruf entfernter Funktionen wie lokale

Message Broker

Kafka, RabbitMQ - asynchrone Nachrichtenübermittlung

Web Services

REST, SOAP, gRPC - standardisierte Schnittstellen

Container / Orchestrierung

Docker, Kubernetes - moderne Middleware-Plattformen

Blockchain als Middleware? Smart-Contract-Plattformen (Ethereum) bieten eine dezentrale Middleware für vertrauenswürdige Transaktionen.

Betriebssystem-Grundlagen für VS

Um verteilte Systeme zu verstehen, brauchen wir Grundlagen aus dem Betriebssystem:

Prozess

Ein laufendes Programm mit eigenem Adressraum, Stack, Registern. Isoliert von anderen Prozessen.

Thread

Leichtgewichtiger Ausführungsstrang innerhalb eines Prozesses. Teilt Adressraum mit anderen Threads.

Ressourcen

CPU-Zeit, Speicher, Dateien, Netzwerk-Sockets - werden vom OS verwaltet und den Prozessen zugeteilt.

IPC

Inter-Process Communication: Pipes, Shared Memory, Sockets - Prozesse müssen kommunizieren können!

Prozesszustände

Jeder Prozess befindet sich zu jedem Zeitpunkt in einem von drei Zuständen:

Rechnend

(Running)

CPU führt gerade Befehle dieses Prozesses aus

Nur 1 Prozess pro CPU-Kern

Rechenbereit

(Ready)

Könnte rechnen, wartet aber auf CPU-Zuteilung

Scheduler wählt aus

Blockiert

(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.

IoT & Sensornetze

Internet of Things (IoT)

Milliarden von Geräten kommunizieren über Netzwerke: Sensoren, Aktoren, eingebettete Systeme.

MQTT CoAP LoRaWAN

Sensornetze

Drahtlose Sensorknoten erfassen Umgebungsdaten. Stark ressourcenbeschränkt (Energie, Speicher, Bandbreite).

Anwendungen

  • Smart Home & Gebäude
  • Industrie 4.0 / Smart Factory
  • Umweltüberwachung
  • Gesundheitsmonitoring
  • Autonome Fahrzeuge

IoT + Blockchain: Dezentrale Identität und Datenintegrität für Sensordaten

Ubiquitous & Pervasive Computing

"The most profound technologies are those that disappear."

-- Mark Weiser, 1991

Ubiquitous Computing

Allgegenwärtiges Rechnen: Computer verschmelzen mit der Umgebung und werden unsichtbar.

Smartphones, Wearables, Smart Environments

Pervasive Computing

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!

Wie kommunizieren verteilte Systeme?

Im Laufe des Semesters werden wir diese Technologien kennenlernen:

Sockets

Direkte Netzwerkkommunikation (TCP/UDP)

Threads

Nebenläufige Programmierung innerhalb eines Prozesses

REST / HTTP

Web-Schnittstellen - das Rückgrat moderner Anwendungen

MQTT

Publish/Subscribe - IoT & Echtzeit-Nachrichtenübermittlung

Wir werden diese Konzepte in den Vorlesungen interaktiv erarbeiten!

Blockchain = Verteiltes System in Reinform

Klassisches Client-Server

🖥

Zentraler Server

Ein Server, viele Clients

Einzelner Ausfallpunkt (SPOF)

Vertrauen in den Betreiber

Blockchain / P2P

🌐

Dezentrales Netzwerk

Alle Knoten sind gleichberechtigt

Kein einzelner Ausfallpunkt

Vertrauen durch Kryptografie & Konsens

Warum schauen wir uns Blockchain an?

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!

Quiz 1

Was ist KEIN Merkmal eines verteilten Systems?

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

Quiz 2

Was beschreibt Ortstransparenz in einem verteilten System?

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

Kursüberblick: Unser Fahrplan

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

Semesterprojekt

Statt klassischer Übungen: Sie entwickeln ein eigenes verteiltes System!

Teamarbeit

2-3 Personen pro Team

Eigenständige Projektplanung

Präsentation

Am Semesterende

Demo + kurzer Vortrag

Details & Projektthemen werden in der ersten Übung besprochen!

Mögliche Projektideen

Chat-System

Verteilter Messenger mit Sockets, Threads und REST-API

Sockets Threads

IoT-Dashboard

Sensordaten per MQTT sammeln und live visualisieren

MQTT IoT

Mini-Blockchain

Eigene Blockchain mit P2P-Netzwerk und Konsens-Algorithmus

P2P Konsens

Microservices

Verteilte Webanwendung mit REST, Docker und Load Balancing

REST Docker

Verteilte Suche

Suchmaschine auf mehreren Knoten mit verteiltem Index

MapReduce

Ihr eigenes Thema!

Eigene Ideen sind willkommen - Abstimmung mit der Dozentin

Kreativität

Zusammenfassung

Was Sie heute gelernt haben:

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

Literatur

Hauptliteratur:

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

Weiterführend:

R. Oechsle: Parallele und verteilte Anwendungen in Java, Hanser

G. Bengel: Grundkurs Verteilte Systeme, Vieweg

A. Schill, T. Springer: Verteilte Systeme, Springer

Blockchain:

A. Antonopoulos: Mastering Bitcoin & Mastering Ethereum

Vielen Dank!

Fragen?

Kontakt:

Prof. Dr. Alexandra Mikityuk

Telefon: +49 30 5019-2664

Büro: Raum 308

Willkommen im Kurs!

1 / 29