Google Web Toolkit und Ultra Light Client
» Von , 22.01.2008 17:04. Letztes Update, 22.01.2008 17:05.
Ultra Light Client
Eine ULC-Anwendung wird auf dem Client und dem Server verteilt ausgeführt. Die Verteilung der client- und serverseitigen Halbobjekte und die Kommunikation zwischen diesen erfolgt für den Entwickler transparent durch die Bibliotheken des Frameworks. Auf dem Client erfolgt das Rendering der Benutzeroberfläche durch eine Presentation Engine. Die Presentation Engine wird als Java-Applet ausgeführt. Alternativ ist das Deployment auf dem Client auch ohne Browser mittels Java Web Start oder in einem Stand Alone Mode möglich.
Die Presentation Engine überträgt die Benutzeraktionen über ein schlankes Protokoll zu der ULC-Anwendung auf dem Server. Dort werden die Ereignisse durch Event Listener verarbeitet und die resultierenden Veränderungen der Benutzeroberfläche (z.B. Aktualisierung einer Tabelle mit Suchergebnissen) wieder an die Presentation Engine auf dem Client übertragen. Eine ULC-Anwendung kann dabei als Servlet oder statefull Session Bean auf dem Server deployed werden. Die Kommunikation erfolgt dann entsprechend mittels HTTP- oder RMI/IIOP-Protokoll.
Die Presentation Engine rendert die Benutzeroberfläche auf dem Client durch Swing-Objekte. Die ULC-Bibliotheken für die Anwendungsentwicklung orientieren sich somit auch an dem Widget-Set von Swing. Viele Swing-Objekte stehen in ULC 1:1 zur Verfügung und erleichtern so den Einstieg in dieses Programmiermodell. Durch die automatische Verteilung der Halbobjekte durch das Framework, können ULC-Anwendungen wie klassische Fat Client Benutzeroberflächen entwickelt werden. Restriktionen ergeben sich - wie bei allen internetbasierten Ansätzen - nur bei der Realisierung von Push-Konzepten, d.h. Aktualisierungen der Benutzeroberfläche durch Hintergrundaktionen. Die Aktion muss hier immer vom Benutzer ausgehen (oder durch ein unsichtbares Polling Timer-Objekt vom Client aus regelmäßig getriggert werden).
Mit Hilfe des sog. Development Runners können Entwickler die Verteilung der Halbobjekte zwischen Client und Server simulieren. Die Presentation Engine und die ULC-Anwendung werden dann in der gleichen Java Virtual Machine ausgeführt und können so ohne ein Deployment auf dem Server getestet werden. Der Developmen tRunner liefert dabei Informationen über die Anzahl der Server Round Trips und das Datenvolumen. Durch die Simulation der Netzwerkparameter Bandbreite und Latenz kann außerdem das Antwortzeitverhalten der Anwendung bei feingranularer Ereignisbehandlung überprüft werden.
Ein Beispiel: Wie Swing unterstützt ULC die Aktualisierung eines Table Models wenn Zelleninhalte einer Tabelle editiert werden. Auf diese Weise kann ein Verhalten wie in einem Excel-Arbeitsblatt erreicht werden. Jede Aktualisierung ist hier allerdings mit einem Server Round Trip verbunden. Bei großen Latenzzeiten, verhält sich die Anwendung dann relativ zäh. Abhilfe versprechen dann asynchrone Event Delivery Modes oder die Entwicklung von sog. Extensions.



KOMMENTARE
KOMMENTAR SCHREIBEN