Caché 5.2: Anwendungsentwicklung per Datenbank
Kommentare

Server Pages
Anwendungsoberflächen für die Datenbank lassen sich auf vielerlei Weise generieren. Besonders komfortabel gestaltet sich der Entwicklungsprozess bei Verwendung von CSP-Seiten. In einfachen

Server Pages

Anwendungsoberflächen für die Datenbank lassen sich auf vielerlei Weise generieren. Besonders komfortabel gestaltet sich der Entwicklungsprozess bei Verwendung von CSP-Seiten. In einfachen HTML-Code werden CSP-Tags eingebettet, die Ablauflogik implementieren (Kontrollstrukturen wie IF und FOR), Objekte aus der Datenbank holen, bearbeiten oder abspeichern, Abfragen auf gespeicherte Datenmengen ausführen, serverseitig Programmcode abarbeiten und dergleichen mehr. Die Herausforderung besteht für den Programmierer darin, dass er nicht alle gewünschten Ergebnisse mit nur einer Sprache erzielt. Anders ausgedrückt: Es ist bei der Entwicklung anspruchsvoller Applikationen durchaus die Regel, dass in einer Seite HTML, JavaScript, SQL und Caché Object Script gemeinsam angewandt werden müssen, überdies die eigentlichen CSP-Tags. Bei dieser Vielfalt nicht den Überblick zu verlieren und alle Grammatiken im Hinterkopf zu behalten, ist nicht immer einfach.

CSP-Seiten können mit jedem HTML- bzw. Texteditor erstellt werden. Der Editor von Caché Studio bietet den Vorteil, ein spezielles Syntax Highlighting für CSP mitzubringen. Noch komfortabler ist die Arbeit mit dem Macromedia Dreamweaver, der über ein Caché-Plug-in das GUI-basierte Einfügen von CSP-Tags unterstützt. Das spart viel Zeit und senkt die Fehlerquote bei der Entwicklung von Webapplikationen.

Abbildung 5 zeigt den Wirkmechanismus von CSP. Ein Webserver nimmt die Browser-Requests entgegen, ist verantwortlich für die Zugangskontrolle und stellt statische HTML-Seiten zur Verfügung. Alle Requests für .csp-Dateien sortiert er aus und übergibt sie an das CSP-Gateway. Dieses leitet sie an den CSP-Server weiter, dessen Adresse in der Konfiguration des Gateways angegeben ist. Der CSP-Server verarbeitet die Requests, generiert entsprechende CSP-Klassen in der Datenbank, sofern die gewünschte Seite noch nicht kompiliert ist, erzeugt aus der implementierten Programmlogik und den angesprochenen Datenbank-Inhalten HTML-Code und sendet diesen via Webserver zurück an den Browser, der das Rendering der angeforderten Seite übernimmt. Webserver, CSP-Gateway und CSP-Server können Bestandteile ein und desselben Caché-Datenbankservers sein, wie das bei Entwicklungssystemen auf einem PC meist der Fall ist, können aber auch auf zwei oder drei verschiedenen Rechnern residieren. Eine komplette CSP-Applikation besteht aus mehreren miteinander verknüpften CSP-Seiten.

Abb. 5: CSP-Requests werden vom Caché-Server in drei Stufen verarbeitet

Beispiele für CSP-Seiten und kleine Applikationen, an denen sich die Grundprinzipien studieren lassen, finden sich in den Tutorien und im Samples-Bereich der Caché-Installation, erreichbar unter der URL localhost/csp/samples/menu.csp.

Sprachenvielfalt

Neben CSP für die Entwicklung von Webanwendungen bietet Caché Schnittstellen für eine Reihe weiterer Programmiersprachen. Über seine Language Bindings gewährleistet der Datenbank- und Applikationsserver die Anbindung von Client-Applikationen in objektorientierten Sprachen, während die prozeduralen Vertreter durch Gateways wie ODBC unterstützt werden. Language Bindings existieren plattformunabhängig für Java und unter Windows und Linux für C++, Perl und Python. Darüber hinaus werden für die Windows-Programmierung ActiveX-Objekte und -Controls bereitgestellt, die eine rasche Applikationsentwicklung mit VB6 und VB.NET gestatten. Seit der neuesten Version wird auch ein Managed Provider für .NET zur Verfügung gestellt. Mithilfe des Add-in RoseLink lässt sich der Klassen-Im- und Export von und nach Rational Rose bewerkstelligen. Außerdem ermöglicht Caché die Generierung und Veröffentlichung von Web Services (SOAP) für eine unkomplizierte Kommunikation über Plattformgrenzen hinweg.

Der „natürlichste“ Zugang bietet sich für Anwendungen in objektorientierten Sprachen. Die Technik ist überall die gleiche wie bei Java: Der Server generiert für ausgewählte Caché-Klassen automatisch Proxy-Klassen in Java, mit denen die Applikation arbeitet. Eigenschaften und Methoden der Caché-Klasse sind so direkt im Java-Programm verfügbar. Änderungen der Java-Objekte werden unmittelbar in den entsprechenden Objekten auf dem Datenbankserver gespeichert. Auf diese Weise können alle DB-Features wie Objektpersistenz, Verhalten bei konkurrierenden Zugriffen und Transaktionssteuerung von der Client-Software genutzt werden. Für den SQL-Zugriff auf die gespeicherten Daten existiert ein eigener JDBC-Treiber (Level 4). Speziell für J2EE Enterprise Java Beans gibt es obendrein das Caché EJB Binding. Die von Caché generierten Beans kommunizieren direkt mit den zugeordneten Objekten auf dem Datenbankserver und reduzieren somit nicht nur den Entwicklungsaufwand, sondern auch die Ressourcenbeanspruchung zur Laufzeit.

Abbildung 6 zeigt einen Überblick über die Komponenten von Caché und deren Zusammenarbeit mit den verschiedenen Anwendungssprachen und -technologien.

Sicherheit

Neuerungen in Version 5.1 und 5.2 umfassen, neben den bereits im Artikel erwähnten, zahlreiche Weiterentwicklungen im Detail. Für Entwickler besonders interessant sind geschachtelte Transaktionen, erweiterte ODBC-Unterstützung, neue Sprachelemente bei SQL, wie Volltext- und linguistische Suche, die Einbeziehung von T-SQL (Sybase) sowie das weiter ausgebaute Debugging.

Bemerkenswert ist das neue Sicherheitssystem, von InterSystems als Caché Advanced Security bezeichnet. Es bietet neben der klassischen User/Password-Authentifizierung jetzt auch Kerberos auf allen unterstützten Plattformen. Alle Aspekte der Systemsicherheit wie Rollen, Benutzer, Zugriffsrechte auf Ressourcen und das Auditing werden über das Management-Portal (Abb. 2) verwaltet. Die in relationalen Systemen übliche fein granulierte Rechtevergabe bis hinab auf Spaltenebene ist für Objekte, deren Eigenschaften und Methoden in analoger Weise möglich. Benutzerrollen erleichtern dem Administrator die Arbeit. Ein „Sicherheitsberater“, ebenfalls im Management-Portal integriert, liefert Hinweise auf mögliche Schwachstellen und unbeachtete Konfigurationsdetails. Sämtliche Datenbankinhalte können verschlüsselt auf den Datenträgern des Servers abgelegt werden, die Ver- und Entschlüsselung erfolgt „on the fly“ bei der Ein- und Ausgabe.

Bereits bei der Installation legt der Administrator das grundsätzliche Sicherheitsniveau des Servers fest. Angeboten werden die drei Stufen „Minimal“, „Normal“ und „Locked Down“. Die Minimalvariante entspricht dem Auslieferungsstand bis zur Version 5.0. Die neu hinzugekommenen Stufen erlauben einen wesentlich stärkeren und differenzierteren Schutz des gesamten Servers und seiner einzelnen Funktionalitäten.

Für Softwareentwickler ergeben sich damit zahlreiche Möglichkeiten, Sicherheitsfeatures in ihre Anwendungen einzubauen, egal ob es sich um server- oder clientseitige Applikationen, Webseiten oder einfache ODBC- oder JDBC-Zugriffe handelt.

Fazit

Caché von InterSystems ist eine interessante Alternative zu klassischen Multi-Tier-Architekturen. Es vereint eine fixe Datenbank und interessante Zusatztools mit einer kompletten Entwicklungsumgebung. Von Aufgaben wie „Schreiben Sie mal eben bis Mittwoch einen Webshop“ bis hin zu großen Produktionsinstallationen mit dutzenden Servern und tausenden Arbeitsstationen ist sie vielen Anforderungen gewachsen. Wer neugierig geworden ist und sich selbst einen Eindruck vom Produkt verschaffen möchte, lädt sich die Ein-Benutzer-Version zum Testen herunter.

Dr. Bernhard Röhrig (www.roehrig.com) arbeitet seit 1997 als freiberuflicher Trainer und Administrator für Unix/Linux-Netzwerke und Datenbanksysteme. Aus seiner Feder stammen eine Reihe von Fachbüchern sowie zahlreiche Artikel für IT-Magazine.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -