Dynamische Internet-Anwendungen: GWT im Projekteinsatz

Erstellung interaktiver Applikationen mit GWT

//SEIBERT/MEDIA entwickelt interaktive Anwendungen mit dem Google Web Toolkit (GWT). Dieses Open-Source-Framework möchten wir Ihnen hier einmal näher vorstellen.

Wie der Name schon sagt, ist GWT ein Framework von Google, das sich seit 2006 in der Entwicklung befindet und aktuell in der Version 2.0.4 am Markt ist. Die Reifeprüfung in Sachen Qualität, Stabilität und Performance hat GWT längst bestanden – die eindrucksvollste Referenz nutzen Sie jeden Tag: Google.

Einsatzgebiete

GWT ist bestens für die Entwicklung Desktop-ähnlicher Internet-Anwendungen mit einem hohen Maß an Interaktivität geeignet. Eine Internet-Anwendung, die in GWT realisiert ist, läuft im Web-Browser des Nutzers und erfordert keine Installation auf dessen Rechner. Ein Aufruf der entsprechenden Internet-Seite reicht aus, um die Anwendung zu starten.

Wie gesagt sind GWT-Applikationen Desktop-ähnliche, aber keine reinen Desktop-Anwendungen: Sie benötigen zum Ausführen eine Web-Verbindung und können auf die Ressourcen des Client-Rechners nur soweit zugreifen, wie der Browser es erlaubt. Der Vorteil gegenüber einer Desktop-Anwendung besteht indes vor allem darin, dass ein zentrales Pflegen der Anwendung möglich ist, ohne dass der Betreiber sich um Updates und unterschiedliche Software-Stände auf den Client-Rechnern kümmern muss.

Entscheidungskriterien für GWT als Framework für eine Web-Anwendung sind:

  • Viele vom Benutzer abzufragende Daten, möglicherweise über mehrere Seiten
  • Darstellung von Listen mit Interaktionen wie Sortieren, Einblenden von Optionen usw.
  • Für den Nutzer indiviualisierte Darstellung von Inhaltsbereichen
  • Notwendigkeit zum Austausch vieler kleiner Daten zwischen der dargestellten Internet-Seite und der auf dem Server laufenden Anwendung (z.B. ein Chat)
  • Mehrsprachigkeit
  • Zusammenhänge zwischen einzelnen Elementen auf der Seite

Entscheidet man sich für GWT als Framework, hat man die technologische Basis, um eine moderne, schnelle Web-2.0-Anwendung zu erstellen. AJAX gehört dabei zum Grundkonzept und kann im Projekt schnell und effizient eingebunden werden.

Argumente für den Einsatz von GWT im Projekt

Seine Effizienz zieht GWT aus der Vielzahl vorgefertigter Widgets, die in die Anwendung integriert werden können: Der Entwickler muss nicht mehr alle Elemente und Ereignisse selbst erstellen, die im Browser dargestellt werden bzw. stattfinden – Tabellen, dynamische Funktionen, Auf- und Zuklappen, usw. usf. –, sondern kann sich unter zahlreichen vorgefertigten Elementen bedienen, was viel Projektzeit einspart.

GWT nimmt den Entwicklern auch Grundlagenarbeit ab: Insbesondere im Hinblick auf die Browser-Kompatibilität ist GWT von Haus aus sehr stark, entsprechend weniger aufwändig sind Qualitätssicherung, Debugging und Anpassung. Zudem ist Sicherheit ein wichtiges Argument: Als Standard-Framework verfügt GWT über zahlreiche integrierte Mechanismen, um häufig auftretende Sicherheitsprobleme von Web-Anwendungen von vornherein auszuschließen und Sicherheitslücken zu stopfen.

Und nicht zuletzt haben mit GWT realisierte Web-Anwendungen grundsätzlich eine gute Performance, da die Last vom Server auf die Clients verlagert wird. GWT wandelt Java im Browser automatisch in JavaScript um – die Oberfläche wird also zum Großteil im Browser generiert. Deshalb muss der Server nicht ständig fertige Seiten, sondern im Grunde nur noch die Daten liefern, und zwar in schlanken Datenformaten wie z.B. JSON. Somit sparen GWT-Anwendungen Server-Last und Bandbreite und haben deutlich bessere Antwortzeiten als vergleichbare Applikationen, die Server-seitig erzeugt werden.

Vorraussetzungen und Einarbeitung

Sicherlich ist GWT nicht „ohne“ und benötigt auf Entwicklerseite zunächst eine gewisse Einarbeitungszeit: Programmierer müssen, sofern sie zum ersten Mal mit GWT arbeiten, viele Aspekte berücksichtigen und Denkweisen erlernen, die von der klassischen Web-Programmierung abweichen. Auch die notwendigen Qualifikationen zum Erstellen einer GWT-Anwendung unterscheiden sich von denen bisheriger Web-Anwendungen. Es gibt verschiedene Möglichkeiten, das Frontend teilweise auch in HTML zu beschreiben, Java-Kenntnisse sind jedoch auch hier unverzichtbar.

Um eine gute Basis zu schaffen, ist also eine entsprechende Setup-Zeit notwendig. Vor allem muss klar sein, dass GWT kein vollständiges Framework mit Frontend und Backend ist: Es ist nur für die Benutzeroberfläche zuständig und bietet die Möglichkeit, diese komplett in Java zu schreiben. Auch der Datenaustausch mit dem Backend ist vorgesehen. Was jedoch im Backend auf dem Web-Server läuft, schreibt GWT nicht vor. (Es ist aber auf jeden Fall sinnvoll, hier ebenfalls Java zu nutzen, damit das gesamte Projekt in einer einheitlichen Entwicklungsumgebung realisiert wird.)

Grundsätzlich ist der Aufwand für eine dynamische, Desktop-ähnliche Anwendung natürlich höher als für Internet-Software, die reines HTML ausliefert. Das ist dem komplexen Aufbau geschuldet: Die Anwendung läuft eben zum Teil im Browser, zum Teil auf dem Server. Hier nimmt GWT dem Entwickler-Team jedoch viel Arbeit ab und verkürzt – im Vergleich zur Programmierung mit Ajax ohne den Einsatz von GWT – die Entwicklungszeiten signifikant.

Von entscheidender Bedeutung ist der Projektumfang: Je größer ein Projekt ist, desto lohnenswerter ist der Einsatz von GWT. Um beispielsweise ein Kontaktformular umzusetzen, ist GWT wegen des Overheads sicherlich nicht geeignet. Wenn jedoch die Grundkomponenten erst einmal erstellt sind, kann man mit GWT Fahrt aufnehmen und schnell neue Features implementieren.

Fazit

Sind die Voraussetzungen für den Einsatz von GWT gegeben, entscheidet man sich mit dem Framework für eine moderne, ökonomische Lösung. Der User erhält Oberflächen, die direkt auf seine Eingaben reagieren, ohne dass die komplette Seite neu geladen werden muss. Das ist ein entscheidender Usability-Vorteil: GWT ermöglicht hervorragende Nutzererlebnisse. Ist das Team erst einmal in die neue Technologie eingearbeitet, erweist sich das Google Web Toolkit im Projekt als sehr effizient.

Beispiele

Aktuell realisiert //SEIBERT/MEDIA zwei aufwändige Projekte mit GWT und hat hier umfassende Erfahrungen gesammelt. Anhand unseres Projekts TwentyFeet, dem Auswertungs-Tool für professionelle Social-Media-Aktivitäten, können Sie sich einen kompakten Überblick verschaffen, was mit GWT möglich ist.

Dies sind einige weitere Beispiele für GWT-Applikationen:

Planen Sie ein Software-Projekt? Möchten Sie Ihre bestehende Applikation mit neuen Funktionen ausstatten oder optimieren? Die Entwickler von //SEIBERT/MEDIA/TECHNOLOGIES sind Experten in der Anwendungsentwicklung mit Java, GWT, Groovy & Grails und Perl und helfen Ihnen gerne weiter. Bitte sprechen Sie uns unverbindlich an!

Weiterführende Informationen

Der quelloffene GWT-Code
Beispiele für GWT-Projekte
Grails: Kurze Entwicklungszeiten und nahtlose Java-Integration (Vodcast)
Plattform zum sicheren Datenaustausch für BodeHewitt entwickelt
Das Google Web Toolkit


Mehr über die Creative-Commons-Lizenz erfahren