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 Aquariumhintergrund 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 Model View Controller Fisch Fisch Fisch Fisch Fisch Fisch Aquarium Aquarium P2P P2P View Controller Eigenschaften der Fische 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 Linker und rechter Nachbar Organisiert in einer Gruppe Join Gruppe finden Einfügen Leave P2P Technik JXTA Pipe-Konzept 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 Integrierte WebStart-Version Aqualife Duo 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