| Integration of module into courses of studies: |
Informatik, M.Sc.: Kernfach Technische und Systemnahe Informatik
Informatik, M.Sc.: Vertiefungsfach Verteilte Systeme
Informatik, Lehramt Staatsexamen: Wahl
Medieninformatik, M.Sc.: Kernfach Technische und Systemnahe Informatik
Medieninformatik, M.Sc.: Vertiefungsfach Verteilte Systeme
Software Engineering, M.Sc.: Kernfach Technische und Systemnahe Informatik
Software Engineering, M.Sc.: Vertiefungsfach Verteilte und Eingebettete Systeme
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) |