Verteilte Softwaresysteme

Verteilte Softwaresysteme

SWS 4
ECTS 5
Sprache(n) Deutsch (Standard)
Englisch
Lehrform SU mit Praktikum
Angebot in jedem Sommersemester
Aufwand

30 Präsenzstunden Vorlesung, 30 Präsenzstunden Praktikum, 45 Stunden Vor-/Nachbereitung des Praktikums, 45 Stunden Nachbereitung der Vorlesung und Prüfungsvorbereitung

Voraussetzungen

Grundlegende Programmierkenntnisse, Kenntnisse in verteilten Systemen und Netzwerken

Ziele

Die Studierenden erwerben fundierte Kenntnisse über die Grundlagen und Prinzipien verteilter Softwaresysteme. Sie lernen, verteilte Algorithmen zu verstehen, zu implementieren und deren Effizienz zu bewerten. Darüber hinaus entwickeln sie praktische Fähigkeiten in der Nutzung moderner Frameworks und Technologien für die Entwicklung verteilter Anwendungen.

Weitere Ziele umfassen:

  • Teamarbeit: Zusammenarbeit in Kleingruppen zur Lösung komplexer Aufgabenstellungen.
  • Projektmanagement: Einsatz moderner Entwicklungswerkzeuge wie Git und CI/CD-Pipelines.
  • Analytisches Denken: Analyse und Abstraktion komplexer Probleme sowie Entwicklung effizienter Lösungen.
Inhalt
  1. Grundlagen verteilter Systeme:
    • Eigenschaften verteilter Systeme (Kein globaler Zustand, keine zentrale Zeitordnung)
    • Herausforderungen wie Konsistenz, Fehlertoleranz und Synchronisation
  2. Verteilte Algorithmen:
    • Auswahlalgorithmen (z. B. Bully-Algorithmus, Ring-Algorithmus)
    • Konsensalgorithmen (z. B. Paxos, Raft)
    • Snapshots und globale Zustandsaufnahme (z.B. Chandy-Lamport-Algorithmus)
  3. Kommunikation und Middleware:
    • Asynchrone vs. synchrone Kommunikation
    • Message Passing und Protokolle (z. B. gRPC, NATS)
  4. Frameworks und Technologien:
    • Einführung in Proto.Actor für die Umsetzung des Actor-Modells
    • Nutzung von Docker für Containervirtualisierung
  5. Praktische Anwendungen:
    • Implementierung von Microservices-Architekturen
    • Entwicklung von verteilten Anwendungen nach dem Actor-Modell
  6. Erweiterte Themen:
    • Blockchain-Technologie und verteilte Konsensmechanismen
    • Skalierbare Protokolle wie SWIM
Medien und Methoden
  • Präsentationen und Folien
  • Live-Coding-Sessions
  • Praktische Übungen
  • Gruppenprojekte mit realitätsnahen Szenarien
Literatur

Wird während des Kurses bekannt gegeben; umfasst sowohl wissenschaftliche Artikel als auch technische Dokumentationen relevanter Frameworks.

Grundlagen finden sich beispielsweise in

  • G. Bengel: Grundkurs Verteilte Systeme, Springer Vieweg
  • A. Tanenbaum, M. Steen: Verteilte Systeme - Grundlagen und Paradigmen, Pearson Studium
  • P. Mandl: Masterkurs Verteilte Betriebliche Informationsssysteme, Vieweg-Teubner-Verlag
  • G. Bengel: Verteilte Systeme, Vieweg
  • M. Weber: Verteilte Systeme, Spektrum
Zuordnungen Curricula
SPO Fachgruppe Code ab Semester Prüfungsleistungen

IF Version 2019

Pflicht

IF-I-B-603

6

benotete schriftliche Prüfung 90 Minuten

IC Version 2019

WPF Informatik

IF-S-B-I25

4

benotete schriftliche Prüfung 90 Minuten

GN Version 2017

WPF Vertiefungsfächer

08-GN-WPFV-009

5

benotete schriftliche Prüfung 90 Minuten

IF Version 2023

Pflicht

IF-I-B-603

6

Eine der Folgenden, Festlegung siehe Studienplan:
Modularbeit
benotete schriftliche Prüfung 90 Minuten