Rich Internet Applications mit Zkoss 5
Allzweckmittel
von Carsten Zerbst, Nils Magnus
Erschienen im Linux-Magazin
2010/05
Nur ein einziges Dateiformat müssen Entwickler mit Zk 5 pflegen, um attraktive Oberflächen und Ajax-getriebene Rich Internet Applications zu bauen. Schluss mit separatem HTML, CSS und Javascript.
Bei Anwendern stehen Rich Internet Applications (RIA) hoch im Kurs. Mit aktiven Inhalten wie sortierbaren Listen oder Drag&Drop lassen sie sich ohne Servergedenkminute bedienen. Damit kommen sie im Bedienkomfort normalen Anwendungen immer näher, vermeiden dabei aber die aufwändige Installation beim Anwender. Den Preis dafür bezahlt allerdings der Entwickler, denn Ajax-Anwendungen funktionieren nur im Zusammenspiel von Komponenten aus verschiedenen Sprachen.
Der Seitenrumpf besteht aus HTML, dazu kommen Cascading Style Sheets (CSS) fürs Aussehen, im Browser ablaufendes Javascript und schließlich eine Programmiersprache wie PHP oder Java auf der Server-Seite. Als ob dies nicht genug wäre, interpretieren Browser HTML, CSS und Javascript in Details unterschiedlich. Daher trifft die Entwickler beim Programmieren und Testen von RIAs ein erheblich größerer Verwaltungsaufwand als bei normalen Desktopanwendungen.
Als Ausweg aus diesem Dilemma bieten sich Toolkits wie Zk an. Mit der Bibliothek lassen sich RI-Anwendungen wie normale Desktopanwendungen entwickeln. Um die Verteilung der Anwendungen auf Browser- und Server-Seite und die Details von HTML, Javascript, CSS muss sich der Entwickler nicht kümmern, das Toolkit kapselt diese Arbeit. Es bietet Funktionen, um Webseiten ähnlich wie bei klassischen GUIs aus einzelnen Widgets und Layouts aufzubauen, und kümmert sich um die Eventbehandlung.
Viele Layouts zur Auswahl
Zur Gestaltung der Seiten stehen Anordnungen wie Borderlayout, Boxen oder Tabellen bereit. Sie stellen Widgets von einfachen Labels oder Listen bis hin zu komplexen Komponenten wie Bäumen, Charts oder Google Maps zur Verfügung. Einen Überblick über die Widgets ist auf der Demoseite [1] von Zkoss zu finden (siehe Abbildung 1).

|
Abbildung 1: Die Zkoss-Demo-Anwendung zeigt die unterschiedlichen Komponenten und Layoutmöglichkeiten.
|
Der besondere Charme besteht jedoch in der Behandlung von Benutzereingaben durch Maus oder Tastatur. Für Ajax-Anwendungen müssen Entwickler Code für die Client-Seite in Javascript und in einer weiteren Sprache auf der Server-Seite entwickeln. Im schlimmsten Fall verteilen sie die Anwendungslogik auf beide Seiten. Bei Zkoss verbleibt die Anwendungslogik dort, wo sie hingehört: auf dem Server. Der Transfer der erforderlichen Daten und die Aktualisierung der Oberfläche ist Aufgabe von Zkoss und kümmert den Entwickler nicht. Er darf sich darauf konzentrieren, die Anwendungslogik zu entwickeln und an eine Oberflächen zu binden.
Schichten
Wie Abbildung 2 zeigt, besteht eine Anwendung mit Zkoss aus vier Schichten. Auf Server-Seite liegt der Anwendungscode, er baut die Oberfläche aus den Widgets von Zkoss auf und enthält die notwendige Eventbehandlung und Anwendungslogik. Die Oberflächen programmiert der Entwickler in Java oder mit der Zk User Interface Markup Language (ZUML). Diese XML-Sprache baut auf Firefox' XUL [2]. Sie definiert nicht nur die Oberfläche, sondern behandelt auch Selektionen, Tastatureingaben oder sonstige Ereignisse. Die Anwendungslogik darf der Programmierer entweder direkt in die ZUML-Datei einbetten oder als separate Java-Klassen beilegen. Alternativ versteht Zkoss auch Javascript, Python oder Ruby für das Model.

|
Abbildung 2: Die Zkoss-Bibliotheken erzeugen Browser-basierte Anwendungen aus XML- oder Java-Beschreibungen. Bindeglieder sind eine Server-seitige Bibliothek und eine Laufzeitumgebung im Browser.
|
Ähnlich wie Swing konzentriert sich die Serverbibliothek von Zkoss nach dem MVC-Prinzip auf die View einer Anwendung, stellt die Oberfläche dar und leitet Ereignisse weiter. Deshalb gibt es für die Anwendungslogik und das darunterliegende Modell keine Einschränkungen. Bewährte Komponenten wie Hibernate oder gar JEE lassen sich so einbinden. Zwischen der Anwendung und dem Netzwerk liegt Server-seitig die Zkoss-Bibliothek. Sie setzt die Anwendung für den Transport per HTTP zum Browser um und leitet Events vom Browser an den Anwendungscode weiter.
Dieser Teil des Zkoss-Toolkits ist in Java geschrieben und läuft in einem Servlet-Container wie Apache Tomcat [3] oder in einem JEE-Server wie Glassfish [4]. Sie liefern die Anwendung per HTTP an den Browser, wo die Zkoss-Client-Engine dann mit Javascript die Webseite für die Anwendung aufbaut. Die Client-Engine leitet auch Events vom Browser zum Server und aktualisiert die Webseite.
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
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)
|
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.
|