28
25.01.200 5 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann A e l i t h a Aelitha Was ist Aelitha? ein Play-by-eMail Spiel • ein anspruchsvolles SciFi- Rollenspiel • ein Gemeinschaftsprojekt Spiel läuft seit über vier Jahren ca. 60 Spieler Deutschland, Schweiz, Österreich

A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

Embed Size (px)

Citation preview

Page 1: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

AelithaWas ist Aelitha?

• ein Play-by-eMail Spiel

•• ein anspruchsvolles SciFi-

Rollenspiel •• ein Gemeinschaftsprojekt

Spiel läuft seit über vier Jahrenca. 60 Spieler

Deutschland, Schweiz, Österreich

Page 2: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Projekt-Ziele (1)

• Neuimplementierung der Spielleiter - Software

• Kompletter Neuentwurf der Datenbank• Übernahme der alten Datenbestände• Internationalisierung• Java als plattformübergreifende

Sprache

Page 3: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Projekt-Ziele (2)

• Einfache Auslieferung – Java Web Start

• Logging (Java Logging, Trigger)• Druckfunktionalität• Grundlegende

Administrationsfunktionen

Page 4: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Projekt-Ziele (3)

• Gute Performance• Möglichst hohe Sicherheit• GUI für die Spieler

– Import und Export von Daten (vCards, Objektdaten)

– Erstellung verschiedener Objekte (Nebel, Planeten, Asteroiden)

– Übersicht der Ressourcen / Objekte– Diplomatie-Optionen

(Datenaustausch unter den Spielern)

Page 5: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Verwendete Werkzeuge (1)

• Eclipse 3.0Entwicklungsumgebung

• Linux – Server (Debian)Datenbank, SVN-Repository

• PostgreSQLAls Datenbank, zuerst 7.2.4 später 7.4.6

• Subversion, Subclipse / TortoiseZentrales Repository

• MindManagerProjektplanung, Ideensammlung,

Aufgabenzuordnung

anton
Ein paar Worte dazu, warum man sich für Postgre entschieden hat.- Bei konkurrirendem Zugrif höhere Perfomance gegenüber MySQL- frei- näher an professionellen DB-Systemen- Trigger, PL SQL
Page 6: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Verwendete Werkzeuge (2)

• MS Visio 2003Diagramme für Planung und Visualisierung

• Aquastudio / PGAdmin IIIDatenbankzugriff: Tabellen anzeigen

Abfragen durchführen

• Clay Database ModellingDB-Entwurf, SQL-Erzeugung für Anlegung der Tabellen

• Borland Together for EclipseUML-Modellierung

• FATJAR (Ersatz für ANT)JAR-File - Erstellung mit korrekten Manifest Einträgen

Page 7: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Getestete Software (1)- und warum Sie nicht verwendet wurde -

• Visual Editor Project (VEP)Erstellung grafischer Oberflächen per Drag&Drop– Code-Overhead– Verleitet zur Verwendung nicht aussagekräftigen

Variablennamen– unverträglich mit dem verwendeten Layoutmanager und

speziellen Komponenten

• ANTAutomatisiert den Build-Prozess (Kompilierung, Signierung,

Upload)– Generierung der Manifest-Datei nicht wie gewünscht– Verbergen der Passworte wurde nicht umgesetzt

Page 8: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Getestete Software (2)- und warum Sie nicht verwendet wurde -

• DoxygenBessere Dokumentation als mit JavaDoc– Spezielle Kommentierungsfunktionen im SourceCode wurden

nicht eingesetzt – Ausgabe erfolgt nicht wie gewünscht

• Datenbanksichere Swingkomponenten (SwingSet)Sorgenfreie Datenbankanbindung– erhaltene Datenbank-Verbindungen werden nicht frei gegeben– erfordert doppelte Abfragen (bei Objekterstellung & vor

Schreiben)

• JAAS (Java Authentication & Authorization Service)Framework für Authentifizierung und Autorisierung– zu mächtig / nicht notwendig

anton
torque, Object Relational Bridge=> Einarbeitungs- und Einrichtuingsaufwand=> Kosten auch Perfomance
anton
Aufwändig, derzeit auch nicht notwendig
anton
zu viele Connections, zu gefährlich
Page 9: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Eigene Implementierungen

• Angepasste Tabellen– SQL Table

(Füllung der Tabelle direkt durch RowSet-Übergabe)

• Modifizierte JTree – Komponente– Eigene Icons– Checkboxen

Page 10: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Entwürfe der GUI

• Planung / Erstentwürfe– Zeichnungen– Powerpoint

• Spätere Überarbeitung der fertigen Oberfläche– Direkt in Eclipse

Page 11: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a- GUI Entwürfe

Page 12: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a- GUI Entwürfe

Page 13: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a- GUI Entwürfe

Page 14: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Datenbank-Modellierung mit »Clay«

• DB-Modellierung war sehr aufwändig.• Nachbesserungen immer wieder notwendig

trotz intensiver Planungsphase– Vergessene Aspekte / Spalten– Vereinfachung der Programmierung

• Vereinfachungen für die komplexen Abfragen wurden bis zum Schluss gesucht

anton
Clay als PlugIn ist zwar ksotenlos, Druckfunktion ist aber nicht
anton
Hier die DB-Struktur in Eclipse zeigen
Page 15: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

AbfragenkomplexitätSELECT name, sum(summe) FROM (SELECT name, sum(amount) AS summe FROM production_asteroid, spec_productionWHERE data_asteroid.id_races =? AND production_asteroid.active = trueAND data_asteroid.id = id_data_asteroidAND id_spec_productiontype = (SELECT id FROM spec_productiontype WHERE type='Material')AND id_spec_production = spec_production.id GROUP BY name

UNION ALL

SELECT name, sum(amount) AS summe FROM…) AS production GROUP BY name ORDER BY name

SELECT name, sum(amount) FROM data_asteroid_planet, production_asteroid_planet, spec_productionWHERE data_asteroid_planet.id_races=?AND id_data_asteroid_planet = data_asteroid_planet.idAND production_asteroid_planet.active=trueAND id_spec_productiontype = (SELECT id FROM spec_productiontype WHERE type='Material')AND id_spec_production = spec_production.id GROUP BY name ORDER BY name

- Datenbank-Design

Page 16: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Datenimport Access PostgreSQL

• Einrichtung einer ODBC-Brücke– Komplette Datenübertragung ca. zwei Stunden

• Probleme / Hindernisse– Strukturelle und logische Fehler der alten DB

• Zusammenfassung verschiedener Spalten in einer Zelle

– Rechtschreibfehler in der alten DB• Weitgehend durch Mapping-Tabellen gelöst

– Mehrfacherfassung der Daten, ungültige Datensätze

Page 17: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

UML & Visio

• UML– Modellierung der logischen Strukturen– Klassenbeziehungen

• Visio– Ablaufdiagramme

• Würfelung eines Planeten• Erschaffung eines Sternensystems

anton
Ablauf besser getrennt zeigen, da hier nicht mehr lesbar. Ob man darauf eingeht, muss während der Präsentation entschieden werden.
Page 18: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a- UML Sequenzdiagramm

Page 19: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a- Würfelung eines Planeten

Page 20: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Page 21: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Page 22: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Aufgetretene Probleme (1)

• Elementares Wissen musste erarbeitet werden– Wie wechselt man in SWING die Panels in einer

GUI– JTable, JList, JTree – Darstellung- und

Modelanpassung– Validierung der Benutzereingaben, Filter usw.– Arbeit mit einem zentralen Repository

Page 23: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Aufgetretene Probleme (2)

• Zahlreiche ProgrammierungsproblemeSUNs Implementierungfehler in Rowsets (Tiger 5). Da die Fehlermeldung – NullPointer Exception - nicht eindeutig war führte der Weg über die Prüfung der eigener Klassen und Dekompilierung der Sun Implementierung zum Auffinden des Problems. Erst danach konnten bestätigende Hinweise im Internet gefunden werden.

FehlerursacheAls Locale wurde US-Locale fest einprogrammiert, sonst Nullpointer Exception.

Zwei Workarounds:Pro Land eine neue Property-Datei in der JAR-DateiDoppelte Initialisierung

Page 24: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Aufgetretene Probleme (3)

• Doppelte Initialisierung:

private CachedRowSetImpl getRowSet() throws SQLException {        try { rowsetUserData = new CachedRowSetImpl(); }         catch( NullPointerException npe ) {            npe.printStackTrace();            // on second try the default bundle should be used            rowsetUserData = new CachedRowSetImpl();        }          return rowsetUserData;}

Page 25: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Geplante Erweiterungen

• Sicherung der Verbindung mit SSL• Admin-Bereich• Verknüpfung der Planetengenerierung mit der GUI• Bessere Modularisierung• Programmhilfe

– JavaHelp oder mit DocBook• Drucklösung

– Freie Reportingsysteme decken die Bedürfnisse nicht ab.– Der einfachste Weg wird wohl über HTML sein.

• Datenexport– Textdateien und evtl. PDF / Excel

Page 26: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Status

•Implementierung der angestrebten Funktionen:

– ca. 60 % - 65 %

•Ausgeliefert an die Spieler?– Nein

Page 27: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

AelithaWir sagen herzlichen Dank an

• Prof Dr. Hinkelmann für Projektbetreuung und Beratung in Datenbank-Fragen

• Prof. Kriha für die ausführliche Besprechung des Sicherheitskonzeptes

• Intelligent Management Solutions für die Bereitstellung von Besprechungsräumen und Beamer

• Urs Schweri für die Aufbereitung der alten Daten

• Jan Koutny für die Visualisierung der alten Codeabläufe

• Andrea Wollens und alle anderen Spieler, die schon seit Jahren mit Begeisterung und Einsatz das Aelitha Universum formen

Page 28: A e l i t h aA e l i t h a 25.01.2005A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Was ist Aelitha? ein Play-by-eMail Spiel ein anspruchsvolles

25.01.2005 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

A e l i t h a

Externe Komponenten

• Icons: http://www.foood.net/• Look & Feel http://www.jgoodies.com• Layout Manager http://www.clearthought.info/software/

TableLayout/• Navigationsleiste http://common.l2fprod.com/• Connection Pooling http://homepages.nildram.co.uk/~slink/

java/DBPool/• CachedRowset (Sun) /products/jdbc

/download.html#rowset1_0_1• JConsole http://sourceforge.net/projects/zeus-jscl/• Java Mail (Sun): http://java.sun.com/products/javamail/

/products/javabeans/glasgow/jaf.html

anton
JavMail verwendet ihrerseitsJavaBeans Activation
anton
Zu allen Themenbereichen können bei Interesse weiterführende Infos geleifert werden.
anton
einfach zu bedeinen und auszurichten, ähnlcih wie HTML-Table