TU Wien:Verteilte Systeme LU (Kirda)

Aus VoWi
Wechseln zu: Navigation, Suche
Diese LVA wird nicht mehr von dieser Person angeboten, ist ausgelaufen, oder läuft aus und befindet sich daher nur noch zu historischen Zwecken im VoWi. Eventuell findest du über dieser Meldung noch andere Vortragende, oder Links für dieselbe LVA.


Daten[Bearbeiten]

Inhalt[Bearbeiten]

Entwicklung von Programmen zum Erlernen der wesentlichen Grundlagen verteilter Systeme. Behandelte Themen: Socketprogrammierung (TCP, UDP), RMI, CORBA (JaCORB). Programmiert wird ausschließlich in der Programmiersprache Java.

Ablauf[Bearbeiten]

Es gibt sechs Übungsbeispiele zu Lösen (2 Bsp. zu Socketprogrammierung (Client/Server), 2 Bsp. zu RMI (Client, Server), 2 Bsp. zu CORBA). Die Beispiele können zu Hause (per SSH) oder im Labor gelöst werden. Für jedes Beispiel ist drei Wochen Zeit. Die Abgabe erfolgt über einen Abgaberoboter, der die Beispiele automatisch testet und bewertet. Die Beurteilung erfolgt dabei nach dem pass/fail-Prinzip. Nur wenn alle Tests korrekt sind, bekommt man die Punkte für das Übungsbeispiel. Man kann die Abgabe innerhalb der Abgabefrist so oft wiederholen wie man will.
Für Fragen zur UE und den Beispielen steht ein internes Forum zur Verfügung, welches von den DSLab-Masters/Tutoren betreut wird (siehe HP der LVA)
Es gibt keine Abgabegespräche!

Leider ist der Abgaberoboter nicht sehr studentenfreundlich:

  • Die Übungsserver und der Grading Robot stehen in der Nacht nicht zur Verfügung. Du solltest dich also darauf einstellen bei Tageslicht programmieren zu müssen ;-)
  • Nach der Abgabe eines Beispiels an den Roboter ist dieser für eine halbe Stunde gesperrt, d.h. falls dein Beispiel nicht akzeptiert wird, musst du eine halbe Stunde warten bist du erneut abgeben kannst.
  • Die Bewertungsergebnisse des Roboters werden an eine eigene Mailadresse zugestellt, am besten du richtest dir ein File ".forward" in deinem Homeverzeichnis ein, in dem du Emailadressen eintragen kannst, an die die Mails weitergeleitet werden sollen.
  • Die genauen Testfälle des Roboters sind nicht einsehbar, du weißt also nie genau was du in deinem Programm falsch gemacht hast.
  • Die Testfälle des Roboters können sich im Verlauf der Übung (z.B. über Nacht) ändern, d.h. ein Testfall, der am Vortag noch reibungslos funktioniert hat, schlägt plötzlich fehl.

Die Beispiele varieren von Jahr zu Jahr (WS05 Corbabeispiel Aktienkauf, WS06 Corbabeispiel Vortragsanmeldung, davor peer-to-peer System). Man kann sich also nicht darauf verlassen dass man Beispiele vom Vorjahr wiederverwerten kann.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten]

  • gute Java-Kenntnisse (benötigt)
  • Objektorientierte Programmierung VL (von Vorteil aber fast schon ein Muss)
  • Allgemeine Unix/Linux Kenntnisse, Umgang mit Shell, Apache Ant (von Vorteil)

Übungstest(s)[Bearbeiten]

Es gibt zwei Übungstests während des Semesters. Der erste Test umfasst den Stoff der ersten zwei Übungsbeispiele. Der zweite Test findet nach dem sechsten Übungsbeispiel statt und umfasst die Themengebiete RMI und CORBA. In beiden Tests wird im wesentlichen überprüft, ob man die Übungsbeispiele selbst gelöst hat (Fragen zu den Übungsbeispielen, Coden von vereinfachten Beispielen am Papier). Somit sollten sie kein Problem darstellen, wenn man sich mit den Übungsbeispielen beschäftigt hat.

Es sind keine Unterlagen erlaubt, zur Angabe wird auch noch eine zusammengefasste Java-API ausgeteilt.

1. Übungstest[Bearbeiten]

Zeit: 60 Minuten

  • Fragen zu telnet (wie du es zum Testen der Übungsbeispiele verwendet hast)
  • Fragen zu netcat (wie du es zum Testen der Übungsbeispiele verwendet hast)
  • Fragen zum Protokoll, das in den ersten beiden Übungsbeispielen verwendet wird (z.B. Mit welcher Zahl beginnen Fehlermeldungen des Servers?)
  • Programmierbeispiel zu TCP Sockets
  • Programmierbeispiel zu UDP Sockets

2. Übungstest[Bearbeiten]

Zeit: 90 Minuten

  • Fragen zu den Übungsbeispielen (wie wird der Client aus Bsp. XYZ gestartet, welche Fehler könnten bei einem gegebenen Exception-Backtrace aufgetreten sein)
  • Programmierbeispiel zu RMI (Client + Server)
  • Programmierbeispiel zu CORBA (Client + Server, eher klein)
  • Fragen zu CORBA (Transaktionen)

Zulassung zum Nachtest (ein Termin für das Nachholen des 1. oder des 2. Tests am Ende des Semesters) ist sehr drakonisch, man erhält Zugang nur wenn man eine Bestätigung des Arztes oder des Arbeitgebers hat. Man gibt diese im Sekretariat ab, schreibt anschließend eine Mail an die Übungsleitung und erhält dann Erlaubnis sich zum Nachtragstest anzumelden.

Für den zweiten Übungstest gibt es weitaus mehr Punkte, es ist also theoretisch möglich die Übung auch ohne den ersten Übungstest positiv zu bestehen (aber nicht sehr empfehlenswert).

Dauer der Zeugnisausstellung[Bearbeiten]

WS06/07: 2. Übungstest am 31.01.2007, Zeugnis erhalten am 14.03.2007 (ca. 6 Wochen)

Literatur[Bearbeiten]

  • Andrew S. Tanenbaum, Distibuted Systems (wird auch in zugehöriger VO verwendet)
  • weitere Reading Suggestions bzw. Tutorials werden bei den Beispielangaben angeführt, die sehr nützlich und passend zum Beispiel sind.

Zeitaufwand[Bearbeiten]

Einen wesentlichen Teil der Zeit wendet man für das Zufriedenstellen des Abgaberoboters auf (siehe Tipps). Ansonsten sind die Beispiele, Vorkenntnisse vorausgesetzt, relativ schnell gelöst:

  • Beispiel 1 & 2: jeweils ca. 4 Stunden
  • Beispiel 3 - 6: jeweils ca. 1 - 3 Tage

Wo gibts Mitschriften, Skripten, Folien...[Bearbeiten]

Alle benötigten Infos, Reading suggestions, etc. gibt es auf der HP der LVA.

Im Informatik-Forum gibt es Zusammenfassungen zu RMI und CORBA als Vorbereitung auf den 2. Übungstest: f.thread:51360

Gelöste Übungsbeispiele aus dem WS06/07 auf MTB

Tipps[Bearbeiten]

  • Genaues Lesen der Spezifikation. Der Abgaberoboter ist sehr heikel!
  • Sorgfältiges Behandeln von Exceptions! Richtige Reihenfolge beim catchen von Exceptions beachten!
  • Aufpassen beim Schreiben von Fehlermeldungen von stdout/stderr. Ein Rufzeichen zu wenig oder ein Punkt zuviel und der Abgaberoboter bewertet den Testfall negativ!
  • Wenn man zum ersten Übungstest weiß, wie man einen TCP/UDP Echoserver u. Client schreibt und sich eine halbe Stunde vor dem Test noch einmal die Angabe zu den Beispielen 1 und 2 durchliest, sollte man alle Punkte machen, und ist dann mit 5 bzw. 6 Beispielen bereits positiv.
  • Benutze das Forum der LVA! Dort können dir Tutoren und LVA-Leiter sowie andere Studenten weiterhelfen.