TU Wien:Verteiltes Programmieren mit Space Based Computing Middleware VU (Kühn)

Aus VoWi
Wechseln zu: Navigation, Suche

Daten[Bearbeiten]

Inhalt[Bearbeiten]

Kennenlernen von Space Based Computing Technologien, Peer-to-Peer (P2P) und GRID Computing, sowie die Entwicklung einer verteilten Applikation mittels XVSM- und JavaSpace-Middleware.

Ablauf[Bearbeiten]

Die Lehrveranstaltung findet geblockt zu Beginn des Semesters statt, es gibt 3 Vorlesungstermine zu je 4 Stunden, die eine Einfuehrung in die Materie bieten. Es gibt aber (mittlerweile) Anwesenheitspflicht (kontrolliert durch Unterschriftenlisten).

Zusätzlich gibt es eine praktische Übung, die im Semesterverlauf umgesetzt werden soll. Die Aufgabe besteht aus mehreren Programmen, die auf eine gemeinsame Ressource zugreifen. Diese Programme sollen zuerst mittels XVSM oder CORSO und anschliessend mittels einer anderen, frei wählbaren Technologie implementiert werden. Im Abschluss sollen die beiden Lösungen dann miteinander verglichen werden.

Zur Mitte des Semesters gibt es eine Feedback-Runde (dient nur der Information, kein Einfluss auf die Note), zu Semesterende gibt es eine schriftliche Vorlesungsprüfung und ein Abgabegespräch.

Nach dem Abgabegespräch gibt es noch einen weiteren Vorlesungstermin, in dessen Rahmen die aus der Sicht der LVA-Leitung besten Lösungen von den Übungsteilnehmern präsentiert werden.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten]

  • Solide Programmierkenntnisse in Java (bzw. C#, falls eine .NET-basierende Space-Technologie gewählt wird)
  • Solides Verständnis von Transaktion in verteilten Anwendungen
  • Software Engineering und Projektmanagement PR von Vorteil
  • Verteilte Systeme LU von Vorteil
  • Erfahrung mit einer anderen Middleware-Technologie wie JMS, AMQ können von Vorteil sein

Vortrag[Bearbeiten]

Erträglich. Prof. Kühn trägt anhand von Powerpoint-Folien vor und erläutert den Stoff recht gut. Allerdings schlagen die 4 Stunden Vortrag (trotz Pausen) irgendwann auf die Nerven und die Aufmerksamkeit sinkt drastisch. Viele Themen sind schon aus Verteilte Systeme VO bekannt.

WS2015: Der Vortrag von Prof. Kühn ist recht angenehm und wird mit viel Elan und Freude vorgetragen. Nichtsdestotrotz sind die 3-stündigen Vorträge etwas lang und die Aufmerksamkeit sinkt gegen Ende.

Übungen[Bearbeiten]

Die Laborübung beginnt nach den 3 Vorlesungsblöcken und wird in 2er-Teams gelöst.

WS2010[Bearbeiten]

  • 1.Aufgabe: vereinfachtes Doodle mit Space Technologie nach JavaSpace05
  • 2.Aufgabe: Weihnachtsfabrik die mit versch. Workern Teddybären zusammenbaut mit XVSM und einer frei Wählbaren anderen Technologie.

Es gab diesmal nur als Technologie zur Auswahl:

  • JavaSpace Implementation (Gigaspaces,Blitz,etc.) und ApplicationSpace bei .net
  • Mozartspaces (XVSM) u. XcoSpaces (.net)

SS2010[Bearbeiten]

  • 1.Aufgabe: ein abgespeckter facebook clone mit einer SB Technologie freier wahl
  • 2.Aufgabe: ein abgespeckter ebay clone in 2 Implementierungen

zur Auswahl stehende SB Techs waren:

  • JavaSpaces: JAXS, GigaSpaces, Outrigger, Blitz
  • Corso: Java oder .NET-Version
  • XVSM: MozartSpaces (Java) oder XcoSpaces (.NET).
  • ApplicationSpace: .NET

Die 2. Aufgabe muss dann auch mit einer "alten" Technologie umgesetzt werden (zur Auswahl standen u.a. Java RMI, Corba, Sockets, WCF, JMS) wobei man da einiges an Arbeitsaufwand spart wenn man von anfang an saubere und austauschbare schnittstellen zwischen programmlogik und middleware macht. -m

WS2014[Bearbeiten]

  • 1. Aufgabe: Modellierung einer Feuerwerksfabrik (verschiedene Mitarbeiter und Bestandteile) und zweckmässiges GUI
  • 2. Aufgabe: Erweiterung um komplexere Abfolgen (Güteklassen, spezifische Aufträge, Auslieferung an Auftraggeber)

Beide Aufgaben sollen jeweils mit einer Space-basierten Technologie sowie mit einer Nicht-Space-basierten Technologie realisiert werden. Saubere Schnittstellen und möglichst niedrige Kopplung zwischen Middlewares und GUI von Vorteil.

Zur Auswahl stehende Space-Middleware-Systeme:

  • JavaSpaces: Outrigger, Blitz, GigaSpaces, ...
  • ApplicationSpace: .NET
  • XVSM: MozartSpaces (Java) oder XcoSpaces (.NET) (optional High-Level-API).

Bei der verwendeten Nicht-Space-basierten Middleware war freie Wahl, wir haben uns für Apache ActiveMQ entschieden.

SS2017[Bearbeiten]

  • 1.Aufgabe: Modellierung einer Robotorfabrik (verschiedene Robotor (Service,Kneten,Backen) und Kunden welche Produkte bestellen können) + zweckmässige GUI
  • 2.Aufgabe: Erweiterung der Lösung aus Lab1 mit komplexeren Abfolgen (Fertigpackungen, Lieferkunden, Backen nach dezidierten Backzeiten)

Beide Aufgaben sollten jeweils mit einer Space-based und Non-space-based technology umgesetzt werden. Man konnte relativ frei entscheiden welche Technology man einsetzen will. Es empfiehlt sich eine saubere Architektur (Cleane Interfaces für lose Kopplung und hohen Wiederverwendbarkeitsgrad) zu implementieren. Dadurch kann der Aufwand erheblich minimiert werden. Bei sauberer Implementierung der 1.Aufgabe ist die zweite Aufgabe relativ schnell umgesetzt.

Prüfung, Benotung[Bearbeiten]

De Gesamtnote ergibt sich aus:

  • Schriftliche Vorlesungsprüfung
  • Übungsabgabe (Abgabegespräch)
  • Anwesenheit in den Vorlesungsblöcken

Das Abgabegespräch wird von den TutorInnen abgehalten und gestaltet sich eher als lockeres persönliches Plaudern. Wer das Beispiel selbst gemacht hat, sollte keinerlei Schwierigkeiten haben. Die Benotung fällt sehr milde aus, sowohl beim schriftlichen Test als auch bei der Gesamtbenotung.

Dauer der Zeugnisausstellung[Bearbeiten]

  • SS 2007: Präsentationstermin am 26.06.2007, Zeugnis erhalten am 26.07.2007 (ca. 1 Monat)
  • WS 2008: Praesentationstermin ende Jaenner, Zeugnis erhalten am 17.02.2009 (ca. 3 Wochen)
  • WS 2010: Prüfung 20.1., Zeugnis 11.2. (ca. 3 Wochen)
  • WS 2014: Prüfung 16.1., Zeugnis 5.2. (ca. 3 Wochen)

Zeitaufwand[Bearbeiten]

Für die ECTS die man bekommt nicht hoch.

Meinungen[Bearbeiten]

  • In Anbetracht der ECTS der LVA ziemlich gering, die Übungsaufgabe sollte relativ problemlos in 7 - 10 Tagen (bzw. ca. 40 Stunden) lösbar sein, für die Vorlesungsprüfung sollte ein mehrmaliges Durchlesen der Folien ausreichen.
  • SS2010: Das der Aufwand so extrem gering wäre kann ich für dieses Semester nicht bestätigen! Wir hatten 2 Übungsaufgaben: die erste so ca ~50h Aufwand, die zweite ~40h.

Und wir sind schon erfahrene Programmierer und haben dadurch sicher einiges an Einarbeitsungszeit gespart. -m

  • WS2010: Das erste Bsp war ein bisschen aufwändig (ca. 15-20h pro Person), da JavaSpaces sehr umständlich ist. Das Beispiel mit XVSM ging aber überraschend schnell wenn man mit dem Kollegen der die Zweit-Implemenation macht, eng zusammenarbeitet (und sich so viel Code gegenseitig erspart). Ich schätze so 15 h pro Person. Man muss hier keine Angst wegen der Technologie bekommen - eine Space bekommt man schnell zum laufen und befüllen ohne langen Config Krieg.
  • WS2015: Selber Modus wie WS14, kann die Kommentare über den "geringen Aufwand" nicht mehr unterschreiben. Der Aufwand wird stark von der eingesetzten Technologie und Sauberkeit in der Umsetzung abhängen, aber wir haben ganz schön viele Stunden, insbesondere in Aufgabe 2, investiert, sind also alles in allem sicher bei 80-100h angelangt.
  • SS2017: Schließe mich der Meinung von WS15 an. Haben der ECTS-Zahl entsprechend viel Zeit investiert (25h/ECTS). Der größte Teil davon war für die Lösung der Übungsaufgaben (>100h pro Person).

Tipps[Bearbeiten]

  • Durch geschickten Einsatz von Interfaces laesst sich der Aufwand der LVA stark reduzieren.

Verbesserungsvorschläge / Kritik[Bearbeiten]

LVA Inhalte haben sich scheinbar seit 2008 nur wenig verändert. Neue auf P2P basierende technologische Ansätze (Blockchain, Bitmessage, P2PSIP VoIP,...) werden gar nicht erst erwähnt. Heute (stand Dez. 2016) versuchen Unternehmen den von XVSM großteils abgedeckte Funktionsbereich mit Blockchain Technologien umzusetzen. Letzteres wäre auf jeden Fall eine sinnvolle Ergänzung für die LVA Inhalte.