TU Wien:Verteilte Systeme LU (Kirda)
- Verteilte Systeme UE (Lachner) (TU Wien, 4 Materialien)
- Verteilte Systeme UE (Raith) (TU Wien, 9 Materialien)
- Verteilte Systeme VO (Dustdar) (TU Wien, 53 Materialien)
- Verteilte Systeme VU (Dustdar) (TU Wien, 2 Materialien)
- Verteilte Systeme LU (Brandic) (TU Wien, veraltet, 7 Materialien)
- Verteilte Systeme LU (Kirda) (TU Wien, veraltet, 0 Materialien)
- Verteilte Systeme LU (Kirda, 1.0) (TU Wien, veraltet, 0 Materialien)
- Verteilte Systeme UE (Rausch) (TU Wien, veraltet, 7 Materialien)
- Verteilte Systeme VO (Göschka) (TU Wien, veraltet, 62 Materialien)
- Verteilte Systeme VO (Palensky) (TU Wien, veraltet, 2 Materialien)
Daten[Bearbeiten | Quelltext bearbeiten]
Vortragende | Engin Kirda, Joe Oberleitner und Florian Rosenberg |
---|---|
ECTS | 3 |
Links | Homepage |
Bachelorstudium Medieninformatik und Visual Computing | |
Bachelorstudium Medizinische Informatik | |
Bachelorstudium Software & Information Engineering | |
Bachelorstudium Technische Informatik |
Inhalt[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]
WS06/07: 2. Übungstest am 31.01.2007, Zeugnis erhalten am 14.03.2007 (ca. 6 Wochen)
Literatur[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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.