Open Source im professionellen Einsatz
Linux-Magazin 05/2010

Rich Internet Applications mit Zkoss 5

Allzweckmittel

,

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.

627

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.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.