|
Verteilte Systeme - V+Ü (VS)5 ECTS (englische Bezeichnung: Distributed Systems - L+E)
Modulverantwortliche/r: Tobias Distler Lehrende:
Tobias Distler, Jürgen Kleinöder, Michael Eischer, Laura Lawniczak
Studienfächer/Prüfungsordnungsmodule:
Einfrieren der UnivIS-Modul-Beschreibung: 29.3.2021
Verteilte Systeme (Vorlesung mit Übungen) (111454)
Verteilte Systeme (29008)
Start semester: |
SS 2021 | Duration: |
1 semester | Cycle: |
jährlich (SS) |
Präsenzzeit: |
60 Std. | Eigenstudium: |
90 Std. | Language: |
Deutsch |
Lectures:
-
-
Verteilte Systeme
(Vorlesung, 2 SWS, Tobias Distler, Thu, 12:15 - 13:45, 0.031-113)
-
Übungen zu Verteilte Systeme
(Übung, 2 SWS, Michael Eischer et al., Tue, 10:00 - 12:00, 02.151-113 a CIP; starting 20.4.2021)
Empfohlene Voraussetzungen:
Gute Programmierkenntnisse in Java
Inhalt:
Verteilte Systeme bestehen aus mehreren Rechnern, die über ein Netzwerk miteinander verbunden sind und einen gemeinsamen Dienst erbringen. Obwohl die beteiligten Rechner hierfür in weiten Teilen unabhängig voneinander agieren, erscheinen sie ihren Nutzern gegenüber in der Gesamtheit dabei trotzdem als ein einheitliches System. Die Einsatzmöglichkeiten für verteilte Systeme erstrecken sich über ein weites Spektrum an Szenarien: Von der Zusammenschaltung kleinster Rechenknoten zur Sammlung von Daten im Rahmen von Sensornetzwerken über Steuerungssysteme für Kraftfahrzeuge und Industrieanlagen bis hin zu weltumspannenden, Internet-gestützten Infrastrukturen mit Komponenten in Datenzentren auf verschiedenen Kontinenten. Ziel dieses Moduls ist es, die sich durch die speziellen Eigenschaften verteilter Systeme ergebenden Problemstellungen zu verdeutlichen und Ansätze zu vermitteln, mit deren Hilfe sie gelöst werden können; Beispiele hierfür sind etwa die Interaktion zwischen heterogenen Systemkomponenten, der Umgang mit erhöhten Netzwerklatenzen sowie die Wahrung konsistenter Zustände über Rechnergrenzen hinweg. Gleichzeitig zeigt das Modul auf, dass die Verteiltheit eines Systems nicht nur Herausforderungen mit sich bringt, sondern auf der anderen Seite auch Chancen eröffnet. Dies gilt insbesondere in Bezug auf die im Vergleich zu nicht verteilten Systemen erzielbare höhere Widerstandsfähigkeit eines Gesamtsystems gegenüber Fehlern wie den Ausfällen ganzer Rechner oder sogar kompletter Datenzentren. Ausgehend von den einfachsten, aus nur einem Client und einem Server bestehenden verteilten Systemen, beschäftigt sich die Vorlesung danach mit der deutlich komplexeren Replikation der Server-Seite und behandelt anschließend die Verteilung eines Systems über mehrere, mitunter weit voneinander entfernte geografische Standorte. In allen Abschnitten umfasst die Betrachtung des jeweiligen Themas eine Auswahl aus Grundlagen, im Praxiseinsatz befindlicher Ansätze und Techniken sowie für den aktuellen Stand der Forschung repräsentativer Konzepte. Im Rahmen der Übungen wird zunächst ein plattformunabhängiges Fernaufrufsystem schrittweise entwickelt und parallel dazu getestet. Als Vorlage und Orientierungshilfe dient dabei das in der Praxis weit verbreitete Java RMI. In den weiteren Übungsaufgaben stehen anschließend klassische Problemstellungen von verteilten Systemen wie fehlertolerante Replikation und verteilte Synchronisation im Mittelpunkt.
Lernziele und Kompetenzen:
Studierende, die das Modul erfolgreich abgeschlossen haben:
beschreiben charakteristische Merkmale und Eigenschaften verteilter Systeme sowie grundlegende Probleme im Zusammenhang mit ihrer Realisierung.
untersuchen die Unterschiede zwischen lokalen Methodenaufrufen und Fernmethodenaufrufen.
vergleichen Ansätze zur Konvertierung von Nachrichten zwischen verschiedenen Datenrepräsenationen.
konzipieren eine eigene auf Java RMI basierende Anwendung.
entwickeln ein eigenes Fernaufrufsystem nach dem Vorbild von Java RMI.
gestalten ein Modul zur Unterstützung verschiedener Fernaufrufsemantiken (Maybe, Last-of-Many) für das eigene Fernaufrufsystem.
beurteilen auf Basis eigener Experimente mit Fehlerinjektionen die Auswirkungen von Störeinflüssen auf verschiedene Fernaufrufsemantiken.
klassifizieren Mechanismen zur Bereitstellung von Fehlertoleranz, insbesondere verschiedene Arten der Replikation (aktiv vs. passiv).
entwickeln ein eigene aktiv replizierte Anwendung zur Erforschung der mit dieser Replikationsart verbundenen Problemstellungen (z.B. Determinismus).
vergleichen verschiedene Konsistenzgarantien georeplizierter Systeme.
illustrieren das Problem einer fehlenden gemeinsamen Zeitbasis in verteilten Systemen.
erforschen logische Uhren als Mittel zur Reihenfolgebestimmung und Methoden zur Synchronisation physikalischer Uhren.
unterscheiden grundlegende Zustellungs- und Ordnungsgarantien beim Multicast von Nachrichten.
gestalten ein Protokoll für den zuverlässigen und totalgeordneten Versand von Nachrichten in einer Gruppe von Knoten.
entwickeln einen Dienst zur Verwaltung verteilter Sperrobjekte auf Basis von Lamport-Locks.
bewerten die Qualität einer aktuellen Publikation aus der Fachliteratur.
erschließen sich typische Probleme (Nebenläufigkeit, Konsistenz) und Fehlerquellen bei der Programmierung verteilter Anwendungen.
können in Kleingruppen kooperativ arbeiten.
können ihre Entwurfs- und Implementierungsentscheidungen kompakt präsentieren und argumentativ vertreten.
reflektieren ihre Entscheidungen kritisch und leiten Alternativen ab.
können offen und konstruktiv mit Schwachpunkten und Irrwegen umgehen.
Studien-/Prüfungsleistungen:
Verteilte Systeme (Prüfungsnummer: 52801)
(englischer Titel: Distributed Systems)
(diese Prüfung gilt nur im Kontext der Studienfächer/Vertiefungsrichtungen [9], [11], [13], [15], [17], [24], [26], [27], [29], [31], [32], [33], [35], [37], [39], [41])
zugeh. "mein campus"-Prüfung: | - 52801 Verteilte Systeme (Gewichtung: 100.0 %, Prüfung, Form: Klausur, Drittelnoten (mit 4,3), Dauer: -, 5 ECTS, Prüfung).
|
- Prüfungsleistung, mündliche Prüfung, Dauer (in Minuten): 30, benotet, 5 ECTS
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
Erfolgreiche Bearbeitung aller 6 Übungsaufgaben (Bewertung jeweils mit
"ausreichend") und 30-minütige mündliche Prüfung.
Die Modulnote ergibt sich zu 100% aus der Bewertung der mündlichen Prüfung.
- Prüfungssprache: Deutsch
- Erstablegung: SS 2021, 1. Wdh.: WS 2021/2022
1. Prüfer: | Tobias Distler (100377) |
Verteilte Systeme (Vorlesung mit Übungen) (Prüfungsnummer: 649073)
(englischer Titel: Distributed Systems - L+E)
(diese Prüfung gilt nur im Kontext der Studienfächer/Vertiefungsrichtungen [1], [2], [3], [4], [5], [6], [7], [8], [10], [12], [14], [16], [18], [19], [20], [21], [22], [23], [25], [28], [30], [34], [36], [38], [40], [42], [43], [44])
zugeh. "mein campus"-Prüfung: | - 649073 Verteilte Systeme (Vorlesung mit Übungen) (Gewichtung: 100.0 %, Prüfung, Form: mehrteilige Prüfung, Drittelnoten (mit 4,3), Dauer: -, 5 ECTS, Prüfung).
|
- Prüfungsleistung, mehrteilige Prüfung, benotet, 5 ECTS
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
Erfolgreiche Bearbeitung aller 6 Übungsaufgaben (Bewertung jeweils mit
"ausreichend") und 30-minütige mündliche Prüfung.
Die Modulnote ergibt sich zu 100% aus der Bewertung der mündlichen Prüfung.
- Erstablegung: SS 2021, 1. Wdh.: WS 2021/2022
1. Prüfer: | Tobias Distler (100377) |
|
|
|