<< Themensammlung Netzwertig

Unter netzwertig veröffentlichen wir in unserem Blog Einschätzungen zu aktuellen digitalen Geschäftsmodellen und IT-Trends, Meldungen, Analysen, Reviews und Specials.

29.11.06Kommentieren

Google

Das Google Web Toolkit

Ein Beitrag von Ralph Steyer

Das GWT gestattet die Erstellung von AJAX-Applikationen bzw. allgemein Applikationen für das Web 2.0 rein auf Serverseite in einer einzigen Technologie - nämlich Java. Die Clientseite für die AJAX-Applikationen wird generiert und für den Entwickler auf Wunsch eine Black Box darstellen, deren Aufbau er sich meist gar nicht mehr direkt ansehen muss und wird.

Wozu Toolkits und Frameworks?

Die Erfahrung mit AJAX-Applikationen der ersten Stunden hat gezeigt, dass diese für die Zukunft des Webs sehr viele Vorteile bringen, jedoch auch ein hohes Maß an Tests und Anpassung an verschiedene Webbrowsern und Plattformen erfordern. Insbesondere werden bestimmte Aufgaben bei einer AJAX-Applikation immer wieder zu lösen sein. Sehr bequem ist es dann, wenn vor Allem verzwicktere und aufwändigere Probleme der AJAX-Technologie bereits mit vernünftigen Bibliotheken gelöst werden.

Frameworks bzw. Toolkits für AJAX greifen genau hier ein und stellen Funktionsbibliotheken mit getesteten und hochfunktionellen Lösungen bereit, damit Entwickler nicht jedes Mal das Rad neu erfinden und vor allem dessen einwandfreie Funktionalität umfangreich testen müssen. Solche Frameworks und Toolkits sind zum Teil als reine JavaScript-Erweiterungen für den Browser konzipiert. Also Bibliotheken mit vielen nützlichen Funktionen. Andere Frameworks und Toolkits agieren hingegen auf dem Webserver mit Programmiersprachen wie PHP, ASP.Net, Java oder Python.

AJAX-Frameworks und -Toolkits lohnen sich vor Allem für aufwändigere und von Grund auf neu zu erstellende Applikationen. Die Mühe ein Einarbeitung darin wird dadurch entschädigt, dass AJAX-Appliaktionen mit einem Framework viel effektiver, effizienter und robuster entwickelt werden können.

Das GWT als Vorschlag von Google

Mit dem GWT entwickeln Programmierer nun AJAX-Applikationen vollständig in serverseitigem Java, das von Google um eine Reihe von Tools und APIs erweitert wurde.  Wenn die AJAX-Applikation später in Produktion gebracht wird, wird mittels eines GWT-Compilers die Java-Applikationen in eine äquivalent funktionierende Applikation aus JavaScript, CSS und HTML für die Clientseite und damit in die endgültige AJAX-Applikation übersetzt. Dieser Compiler ist das Herz des GWT und läuft auch quasi unsichtbar im Hintergrund, wenn Entwickler eine GWT-Applikation zu Testzwecken erst einmal im so genannten Hosted Modus auf dem Server ausführen.

Der GWT-Compiler unterstützt die zentralen Bestandteile der Sprache Java selbst und die GWT-Laufzeitbibliothek emuliert im Client einen relevanten Teil der Java-Laufzeitbibliothek.

Aufbau eines typischen Entwicklungszyklus

Der Aufbau eines typischen Entwicklungszyklus unter dem GWT ist meist gleich:

  1. Der erste Schritt bei der Erstellung einer AJAX-Applikation mit dem GWT ist, dass man mit reinem Java und den ergänzenden Java-Klassen und -Schnittstellen Code erstellt. 
  2. Im zweiten Schritt verwenden Entwickler den Java-to-JavaScript-Compiler des GWT, um ihre Applikation in einen Satz aus JavaScript-, CSS- und HTML-Dateien zu übersetzen. Dabei wird eine typische vollfunktionale GWT-Applikation etwa 100 KByte an cache-baren JavaScript-Code umfassen, den der Endanwender laden muss. GWT-Applikationen sollen nach Aussagen von Google mindestens so performant sein, wie handgeschriebene Gegenstücke. Die gesamten Ressourcen können dann über einen beliebigen Web-Server bereitgestellt werden.
  3. In einem abschließenden Schritt sollten natürlich Tests erfolgen, ob die Applikation auch wirklich in jedem relevanten Browser funktioniert.

Wo liegen die Vorteile?

Die entscheidenden Stärken der Verwendung des GWT gegenüber einer händischen Erstellung einer AJAX-Applikation zeigen sich vor Allem bei komplexeren Applikationen und liegen zum einen in den konzeptionellen Vorteilen von Java gegenüber JavaScript (feste Datentypen, ausgefeiltes Speichermanagement, strikte Objektorientierung, ausgefeiltes Exception-Handling, etc.). Und natürlich hat es für geübte Java-Programmierer auch seinen Reiz, wenn eine Web-Applikation (gleich ob mit oder ohne AJAX) wie eine Desktop-Applikation im Java-Umfeld erstellt wird, und man sich nicht mit dem Gemisch aus JavaScript, CSS und HTML rumschlagen muss.

Aus der Verwendung der Sprache Java heraus ergeben sich auch Vorteile für das Design, was in Java viel leichter verständlich als ein solches Konglomerat aus HTML, CSS und JavaScript ist. Vor Allem wenn keine ausführliche Dokumentation zur Verfügung steht. Und man sollte auch nicht außer Acht lassen, dass es für JavaScript nur wenige gute Entwicklungsumgebungen gibt.

Für Java hingegen gibt es einen großen Fundus an sehr professionellen Entwicklungstools, die vom Debuggen über das Refactoring bis zur Komplettierung von Code alle Möglichkeiten bieten, die man in der professionellen Entwicklung gewohnt sind.

Welche Erweiterungen bietet das GWT?

Das GWT selbst erweitert nun die bereits über Java vorhandenen Fähigkeiten um einige interessante Feature:

  1. Es gibt dynamische, wieder verwendbare Komponenten zur Gestaltung von Oberflächen. Damit können Sie komplexe Widgets durch die Komposition anderer Widgets erstellen. Ein Widget bezeichnet allgemein einen eigenständigen Teil einer GUI, welches eine spezielle (meist kleine) Funktion oder Anzeige als Teil eines übergeordneten Konzepts übernimmt6. Das Layout solcher Widgets kann automatisch über Panels (Komponenten zur Aufnahme und Anordnung von Widgets) gesteuert und ein Widget kann mit anderen Entwicklern über .jar-Dateien ausgetauscht werden.
  2. Das GWT erleichtert erheblich den Umgang mit RPC (Remote Procedure Call - auf Deutsch Aufruf einer entfernten Prozedur), was bei AJAX-Applikationen ja der Kern der Sache ist und damit häufig vorkommt. 
  3. Das GWT stellt auch eine Lösung für eines der klassischen AJAX-Probleme bereit, das von AJAX-Kritikern immer wieder ins Feld geführt wird. Die asynchrone Datennachforderung am Browser vorbei hebelt den Mechanismus der Zurück-Schaltfläche des Browsers aus. Das GWT löst dieses Problem (und andere Aufgaben der Benutzerführung) und verwirrt damit den Anwender nicht über den fehlenden Zugriff auf die History.
  4. Mit dem GWT haben Sie eine vollständige Debug-Umgebung zur Verfügung, in der sie alle Erweiterungen und Vorteile der Fehlersuche in IDEs wie Eclipse verwenden können. Das Google Web Toolkit kann mit nahezu allen populären nichtkommerziellen, kommerziellen und Enterprise-Entwicklungsapplikationen eingesetzt werden. 
  5. Der Einsatz des GWT sorgt dafür, dass automatisch alle wichtigen Browser unterstützt werden. 
  6. Das GWT stellt eine Integration von JUnit zum automatisierten Testen zur Verfügung.
  7. Die Klassen des GWT können bei Bedarf auch mit handgeschriebenen JavaScript innerhalb des Java-Quellcodes gemischt werden. Dazu gibt es eine Schnittstelle mit Namen JavaScript Native Interface (JSNI).

Autor: Ralph Steyer

Ralph Steyer

Schlagworte zu diesem Artikel

Kommentare

Diesen Beitrag kommentieren:

Die Kommentare können nur zwischen 9 und 16 Uhr
freigeschaltet werden. Wir bitten um Verständnis.

Um Spam zu vermeiden, schreiben Sie bitte die Buchstaben aus diesem Bild in das nebenstehende Formularfeld:

Das könnte Sie auch interessieren

Förderland-Newsletter

Wissen für Gründer und Unternehmer