Anwendungsentwicklung für das Intranet

Bluestones Sapphire/Web nutzt Java und Corba

01.05.1998

Die aktuelle Version 4.0 von Sapphire/ Web besteht aus einem Applikations-Server, einer Entwicklungsumgebung und verschiedenen Hilfsprogrammen zur Konfiguration und Pflege von Datenbank-Schnittstellen, Server-Instanzen und Programmbibliotheken.

Die Architektur von Sapphire/ Web unterscheidet sich nicht von der vergleichbarer Produkte: Dreh- und Angelpunkt ist der Applikations-Server, unter dessen Kontrolle die Anwendungen ablaufen. Für die Kommunikation mit den Web-Clients bietet dieser eine Reihe von Optionen an. Bluestone unterstützt dabei einerseits das traditionelle Web-Modell, bei dem Anfragen des Browsers über einen Web-Server an den Anwendungs-Server gelangen. Als Schnittstellen zum HTTP-Server kommen das Common Gateway Interface (CGI) oder die proprietären, aber leistungsstärkeren Varianten von Netscape (NSAPI), Microsoft (ISAPI), Oracle (WRB API) oder Open Market (Fast CGI) in Frage. Web-Server wie Netscapes "Enterprise Server", O'Reillys "Web Site" oder Suns "Java Web Server" können darüber hinaus Anwendungsmodule nutzen, die auf dem Applikations-Server in Form von Servlets hinterlegt wurden. Sapphire/Web gehört darüber hinaus zu der Produktgeneration, die zusätzlich auf Basis der Common Object Request Broker Architecture (Corba) leistungsfähigere Alternativen zu diesem Web-Modell anbieten. Hierbei reduziert sich die Rolle des Web-Servers auf das Herunterladen von Java-Applets zum Client. Diese kommunizieren dann am HTTP-Server vorbei via Internet Inter-ORB Protocol (IIOP) direkt mit dem Applikations-Server. Dazu greift dieser auf den integrierten Object Request Broker (ORB) "Visibroker" von Visigenic zurück. Netscapes "Communicator" stellt am Client die Corba-Infrastruktur durch das gleiche Produkt bereit. Für leichtgewichtige Anwendungen läßt sich alternativ zur Corba-Technik Suns Remote Method Invocation (RMI) nutzen.

Anwendungen, die den Web-Server durch direkte Kommunikation zwischen Client und Anwendungs-Server umgehen, eignen sich besonders für das Intranet.

Im Internet und Extranet kann das Zusammenspiel verteilter Objekte an restriktiv konfigurierten Firewalls scheitern. Die Entscheidung für eine Architektur schließt aber die Nutzung der anderen nicht aus. Beispielsweise kann eine als Corba-Objekt vorliegende Java-Anwendung zusätzlich das Servlet-API unterstützen oder ganz gewöhnlich über das traditionelle Web-Modell genutzt werden. Bluestone wirbt damit, daß Sapphire/Web Anwender flexibel je nach Client-Typ entscheiden läßt, welche Art des Front-ends zum Einsatz kommen soll. Das Spektrum reicht dabei von reinem HTML bis zu vollständigen Java-Clients. Ein Feature namens "Automatic Client Sensing" soll dabei behilflich sein. Es meldet nicht nur, welcher Browser am anderen Ende der Leitung zum Einsatz kommt, sondern auch, welche Versionen von Java und Javascript er unterstützt.

Zur Datenbankanbindung liefert Bluestone native Treiber für die Systeme von Sybase, Informix und Oracle mit. Alle anderen Datenbank-Management-Systeme (DBMS) lassen sich über Open Database Connectivity (ODBC) oder Java Database Connectivity (JDBC) nutzen. Darüber hinaus lassen sich auch Datenquellen über Microsofts OLE DB ansprechen, weil Sapphire/Web den Zugriff auf das Active Data Object (ADO) des Windows-Herstellers über Java-Klassen möglich macht.

Da Bluestone sein Produkt für den Enterprise-Bereich positioniert, verfügt der Applikations-Server über Funktionen, die man in dieser Klasse erwarten darf. Dazu gehört eine effektive Zustandsverwaltung auf der Client- und Server-Seite über einen eigenen "State Management Server", Connection Pooling und statisches Load Balancing über mehrere Rechner (siehe dazu Glossar). Einer guten Skalierbarkeit kommt es entgegen, daß der Applika- tions-Server aus einzelnen Modulen wie dem oben genannten State Management Server besteht: Sie lassen sich auf eigene Rechner auslagern. Neben den üblichen Transaktionsfunktionen wie Begin - Commit - Rollback beherrscht der Applikations-Server auch ein zweistufiges Bestätigungsprotokoll (Two Phase Commit), um Synchronisierung und Änderungen auch über mehrere Datenbanken hinweg zu gewährleisten. Anwender von Oracle können alternativ dessen Transaction Processing einsetzen.

Die Anwendungsentwicklung in Sapphire/Web kann in C++ oder Java erfolgen. Das Tool wurde für Suns Logo-Programm "100% pure Java" zertifiziert. Der Anwender kann zu jeder Zeit zwischen beiden Sprachen wechseln. Die Orientierung des Herstellers geht klar in Richtung Java, C++ ist die ursprüngliche Sprache von Sapphire/ Web. Applikationen, die mit solchen früheren Ausführungen des Tools erstellt wurden, lassen sich per Knopfdruck in Java übersetzen. Auch bei Tests mit Blue- stones Produkt zeigte sich, daß Suns Beteuerungen zum Trotz die in C/C++ entwickelten Applikationen merklich schneller ablaufen.

Für die Programmierung enthält Sapphire/Web eine integrierte Entwicklungsumgebung (IDE). Ihre zwei Hauptkomponenten sind der Data Object Browser (DOB) und der Object Bind Editor (OBE). Der OBE generiert als visueller Query-Builder den benötigten Code in Form von dynamischem SQL (DSQL). Er kann dabei auch herstellerabhängige Dialekte wie Oracles PL/SQL erzeugen. Der Vorteil von DSQL liegt in der größeren Flexibilität. Allerdings geht diese Zugriffsart auf Kosten der Geschwindigkeit, da sie beim Ausführen jedesmal neu interpretiert werden muß. Mit Hilfe des DOB werden alle verfügbaren Datenbanken und ihre spezifischen Informationen wie Tabellen, Stored Procedures und DSQL-Objekte in einer übersichtlichen Baumstruktur dargestellt. Ein weiteres praktisches Tool der IDE ist der Project Mapper. Er visualisiert die Abhängigkeiten zwischen Abfrage- und Ergebnisseiten in Form eines Fluß-Diagramms bis auf die Ebene von einzelnen Werten einer Datenbank-Tabelle.

Um eine GUI-Entwicklungsumgebung im herkömmlichen Sinn handelt es sich bei Sapphire/ Web aber nicht. Das Rapid Application Development (RAD) beschränkt sich lediglich auf die Datenzugriffslogik. Während andere Werkzeuge wie "Netdynamics" oder "Apptivity" von Progress Software die vollständige Gestaltung der Client-Seite innerhalb der Entwicklungsumgebung möglich machen, erzeugt Sapphire/Web lediglich ein rudimentäres Client-Gerüst. Dem Anwender bleibt selbst überlassen, auf welche Tools er zurückgreift, um dieses Gerüst um die benötigten Funktionen zu erweitern. Dank der offenen Architektur harmoniert die Entwicklungsumgebung mit gängigen HTML- und Java-Werkzeugen ebenso wie mit den meisten Code-Management-Systemen. Als echte Einschränkung durch die spartanische IDE-Ausstattung werden die meisten Anwender das Fehlen eines integrierten Debuggers empfinden. Ein Server-seitiges Fehlersuchprogramm können allerdings einige direkte Mitbewerber von Bluestone ebenfalls nicht vorweisen, darunter Silverstream, Everyware ("Tango"), Allaire ("Cold Fusion") oder ("Infoscape"). Besser sind in dieser Hinsicht jedoch Apptivity, Netdynamics und Netscapes "Application Server".

Die aktuelle Ausführung weist noch andere Defizite auf, die sich besonders im angestrebten Enterprise-Einsatz nachteilig auswirken. Dazu zählen neben den eingeschränkten Teamfunktionen die fehlende Anbindung an betriebswirtschaftliche Standardsoftware oder limitierte Management-Funktionen. Bluestone will diese Scharten mit der in Kürze erscheinenden Version 5 auswetzen. Diese Ausführung wird um ein "Enterprise Deployment Kit" (EDK) ergänzt, mit dem sich "Sapphire Integration Modules" für die Anbindung an bestehende Systeme entwickeln lassen.

Version 5 bringt wichtige Neuerungen

Module für Legacy-Anwendungen und gängige Transaktionsmonitore sollen demnächst verfügbar sein, solche für Enterprise-Resource-Planning-(ERP-) Systeme befinden sich erst im Planungsstadium. Der besseren Verwaltbarkeit soll der "Application Manager" dienen, der auch eine Anbindung von Sapphire/Web an alle verbreiteten System-Management-Produkte erlaubt. Hinzu kommt auch das SCC-API zur Integration von Sourcecode-Kontrollsystemen wie "Intersolv PVCS" oder MKS "Source Integrity". Ganz im Sinne der Java-Ausrichtung liegt die angekündigte Unterstützung für Suns Komponentenmodell Enterprise Javabeans. Eine Übersicht über die Neuerungen der Version 5 gibt es unter http://www.bluestone. com/marketing/release5/release5_ whatsnew.html.

Eine davon, die besonders Großkunden interessieren wird, ist die Portierung von Sapphire/ Web auf IBMs OS/390. Sie vervollständigt eine eindrucksvolle Liste unterstützter Plattformen. Dazu zählen neben Windows 95 und NT fast alle bekannten Unix-Varianten (unter anderem Sun Solaris, HP-UX, SGI, Digital Unix, AIX und Sinix).

Glossar

State Management: Im zustandslosen WWW ist es unmöglich zu unterscheiden, welcher Benutzer welche Verbindung verwendet. Jede Anfrage wird als unabhängige, singuläre Transaktion behandelt. Da aber Datenbankanwendungen oft Session-orientiert arbeiten, muß der Applikations-Server die Fähigkeit besitzen, verbindungsspezifische Informationen zu speichern. Beim Client geschieht dies beispielsweise über globale Variablen oder Cookies.

Load Balancing: Bei hochfrequentierten Anwendungen kann sich der Applikations-Server leicht als Flaschenhals entpuppen. Daher bieten die meisten Produkte die Möglichkeit einer statischen oder dynamischen Lastverteilung. Bei einer einfachen Ausführung lassen sich mehrere Instanzen des Servers auf nur einem Rechner starten. Die leistungsfähigere Variante erlaubt die Verteilung dieser Instanzen auf mehrere Rechner (und Betriebssysteme), die nach außen hin aber wie ein Applikations-Server fungieren.

Connection Pooling: Um Speicherplatz zu sparen, bündelt der Applikations-Server die Sessions mehrerer Benutzer und verwendet für sie eine gemeinsame Verbindung zur Datenbank. Dazu gehört auch die Fähigkeit, nicht mehr aktive Sitzungen aufzuspüren, um so deren Ressourcen für den allgemeinen Betrieb zurückzugewinnen.

Thomas Nitsche arbeitet als freier Autor in München (nitscheqcis.uni-muenchen.de).