Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Verteilte Systeme (VS) - Übung (SS 2014)

Inhalt der Übungen

Im Rahmen der ersten Übungsaufgaben wird ein plattformunabhängiges Fernaufrufsystem schrittweise entwickelt und parallel dazu getestet. Als Vorlage und Orientierungshilfe dient dabei das weit verbreitete Java RMI. In den weiteren Übungsaufgaben stehen klassische Problemstellungen von verteilten Systemen wie fehlertolerante Replikation, zuverlässige Gruppenkommunikation und verteilte Synchronisation im Mittelpunkt. Die Implementierung der Übungsaufgaben erfolgt in der Programmiersprache Java.

Als Grundlage für das eigene Fernaufrufsystem wird zunächst eine objektorientierte Kommunikation zwischen einem Client und einem Server ermöglicht. Ausgehend davon erweitern die folgenden Übungsaufgaben das bestehende System um die eigentlichen Mechanismen zur Durchführung von Fernaufrufen. Hinzu kommt außerdem zusätzliche Funktionalität, wie beispielsweise die Unterstützung von Rückrufen. Darüber hinaus wird durch den Einsatz geeigneter Fernaufrufsemantiken sowie die Replikation der Server-Seite die Fehlertoleranz des Systems erhöht, so dass sich am Ende auch Ausfälle ganzer Rechner tolerieren lassen.

Der Austausch von Nachrichten zwischen einzelnen Dienstreplikaten wird mit Hilfe der Gruppenkommunikation JGroups abgewickelt. Um das Verständnis für den Aufbau solcher Systeme zu vertiefen, wird in einer Übungsaufgabe eine eigene Protokollschicht für JGroups realisiert, die sicherstellt, dass alle Replikate alle über die Gruppenkommunikation verschickten Nachrichten in der selben Reihenfolge erhalten und somit konsistente Entscheidungen treffen können. In der letzten Übungsaufgabe wird schließlich auf Basis von JGroups ein verteilter Synchronisationsalgorithmus für wechselseitigen Ausschluss implementiert.

Die Bearbeitung der Übungsaufgaben erfolgt in Gruppen. Für die erfolgreiche Abgabe einer Aufgabe ist es erforderlich, die eigene Implementierung einem Übungsleiter zu präsentieren.

Bei Fragen zu den Übungen kontaktiert bitte Tobias, Klaus, Timo, Christopher oder Tobias.

Hinweise

  • Zusatzmaterial: Für einige der Übungsaufgaben werden Vorgaben und Hilfen im Verzeichnis /proj/i4vs/pub bereitgestellt
  • Teamarbeit mit svn: Beschreibt den Umgang mit Subversion in gängigen Szenarien der Teamarbeit

Übungsfolien

Nr. Montag Mittwoch Thema Folien (1x1) Folien (2x2)
1 14.04.2014 16.04.2014 Organisatorisches
Java RMI
2 28.04.2014 23.04.2014 Multithreading in Java
3 05.05.2014 07.05.2014 Stubs & Skeletons
4 12.05.2014 14.05.2014 Rückrufe, Evaluation von Systemen
5 19.05.2014 21.05.2014 RPC-Semantiken
6 26.05.2014 28.05.2014 Lesen und Begutachten von Fachliteratur
7 02.06.2014 04.06.2014 Replikation
8 16.06.2014 18.06.2014 Zuverlässige Gruppenkommunikation
9 23.06.2014 25.06.2014 Papier-Diskussion
10 30.06.2014 02.07.2014 Verteilte Synchronisation
11 07.07.2014 09.07.2014 Fragen zur Prüfung, Besprechung der Evaluation,
Vorstellung aktueller Forschungsprojekte

Übungsaufgaben

Nr. Titel Ausgabe Abgabe
1 Java RMI 14.04.2014 07.05.2014
2 Stubs & Skeletons
05.05.2014 21.05.2014
3 RPC-Semantiken 19.05.2014 04.06.2014
L Fachliteratur, Review 26.05./28.05.2014 20.06./23.06.2014
4 Replikation 02.06.2014 18.06.2014
5 Zuverlässige Gruppenkommunikation 16.06./18.06.2014 02.07.2014
6 Verteilte Synchronisation 30.06./02.07.2014 09.07.2014

Evaluation

Die Evaluation im Sommersemester 2014 wurde in der Zeit vom 9. Juni bis zum 28. Juni durchgeführt.
  • In den Übungen wurden 29 Transaktionsnummern für den Zugriff auf die Evaluationsformulare verteilt.
  • Es wurden 17 Fragebögen zu den Übungen ausgefüllt.
  • Ergebnis der Übungsevaluation [PDF]
  • Mit diesem Ergebnis erzielte die Übung fakultätsweit den 3. Platz in der Kategorie Übungen/Wahlfach/≥10 Rückläufer (ÜW10)
Vielen Dank an alle, die sich an der Evaluation beteiligt haben!