Fault-tolerant Distributed Systems - FTDS

Sommersemester 2020

Diese Vorlesung findet trotz Corona-Krise im Sommersemester 2020 statt. Vorlesungen werden als Aufzeichnungen online bereitgestellt und können zu beliebigen Zeitpunkten konsumiert werden, sind aber mit den Übungen synchronisiert. Übungen finden an festen Terminen statt. Wenn Sie an der Veranstaltung teilnehmen wollen, schreiben Sie sich bitte in den dazugehörigen Moodle-Kurs ein, um über den genauen Ablauf informiert zu werden.

 
Titel: Fault-tolerant Distributed Systems
Deutscher Titel: Fehlertolerante Verteilte Systeme
Typ: Vorlesung mit Übung, Vorlesung hauptsächlich über Online-Videos realisiert, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: FTDS / CS6922.000 / 74239
SWS / LP: 3V+1Ü / 6LP
Dozent: Prof. Dr.-Ing. Franz J. Hauck
Betreuer: Gerhard Habiger, Muntazir Mehdi
Termine: Vorlesung:
nur online; Beginn am 20.04.2020
Übung:
Donnerstag, 12.30 Uhr - 14.00 Uhr, online; Beginn am 30.04.2020
Lernplattform: Der Übungsbetrieb wird mit Moodle abgewickelt. Bitte registrieren Sie sich hier.
Notenbonus: Für die erfolgreiche Teilnahme an der Übung gibt es einen Notenbonus von 0,3 bzw. 0,4 auf die mündliche Prüfung. Zur erfolgreichen Teilnahme besteht Präsenzpflicht bei den Übungsveranstaltungen, Abgabepflicht bei den Übungsaufgaben (leere Blätter gelten nicht als Abgabe) sowie die Verpflichtung während des Semesters die eigene Lösung in der Übung vorzustellen.
Prüfungstermine: freie Wahl nach Absprache mit dem Prüfer

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge:

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

Verantwortlich: Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache: Englisch
Turnus / Dauer: jedes Sommersemester / ein Semester
Voraussetzungen (inhaltlich): Grundkenntnisse über Verteilte Systeme z.B. aus dem Modul Grundlagen Verteilter Systeme
Voraussetzungen (formal): -
Grundlage für (inhaltlich): Masterarbeit im Bereich fehlertolerante Verteilte Systeme
Lernergebnisse: 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.
Inhalt:  
  • 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
 
Literatur:  
  • 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
 
Bewertungsmethode: mündliche Prüfung; keine Leistungsnachweise; Notenbonus bei erfolgreicher Übungsteilnahme (Modalitäten werden zu Beginn jeweils bekannt gegeben)
Notenbildung: Note der mündlichen Prüfung
Arbeitsaufwand: Präsenzzeit Vorlesung, Übung, Prüfung: 60h (2LP)
Selbststudium mit Nachbereitung der Vorlesung, Übungsaufgaben, Prüfungsvorbereitung: 120h (4LP)
Summe: 180h (6LP)

Sommersemester 2019

Titel:Fault-tolerant Distributed Systems
Deutscher Titel:Fehlertolerante Verteilte Systeme
Typ:Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.:FTDS / CS6922.000 / 74239
SWS / LP:3V+1Ü / 6LP
Dozent:Prof. Dr.-Ing. Franz J. Hauck
Betreuer:Gerhard Habiger, Muntazir Mehdi
Termine:Dienstag, 14.15 Uhr - 15.45 Uhr, O27-2202; Beginn am 23.04.2019
Donnerstag, 12.30 Uhr - 14.00 Uhr, O27-121; Beginn am 25.04.2019
Lernplattform:Der Übungsbetrieb wird mit Moodle abgewickelt. Bitte registrieren Sie sich hier mit dem Passwort aus der Vorlesung. Die Vorlesungen werden aufgezeichnet und in Moodle zur Verfügung gestellt.
Notenbonus:Für die erfolgreiche Teilnahme an der Übung gibt es einen Notenbonus von 0,3 bzw. 0,4 auf die mündliche Prüfung. Zur erfolgreichen Teilnahme besteht Präsenzpflicht bei den Übungsveranstaltungen, Abgabepflicht bei den Übungsaufgaben (leere Blätter gelten nicht als Abgabe) sowie die Verpflichtung während des Semesters die eigene Lösung in der Übung vorzustellen.
Prüfungstermine:freie Wahl nach Absprache mit dem Prüfer

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: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
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Englisch
Turnus / Dauer:jedes Sommersemester / ein Semester
Voraussetzungen (inhaltlich):Grundkenntnisse über Verteilte Systeme z.B. aus dem Modul Grundlagen Verteilter Systeme
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit im Bereich fehlertolerante Verteilte Systeme
Lernergebnisse: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.
Inhalt:
  • 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
Literatur:
  • 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
Bewertungsmethode:mündliche Prüfung; keine Leistungsnachweise; Notenbonus bei erfolgreicher Übungsteilnahme (Modalitäten werden zu Beginn jeweils bekannt gegeben)
Notenbildung:Note der mündlichen Prüfung
Arbeitsaufwand:Präsenzzeit Vorlesung, Übung, Prüfung: 60h (2LP)
Selbststudium mit Nachbereitung der Vorlesung, Übungsaufgaben, Prüfungsvorbereitung: 120h (4LP)
Summe: 180h (6LP)

Sommersemester 2018

Titel:Fault-tolerant Distributed Systems
Deutscher Titel:Fehlertolerante Verteilte Systeme
Typ:Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.:FTDS / CS6922.000 / 74239
SWS / LP:3V+1Ü / 6LP
Dozent:Prof. Dr.-Ing. Franz J. Hauck
Betreuer:Gerhard Habiger, Muntazir Mehdi
Termine:Dienstag, 14.15 Uhr - 15.45 Uhr, O27-2202; Beginn am 17.04.2018
Donnerstag, 12.30 Uhr - 14.00 Uhr, O27-121; Beginn am 19.04.2018
Lernplattform:Der Übungsbetrieb wird mit Moodle abgewickelt. Bitte registrieren Sie sich hier mit dem Passwort aus der Vorlesung. Die Vorlesungen werden aufgezeichnet und in Moodle zur Verfügung gestellt.
Notenbonus:Für die erfolgreiche Teilnahme an der Übung gibt es einen Notenbonus von 0,3 bzw. 0,4 auf die mündliche Prüfung. Zur erfolgreichen Teilnahme besteht Präsenzpflicht bei den Übungsveranstaltungen, Abgabepflicht bei den Übungsaufgaben (leere Blätter gelten nicht als Abgabe) sowie die Verpflichtung während des Semesters die eigene Lösung in der Übung vorzustellen.
Prüfungstermine:freie Wahl nach Absprache mit dem Prüfer

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: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
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Englisch
Turnus / Dauer:jedes Sommersemester / ein Semester
Voraussetzungen (inhaltlich):Grundkenntnisse über Verteilte Systeme z.B. aus dem Modul Grundlagen Verteilter Systeme
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit im Bereich fehlertolerante Verteilte Systeme
Lernergebnisse: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.
Inhalt:
  • 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
Literatur:
  • 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
Bewertungsmethode:mündliche Prüfung; keine Leistungsnachweise; Notenbonus bei erfolgreicher Übungsteilnahme (Modalitäten werden zu Beginn jeweils bekannt gegeben)
Notenbildung:Note der mündlichen Prüfung
Arbeitsaufwand:Präsenzzeit Vorlesung, Übung, Prüfung: 60h (2LP)
Selbststudium mit Nachbereitung der Vorlesung, Übungsaufgaben, Prüfungsvorbereitung: 120h (4LP)
Summe: 180h (6LP)

Sommersemester 2017

Titel:Fault-tolerant Distributed Systems
Deutscher Titel:Fehlertolerante Verteilte Systeme
Typ:Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.:FTDS / CS6922.000 / 74239
SWS / LP:3V+1Ü / 6LP
Dozent:Prof. Dr.-Ing. Franz J. Hauck, Dr. Jörg Domaschka
Betreuer:

David Mödinger, Gerhard Habiger, Eugen Frasch

Termine:Dienstag, 14.15 Uhr - 15.45 Uhr, O27-2202; Beginn am 18.04.2017
Donnerstag, 12.30 Uhr - 14.00 Uhr, O27-121; Beginn am 20.04.2017
Lernplattform:Der Übungsbetrieb wird mit Moodle abgewickelt. Bitte registrieren Sie sich hier mit dem Passwort aus der Vorlesung. Die Vorlesungen werden aufgezeichnet und in Moodle zur Verfügung gestellt.
Notenbonus:Für die erfolgreiche Teilnahme an der Übung gibt es einen Notenbonus von 0,3 bzw. 0,4 auf die mündliche Prüfung. Zur erfolgreichen Teilnahme besteht Präsenzpflicht bei den Übungsveranstaltungen, Abgabepflicht bei den Übungsaufgaben (leere Blätter gelten nicht als Abgabe) sowie die Verpflichtung während des Semesters die eigene Lösung in der Übung vorzustellen.
Prüfungstermine:freie Wahl nach Absprache mit dem Prüfer

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: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
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Englisch
Turnus / Dauer:jedes Sommersemester / ein Semester
Voraussetzungen (inhaltlich):Grundkenntnisse über Verteilte Systeme z.B. aus dem Modul Grundlagen Verteilter Systeme
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit im Bereich fehlertolerante Verteilte Systeme
Lernergebnisse: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.
Inhalt:
  • 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
Literatur:
  • 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
Bewertungsmethode:mündliche Prüfung; keine Leistungsnachweise; Notenbonus bei erfolgreicher Übungsteilnahme (Modalitäten werden zu Beginn jeweils bekannt gegeben)
Notenbildung:Note der mündlichen Prüfung
Arbeitsaufwand:Präsenzzeit Vorlesung, Übung, Prüfung: 60h (2LP)
Selbststudium mit Nachbereitung der Vorlesung, Übungsaufgaben, Prüfungsvorbereitung: 120h (4LP)
Summe: 180h (6LP)