Artikel

 
Januar 2010 | Artikel

W-JAX-Challenge: Eine Packung gefällig?

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/2835)

Das Tippspiel mit JVx

Text: René Jahn
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Die Challenge war für uns die ideale Möglichkeit, das Enterprise Application Framework JVx offiziell der breiten Masse vorzustellen. Ein bis dato unbekanntes Framework tritt gegen bekannte Größen der Java-Welt an. Gestatten, JVx mein Name!
Teil 1   Teil 2   

Basic Facts

Auf der Suche nach zeitgemäßen Möglichkeiten zur Bekanntmachung von JVx stießen wir eher zufällig auf die W-JAX-Challenge. Das Thema "Tippspiel für die WM 2010" weckte aber sofort den Entwicklerinstinkt und formierte ein Projektteam mit Roland Hörmann, Martin Handsteiner und René Jahn. Die Tatsache, dass nur noch drei der möglichen sechs Wochen für die Umsetzung zur Verfügung standen, löste zwar kurzfristig Bedenken aus, doch wer nicht wagt, der nicht gewinnt.

Das Framework war für uns von Anfang an klar, denn einerseits wollten wir es vorstellen und andererseits ermöglichte es uns die Umsetzung der gewünschten Anforderungen sowie unsere eigenen Vorstellungen von einem Tippspiel, auf professionelle Art und Weise.

Mit JVx entwickeln wir im Normalfall effiziente und individuelle Datenbankanwendungen, für mittlere und große Unternehmen, in einer Drei-Schichten-Architektur. Es ermöglicht die Erstellung von Technologie mit unabhängigen User Interfaces, z. B. Java-Desktop, Java-Webstart/Applet, Android, und beinhaltet alle notwendigen Komponenten für die einzelnen Schichten. Unser User Interface sollte auf jeden Fall den Komfort einer Desktopanwendung bieten, z. B. Load-on-Demand von Daten, Listen mit Scrolling ohne zu Pagen u. v. m. Deshalb setzten wir auf einen MDI-Swing-Desktop, der sowohl im Browser als auch mit Webstart verwendbar ist.

Durch das Framework wird das MVC-Konzept bereits vollständig umgesetzt und es entfällt somit die zeitaufwändige Modellanbindung. Das Framework verwendet außerdem eine einheitliche Modellimplementierung für alle UI-Komponenten wie Tabellen, Tree, Editoren, Bildanzeige, Checkboxen u. v. m. Da es sich um ein aktives, generisches Modell handelt, müssen die UI-Komponenten die Aktualität der angezeigten Daten nicht mehr selbst berücksichtigen, denn das Modell informiert bei Bedarf.

Der Server von JVx ist unabhängig vom Kommunikationsprotokoll und modular aufgebaut, bietet ein speicheroptimiertes Session Handling und übernimmt die Verwaltung aller Businessobjekte bzw. die Businesslogik. Aufgrund von austauschbaren Authentifizierungsverfahren sind verschiedenste Authentifizierungswege umsetzbar. Das Framework enthält bereits Implementierungen für die Verwendung mit Datenbanken und XML. Doch es spricht auch nichts gegen die Anmeldung an ein Active Directory (eine übliche SSO-Lösung in Unternehmen).

Als weiteres Extra gibt es den Zugriff auf beliebige Daten (XML, CSV, Sockets usw.) und Datenbanken (Oracle, MySql, Derby usw.) in Form einer Persistence-Implementierung.

Abbildung 1 gibt einen Überblick der JVx-Architektur und legt zugleich die Architektur der Tippspielanwendung fest.

Beim User Interface entschieden wir uns für Swing, weil damit die Anwendung sowohl als Webstartapplikation als auch im Browser als Applet eingesetzt werden kann. Bei Bedarf könnte das UI auch gegen eine andere Implementierung ausgetauscht werden. Die komplette Business Logik wird am Server in Form von Java-Objekten bereitgestellt. Die Kommunikation zwischen Client und Server erfolgt über http(s) und wird vom Framework bereits abstrahiert. Das tatsächliche Kommunikationsprotokoll ist somit transparent und kann gegebenenfalls getauscht werden, wie z. B. RMI.

Für den Zugriff auf die Datenbank, im speziellen Derby, verwendeten wir die Persistence-API von JVx, weil dieses einen minimalen Speicherverbrauch garantiert und besonders effizient arbeitet.

Nachdem die Technologie geklärt war, mussten die Rahmenbedingungen für die Umsetzung definiert werden. Dabei gab es nur hinsichtlich der Projektdokumentation Abstriche. Der Spaß stand schließlich im Vordergrund. Folgende Tools kamen zum Einsatz:

  • Das firmenübliche Ticketing-System auf Basis von FlySpray für die Definition der Anforderungen
  • Versionierung mit Subversion
  • Eclipse als einheitliche Entwicklungsumgebung
  • JUnit, Subclipse, Checkstyle, FindBugs, Emma als Eclipse-Plug-ins für die Qualitätssicherung
  • Derby-UI und QuantumDB als Eclipse-Plug-ins für die Bearbeitung der Derby-Datenbank
  • PlSql Developer für die Bearbeitung der Oracle-Datenbank
  • Ant für den automatischen Build

Im nächsten Schritt definierten wir im Team die Anforderung an das Tippspiel und organisierten uns selbständig, sprich jeder übernahm die Verantwortung für einen Bereich der Entwicklung. Dazu zählten Datenbankdesign, Businesslogik, Layout, Dokumentation, Qualitätssicherung und der Build-Prozess. Auf diese Art und Weise gab es kaum Überschneidungen und wir verloren keine Zeit. Das Um und Auf dabei war, das sich jeder auf den anderen verlassen konnte.

Von Beginn an war für uns klar, das wir nicht nur ein Tippspiel für die WM 2010 entwickeln wollten, sondern ein Tippspiel für alle möglichen Fußball-Events wie Champions League, UEFA-Cup usw. Außerdem mussten einfach gewisse Extras wie private Tippgruppen, Tipp auf den Turniersieger, Benutzeradministration mit Rollenverwaltung, aber auch Mehrsprachigkeit im Umfang enthalten sein. Als Krönung sollte das System auch noch vollautomatisch arbeiten. Einfach ein neues Turnier erstellen, die Mannschaften in Gruppen einteilen, den allgemeinen Spielplan festlegen und die Ergebnisse der einzelnen Partien eingeben. Den Rest übernimmt das System.

Es ging uns also nicht nur darum zu zeigen, wie effizient und komfortabel mit JVx entwickelt werden kann, sondern wie mit JVx komplexe und alltägliche Anforderungen innerhalb kürzester Zeit umgesetzt werden können.

Die Implementierung starteten wir mit dem Ziel, insgesamt zwölf Masken zu erstellen. Wobei ein registrierter Benutzer nur sieben davon verwenden darf. Die restlichen Masken dienen ausschließlich der Administration und werden über die Rollenverwaltung an Administratoren vergeben.

Eines bereits vorweg: Wir hätten uns mit weniger zufrieden geben sollen, denn es wurde so richtig knapp. Doch später mehr dazu.

Teil 1   Teil 2   

andere Artikel dieser Serie


Anzeige

Kommentare


Anzeige

zurück zum Seitenanfang