Einführung in das Google Web Toolkit am Beispiel eines Projektes aus der Verkehrstelematik Fachhochschule Aachen - WS 11/12 Seminararbeit im Bachelorstudiengang Scientific Programming Sebastian Schilling Inhalt • • • • • • • Einleitung Was ist GWT? GWT-Features GWT-Compiler Vor- und Nachteile GWT im Einsatz am Beispiel eines Projektes Fazit Web 2.0 und Ajax • Statische Webseiten werden durch UserGenerated-Content ersetzt Benutzer erstellen, bearbeiten und verteilen Inhalte selbst unterstützt von interaktiven Anwendungen Rich-Internet-Application Web 2.0 (keine offizelle Definition) Realisiert durch HTML, CSS, JavaScript und Ajax Klassische Web-Anfrage • Lange Wartezeiten für den Benutzer • Jeweils komplettes Laden der ganzen Internet-Seite Ajax – Web-Anfrage • Ajax = Asynchronous JavaScript and XML • Asynchrone Datenübertragung unteranderem durch XML oder JSON • Benutzeraktionen, wie Validieren von Daten, Navigieren zwischen Elementen auf der Webseite können im Client übernommen werden Motivation • Entwicklung umfangreicher Ajax oder RichInternet-Applications Ausgangs• HTML und JavaScript werden benötigt punkt Projekt bezogen • Hauptprogrammiersprache: Java • Entwicklung mittels HTML, CSS und JavaScript schwierig • Unterschiedliche JavaScript Interpretationen in den verschiedenen Browsern Probleme • Typenlose Programmierung Lösung: Google Web Toolkit Was ist GWT? • Google Web Toolkit ▫ Framework zur Erstellung von komplexen und interaktiven Desktop-ähnlichen AjaxAplikationen ▫ Programmierung von Client und Server in Java ▫ GWT-Compiler übersetzt clientseitigen Java-Code zu HTML, CSS und JavaScript ▫ Wird unterstützt von Entwicklungsumgebungen wie Netbeans oder Eclipse ▫ JUnit testen möglich ▫ Debuggen des clientseitigen Codes möglich Projektstruktur != Entwicklungs-Struktur vs. Deployment-Struktur HTML-Grundgerüst JAVA-Datei GWT-Konfiguration über Module • Module beseht aus: ▫ Client-Code, optional auch Server-Code ▫ Mindestens einer HTML-Datei ▫ Andere statische Ressourcen (Bilder, CSS-Dateien) GWT-Konfiguration über Module Hosted- und Web-Mode • Hosted-Mode (Development Mode) ▫ Applikation wird als Bytecode in der Java Virtual Machine (JMV) ausgeführt Debugging kann genutzt werden ▫ Voraussetzung: beliebiger Browser mit installierten GWT-PlugIn • Web-Mode (Production Mode) ▫ Clientseitiger Code wird von dem GWT-Compiler in JavaScript, CSS und HTML compiliert ▫ Keine JVM oder Browser-PlugIns nötig GWT-Features • Benutzeroberflächen ▫ Widget: Benutzer-Komponenten ▫ Panel: Zur Strukturierung der Widgets • Browser History von Ajax Anwendungen GWT-Features • JUnit • JavaScript Native Interface (JSNI) • Remote Procedure Calls (RPC) ▫ RPC mittels RequestBuilder ▫ GWT-RPC GWT-Compiler JS: Firefox JS: IE JS: Opera JS: Safari JS: Chrome clientseitiger Java-Code GWT-Compiler HTML + CSS + JavaScript Vor- und Nachteile • GWT-Features • Programmierung in Java Typensicherheit • Debuggen • JUnit-Tests • JavaScript Generierung für unterschiedliche Browser • GWT-Klassen sind OpenSource • Aufwendige Integration in bestehende Infrastrukturen • Google hält sich vor, die Lizenzbedingung jederzeit zu ändern • GWT-JavaScript-Compiler ist nicht OpenSource GWT im Einsatz am Beispiel eines Projektes aus der Verkehrstelematik • Projektbeschreibung: ▫ Aus dem Bereich des Baustellenmanagement Planung von Baustellen ▫ Realisiert durch schematische Karte stellt geographische Umgebung auf Fahrbahnniveau dar Folgendes muss dargestellt werden: ▫ Raststätten, Ab- und Auffahrten ▫ Beschilderungen und Signaleinrichtungen Das Projekt • (kurze Vorführung) GWT im Einsatz am Beispiel eines Projektes aus der Verkehrstelematik • Wo wurde GWT eingesetzt? ▫ Datenübertragung zwischen Server und Client GWT-RPC ▫ Verarbeitung der Server-Daten auf Client-Seite in Java programmiert ▫ Darstellung der Karte mittels einer JavaScriptBibliothek (OpenLayers) JavaScript Native Interface (JSNI) Fazit • Für Java-Entwickler einfache Gestaltung von Rich-Internet-Applications nutzt alle Vorteile die Java mitbringt aus • Migration von großen bestehenden Anwendungen zu Webanwendungen eher abzuwägen • Weiterer Einfluss auf die Web-Entwicklung von GWT ist zu erwarten Vielen Dank für Ihre Aufmerksamkeit !