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