Einsatzgebiete von Webframeworks

Beispiel 2: Durchführung von Einstellungstests für Bewerber

Anforderungen: Ein Einstellungstest soll realisiert werden, bei dem der Bewerber diverse Fragen beantworten muss und zwischen den Fragen navigieren kann. In bestimmten Situationen soll der Bewerber Hilfestellungen von der Anwendung angezeigt bekommen, damit er auch bei eventuell auftretenden Problemen weiterkommt. Die Bedienung soll dabei den Komfort einer Desktopanwendung bieten und intuitiv steuerbar sein, damit sich der Bewerber ausschließlich auf die eigentlichen Fragen konzentrieren kann. Damit der Bewerber den Test auch zu Hause durchführen kann, sind für die Dauer des Einstellungstests auch kurze Netzprobleme zu überstehen, um keine Daten zu verlieren. Ein bestimmter Webbrowser sollte dem Bewerber nicht vorgeschrieben werden.

Lösung: Es bietet sich an, die Anwendung durch ein Rich-Client-Framework zu realisieren. Durch die single-page-Struktur wird eine desktopähnliche Nutzung möglich. Weder Lesezeichen noch Durchsuchbarkeit durch Suchmaschinen sind erforderlich. Durch den clientzentrischen Ansatz wird die Anwendung beim Start vollständig geladen und somit werden eventuelle Netzwerkprobleme den Benutzer nach dem Start des Einstellungstests nicht weiter bei der Darstellung der Oberfläche behindern.

Als Alternative zur Verwendung eines Rich Client-Webframeworks kann auch eine Java-Desktopanwendung ins Web gebracht werden (Kasten: „Java WebStart als Alternative zum Webframework“).

Technologieauswahl: Als Webframework empfiehlt sich hier das Google Web Toolkit (GWT) . Die große Auswahl an Komponenten ermöglicht eine sehr schnelle Implementierung, beispielsweise durch den Einsatz einer der beiden Komponentenbibliotheken ExtGWT oder SmartGWT. Die Anwendung wird plattformunabhängig sein und kann ohne Plug-in auf jedem verbreiteten Browser benutzt werden. Für die Hilfestellungen von der Webanwendung in bestimmten Situationen wird das Comet-Konzept eingesetzt (Kasten: „Comet – das Push-Konzept).

JavaScript Caching speichert die vom Benutzer eingegebenen Daten im Arbeitsspeicher des Clients zwischen. Da nur ein kurzfristiger Ausfall der Verbindung beachtet werden muss, ist diese Lösung für die Realisierung der Offlinefähigkeit ausreichend. Allerdings ist zum jetzigen Zeitpunkt die Offlinefähigkeit nicht ohne JavaScript-Kenntnisse realisierbar. Dafür ist das Modul JavaScript Foreign Function Interface (JSFFI, früher JSNI) verfügbar, eine gute Einführung gibt es unter [1].

Java WebStart als Alternative zum Webframework

Viele Unternehmen sehen sich mit der Aufgabe konfrontiert, eine Desktopanwendung, die mit einem Server kommuniziert, als Webanwendung anzubieten. Grund ist unter anderem die Aufwandreduzierung durch weniger Installations- und Wartungsaufwand. Für eine Neuentwicklung kann ein Webframework verwendet werden. Sofern es sich um eine bereits existierende Java-SE-Anwendung handelt, ist auch eine deutlich kostengünstigere Alternative verfügbar.

Java WebStart

Java WebStart ist eine Technik, die das Laden und Starten einer Java-SE-Anwendung über das Internet ermöglicht. Die Anwendung läuft dann nicht im Webbrowser, sondern als „ganz normale“ Java-Anwendung. Sie bleibt im Cache der Festplatte des Clients gespeichert. Ein (automatisches) Update ist lediglich bei einer neuen Version der Anwendung notwendig. Die Anwendung kann daher auch ohne Internetverbindung verwendet werden. Diese Technologie ist seit Java 1.4 in das Java Runtime Environment (JRE) integriert. Auf Clientseite ist eine installierte JRE die einzige Voraussetzung und kann, falls noch nicht vorhanden, auch beim ersten Start der Anwendung mitinstalliert werden [2].

Java Network Launching Protocol (JNLP)

WebStart verwendet das JNLP-Protokoll. Dieses spezifiziert ein XML-Schema, um die Konfiguration der Anwendung festzulegen, beispielsweise den Ort der JAR-Datei oder den Namen der Main Class. Der Quellcode der Anwendung selbst muss nicht verändert werden. Der Entwicklungsaufwand ist also sehr gering im Gegensatz zur Neuentwicklung mit einem Webframework. Lediglich die JAR-Dateien müssen signiert werden, falls ein Zugriff auf das Betriebssystem notwendig ist, beispielsweise wegen Netzwerk- oder Festplattenzugriffs. Daher sollte Java WebStart durchaus als Alternative evaluiert werden.

Comet – das Push-Konzept

Comet beschreibt ein Konzept, wodurch der Server neue Daten an den Webbrowser „pushen“ kann, ohne dass dieser eine explizite Anfrage durchführt. Das Push-Konzept ermöglicht dem Benutzer eine komfortable Webanwendung, da ohne Verzögerung immer die aktuellen Daten beim Client angezeigt werden.

Zur Realisierung existieren verschiedene Möglichkeiten, wobei meistens AJAX, oder genauer gesagt das XMLHttpRequest-Objekt, eingesetzt wird, das auf der Clientseite einfach zu implementieren ist und durch jeden JavaScript-fähigen Browser unterstützt wird. Der Browser stellt dabei eine Anfrage an den Server, die offen gelassen wird, bis der Server neue Daten an den Browser schickt. Nach dem Erhalt der Antwort initiiert der Browser eine neue, lang gehaltene Anfrage, um auch das nächste Ereignis wieder empfangen zu können. Viele aktuelle Webframeworks bieten mittlerweile ‒ zumindest durch zusätzliche Komponentenbibliotheken ‒ eine Lösung für Push-Nachrichten an, wie beispielsweise ICEFaces für JSF oder SmartGWT für GWT.

Comet erfordert ein Umdenken bezüglich der Architektur und Entwicklung einer Webanwendung. Dabei treten einige Probleme auf, da jeder Client eine persistente Verbindung zum Server offen hält und ein Engpass der verfügbaren Ressourcen die Folge sein kann. [3] erläutert die auftretenden Probleme und gibt einen Ausblick, wie HTML 5 diese Probleme in absehbarer Zukunft mit WebSockets standardisiert lösen soll.

Beispiel 3: Gestaltung von Unterhaltungssoftware für Marketingzwecke

Anforderungen: Eine optisch anspruchsvolle Unterhaltungssoftware soll auf der offiziellen Webseite zur Reisebuchung platziert werden. Diese dient insbesondere dem Marketing und ermöglicht das Erspielen von Rabatten für Buchungen. Notwendig dafür sind ein professionelles Design und eine moderne Darstellung mit integrierten Animationen und Werbevideos.

Lösung: Um sich von der Konkurrenz abzusetzen, reicht eine klassische Webanwendung nicht aus. Zur Realisierung wird daher eine Rich Internet Application (RIA) erstellt, da nur so die hohen Ansprüche an die Darstellung erfüllt werden können. Klassische „Browserfeatures“, wie Vor- und Zurücknavigation, werden hier nicht benötigt. Die Oberfläche wird beim Start vollständig auf den Client geladen (Werbevideos ausgenommen, da die Ladezeit zu lange wäre) und bietet eine hohe Benutzerfreundlichkeit. Leider ist der Einsatz eines Plug-ins nicht vermeidbar, dafür ist jedoch gesichert, dass die Anwendung unabhängig vom Webbrowser immer dieselbe Darstellung und Benutzung garantiert.

Technologieauswahl: Im Java-Umfeld steht als Framework nur JavaFX zur Verfügung. Allerdings wird diese Technologie oft als noch nicht ganz reif für den Einsatz in Unternehmen angesehen [4], da die Anzahl der verfügbaren GUI-Komponenten nach Einschätzung vieler noch relativ gering ausfällt und die Entwicklungstools professionellen Ansprüchen noch nicht in allen Belangen gerecht werden. Auch das Deployment weist noch Mängel auf [5]. Außerdem wird JavaFX vollständig verändert [6]: JavaFX Script wird durch eine Java-API abgelöst. Zusätzlich soll auch HTML5 unterstützt werden, wodurch die Anwendung ohne Plug-in gestartet werden kann. Durch diese Änderungen könnte JavaFX in Zukunft sicherlich eine sehr interessante Alternative für die RIA-Entwicklung werden (geplanter Release von JavaFX 2.0: 3. Quartal 2011).

Bis dahin ist allerdings noch ein weiter Weg. Die Anwendung sollte zum jetzigen Zeitpunkt daher besser mit Adobe Flex realisiert werden. Die Integration mit Java ist aufwändiger, wird aber mittlerweile sehr gut durch Tools wie Granite DS unterstützt, wie unter [7] nachzulesen ist. Und an einer neuen Programmiersprache (ActionScript und MXML für Flex statt JavaFX Script für JavaFX) führt im Moment leider kein Weg vorbei, wenn eine RIA benötigt wird.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.