19. April 2012 | 3 min lesezeit

Digital Kicker – Software des Servers

Da open knowledge sich im Tagesgeschäft vor allem mit Java beschäftigt, lag die Idee nicht fern einen eigenen Server zu programmieren. Dafür wurde schnell ein Team bestehend aus Arne Limburg, Sebastian Stockfleth, Kai Schulte und Tim de Buhr zusammengestellt, das die Server-Entwicklung übernommen hat.

Technologisch haben wir auf den Java EE 6 Standard gesetzt, dabei dient der JBoss AS 7.1.1 als Java-EE Container und die H2-DB als Datenbank, diese starten wir allerdings im Server-Modus.

Wir haben den Server als CDI-Anwendung konzipiert, da diese Technologie in unseren Augen für unser Vorhaben genügt und daher den schwergewichtigeren EJBs vorzuziehen ist. Zudem kann CDI dank Interceptoren feingranularere Transaktionsgrenzen sicherstellen als EJB.

Logisch besteht der Server aus zwei Modulen, dem Game Controller und dem Liga Controller. Physisch befinden sich beide Module in einem WAR.

Der Server bietet selbstverständlich auch ein auf JSF 2.0 basierendes Web- Interface an, über das Spiele gestartet, gestoppt, verwaltet und betrachtet werden können.

Game Controller

Der Game Controller stellt alle Schnittstellen zur Verfügung, die für die Verwaltung und Abfrage aller Spiele, Teams und Spieler notwendig sind. Hier werden alle notwendigen Daten erfasst und gespeichert.

Beschreibung des Backends

Der Server bietet Rest-Schnittstellen für die Abfrage des aktuellen Spielstandes, sowie für das Starten und Stoppen von Spielen. Ein Spiel kann in zwei Modi gestartet werden dem Spaßspiel, diese Art der Spiele geht später nicht in die Statistik ein und dem echten Spiel. Da open knowledge aktuell nur einen Kicker-Tisch besitzt kann in der aktuellen Version immer nur ein Spiel zu einer Zeit laufen.

Eine weitere Rest-Schnittstellt steht für das Arduino-Modul bereit um die gesendeten Lichtschranken-Events entgegen zu nehmen.

Beschreibung des Frontends

Die Ansteuerung der genannten Rest-Schnittstellen, erfolgt, wie bereits eingangs erwähnt, über ein per JSF generiertes Web-Frontend auf HTML 5 Basis. Es bietet Möglichkeiten Spieler zu erstellen und mit diesen Spiele zu bestreiten. Desweiteren verfügt das Frontend des Game Controllers über eine sogenannte Referee-Funktion, so daß in bestimmten Situationen in den Spielverlauf eingegriffen werden kann. Es ist beispielsweise möglich Tore wieder abzuziehen oder auch zusätzliche hinzuzuaddieren.

Ganz im Stil eines klassischen Kickertisches wird der aktuelle Spielstand über nummerierte Würfel auf einer Stange dargestellt. Fällt ein Tor, wird, von Jubel begleitet, ein Würfel von rechts nach links verschoben und eine kurze Animation abgespielt.

Für die asynchrone Kommunikation mit dem Server und die Animationen setzen wir auf jQuery. Der Torjubel ist durch das in HTML 5 standardisierte <audio> Element realisiert.

Während der Entwicklung des Frontends wurde bewusst in Kauf genommen ein Ergebnis zu erhalten, dass nur in einer Auswahl von Browsern in Gänze lauffähig ist. Auf diesem Weg war es möglich auch modernere Features wie beispielsweise CSS Transitions zu verwenden.

Liga Controller

Der Liga Controller kümmert sich um die statistische Aufbereitung der abgeschlossenen Spiele. Dabei wird auf die zuvor erfassten Daten zugegriffen.

Beschreibung des Backends

Für die Abfrage der statistischen Daten bietet der Server ebenfalls Rest- Schnittstellen an um z.B. die besten Spieler oder Teams oder das schnellste geschossene Tor zu liefern.

Beschreibung des Frontends

Der Frontend-Bereich des Liga Controllers besteht gegenwärtig aus mehreren Highscore-Listen, die in regelmäßigen Abständen mit dem Backend System synchronisiert werden. Der Nutzer hat die Gelegenheit selbstständig durch die Listen zu blättern oder sie während des automatischen Blätterns zu betrachten.

Teil 1: Digital Kicker – die Idee

Teil 2: Zusammenbau der Platine

Teil 3: Software für die Platine


Keine Kommentare

Kontakt

OPEN KNOWLEDGE GmbH

Standort Oldenburg:
Poststraße 1, 26122 Oldenburg

Standort Essen:
II. Hagen 7, 45127 Essen