Das Google Web Toolkit


17.01.2007

Wenn Google ein Projekt auf den Weg bringt, lohnt sich nach den Erfahrungen der letztenJahre auf jeden Fall ein genauerer Blick. Und das GWT (GWT ist die Abkürzung für GoogleWeb Toolkit) ist als ein kostenloses, freies und unlängst vollständig unter eineOpensource-Lizenz gestelltes Toolkit zur Erstellung von AJAX-Appikationen mittelsJava ein solches Projekt, das eine vielversprechende Zukunft hat.

Das GWT gestattet die Erstellung von AJAX-Applikationen bzw. allgemeinen Applikationen fürdas Web 2.0, rein auf Serverseite, in einer einzigen Technologie - nämlich Java. Die Clientseite für die AJAX-Applikationen wird generiert. Damit stellt sie für den Entwickler eine Black Box dar, 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 dieZukunft des Webs sehr viele Vorteile bringen, jedoch auch ein hohes Maß an Tests undAnpassung an verschiedene Webbrowser und Plattformen erfordern. Insbesondere werden bestimmte Aufgaben bei einer AJAX-Applikation wie die Unterstützung der Zurück-Schaltfläche im Browser oder das Einbauen von Informationen in die Webseite 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 Funktionsbibliothekenmit getesteten und hochfunktionellen Lösungen bereit, damit Entwickler nicht jedes Mal dasRad neu erfinden und vor allem dessen einwandfreie Funktionalität umfangreich testenmüssen.

Solche Frameworks und Toolkits sind zum Teil als reine JavaScript-Erweiterungenfür den Browser konzipiert, also Bibliotheken mit vielen nützlichen Funktionen. Andere agieren hingegen auf dem Webserver mit Programmiersprachen wiePHP, ASP.Net, Java oder Python.

AJAX-Frameworks und -Toolkits lohnen sich vor allem für aufwändigere und von Grund auf neuzu erstellende Applikationen. Die Mühe der Einarbeitung wird dadurch entschädigt,dass AJAX-Appliaktionen mit einem Framework viel effektiver, effizienter und robusterentwickelt werden können.

Das Google Web Toolkit als Vorschlag von Google

Mit dem GWT entwickeln Programmierer nun AJAX-Applikationen vollständig in serverseitigemJava, das von Google um eine Reihe von Tools und APIs erweitert wurde. Wenn dieAJAX-Applikation später in Produktion gebracht wird, wird mittels eines GWT-Compilers dieJava-Applikation in eine äquivalent funktionierende Applikation aus JavaScript, CSS undHTML für die Clientseite und damit in die endgültige AJAX-Applikation übersetzt. DieserCompiler ist das Herz des GWT und läuft auch quasi unsichtbar im Hintergrund, wennEntwickler 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 dieGWT-Laufzeitbibliothek emuliert im Client einen relevanten Teil derJava-Laufzeitbibliothek.

Aufbau eines typischen Entwicklungszyklus

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

Der erste Schritt bei der Erstellung einer AJAX-Applikation mit dem GWT ist, dass mit reinem Java und den ergänzenden Java-Klassen und -Schnittstellen Code erstellt wird.

Im zweiten Schritt verwenden Entwickler den Java-to-JavaScript-Compiler des GWT, umihre Applikation in einen Satz aus JavaScript-, CSS- und HTML-Dateien zu übersetzen. Dabeiwird eine typische vollfunktionale GWT-Applikation etwa 100 KByte an cache-barenJavaScript-Code umfassen, den der Endanwender laden muss. GWT-Applikationen sollen nachAussagen von Google mindestens so performant sein, wie handgeschriebene Gegenstücke. Diegesamten Ressourcen können dann über einen beliebigen Web-Server bereitgestelltwerden.

In einem abschließenden Schritt sollten natürlich Tests erfolgen, ob die Applikationauch wirklich in jedem relevanten Browser funktioniert.

Wo liegen die Vorteile?

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

Aus der Verwendung der Sprache Java herausergeben sich auch Vorteile für das Design, was in Java viel leichter verständlich als einsolches Konglomerat aus HTML, CSS und JavaScript ist. Vor Allem wenn keine ausführlicheDokumentation zur Verfügung steht. Und man sollte auch nicht außer Acht lassen, dass esfür JavaScript nur wenige gute Entwicklungsumgebungen gibt. Für Java hingegen gibt eseinen großen Fundus an sehr professionellen Entwicklungstools, die vom Debuggen über dasRefactoring bis zur Komplettierung von Code alle Möglichkeiten bieten, die man in derprofessionellen Entwicklung gewohnt ist.

Welche Erweiterungen bietet das Google Web Toolkit?

Das GWT selbst erweitert nun die bereits über Java vorhandenen Fähigkeiten um einigeinteressante 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. EinWidget bezeichnet allgemein einen eigenständigen Teil einer GUI, welches eine spezielle(meist kleine) Funktion oder Anzeige als Teil eines übergeordneten Konzepts übernimmt.Das Layout solcher Widgets kann automatisch über Panels (Komponenten zur Aufnahme undAnordnung 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 DeutschAufruf einer entfernten Prozedur), was bei AJAX-Applikationen ja der Kern der Sache istund damit häufig vorkommt.

3.Das GWT stellt auch eine Lösung für eines der klassischen AJAX-Probleme bereit, dasvon AJAX-Kritikern immer wieder ins Feld geführt wird. Die asynchrone Datennachforderungam Browser vorbei hebelt den Mechanismus der Zurück-Schaltfläche des Browsers aus. Das GWTlöst dieses Problem (und andere Aufgaben der Benutzerführung) und verwirrt damit denAnwender 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 alleErweiterungen und Vorteile der Fehlersuche in IDEs wie Eclipse verwenden können. DasGoogle Web Toolkit kann mit nahezu allen populären nichtkommerziellen, kommerziellen undEnterprise-Entwicklungsapplikationen eingesetzt werden.

5. Der Einsatz des GWT sorgt dafür, dass automatisch alle wichtigen Browser unterstütztwerden.

6. Das GWT stellt eine Integration von JUnit zum automatisierten Testen zurVerfügung.

7. Die Klassen des GWT können bei Bedarf auch mit handgeschriebenen JavaScript innerhalbdes Java-Quellcodes gemischt werden. Dazu gibt es eine Schnittstelle mit Namen JavaScriptNative Interface (JSNI).
Beispiel: Eine einfache Webseite für eine GWT-Applikation<body>  <script language="javascript" src="gwt.js">  </script>  <iframe id="__gwt_historyFrame"  style="width:0;height:0;border:0"></iframe>  <h1>ErstesBeispiel</h1>  <table align=center>  <tr><td id="slot1"></td><td id="slot2"></td>  </tr>  </table></body>Die zugehörige Java-Datei:

public class ErstesBeispiel  implements EntryPoint {  public void onModuleLoad() {    final Button button =      new Button("Klick mich");    final Label label = new Label();    button.addClickListener(      new ClickListener() {      public void onClick(Widget sender) {        if (label.getText().equals(""))          label.setText(            new java.util.Date().toString());        else          label.setText("");      }    });    RootPanel.get("slot1").add(button);    RootPanel.get("slot2").add(label);  }}
Weiterführende Links

- Google Web Toolkit
- Google Code
- AJAX-NET.de
- Homepage von Ralph Steyer


Autor

  • Ralph Steyer

Ralph Steyer, Diplom Mathematiker, arbeitete nach dem Studium einige Jahre bei einer großen Versicherung im Rhein-Main-Gebiet als Programmierer. Seit 1995 Freelancer mit den Tätigkeitsgebieten: Publikation, EDV-Schulungen, Programmierung und Beratung.



Unsere Experten


alle Experten

Premium Lösungen

Marktübersicht

Premium Services

Dienstleisterübersicht