Zwei Lager wachsen zusammen

Die Entwicklung von Web-basierten Anwendungen ist im Umbruch

07.05.1999
Entwicklungswerkzeuge für Web-Anwendungen waren bislang Server- oder Browser-orientiert und zeigten mehr oder minder deutlich Schwächen im jeweils anderen Bereich. In jüngster Zeit kommen jedoch von Grund auf neu konzipierte Tools auf den Markt, die eine starke Entwicklungsumgebung mit den Funktionen eines leistungsfähigen Anwendungs-Servers kombinieren. Michael Wagner* gibt einen Überblick über einige wichtige Produkte.

Die Struktur der Anbieter von Systemen zur Programmierung von Web-Anwendungen war bisher ganz von der historischen Entwicklung dieser jungen Technologie geprägt. Ursprünglich setzten sich Web-Anwendungen aus HTML-Formularen zusammen, deren Logik über Web-Server gesteuert wurde. Mit der Entwicklung der Web-Browser-Erweiterungen wie Javascript, Java oder Active X entstanden rein Browser-basierte Web-Anwendungen, die über Schnittstellen wie JDBC in Verbindung mit proprietären Protokollen auf Datenbanken zugriffen.

Umfassender Ansatz bislang nur selten

Der Markt für die Entwicklung von Web-Anwendungen war dementsprechend bislang in zwei Lager geteilt: Während sich die eine Gruppe von Anbietern auf die Server-Seite konzentrierte, betrachtete die andere die Anwendungsentwicklung aus der Perspektive des Browsers: Am Server war Funktionalität und Durchsatz gefragt, am Browser Interaktivität und einfache Entwicklung. Beide Lager versuchen inzwischen, sich in die jeweils andere Richtung zu bewegen.

Nur wenige Hersteller haben es geschafft, einen umfassenden neuen Entwicklungsansatz zu verwirklichen. Integrative Techniken wie Active X und das Distributed Component Object Model (DCOM) oder Java und der Standard für die Anwendungsintegration Common Object Request Broker Architecture (Corba) ermöglichen die neue Klasse von Web-Anwendungen. Die Zusammenarbeit zwischen Browser-Komponenten und Server-Diensten steht dabei im Vordergrund.

Die Hersteller von Web-Anwendungsumgebungen erweitern mittlerweile ihre Server-seitigen Programmier- und Scripting-Techniken zu vollständigen Entwicklungswerkzeugen für Applikationen, die auch den Client einschließen. Diese jeweils zusätzlichen Entwicklungs-Tools für Front-ends stehen aber hinsichtlich Komfort und Funktionalität in vielen Fällen hinter den traditionellen Browser-orientierten Werkzeugen zurück.

Einen Schwerpunkt am Server haben:

"Web Objects", der ursprünglich für das Openstep-Betriebssystem von Next entwickelte und inzwischen auch für Windows NT verfügbare Web-Applikations-Server von Apple, kann als Exot gelten. Mit dem "Web Objects Builder" bietet Apple Unterstützung für Java, Objective C sowie für das hauseigene Webscript. Unter Windows NT lassen sich Active-X-Komponenten integrieren. Sitzungen und Transaktionen werden verwaltet, Datenbankverbindungen gehalten, Lastausgleich und Fehlertoleranz werden unterstützt. Eine Corba-Integration ist nur über Drittanbieter erhältlich.

Allaire kombiniert bei seinem Produkt "Cold Fusion" Standards wie HTML, Java und die eigene Cold Fusion Markup Language (CFML) in der Entwicklungsumgebung "Cold Fusion Studio".

Über ein entsprechendes API ist die Definition von eigenen CFM-Tags möglich. Der Cold-Fusion-Server übersetzt die CFML in ausführbaren Pseudocode und ist unter Netscape, Microsoft IIS, O''Reilly Website und dem Apache Server einsetzbar. Cold Fusion kann Datenbankverbindungen halten und unterstützt DCOM. Das Produkt verfügt aber nicht über eine Corba-Schnittstelle und fortgeschrittene Server-Techniken.

"Sapphire Web" von Bluestone setzt sich aus dem Sapphire Developer und dem Universal Business Server zusammen. Die Sapphire-Entwicklungsumgebung Developer unterstützt die Kommunikation von Java-Applets über Corba zum Applikations-Server und enthält Wizards für HTML und Java. Anwendungskomponenten können als eigenständige Java-Applikationen, als Javabeans oder als Servlets gespeichert werden. Der Universal Business Server ist erweiterbar durch die "Sapphire Integration Modules" (SIM), die eine konsistente Anbindung an Datenbanken und Transaktionssysteme wie Cics sowie die Integration mit COM, Enterprise Javabeans oder Corba ermöglichen. Sapphire Web unterstützt die Aufrechterhaltung von Datenbankverbindungen, Lastenausgleich und Fehlertoleranz.

Der Web-Application-Pionier Haht unterstützt neben der eigenen Visual-Basic-ähnlichen Sprache "Haht-Talk Basic" nun auch Java auf der Server-Seite, bietet aber keine zusätzlichen Klassenbibliotheken für die Web-Entwicklung. Der unter ISAPI und NSAPI lauffähige Web-Applikations-Server wird ergänzt durch einen Distributed-Application-Server, der Load Balancing unterstützt. Eine Besonderheit des Haht-Systems ist die Unterstützung heterogener Cluster, wobei mehrere Haht-Server auf unterschiedlicher Hardware als ein System erscheinen. Daneben bietet der Hersteller Session Management und Database Connection Pooling. Die Entwicklungsumgebung, die sich auf Widgets (Elemente der grafischen Benutzer-Schnittstelle) stützt, umfaßt auch einen HTML-Designer, der Verweise zwischen Seiten automatisch aktualisieren kann.

Der Schwerpunkt bei den Browser-orientierten Werkzeugen liegt auf der traditionellen Programmierung in unterschiedlichen Darstellungsformen, ergänzt um den Komfort der Codegenerierung in Form von Assistenten. Die Unterstützung von Web-Applikations-Servern fällt bei der Mehrzahl der Web-Entwicklungswerkzeuge eher begrenzt aus.

"Inprise Jbuilder", das ehemalige Borland-Werkzeug, legt einen Schwerpunkt auf die Integration von Javabeans mit dem Corba-Produkt der zugekauften Tochter Visigenic. Ein Ansatz, den auch Symantec mit dem Produkt "Visual Cafe" verfolgt, das in der aktuellen Version 3.0 insbesondere die Fehlersuche in verteilten Anwendungen unterstützt. Der Datenbankhersteller Progress hat in die "Apptivity-3.0"-Umgebung einen eigenen Transaktionsmonitor integriert, der die Anbindungen an Datenbanken vereinfachen soll. Unterstützt werden Corba und Enterprise Javabeans.

Im Gegensatz zu diesen stark auf die Front-end-Entwicklung konzentrierten Werkzeugen bietet etwa "Power J" von Sybase ein leistungsfähiges Entwicklungswerkzeug, das Corba und DCOM unterstützt und darüber hinaus die Integration mit einem Applikations-Server, dem zugekauften "Jaguar CTS, ermöglicht. Dieser Enterprise-Applikations-Server wird seinem Namen im Vergleich aber nicht ganz gerecht. Das Produkt unterstützt neben Active X, C, C++, Java und Javabeans auch JDBC, ODBC und Sybase-Datenbanktreiber, aber keinen Lastenausgleich zwischen Servern und keine Fehlertoleranz.

IBM bemüht sich deutlich um Präsenz in den beiden hier unterschiedenen Lagern. Derzeit ist das Bild des Riesen in Sachen Entwicklungssysteme für Web-Anwendungen aber noch fragmentarisch. Mit der Entwicklungsumgebung "Visual Age" bietet IBM den Benutzern breite Integrationsmöglichkeiten von Corba über Cics bis Encina und Tuxedo. Auf der Server-Seite steht dem mit "Websphere" ein Mix verschiedener Produkte gegenüber. Der auf dem Java-Servlet-Standard aufsetzende Applikations-Server unterstützt Corba und Enterprise Javabeans und kann mit Netscape, Microsoft IIS, Lotus Domino und dem frei verfügbaren Apache-Web-Server genutzt werden. Für fortgeschrittene Funktionen bietet IBM verschiedene selbstentwickelte Produkte, wie "Web Traffic Express", das die Zwischenspeicherung von Anfragen übernimmt, oder "E-Network Dispatch" für den Lastenausgleich zwischen Servern. Aber auch zugekaufte Lösungen wie das "Andrew File System" für die Replikation von Änderungen in Echtzeit kommen zum Einsatz.

Mit ihrem neuen Produkt "Bolero" wagt sich auch die Darmstädter Software AG an den im Grunde überfälligen Brückenschlag zwischen den beiden Lagern Browser-Orientierung und Web-Anwendungs-Server. Bolero schirmt den Entwickler von der Java-Codierung ab, erzeugt aber selbst Java-Bytecode. Die Entwicklungsumgebung "Component Studio" ist ganz auf die Unterstützung der Entwickler ausgelegt, so daß sich deren Tätigkeit auf die Auswahl der gewünschten Eigenschaften der Komponenten und die Wahl geeigneter Benennungen beschränkt. Damit lassen sich Bolero-Klassen per Mausklick in Active X oder Javabeans verwandeln. Bei keinem anderen Entwicklungswerkzeug wird derart viel Code durch das Programm selbst erzeugt. Konzepte wie Long Transactions, Programming by Contract, parametrisierte Klassen oder vorgefertigte Schablonen (Design Patterns) vereinfachen dies zusätzlich. Die Abwicklung von Datenbankzugriffen sowie die Kommunikation mit anderen Komponenten, ob Server- oder Client-seitig, übernimmt der Bolero Application Server. Mit Bolero erstellte Anwendungen bestehen aus Server-Komponenten sowie einem HTML- oder Java-Front-end, das über HTTP, RMI oder DCOM mit den Server-Komponenten kommuniziert. Auch eine Integration mit Corba-Brokern ist möglich.

Web-Applikations-Server

Unter dem Begriff Web-Applikations-Server werden sämtliche Softwareprodukte zusammengefaßt, mit denen sich über Web-Browser nutzbare Anwendungen erstellen lassen. In den Web-Browsern werden dabei entweder HTML- und Javascript-Seiten dargestellt oder Java-Applets beziehungsweise Active-X-Ob- jekte. Auf der Server-Seite kommen aufbauend auf Standard-Web-Servern sogenannte Serverside-Scripte, Java-Programme, Java-Servlets, Enterprise-Javabeans- oder Active-X-Objekte zum Einsatz. Für die Integration mit Datenbanken bieten die Web-Applikations-Server typischerweise diverse Schnittstellen.

*Michael Wagner ist Berater und Publizist in München.