Caché

You’ll make breakthroughs
in
data management 
and rapid development

Komplexe Web-Applikationen schnell entwickeln mit InterSystems’ Zen-Technologie

Viele der heutigen Anwendungen bieten eine Benutzeroberfläche, die in einem Webbrowser läuft. Und viele dieser Oberflächen stehen denen von Programmen für Desktop-Rechner in puncto Funktionsumfang und Raffinesse in nichts nach. Teil von Caché ist InterSystems’ Technologie Zen™, mit der es möglich ist, in kürzester Zeit komplexe, datenbankgestützte Web-Applikationen zu schaffen.

CSP-Technologie

Das Fundament für Zen und verantwortlich für die Mechanismen, um Web-Applikationen ausführen zu können, ist die als Caché Server Pages (CSP) bezeichnete Technologie von InterSystems. Die Caché Server Pages zeichnen sich unter anderem durch folgende Funktionen aus:

  • Dynamic Server Pages – Da die Seiten dynamisch auf dem Applikationsserver durch Anwendungscode entstehen, anstatt dass ein Web Server statisches HTML zurückgibt, können Anwendungen schnell auf eine große Zahl verschiedener Anforderungen reagieren und die Ergebnisseiten individuell auf die Anfragen zuschneiden.
  • Session Model – Die gesamte Verarbeitung für alle Seiten eines Browsers wird als Teil einer Session aufgefasst – von der ersten Browser-Anforderung bis zu dem Zeitpunkt, an dem die Anwendung abgeschlossen oder ein Timeout aufgetreten ist.
  • Serverseitige Zustandsspeicherung – Innerhalb einer Session können Anwendungsdaten – bis hin zum vollständigen Applikationskontext über verschiedene Browser-Anforderungen hinweg auf dem Server zwischengespeichert werden. Dies vereinfacht die Entwicklung und Ausführung komplexer Anwendungen.
  • User Authentication – Dazu können die Cachés Authentifizierungsmechanismen genutzt werden.
  • Verschlüsselung – Caché verschlüsselt Daten im URL automatisch, um die Berechtigung von Anforderungen zu prüfen und unbefugte Eingriffe zu verhindern. Der Schlüssel wird ausschließlich auf dem Server verwaltet und wird jeweils nur für eine einzige Session verwendet.

Die Klassenarchitektur von Webseiten

Class Architecture Of Web PagesIn Caché ist jede Webseite ein Objekt – die Instanz einer Seitenklasse, die die Methoden (Code) enthält, welche den Seiteninhalt generieren. Normalerweise werden Seitenklassen von der Standard-Webseitenklasse %CSP.Page abgeleitet, die verschiedene integrierte Funktionen wie zum Beispiel die Erstellung von Headern oder Kodierungen zur Verfügung stellt. Diese Klassenarchitektur macht es einfach, das Verhalten einer ganzen Anwendung zu verändern und einen einheitlichen Stil durchzusetzen. Sie macht außerdem alle weiteren Vorteile der objektorientierten Programmierung auch für die Web-Entwicklung verfügbart.

Im Allgemeinen empfiehlt es sich, in Seitenklassen nur die Benutzeroberflächenlogik abzulegen. Geschäfts- und Datenbanklogik sollten in anderen Klassen abgelegt werden, so dass eine klare Trennung zwischen dem Code für die Benutzeroberfläche und der Geschäfts- und Datenbanklogik besteht und weitere Benutzeroberflächen zu einem späteren Zeitpunkt einfach hinzugefügt werden können.

Zen und Komponenten-basierende Webseiten

Zen ermöglicht die schnelle und einfache Entwicklung komplexer und datenintensiver Webanwendungen, die über ein differenziertes optisches Erscheinungsbild und eine hochgradig interaktive Benutzeroberfläche verfügen. Zen ist keine 4GL-Sprache – es handelt sich dabei vielmehr um eine umfangreiche Bibliothek vordefinierter Objektkomponenten und Entwicklungstools auf Basis der CSP- und Objekttechnologie von InterSystems. Dabei eignet sich Zen insbesondere für die Entwicklung webbasierter Client/Server-Anwendungen, die ursprünglich mit Tools wie Visual Basic oder PowerBuilder erstellt wurden.

Zen-Komponenten ermöglichen eine Vielzahl zusätzlicher dynamischer Interaktionen – der Transfer von Daten an einen Server beschränkt sich nicht auf Standard-Submit-Verfahren. So können beispielsweise mit der Zen-Formkomponente individuell angepasste Validitätsprüfungen durchgeführt werden, einschließlich serverseitiger Methodenaufrufe ohne Page Request und dem damit verbundenen Neuaufbau des Bildschirms. Dies ermöglicht dem Anwender eine intuitivere Art der Dateneingabe.

Zen verwendet die Session Management-Mechanismen von CSP und unterstützt die Benutzerauthentifizierung, Datenverschlüsselung und das Beibehalten persistenter Session-Inhalte über Page Requests hinweg. Die gesamte Kommunikation zwischen Browser und Server findet mittels eines Austauschs von Objekten statt, wobei eine Weiterentwicklung des AJAX-(Asynchronous JavaScript and XML-) Mechanismus genutzt wird.

Zen-basierte Webseiten können auf einfache Weise mit CSP-Seiten kombiniert werden.

Was versteht man unter einer Zen-Komponenten?

Eine Zen-Komponente ist eine Klassendefinition, die das Er scheinungsbild und das Verhalten der Komponente auf einer Webseite angibt. Die Zen-Klassendefinition enthält dabei in einem einzigen Dokument die Definition der Komponente, einschließlich Stylesheets, sowie serverseitig und clientseitig auszuführendem Code.

Zur Laufzeit erstellt Zen zwei Objekte für jede in der Webseite verwendete Komponente: ein Objekt auf der Client-Seite, das Zen automatisch als JavaScript-Objekt im Browser anlegt, und ein Objekt auf der Server-Seite. Zen verwaltet automatisch den Zustand beider Objekte, hält diese aktuell und verwaltet den Informationsfluss zwischen den Objekten.

Arten von Zen Komponenten

Die Zen-Bibliothek verfügt über Komponenten, die alle Standard-HTML-Steuerungselemente, wie Eingabe- und Textfelder, Buttons, Check-Boxen etc., umsetzen. Diese Komponenten erben zusätzliche Verhaltensweisen von der Zen Control-Klasse.

Zen enthält darüber hinaus komplexere Komponenten, die automatisch Daten aus einer Datenbank anzeigen können und diese als Reaktion auf Benutzeraktionen dynamisch aktualisieren. Zum Beispiel zeigt die leistungsstarke Tabellenkomponente von Zen unter Verwendung einer Datenbankabfrage automatisch Daten in einer HTML-Tabelle an. Die Tabellenkomponente unterstützt dabei Paging, Scrollen, Sortieren nach Spalten, Filter und eine Vielzahl an Darstellungsmöglichkeiten. Der Inhalt einer Tabelle kann dabei seitens des Servers aktualisiert werden, ohne die gesamte Seite neu aufbauen zu müssen.

Weitere Zen-Komponenten sind:

  • Menu – ermöglicht die Darstellung verschiedener Menüarten.
  • Grid – fügt editierbare Gitter im Stil von Tabellenkalkulationen in eine Webseite ein.
  • Tree – zeigt hierarchische Daten in einer Baumstruktur an.
  • Tab – enthält eine Reihe von Registerkarten, von denen jede wiederum eine Reihe anderer Zen-Komponenten enthalten kann.
  • Chart – ermöglicht die Darstellung von Diagrammen auf Basis von Standard Vector Graphics (SVG), wie beispielsweise Linien-, Flächen-, Balken-, Kuchen- und Streudiagramme.
  • Graphical Meters – enthält Geschwindigkeitsanzeiger, Messgeräte usw., um Daten als dynamische visuelle Komponenten (z. B. in Dashboards) anzuzeigen.

Modifizierung des Erscheinungsbilds der Zen-Komponenten

Alle Zen-Komponenten verfügen über Eigenschaften zur Festlegung ihres ‚Look and Feels‘. Anwendungen können diese Eigenschaften zur Laufzeit dynamisch festlegen, um dargestellte Werte, das Erscheinungsbild und das Verhalten der Komponenten zu ändern.

Das visuelle Erscheinungsbild wird durch Standard-CSS-(Cascading Style Sheet-)Definitionen gesteuert. Um eine individuelle Anpassung des Aussehens, beispielsweise durch angepasste Schriften, Farben und Größen, zu ermöglichen, können die CSS-Definitionen sowohl für jede einzelne Komponente, webseitenweise oder anwendungsweit überschrieben werden.

Für noch weitergehende Modifikationen im Erscheinungsbild und Verhalten einer Komponente können Subklassen der in der Zen-Bibliothek festgelegten Komponenten gebildet und entsprechend erweitert werden.

Neue Zen-Komponenten erstellen

Eine der großen Stärken von Zen ist die einfache Erstellung neuer Komponenten.

Jede Zen-Komponente ist als Klasse implementiert. Die Erstellung einer neuen Komponente erfolgt in vier Schritten: (1) eine neue Komponenten-Klasse wird erstellt, die Subklasse einer bereits vorhandenen Komponente sein kann; (2) der erstellten Klasse wird eine Methode hinzugefügt, die festlegt, was als HTML-Inhalt der Komponente dargestellt wird; (3) server- und clientseitige Methoden werden definiert, die das Verhalten der Komponente zur Laufzeit implementieren; (4) das Aussehen der neuen Komponente wird über die CSS-Definitionen festgelegt.

Lokalisierung einer Zen-Anwendung in verschiedenen Sprachen

Falls gewünscht, kann Zen automatisch die Menge aller Textwerte (Titel, Bildunterschriften usw.), die in den Komponenten einer Anwendung angezeigt werden, in einer speziellen Lokalisierungstabelle erfassen. Die Lokalisierungstabelle einer Anwendung kann dann als XML-Dokument exportiert werden, um die darin enthaltenen Textwerte in andere Sprachen zu übersetzen und sie anschließend als neue Tabelle wieder zu importieren.

Zur Laufzeit verwendet Zen dann die Textwerte basierend auf der aktuellen Spracheinstellung im Browser des Anwenders.

SVG-Unterstützung

SVG (Scalable Vector Graphics) sind ein leistungsstarker Standard, um grafische Daten auf einer Webseite anzuzeigen. In Zen können grafische Komponenten mit Hilfe von SVG dargestellt werden. Dazu enthält die Zen-Bibliothek ein umfangreiches Portfolio vordefinierter SVG-basierender Komponenten.

Welche Browser unterstützt Zen?

Zen arbeitet mit Firefox, Chrome, Safari und Internet Explorer (7.0 und später) zusammen. Für die Verwendung des Internet Explorers ist das Adobe SVG-Plug-in erforderlich, um die SVG-Komponenten von Zen nutzen zu können.

Zen Reports

hammockZen bringt ein erweiterbares Framework mit, um Reports zu definieren und individuell zu gestalten. Ein Zen Report ist eine besondere Zen-Klasse, die es erlaubt, Datenbankberichte in XHTML oder als PDF zu spezifizieren. Der dazugehörende grafische Layout-Editor bietet die vollständige Kontrolle über Layout und Erscheinungsbild des Reports und ermöglicht die Einbeziehung von (statischen) Zen-Charts und Diagrammen. Reports können server- wie clientseitig wahlweise im Browser angezeigt oder ausgedruckt werden. Mit Zen Reports können funktionsreiche Internet-Anwendungen sowohl jene Berichte replizieren, die die Anwender gewohnt sind zu erhalten, als auch auf einfache Art und Weise hilfreiche neue generieren.

Die Vorteile mit Caché

Umfangreiche Benutzerschnittstellen für Webanwendungen: Es können visuell ausgefeilte, hochgradig interaktive Webseiten generiert werden, die den Benutzeroberflächen von Desktop-Anwendungen ähnlicher sind als herkömmliche einfache Browser-Formulare. Dieses interaktive Darstellungsformat führt zu hohem Bedienkomfort für den Benutzer.

Schnelle objektbasierte Entwicklung: Die Nutzung vordefinierter Komponenten beschleunigt die Entwicklung und vereinfacht spätere Modifikationen.

Konsistente Benutzerschnittstellen: Die komponentenbasierte Architektur vereinfacht die Definition und Durchsetzung eines anwendungsweit einheitlichen “Look and Feel”.

Automatisch Generierung von Reports: Reports können automatisch erzeugt und gedruckt beziehungsweise im Browser des Anwenders angezeigt werden.