User:Fvonschellinggoldman/sandbox

ZK OSS ist ein quell-offenes in Java entwickeltes Ajax Webframework des Unternehmens Potix Corporation, dass Nutzern ermöglicht eine grafische Benutzeroberfläche für Web applications zu erstellen. ZK besteht aus Ajax event-driven Mechanismen, sowie XUL, XHTML und ZUML, eine Markup Sprache um die Benutzeroberfläche zu erstellen.

ZK verwendet eine Server lastige Methode, in der die Synchronisierung der Komponenten und der Event pipeline zwischen Nutzern und Servern automatisch von ZK abgehandelt werden. ZK benutzt AJAX Anfragen an den Server um den internen Status der einzelnen Komponenten zu aktualisieren. ZK lädt hierzu eine JSON Beschreibung des Webseite runter und rendert diese dann auf der Nutzer Seite. Weiterhin lädt ZK die Webseite sequentiell über mehrere Anfragen herunter, und nicht den gesamten Inhalt auf einmal. Insbesondere bedeutet dies, dass ZK nicht Form Felder an den Server mit GET oder POST Anfragen sendet, wie vom Standard Anfrage <=> Antwort Mechanismus vorgesehen wird.

Technik
Die Programmierung der Logik erfolgt in Java, die Definition des Layouts in sogenannten ZUL-Dateien, welche ähnlich wie JSP-Dateien aufgebaut sind und auch HTML-Elemente und JavaScript-Code enthalten können. Über "autowiring-by-name" werden für die verschiedenen Komponenten (Widgets) der Logikteil in der Java-Datei mit dem Layoutteil in der ZUL-Datei automatisch verknüpft. Bei einem Request vom Webbrowser wird zuerst die Logik in der Java-Datei serverseitig verarbeitet und dann mit dem in der ZUL-Datei definierten Layout der fertige Response erzeugt und zum Browser zurückgeschickt. Im Browser wird der Request zusammen mit den in JavaScript/Ajax (vor-)implementierten clientseitigen Komponententeil verarbeitet und angezeigt. Das Prinzip ist ähnlich wie auch bei anderen serverseitigen Webframeworks, wie zum Beispiel Vaadin.

Üblicherweise enthält die ZUL-Datei aber nicht nur das Layout, sondern es ist oft auch noch Logik im Stile von JavaScript-Befehlen zu den einzelnen Komponenten definiert. Meist um clientseitige Interaktionen zwischen den verschiedenen Komponenten einer Webseite zu implementieren und so Requests an den Server zu vermeiden. Dadurch ist die Trennung von Logik und Layout nicht mehr sauber eingehalten. Andererseits hilft die Möglichkeit in den ZUL-Dateien HTML-Tags, CSS-Styles oder JavaScript-Code einzufügen oft über die ZK-Basis-Funktionalitäten hinaus schnell und einfach Anpassungen und Erweiterungen durchzuführen.

Lizenz
ZK OSS ist in drei Editionen verfügbar: Die Edition ZK CE (Community-Edition) steht unter der Open-Source-Lizenz LGPL. Die Editionen ZK PE und ZK EE sind unter der ZK Open Source License oder einer kommerziellen Lizenz verfügbar.

Die kostenpflichtigen Editionen bieten zusätzliche Funktionalitäten wie z.B. Charts, und Pivottables, welche vorallem für Datenkollektion und Visualisierung verwendet werden können. ZK Charts ist eine API zur Visualisierung der server-seitigen Daten für den Nutzer. ZK Pivottable erlaubt dem Programmierer Daten in einer Tabellen Form zu sammeln und vorinstallierte Werkzeuge zur Visualierung zu benutzen.

Weblinks

 * Offizielle Website