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
Aquarium Fisch
Fisch Fisch
P2P
Aquarium Fisch
Fisch 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
Vereinfachter
Entscheidungspfad der Fische
in 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 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