170 likes | 429 Views
Abschlusspräsentation Roman Sauber. WI + SE 7/8 Prof. Dr. Oliver Haase. Überblick. Projekt-Organisation Features Technologien Versionen. Teammitglieder. Marco Becherer Jens Boeckel Vetiola Elezkurtaj (Teil A) Kornelia Markovic Roman Sauber Daniel Weber Richard Woldert
E N D
Abschlusspräsentation Roman Sauber WI + SE 7/8 Prof. Dr. Oliver Haase
Ü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
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 Aqualife Features
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 Fisch Fisch View View Fisch Fisch Fisch Fisch Controller Controller Aquarium Aquarium P2P P2P
Fische id name age species speciesName origin sex size energy alive Spezies name image fishEating visualRange maxSpeed losingEnergyPerTic energyMinimum consumingPlanktonPerTic maturity maximumAge pairingTimeout Eigenschaften der Fische
Das Leben der Fische Fische sind autonome, intelligente, mobile Agenten public void run() { while(alive) { update(); sense(); act(); refresh(); } }
VereinfachterEntscheidungspfadder Fischein der Methode act()
Fischliste mit Positionen Singleton Timer Thread-Synchronisation XML Einlesen und Abspeichern Verwendung verschiedener Interfaces zum Zweck der Kapselung FishAquarium_IF P2PAquarium_IF ControllerAquarium_IF Package Aquarium • Zentrale Einheit eines lokalen Peers
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