TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Verteilte Systeme

Modulnr.INF-VS-08
Veranst.Nr.INF-VS-011, INF-VS-019
Studieng.Bachelor Informatik, Bachelor Informations-Systemtechnik, Bachelor Wirtschaftsinformatik, Master Informations-Systemtechnik
IBR Gruppe(n)DS (Prof. Kapitza)
ArtVorlesung/Übung
Dozent
PhotoProf. Dr. Rüdiger Kapitza
Abteilungsleiter
kapitza[[at]]ibr.cs.tu-bs.de
+49 531 3913294
Raum 135
Assistent
PhotoNico Weichbrodt
Wissenschaftlicher Mitarbeiter
weichbrodt[[at]]ibr.cs.tu-bs.de
+49 531 3913265
Raum 116
Hiwis
PhotoColin Wulf
Hiwi
Verteilte Systeme
cwulf[[at]]ibr.cs.tu-bs.de
PhotoJana Rehbein
Hiwi
Verteilte Systeme
rehbein[[at]]ibr.cs.tu-bs.de
LP4 (z.B. nach BPO 2008) bzw. 5 (z.B. nach BPO 2010)
SWS2+1
Ort & Zeit Vorlesung: Montags, 11:30-13:00 Raum IZ-160
Tafelübung: Mittwochs, 15:00-16:30, Raum IZ-161
Rechnerübungen: Mittwoch 16:45-18:15
und Donnerstag 13:15-14:45, Raum IZ-G40
ab 19.04.2017
Beginn05.04.2017 (ISO 2017-04-05) 15Uhr, IZ161, erste Vorlesung statt der Tafelübung
Hörerkreis Studenten der Informatik und Elektrotechnik, Wirtschaftsinformatik, Informations-Systemtechnik, Medienwissenschaften, Studenten mit Nebenfach Informatik
Voraussetzungenkeine
Scheinerwerb Erfolgreiche Teilnahme einer mündlicher Prüfung. Weiterhin wird die Bearbeitung der Übungsaufgaben empfohlen.
Anmeldung

Die Anmeldefrist ist abgelaufen.

Inhalt

Material zur Vorlesung

Diese Unterlagen sind nur für registrierte Teilnehmer zugänglich. Um sich zu registrieren, benötigen Sie einen Account: entweder einen IBR-Account, den Sie vielleicht im Rahmen einer Arbeit am Institut bereits erhalten haben, oder einen selbst aktivierten IBR-y-Account. Anschließend melden Sie sich über die Login-Funktion (oben auf dieser Seite) an.
[ Podcast | Podcast aller Formate | Newsfeed aller Formate ]
KapitelFolienÜbungen
1. Organisatorisches und 2. Bestandsaufnahme
pdfpdfpdf
3. Ueberblick
pdfpdfpdf
4. Kommunikationssystem
pdfpdfpdf
5. Fernaufrufe
pdfpdfpdf
6. Fault-Tolerant CORBA
pdfpdfpdf
7. Verteilte Algorithmen fuer fehlertolerante Programme
pdfpdfpdf
Zeit
pdfpdfpdf

Material zur Übung

Diese Unterlagen sind nur für registrierte Teilnehmer zugänglich. Um sich zu registrieren, benötigen Sie einen Account: entweder einen IBR-Account, den Sie vielleicht im Rahmen einer Arbeit am Institut bereits erhalten haben, oder einen selbst aktivierten IBR-y-Account. Anschließend melden Sie sich über die Login-Funktion (oben auf dieser Seite) an.
[ Podcast | Podcast aller Formate | Newsfeed aller Formate ]
KapitelFolienÜbungen
0. Organisatorisches
pdfpdfpdf
1. Java RMI
Aufgabe 1: Ausgabe 12.04.17, Abgabe bis 04-05.05.17
pdfpdfpdf
exercise
2. Multithreading in Java
pdfpdfpdf
3. Stubs und Skeletons
Aufgabe 2: Ausgabe 03.05.17, Abgabe bis 17-18.05.17
pdfpdfpdf
exercise
4. Rueckrufe und Evaluation von Systemen
pdfpdfpdf
5. RPC-Semantiken
Aufgabe 3: Ausgabe 17.05.17 Abgabe bis 31.05.-01.06.17
pdfpdfpdf
exercise
6. Replikation
Aufgabe 4: Ausgabe 31.05.17, Abgabe bis 21-22.06.17
pdfpdfpdf
exercise
7. Zuverlassige Gruppenkommunikation
Aufgabe 5: Ausgabe 21.06.17, Abgabe bis 05-06.07.17
pdfpdfpdf
exercise

Vorlesung

Verteilte Systeme bestehen aus einem (ggf. sehr großen) Verbund unterschiedlicher Rechner, die ihrerseits durch z.T. sehr unterschiedliche Systemsoftware betrieben werden. Zur Realisierung des Rechnerverbunds kommen dabei ebenso unterschiedliche Netztechnologien zum Einsatz. Verteilte Systeme sind höchst komplexe Gebilde, deren Entwicklung und Wartung große Herausforderungen offenbaren.

Die Heterogenität ihrer Komponenten stellt eines der großen Probleme verteilter Systeme dar. Gleichwohl ist Offenheit angestrebt, die es erlauben soll, dass (beliebige) Komponenten hinzugefügt, ersetzt und/oder wieder entfernt werden können. Nicht nur in dem Zusammenhang ist es von Bedeutung, Skalierbarkeit zu unterstützen und damit die Funktionstüchtigkeit des Systems auch bei steigender Anzahl von Benutzern bzw. Komponenten zu gewährleisten. Nebenläufigkeit und nicht zuletzt Sicherheit sind weitere Problempunkte, die sich in einem solchen dynamischen Umfeld alles andere als einfach lösbar darstellen. Und bedingt durch die Tatsache, dass die Komponenten (d.h. Rechner, Netze, Prozesse) eines verteilten Systems unabhängig voneinander ausfallen können, unterscheidet sich die Fehlerverarbeitung grundlegend im Vergleich zu Einzelsystemen - worin u.a. auch die fast schon legendäre Definition von Leslie Lamport begründet ist: "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable". Daher wird der Schaffung von Transparenz eine sehr große Bedeutung beigemessen, um die den verteilten Systemen inhärente Komplexität ab einer bestimmten Ebene nicht mehr sichtbar erscheinen zu lassen.

Eine wichtige Motivation für den Aufbau verteilter Systeme besteht in der gemeinsamen Nutzung von Betriebsmitteln. Die Verwaltung von Betriebsmitteln ist eine der ursprünglichsten Aufgaben von Betriebssystemen. Damit sind Betriebssysteme im Kontext verteilter Systeme von zentraler Bedeutung, sie bilden das Rückgrat des Gesamtkomplexes.

Die Vorlesung behandelt die oben genannten Problemfelder (Heterogenität, Offenheit, Skalierbarkeit, Nebenläufigkeit, Sicherheit, Fehlerverarbeitung, Transparenz) mit unterschiedlicher Gewichtung und untersucht dabei verteilte Systeme im ersten Teil der Vorlesung aus sehr praktischer Sicht. Im Vordergrund steht hier die Systemsoftware, die zum Aufbau verteilter Systeme erforderlich ist.

Im weiteren Verlauf der Veranstaltung soll zudem auf wichtige algorithmische Grundlagen verteilter Systeme eingegangen werden. Hier ist die Behandlung von Zeit, Wahlalgorithmen sowie Themen wie Verteilte Terminierungserkennung oder Einigungsalgorithmen zu nennen.

Übung

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 Rüdiger.

Termin(e)
[ Kalender abonnieren | Kalender herunterladen ]
DatumBeschreibung
03.04.2017, 15:00 UhrVorlesung entfällt (Erster Tag nach Semesterbeginn)
05.04.2017, 15:00 Uhr1. Vorlesung (statt Tafelübung) (IZ Raum 161)
10.04.2017, 11:30 Uhr2. Vorlesung (IZ Raum 160)
12.04.2017, 15:00 Uhr3. Vorlseung (statt Tafelübung) (IZ Raum 161)
17.04.2017, 11:30 UhrVorlesung entfällt (Ostermontag)
19.04.2017, 15:00 Uhr1. Tafelübung (IZ Raum 161)
24.04.2017, 11:30 UhrVorlesung entfällt
26.04.2017, 15:00 Uhr2. Tafelübung (IZ Raum 161)
01.05.2017, 11:30 UhrVorlesung entfällt (Tag der Arbeit)
03.05.2017, 15:00 Uhr2. Tafelübung (IZ Raum 161)
08.05.2017, 11:30 Uhr4. Vorlesung (IZ Raum 160)
10.05.2017, 15:00 Uhr3. Tafelübung (IZ Raum 161)
15.05.2017, 15:00 Uhr5. Vorlesung (IZ Raum 160)
17.05.2017, 11:30 Uhr4. Tafelübung (IZ Raum 161)
22.05.2017, 11:30 Uhr6. Vorlesung (IZ Raum 160)
24.05.2017, 15:00 UhrTafelübung entfällt
29.05.2017, 11:30 Uhr7. Vorlesung (IZ Raum 160)
31.05.2017, 15:00 Uhr5. Tafelübung (IZ Raum 161)
06.06.2017, 11:30 UhrVorlesung entfällt (Exkursionswoche)
07.06.2017, 15:00 UhrTafelübung entfällt (Exkursionswoche)
12.06.2017, 11:30 Uhr8. Vorlesung (IZ Raum 160)
14.06.2017, 15:00 UhrTafelübung entfällt (IZ Raum 161)
19.06.2017, 11:30 UhrVorlesung entfällt (IZ Raum 160)
21.06.2017, 15:00 Uhr6. Tafelübung (IZ Raum 161)
26.06.2017, 11:30 Uhr9. Vorlesung (IZ Raum 160)
28.06.2017, 15:00 Uhr7. Tafelübung (IZ Raum 161)
03.07.2017, 11:30 Uhr10. Vorlesung (IZ Raum 160)
05.07.2017, 15:00 UhrTafelübung entfällt
10.07.2017, 11:30 Uhr11. Vorlesung (IZ Raum 160)
12.07.2017, 15:00 Uhrentfällt (IZ Raum 161)
Literatur/LinksAuf Dokumente der ACM Digital Library (http://dl.acm.org/) kann nur aus dem Netz der TU Braunschweig zugegriffen werden.
  • Andrew S. Tanenbaum: Distributed Systems: Principles and Paradigms, Prentice Hall, 2006 (Tan06, BibTeX)
  • stellt die Hauptreferenz / Script dar
  • George Coulouris, Jean Dollimore and Tim Kindberg: Distributed Systems, Concepts and Design, third edition, Addison Wesley, 2001 (D.01.3037)
  • Christian Cachin, Rachid Guerraoui and Luís Rodrigues: Introduction to Reliable and Secure Distributed Programming (2. ed.), Seite I-XIX, 1-367, Springer, 2011 (rsdp11cachin, BibTeX)
  • ArrayList vs. LinkedList

aktualisiert am 10.07.2017, 10:12 (dynamischer Inhalt) von Nico Weichbrodt
printemailtop