Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

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

2 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Projekt-Ziele (1) Neuimplementierung der Spielleiter - Software Kompletter Neuentwurf der Datenbank Übernahme der alten Datenbestände Internationalisierung Java als plattformübergreifende Sprache

3 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Projekt-Ziele (2) Einfache Auslieferung – Java Web Start Logging (Java Logging, Trigger) Druckfunktionalität Grundlegende Administrationsfunktionen

4 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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)

5 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Verwendete Werkzeuge (1) Eclipse 3.0 Entwicklungsumgebung Linux – Server (Debian) Datenbank, SVN-Repository PostgreSQL Als Datenbank, zuerst später Subversion, Subclipse / Tortoise Zentrales Repository MindManager Projektplanung, Ideensammlung, Aufgabenzuordnung

6 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Verwendete Werkzeuge (2) MS Visio 2003 Diagramme für Planung und Visualisierung Aquastudio / PGAdmin III Datenbankzugriff: Tabellen anzeigen Abfragen durchführen Clay Database Modelling DB-Entwurf, SQL-Erzeugung für Anlegung der Tabellen Borland Together for Eclipse UML-Modellierung FATJAR (Ersatz für ANT) JAR-File - Erstellung mit korrekten Manifest Einträgen

7 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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 ANT Automatisiert den Build-Prozess (Kompilierung, Signierung, Upload) –Generierung der Manifest-Datei nicht wie gewünscht –Verbergen der Passworte wurde nicht umgesetzt

8 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Getestete Software (2) - und warum Sie nicht verwendet wurde - Doxygen Bessere 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

9 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Eigene Implementierungen Angepasste Tabellen –SQL Table (Füllung der Tabelle direkt durch RowSet-Übergabe) Modifizierte JTree – Komponente –Eigene Icons –Checkboxen

10 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Entwürfe der GUI Planung / Erstentwürfe –Zeichnungen –Powerpoint Spätere Überarbeitung der fertigen Oberfläche –Direkt in Eclipse

11 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann - GUI Entwürfe

12 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann - GUI Entwürfe

13 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann - GUI Entwürfe

14 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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

15 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Abfragenkomplexität SELECT name, sum(summe) FROM ( SELECT name, sum(amount) AS summe FROM production_asteroid, spec_production WHERE data_asteroid.id_races =? AND production_asteroid.active = true AND data_asteroid.id = id_data_asteroid AND 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_production WHERE data_asteroid_planet.id_races=? AND id_data_asteroid_planet = data_asteroid_planet.id AND production_asteroid_planet.active=true AND 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

16 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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

17 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann UML & Visio UML –Modellierung der logischen Strukturen –Klassenbeziehungen Visio –Ablaufdiagramme Würfelung eines Planeten Erschaffung eines Sternensystems

18 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann - UML Sequenzdiagramm

19 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann - Würfelung eines Planeten

20 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann

21 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann

22 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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

23 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aufgetretene Probleme (2) Zahlreiche Programmierungsprobleme SUNs 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. Fehlerursache Als Locale wurde US-Locale fest einprogrammiert, sonst Nullpointer Exception. Zwei Workarounds: Pro Land eine neue Property-Datei in der JAR-Datei Doppelte Initialisierung

24 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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; }

25 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann 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

26 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Status Implementierung der angestrebten Funktionen: –ca. 60 % - 65 % Ausgeliefert an die Spieler? –Nein

27 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Aelitha Wir 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

28 A e l i t h aA e l i t h a A. Wardaschko M. Brenda S. Brauch J. Stoltmann Externe Komponenten Icons:http://www.foood.net/http://www.foood.net/ Look & Feel Layout Manager Navigationsleiste Connection Pooling CachedRowset (Sun)/products/jdbc/download.html#rowset1_0_1/products/jdbc/download.html#rowset1_0_1 JConsolehttp://sourceforge.net/projects/zeus-jscl/http://sourceforge.net/projects/zeus-jscl/ Java Mail (Sun):http://java.sun.com/products/javamail/ /products/javabeans/glasgow/jaf.htmlhttp://java.sun.com/products/javamail/ /products/javabeans/glasgow/jaf.html


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen