Verteilte Systeme

Praktikum Verteilte Systeme

Durch den Einsatz von Computernetzwerken wird eine neue Art von Anwendung ermöglicht: Nicht ein einzelner Rechner löst ein Problem, sondern eine Menge unabhängiger Rechner, die sich durch Nachrichtenaustausch miteinander synchronisieren.

Dies ist die Motivation für das Praktikum Verteilte Systeme, welches die gleichlautende Vorlesung im 6. Semester des Studiengangs Angewandte Informatik mit insgesamt 4 Versuchen unterstützt.

In den ersten beiden Teilversuchen entwickeln die Studierenden eine Peer-to-Peer Anwendung, d.h. eine Anwendung, welche im Idealfall keinen zentralen Verwalter mehr hat, sondern sich autonom organisiert. Diese Art der Anwendungen haben gerade in der letzten Zeit in der Praxis immer mehr an Bedeutung gewonnen und bilden beispielsweise die Basis von zahlreichen File-Sharing-Diensten.

Die Studierenden entwickeln zunächst eine statische Peer-to-Peer-Chat-Anwendung und haben dann die Aufgabe die dynamische Änderung der Gruppenzusammensetzung (Chat Join-/Leave-Operationen) auf effiziente und praktikable Weise zu realisieren.

In einem Versuchsteil zu Middleware-Techniken realisieren die Studierenden eine CORBA-Anwendung, welche sie mit anderen Middleware-Techniken wie JMS, RMI und Web Services vergleichen.

Schließlich realisieren die Studierenden in einer selbst entwickelten Simulationsumgebung eine verteilte Berechnung in einem größeren Netzwerk. Jeder Knoten im Netzwerk kennt nur seine direkten Nachbarn und hat kein Wissen über die Gesamttopologie. Unter diesen Randbedingungen soll ein beliebiger initiierender Knoten mittels eines von den Studierenden zu entwerfenden verteilten Algorithmus eine Aggregationsfunktion über alle Knoten realisieren, z.B. die Gesamtmenge des noch verfügbaren Plattenspeichers über alle Netzwerkknoten ermitteln. Eine zentrale Kontrolle ist nicht erlaubt, wohl aber ein zentrales Logging, um zu verifizieren, dass der Algorithmus korrekt funktioniert.

Da das Praktikum in einem bereits fortgeschrittenen Semester stattfindet, können die Studierenden eine Programmiersprache ihrer Wahl (C,C#,C++,Java, Python,..) einsetzen und auf Kommunikationsebene die Middleware selbst auswählen (UDP, TCP, JMS, CORBA, WS,..).

Elearning Applet: Verteilte Algorithmen