WI + SE 7/8 Prof. Dr. Oliver Haase Abschlusspräsentation Roman Sauber
Überblick Projekt-Organisation Features Technologien Versionen
Teammitglieder Marco Becherer Jens Boeckel Vetiola Elezkurtaj (Teil A) Kornelia Markovic Roman Sauber Daniel Weber Richard Woldert Fanny Ziegler (Teil B)
Projekt-Organisation Phasen Anforderungsanalyse High-Level Design Low-Level Design Implementierung Testen 1. Semester 2. Semester
Aqualife Features Natürliches Verhalten in einem Ökosystem Zustände Paaren Kinder zeugen Fressen Sterben Fischarten Raubfische Unterschiedliche Eigenschaften Vernetztes Aquarium Benutzer kann Fische angeln / aussetzen Arten selbst definieren Eigenen Aquarium-hintergrund wählen
Facts & Figures Programmiersprache Java 5 Entwicklungsumgebung Eclipse Zentraler CVS-Server für Versionsverwaltung 5621 Lines of Code 371 Methoden 56 Klassen 11 Packages Verwendete Technologien Entwurfsmuster Model-View-Controller GUI: Java SWING Multi-Threading Fische: Autonome, intelligente, mobile Agenten P2P: JXTA XML Java WebStart
Architektur und Verteilungsmodell Fisch Fisch View View Fisch Fisch Fisch Fisch Controller Aquarium Aquarium Controller P2P P2P
Eigenschaften der Fische id name age species speciesName origin sex size energy alive Spezies name image fishEating visualRange maxSpeed losingEnergyPerTic energyMinimum consumingPlanktonPerTic maturity maximumAge pairingTimeout
Das Leben der Fische Fische sind autonome, intelligente, mobile Agenten public void run() { while(alive) { update(); sense(); act(); refresh(); }
Vereinfachter Entscheidungspfad der Fische in der Methode act()
Package Aquarium Zentrale Einheit eines lokalen Peers Fischliste mit Positionen Singleton Timer Thread-Synchronisation XML Einlesen und Abspeichern Verwendung verschiedener Interfaces zum Zweck der Kapselung FishAquarium_IF P2PAquarium_IF ControllerAquarium_IF
P2P Konzept Ringstruktur Organisiert in einer Gruppe Linker und rechter Nachbar Organisiert in einer Gruppe Join Gruppe finden Einfügen Leave
P2P Technik JXTA Pipe-Konzept Implementiert als Event-Listener Informationen: NeighbourPipe Fische: ObjectPipe Backup-Pipe Implementiert als Event-Listener P2PClient: Aquarium regularPipeListener: Monitoring clientListener: join Requests neighbourListener: neighbourMessages und FishTransfer
JXTA(TM) Technologie JXTA steht für Juxtapose: nebeneinander stellen Initial Forschungsprojekt bei Sun Microsystems Set offener, allgemeiner Peer-to-Peer Protokolle Verbindet beliebige Geräte (Handy und PDA, PC und Server) im Netzwerk Steht unter Apache Software License Änderung und Verteilung des Quelltextes und der Binaries ist erlaubt
Versionen Aqualife Solo Aqualife Duo Integrierte WebStart-Version Trennung von Modell und View Entfernte Kommunikation über Java RMI Modell kann ständig im Hintergrund laufen View wird dynamisch gestartet / gestoppt
Java WebStart Technologie von Sun Microsystems Java-Applikationen über das Netz mit nur einem Klick starten Voraussetzungen: Beschreibung des Programms in einer jnlp-Datei jar-Paket auf dem WebServer, der den MIME-Type application/x-java-jnlp-file kennt JRE und Java WebStart installiert auf Client-System http://www-home.htwg-konstanz.de/~haase/lehre/ws05/aquarium/aquarium.html