Obwohl bisher weder eine Validierung von Eingaben erfolgt ist, noch mehrere Dialoge miteinander kommunizieren mussten, demonstriert das Beispiel doch die grundsätzliche Arbeitsweise des Framework. Jenseits dieser grundlegenden Funktionen bietet es Unterstützung für viele weitere funktionale beziehungsweise nicht funktionale Anforderungen. Neben der Internationalisierung gehören dazu vor allem ein Plug-in-Konzept, das die Entwicklung und Wiederverwendung von Anwendungskomponenten ermöglicht, sowie die Unterstützung von Clustering. Eine Integration der Widgets in vorhandene Struts-Anwendungen oder in das Spring-Framework sind ebenfalls möglich. Durch die Nutzung der vom WidgetServer bereitgestellten ServletFilter- und Livecycle-Methoden kann man eigene Komponenten darüber hinaus in nahezu beliebige Web-Frameworks beziehungsweise -anwendungen nachrüsten. Jedem Widget lässt sich ein Icon zuordnen. Ein weiteres Feature, das gerade Anwender von Webanwendungen immer wieder fordern, ist ein Server-Push-Mechanismus.
Verzwickte Struktur: Einfacher wäre die Entwicklung mit Ant oder Maven (Abb. 2).
Zwar erscheint das Gesamtpaket rund, doch finden sich in der aktuellen Version ein paar dicke Fallstricke. So ist die Erzeugung des GUI-XML für Ungeübte nur unter Zuhilfenahme des GUI Builder zu bewerkstelligen. Und selbst dieser Weg bleibt dank bisher fehlender Schema-Dateien oder DTDs fehlerträchtig. Durch den umfassenden Einsatz der Reflection API ist die Fehlersuche zudem nicht nur in den XML-Dateien eine Qual. Hat man eine Anwendung installiert und sie ruft den Listener nicht auf, ist der Fehler auch bei höchstem Trace Level schwer zu lokalisieren. Vermutlich hilft hier nur die Erfahrung nach einer intensiven Einarbeitung. Vielleicht schafft grade bei diesen beiden Punkten das aktuell als Alpha-Version verfügbare Eclipse-Plug-in Abhilfe, das in einer der nächsten Versionen den GUI Builder komplett ersetzen soll. Zu hoffen ist, dass dies gleichzeitig einen überschaubareren Build-Prozess impliziert. Das Hin- und Herkopieren und Ersetzen von Dateinamen macht schon beim ersten Mal keinen Spaß, schon gar nicht, wenn man es regelmäßig tun muss. Diese Aufgaben könnten Ant oder Maven auf einfache Weise erledigen.
Damit könnte sich auch der nächste Fallstrick erledigen: die Zuordnung von Host-Namen und Ports in den verschiedenen Konfigurationsdateien. Der Entwickler muss diese Einstellungen nicht nur einmal in der web.xml, sondern pro Client in den environment_*.xml-Dateien vornehmen. Dazu kommt die Konfiguration der Parameter für komprimierte Datenübertragung oder Verschlüsselung. Wer etwas falsch gemacht hat, muss unter Umständen lange suchen, wenn Client und Server mit unterschiedlichen Kompressionseinstellungen gestartet sind. Die Dokumentation ist noch recht einfach. Auf seiner Website stellt der Hersteller ein Tutorial genanntes Einführungsdokument zur Verfügung. Darüber hinaus gibt es nur noch die Javadoc der Framework-Klassen – nicht eben viel.
Auf der nächsten Seite: Fazit
Themenforum: Java