| Integration of module into courses of studies: |
Informatik, M.Sc. (FSPO 2021): Kernfach Technische und Systemnahe Informatik
Informatik, M.Sc. (FSPO 2021): Vertiefungsfach Verteilte Systeme
Informatik, M.Sc. (FSPO 2022): Vertiefungsbereich Technische Informatik
Informatik, Lehramt Staatsexamen: Wahl
Künstliche Intelligenz, M.Sc. (FSPO 2021): Kernfach Technische und Systemnahe Informatik
Medieninformatik, M.Sc. (FSPO 2021): Kernfach Technische und Systemnahe Informatik
Medieninformatik, M.Sc. (FSPO 2021): Vertiefungsfach Verteilte Systeme
Medieninformatik, M.Sc. (FSPO 2022): Vertiefungsbereich Technische Informatik
Software Engineering, M.Sc. (FSPO 2021): Kernfach Technische und Systemnahe Informatik
Software Engineering, M.Sc. (FSPO 2021): Vertiefungsfach Verteilte und Eingebettete Systeme
Software Engineering, M.Sc. (FSPO 2022): Vertiefungsbereich Technische Informatik
Computational Science and Engineering, M.Sc.: Wahlpflichtmodul |
| Modes of learning and teaching: |
|
| Module authority: |
Prof. Dr.-Ing. Franz J. Hauck |
| Lecturer: |
Prof. Dr.-Ing. Franz J. Hauck |
| Language: |
Englisch |
| Turn / Duration: |
jedes Sommersemester / ein Semester |
| Requirements (contentual): |
Grundkenntnisse über Verteilte Systeme z.B. aus dem Modul Grundlagen Verteilter Systeme |
| Requirements (formal): |
- |
| Basis for: |
Masterarbeit im Bereich fehlertolerante Verteilte Systeme |
| Learning objectives: |
Fehlertoleranz ist ein Muss für kritische Systeme, aber auch nützlich für alle verteilten Softwaresysteme. In diesem Modul lernen Studierende mehrere Ansätze Fehler zu maskieren basierend auf Standard Hardware und Netzwerken durch den Einsatz spezieller verteilter Algorithmen. Studeierende können diese Ansätze beschreiben und erläutern sowie die Unterschiede zwischen ihnen identifizieren, insbesonder auch Vor- und Nachteile. Sie können beurteilen, welcher Ansatz und welche individuelle Konfiguration am besten für ein gegebenes Anwendungsszenario und ein gegebenes Fehlermodel geeignet ist. Studierende verstehen die darunterliegenden Mechanismen, z.B. Einigungsprotokolle, konfliktfreie replizierte Datentypen, Zustandssicherung und Zustandstransfer., auf denen die verschiedenen Ansätze aufbauen, einschließlich ihrer Randbedingungen und Voraussetzungen. Durch die präsentierten Fallbeispiele und praktischen Übungen erkennen Studierende wie diese Mechanismen zu einem lauffähigen fehlertoleranten System kombiniert werden können. |
| Content: |
* Terminologie, System- und Fehlermodelle, Randbedingungen, Architekturüberlegungen
* Konzepte und Ansätze für Redundanz, Fehlererkennung, Fehlererholung
* Zustandssicherung, Event Sourcing: Fallbeispiele, Überlegungen für die Praxis
* Replizierte Zustandsmaschinen: Einigung, deterministische Ausführung, deterministisches Scheduling, Fallbeispiele, Überlegungen für die Praxis
* Datengetriebene Replikation: k-aus-n Systeme, verteilter gemeinsamer Speicher, transaktionale Systeme, Fallbeispiele, Überlegungen für die Praxis
* Master-Slave-Replikation: Fehlererkennung, Aktualisierungstrategien, deterministische Ausführung, Fallbeispiele, Überlegungen für die Praxis
* Eventual Consistency: Master-Master-Replikation, CRDT, Fallbeispiele, Überlegungen für die Praxis
* Testen, Fehlerinjektion |
| Literature: |
* G. Coulouris, J. Dollimore, T. Kindberg, G. Blair: Distributed systems. Concepts and design. 5th ed., Pearson, 2012.
* P. Jalote: Fault tolerance in distributed systems. Prentice Hall, 1994.
* Various articles provided during the lecture |
| Grading procedure: |
mündliche Prüfung; keine Leistungsnachweise; Notenbonus bei erfolgreicher Übungsteilnahme (Modalitäten werden zu Beginn jeweils bekannt gegeben) |
| Estimation of effort: |
Präsenzzeit Vorlesung, Übung, Prüfung: 60h (2LP)
Selbststudium mit Nachbereitung der Vorlesung, Übungsaufgaben, Prüfungsvorbereitung: 120h (4LP)
Summe: 180h (6LP) |