Space Based Computing VU SS08 Gruppe 3 Vanja Culafic 0426783 Waldemar Hummer 0416710
Allgemeines Aufwand: ~120 Arbeitsstunden LOC: File-Sharing Beispiel: ~1700 Davon Corso: ~550 Davon MozartSpaces: ~450 Scrabble Beispiel: ~3300 Davon Socket: ~650 Davon MozartSpaces: ~600
Verwendete Technologien Nur Java™ (keine .NET/C# Variante) MozartSpaces 1.0-alpha (Bsp. 1 und 2) Corso 3.3 (Beispiel 1) Sockets (Beispiel 2) Allgemein: Log4j Swing Ant
File-Sharing Beispiel
File-Sharing Beispiel Sharen von Dateien zwischen mehreren Benutzern Dateien müssen explizit freigegeben werden Freigegebene Dateien müssen mit Original verlinkt werden Automatische Synchronisierung der Änderungen Wenn ein Benutzer offline ist, soll dies nicht möglich sein
Scrabble Beispiel
Scrabble Beispiel Mehrere Spiele gleichzeitig Mehrere SpielerInnen in einem Spiel Synchronisierung der Züge gleichzeitiges Setzen von Buchstaben auf das Spielbrett Logging von Zügen Recovery von Zügen (rückgängig machbar) Achten auf Score, Buchstaben im Beutel usw. UI Darstellung des Spielbretts
MozartSpaces Variante Vorteile: Variante „embedded core“ (kein zentraler Server) Verständliche API mit AtomicEntry<..> und Tupeln Nachteile: Abhängigkeit auf Datei „spaces.prop“ (schwer zu debuggen, nicht dokumentiert) Schlechtes Laufzeitverhalten bei vielen einzufügenden Tupeln (fast 10s für 100 Tupeln!) Relativ viele LOC (u. A. durch Schachtelung von AtomicEntry<..>)
Corso Variante Vorteile: Nachteile: Klare API (Adressierung jedes Objekts durch OID) Definition von eigenen, komplexen Datenstrukturen (CorsoShareable) Großteils „lazy loading“ von Objekt-Attributen Persistenz vorhanden Nachteile: Server command-line Applikation: keine --help Option Kryptische Exceptions mit ausdruckslosen Fehlercodes
Sockets Variante Vorteile: Nachteile: Volle Kontrolle über Kommunikationsmethode Definition von Message-Klassen, Serialisierung u. versenden in Java sehr vereinfacht Keine Einarbeitung notwendig, abschätzbarer Zeitaufwand Nachteile: Schreiben von eigenen Routinen für Datenintegrität, Ausfälle, beendete Clients fehleranfällig Übertragene serialisierte Objekte müssen dieselbe Version haben Mehr LOC im Vergleich zu Space-Based Varianten
Fragen?