wi + se 7/8 prof. dr. oliver haase abschlusspräsentation roman sauber
TRANSCRIPT
WI + SE 7/8 Prof. Dr. Oliver Haase
AbschlusspräsentationRoman 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
PhasenAnforderungsanalyseHigh-Level DesignLow-Level Design ImplementierungTesten
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
Aquarium
FischFisch
Fisch
P2P
Aquarium
FischFisch
Fisch
P2P
Controller
View
Model
Controller
View
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
public void run() {
while(alive) {
update();
sense();
act();
refresh();
}
}
Fische sind autonome, intelligente, mobile Agenten
VereinfachterEntscheidungspfadder Fischein der Methode act()
Package Aquarium
Fischliste mit Positionen Singleton Timer Thread-Synchronisation XML
Einlesen und Abspeichern
Verwendung verschiedener Interfaces zum Zweck der Kapselung FishAquarium_IF P2PAquarium_IF ControllerAquarium_IF
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 DuoTrennung von Modell und ViewEntfernte Kommunikation über Java RMIModell kann ständig im Hintergrund laufenView 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