Google Web Toolkit zum Erstellen dynamischer
Webapplikationen
Von Java zu Ajax
von Ramon Wartala
Erschienen im Linux-Magazin
2006/10
Das Google Web Toolkit ermöglicht die Entwicklung aufwändiger Webanwendungen in Java und generiert daraus automatisch Ajax-Applikationen. Im Hosted-Modus wird die Suche nach Fehlern zum Kinderspiel.
Der Weltmarktführer für Suchanfragen mausert sich auch zu einem Softwareproduzenten. Neben nativen Programmen wie Google Desktop und Google Earth veröffentlicht die Firma im Quartalsrhythmus neue Web-basierte Produkte. Während Google Mail noch im medialen Rampenlicht stand, genießen neuere Applikationen wie Google Reader, Google Calender oder Google Spreadsheet geringere Aufmerksamkeit. Unabhängig davon weisen sie alle ein ähnliches Look&Feel auf und verfügen dank Ajax über eine Oberfläche mit geringer Reaktionszeit.
Dass sich unter der Haube dieser Applikationen ein Google-eigenes Framework verbirgt, war mangels näherer Angaben des Herstellers lange nur zu vermuten. Pünktlich zur Messe Java One im Mai dieses Jahres bestätigte Google diesen Verdacht aber, als der Dienst das Google Web Toolkit (GWT) interessierten Webentwicklern zum kostenlosen Download und Einsatz bereitstellte [1].
Ajax [2], die asynchrone Verarbeitung von HTTP-Requests und -Responses mit Hilfe von Javascript und XML, ist zurzeit Thema Nummer eins unter Webentwicklern. Ajax-Toolkits für Programmiersprachen wie Perl [5], Ruby und PHP [4] schießen aus dem Boden, Google beschreitet mit seinem Framework Neuland: Es basiert auf Java, die aber nur als Generator- und Testsprache dient, schließlich verwendet Ajax auf dem Client Javascript.
Was drin ist
Warum ausgerechnet Java? Der Hauptgrund liegt in der Möglichkeit zur einfachen Fehlersuche: Das GWT ermöglicht es, eine Ajax-Applikation im so genannten Hosted Mode auszuführen und zu testen. Dabei läuft sie als Java-Version innerhalb einer gewöhnlichen Java Virtual Machine.
Beim Programmieren helfen die üblichen Entwicklungsumgebungen und Debugger. Ist die Applikation fertig, übersetzt ein Compiler sie in Javascript. Der dabei erzeugte HTML- und Javascript-Code lässt sich dann auf einem Webserver installieren und läuft im so genannten Web Mode.
Ein spezieller Webbrowser, eine eigene Widget-Klassenbibliothek für Ajax-basierte Oberflächen sowie Javascript-Implementationen von Java-Standardklassen wie »java.lang« und »java.util« bilden die Komponentenarchitektur des GWT-Framework. Darüber hinaus kümmert es sich darum, dass der generierte Javascript-Code zu den gängigen Webbrowsern wie Mozilla, Firefox, Internet Explorer, Opera und Safari passt.
Los geht's!
Das ungefähr 22 MByte große Paket »gwt-linux-1.0.21.tar.gz« bringt eine Dokumentation und fünf Beispielanwendungen mit. Sie reichen von einem trivialen »Hello«-Programm über eine Widget-Übersicht bis zu einer kleinen E-Mail-Applikation und lassen sich über die in den jeweiligen Verzeichnissen enthaltenen Shellskripte starten.
Die im Folgenden als Anwendungsbeispiel entwickelte GWT-Applikation nutzt einen bestehenden Server-Dienst, um eine einfache Adressendatenbank abzufragen. Der hier verwendete Server basiert der Einfachheit halber auf Ruby on Rails, weil er sich so mit wenigen Zeilen umsetzen lässt - für den Client spielt das keine Rolle. Die fertige Version steht unter [10] zum Download bereit.
Beim zu diesem Zweck entwickelten Service MyAddress handelt es sich um eine einfache Datenbank (siehe Listing 1), die Vornamen, Nachnamen und E-Mail-Adressen verwaltet. Zum Datenaustausch dient das in vielen Ajax-Applikationen verwendete JSON-Format (Javascript Object Notation, [3]). Es erzeugt im Gegensatz zu XML mangels Auszeichnungs-Tags weniger Overhead und reduziert damit die Antwortdauer der Ajax-Anwendung.
01 CREATE TABLE myaddress."names"
02 (
03 id serial NOT NULL,
04 firstname varchar(50) NOT NULL,
05 lastname varchar(100) NOT NULL,
06 email varchar(128) NOT NULL,
07 CONSTRAINT id PRIMARY KEY (id)
08 )
09 WITHOUT OIDS;
10 ALTER TABLE myaddress."names" OWNER TO myaddress;
|
Um mit Ruby on Rails die zu einem Nachnamen gehörende Adresse aus der Datenbank zu holen und ins JSON-Format zu verpacken, genügt der Zehnzeiler aus Listing 2. Zeile 6 liest darin den Nachnamen aus einem HTTP-Request, um in Zeile 7 die passende Adresse aus der Datenbank zu ermitteln. Zeile 8 konvertiert die zurückgelieferten Adressen ins JSON-Format.
01 class NameController < ApplicationController
02 scaffold :name
03 def find_names_to_json
04 # make sure not to send html but text/plain
05 @headers["Content-Type"] = "text/plain; charset=utf-8"
06 search_name = @params['lastname']
07 names = Name.find(:all, :conditions => ['lastname like ?', search_name])
08 render_text names.to_json
09 end
10 end
|
Das Kommando »ruby scriptserver start« ruft den MyAddress-Service auf. Der interne Entwicklungsserver von Ruby On Rails stellt den Service über Port 3000 auf »localhost« bereit. Eine Abfrage geschieht optional auch im Browser unter »http://localhost:3000/name/«.
Ein weiterer Vorteil von Ruby On Rails beim Erstellen der Server-Applikation: Dank Scaffolding lässt sich die Datenbank bequem über ein generiertes Eingabeformular bearbeiten (Abbildung 1). Sind die ersten Datensätze eingegeben, liest man sie im Webbrowser über die URL »http://localhost:3000/name/find_names_to_json?lastname= Name« aus.

|
Abbildung 1: Der Webservice im Beispiel liefert die Datensätze auch direkt im Browser.
|
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|