TU Wien:Verteilte Systeme LU (Brandic)

Aus VoWi

Wechseln zu: Navigation, Suche

5 Lehrveranstaltungen mit diesem Titel gefunden:

Inhaltsverzeichnis

[Bearbeiten] Daten

[Bearbeiten] Inhalt

Entwicklung von Programmen zum Erlernen der wesentlichen Grundlagen verteilter Systeme. Behandelte Themen:

  • Socketprogrammierung (TCP und UDP)
  • RMI
  • Security

Programmiert wird ausschließlich in der Programmiersprache Java.

[Bearbeiten] Ablauf

Die Übung setzt sich aus drei Übungsbeispielen (je eines zu den drei oben genannten Themengebieten) und einem abschließenden Übungstest zusammen. Für Fragen zur UE und den Beispielen steht ein internes Forum (mit getrennten Login, ohne den keine Beitraege sichtbar sind!) zur Verfügung, welches von den Tutoren betreut wird (siehe HP der LVA).

[Bearbeiten] Bewertung

Insgesamt gibt es 100 Punkte zu erreichen, auf die drei Übungsbeispiele je 20 Punkte (insgesammt also 60) und auf den Test 40. Um zum Test antreten zu koennen, muss man bei den Uebungsbeispielen mindestens die Hälfte der Punkte erreicht haben (30 Punkte), umgekehrt ist man bereits positiv, wenn man mehr als 50 Punkte bei den Übungsbeispielen erreicht. Man ist daher nicht verpflichtet am Test teilzunehmen, und es gibt auch keine zu erreichende Mindestpunktzahl.

[Bearbeiten] Benötigte/Empfehlenswerte Vorkenntnisse

  • 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)

[Bearbeiten] Übungen

Übungsbeispiele zu lösen:

  • ein Beispiel zu Socketprogrammierung (TCP/UDP)
  • ein Beispiel zu RMI (Client, Server)
  • ein Beispiel zu Security (Symmetrische -, Asymmetrische Verschlüsselung, etc.)

Die Beispiele können zu Hause oder im Labor gelöst werden, ein SSH-Zugang für die Server wird bereitgestellt. Für jedes Beispiel sind mehrere Wochen Zeit. Die Abgabe erfolgt über das Registration Tool des Instituts. Die Beurteilung erfolgt nicht automatisch, sondern im Rahmen eines Abgabegesprächs bei einem Tutor im Labor, der einen Bewertungsvorschlag erstellt.
Es wird verlangt, dass die Beispiele auf den Übungsservern lauffähig sind. Dazu kann (und sollte) man den Code, den man am eigenen PC hat per SSH auf die Übungsmaschine laden und testen. In der Vergangenheit gab es Probleme mit der Server Uptime - diese scheint es aber es aber im WS09 nicht gegeben zu haben. Der Server war auch bis kurz vor der Deadline noch ohne Probleme ansprechbar. (Es wird aber nicht empfohlen auf dem Server zu entwickeln, sondern nur zu testen!)

[Bearbeiten] Abgabegespräche

Für jedes der drei Beispiele gibt es ein eigenes Abgabegespräch, bei dem die Funktionalität des Programms, inkl. sauberer Fehlerbehandlung, überprüft wird. Es empfielt sich also im vorhinein ausgiebig zu testen. Es werden auch Blicke in den Quelltext geworfen, zumindest an den wichtigsten Stellen (Synchronisation, Transaktionserstellung und -kontrolle).

Zusätzlich gibt es zwei Theorie-/Verständnisfragen, deren Beantwortung einem nicht sonderlich schwer fallen sollte, wenn man sich mit dem Stoff auseinander gesetzt hat.

[Bearbeiten] Übungstest

Am Ende des Semesters gibt es einen Übungstest über den gesamten Stoff der Lehrveranstaltung. Im Wesentlichen wird überprüft, ob man die Übungsbeispiele selbst gelöst hat (Fragen zu den Übungsbeispielen, Coden von vereinfachten Beispielen am Papier). Es sind keine Unterlagen erlaubt, um den Test positiv zu absolvieren ist es also notwendig die API-Aufrufe auswendig zu lernen. Die API für das Secuirty Bsp bekommt man aber bereitgestellt. Es ist für gutes Abschneiden beim Test nicht unbedingt notwendig, die Beispiele selbst gelöst zu haben.

Im WS09 gab es 4 Beispiele (jeweils 10 Punkte):

  • Single Choice Fragen zur "Theorie"
  • TCP Programmier Bsp
  • RMI Programmier Bsp
  • Security Programmier Bsp

Die Programmierbeispiele sind ähnlich wie bei den Sysprog Tests Lückentextartig (dh. man bekommt schon alle Klassennamen und dei meisten Methodennamen vorgegeben und es steht wo was reingehört ungefähr). Vom Schwierigkeitsgrad her absolut schaffbar wenn man die Übungsbeispiele selber gelöst hat.

Zum Nachtest (ein Termin für das Nachholen des Tests) zugelassen wird man nur, wenn man eine Bestätigung des Arztes oder des Arbeitgebers hat. Diese Regelung ist rechtswidrig (Quellen?). Man gibt diese im Sekretariat ab, schreibt anschließend eine Mail an die Übungsleitung und erhält dann Erlaubnis sich zum Nachtragstest anzumelden. Um das Recht von ordentlichen Nachtragstests wird man in dieser LVA seit Jahren gebracht.

[Bearbeiten] Dauer der Zeugnisausstellung

  • WS09: 6 Tage nach dem Test wurden die Punkte veröffentlicht.

[Bearbeiten] Zeitaufwand

Auch bei ausgezeichneten Javakenntnissen und schneller Auffassungsgabe sollte man den Zeitaufwand für die Beispiele nicht unterschätzen. Ich schätze ca. 10-30h pro Beispiel je nach Erfahrung und Quantität an "unlösbaren" Problemen mit der Technologie. Dabei stellen die Beispiele aber ansich keine großen Probleme dar für einen erfahrern Programmierer (vom Schwierigkeitsgrad).

Der Test sollte bei selbständigen Lösen der Beispiele nurmehr ca. 1-2h für merken des Codes in anspruch nehmen. Theorie gibt es abgesehen von den verwendenten Technologien nicht.

[Bearbeiten] Meinungen

  • Im WS09/10 kam statt CORBA ein Beispiel zu Security. Dabei ging es darum, das erste Beispiel (TCP/UDP Chat) um Verschlüsselung und digitale Signaturen zu erweitern. Außerdem musste eine Certification Authority (grob) implementiert werden. Das Beispiel war sowohl am aufwändigsten (ca. 1 1/2 facher Aufwand relativ zu ersten und zweiten Beispiel), imho zugleich aber auch am interessantesten.
  • Vor WS09/10: Realistisch gesehen sollte man je nach Javakenntnissen mit insgesamt ca. 30 (Guru) bis 100 (gerade einmal EProg geschafft) Stunden für alle Beispiele rechnen.
Eine Umfrage unter mir bekannten Studis (inkl. mir) hat insgesamt einen Aufwand zwischen 100 und (eher) 250 Stunden ergeben. -- Mati 12:23, 3. Mär. 2008 (CET)

[Bearbeiten] Probleme mit dieser LVA

  • Die Übungsleitung ist bezüglich der Deadlines zu keinem Entgegenkommen bereit. Nach der Deadline ist keine Abgabe mehr möglich und man bekommt automatisch 0 Punkte für das Beispiel.
  • Es gibt nur einen Lab Test (und einen Nachtragstest, zu dem man aber nur antreten darf, wenn man zum Haupttest nicht antreten konnte). Dabei ist allerdings der Test nicht für eine positive Bewertung notwendig (wenn man _alle_ Punkte auf die Beispiele hat, wäre man ohne Test gerade noch positiv...) und es gibt keine mindestens zu erreichende Punktezahl für den Test alleine.

[Bearbeiten] Tipps

  • Wird man vor der Deadline nicht rechtzeitig fertig, gibt man besser ein halbfertiges Programm ab als gar keines. Es besteht dann zumindest die Möglichkeit, >0 Punkte auf dieses Beispiel zu bekommen.
  • Die Angabe genau durchlesen! Jedes Detail ist wichtig und kann beim Abgabegespräch überprüft werden. Wer nicht aufpasst kann ordentlich Punkte verlieren (sehr ärgerlich!).

[Bearbeiten] Literatur

  • 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.
Persönliche Werkzeuge