• Keine Ergebnisse gefunden

WI + SE 7/8 Prof. Dr. Oliver Haase Abschlusspräsentation Roman Sauber

N/A
N/A
Protected

Academic year: 2022

Aktie "WI + SE 7/8 Prof. Dr. Oliver Haase Abschlusspräsentation Roman Sauber"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WI + SE 7/8

Prof. Dr. Oliver Haase

Abschlusspräsentation Roman Sauber

(2)
(3)

Überblick

Projekt-Organisation

Features

Technologien

Versionen

(4)

Teammitglieder

Marco Becherer

Jens Boeckel

Vetiola Elezkurtaj (Teil A)

Kornelia Markovic

Roman Sauber

Daniel Weber

Richard Woldert

Fanny Ziegler (Teil B)

(5)

Projekt-Organisation

Phasen

Anforderungsanalyse

High-Level Design

Low-Level Design

Implementierung

Testen

1. Semester

2. Semester

(6)

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

(7)

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

(8)

Architektur und Verteilungsmodell

Aquarium Fisch

Fisch Fisch

P2P

Aquarium Fisch

Fisch Fisch

P2P Controller

View

Model

Controller View

(9)

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

(10)

Das Leben der Fische

public void run() { while(alive) {

update();

sense();

act();

refresh();

} }

Fische sind autonome, intelligente, mobile Agenten

(11)

Vereinfachter

Entscheidungspfad der Fische

in der Methode act()

(12)

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

(13)

P2P Konzept

Ringstruktur

Linker und rechter Nachbar

Organisiert in einer Gruppe

Join

Gruppe finden

Einfügen

Leave

(14)

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

(15)

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

(16)

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

(17)

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

Referenzen

ÄHNLICHE DOKUMENTE

 Programm kann direkt auf jede Zielmaschine portiert werden, die einen Interpretierer für die Sprache

Lesen Sie die Zahlen a und b von der Tastatur ein, weisen Sie das Ergebnis der obigen Berechnung einer boolschen Variablen istTeiler zu und geben Sie den Wert dieser Variablen auf

Implementor (CommImpl): defines interface for implementation classes (can differ from Abstraction interface). ConcreteImplementor (TcpCommunication): provides implementation

knows which subsystem classes are responsible for which requests delegates client requests to respective subsytem

Purpose: Define method for object creation in abstract class, leave actual creation to concrete subclasses.. Also known as:

Divide object state into intrinsic and extrinsic state, such that there is only a small number of distinct objects with different intrinsic states.. Share these

When an RMI server object is exported, the runtime system (Java virtual machine) creates a dynamic proxy (RMI stub) that implements the respective remote interface, and forwards

Element: defines an accept operation with a Visitor as argument ConcreteElement: implements the accept operation, usually by calling the visitor’s appropriate visit