Das Google Web Toolkit


17.01.2007

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

Das GWT gestattet die Erstellung von AJAX-Applikationen bzw. allgemeinen 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. 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 die Zukunft des Webs sehr viele Vorteile bringen, jedoch auch ein hohes Maß an Tests und Anpassung 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 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 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 der Einarbeitung wird dadurch entschädigt, dass AJAX-Appliaktionen mit einem Framework viel effektiver, effizienter und robuster entwickelt werden können.

Das Google Web Toolkit 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-Applikation 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:

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, 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.

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 ist.

Welche Erweiterungen bietet das Google Web Toolkit?

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 übernimmt. 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).

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


Kommentare

Bitte beachten Sie unsere Informationen zum Datenschutz.

blog comments powered by Disqus

Weitere Artikel zum Thema

  • Tool-Tipp: PDF24 Creator

    Tool-Tipp: PDF24 Creator

    Mit dem kostenlosen PDF24 Creator können Sie PDF Dateien erstellen, bearbeiten oder als Fax online versenden. Ein kleines Tool mit vielfältigen Funktionen...

    weiterlesen
  • CMS-Vorstellung: TYPO3 im Überblick

    CMS-Vorstellung: TYPO3 im Überblick

    Im Vergleich von Content Management Systemen taucht ein Name in zuverlässiger Regelmäßigkeit auf: TYPO3. Es handelt sich dabei um eines der mächtigsten OpenSource CMS auf dem Markt...

    weiterlesen
  • MySQL im Vergleich zu anderen Datenbanken

    MySQL im Vergleich zu anderen Datenbanken

    MySQL hat in den vergangenen Jahren eine spürbare Verbreitung erlangt. Zum effektiven Umgang benötigen Sie ein Mindestmaß an Grundkenntnissen über die Beschaffenheit relationaler Datenbanken. Dazu mehr in diesem Magazinbeitrag...

    weiterlesen
  • CMS Übersicht: Magnolia CMS

    CMS Übersicht: Magnolia CMS

    Magnolia ist ein Content Management System auf Java/J2EE Basis für Webseiten. Als einfach zu bedienendes CMS ist Magnolia als kostenlose Community Edition sowie auch als kostenpflichtige Enterprise Edition erhältlich...

    weiterlesen
  • Kostenlose Tools zur Keyword-Recherche – Teil 2

    Kostenlose Tools zur Keyword-Recherche – Teil 2

    Gerade für den englischsprachigen Bereich gibt es einige Produkte, die sehr gute Ergebnisse liefern. Einige dieser Informationen lassen sich aber auch für die deutsche Keywordsuche verwenden...

    weiterlesen
alle Artikel zum Thema

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