Abschlusspräsentation - an der HTWG Konstanz

Werbung
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
Herunterladen