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

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

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.
Vortragende eva Kühn
ECTS 6
Sprache Deutsch
Links tiss:185226
Zuordnungen
Masterstudium Medizinische Informatik
Masterstudium Software Engineering & Internet Computing
Masterstudium Technische Informatik

Mattermost: Channel "verteiltes-programmieren-mit-space-based-computing-middleware"RegisterMattermost-Infos

Inhalt[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

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

WS2010[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]

Für die ECTS die man bekommt nicht hoch.

Meinungen[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

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

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext 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.