Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

22.01.1999 - 

Erste Eindrücke von SAGs neuer Entwicklungsumgebung

Erste Eindrücke von SAGs neuer Entwicklungsumgebung Bolero soll Maßstäbe im Bereich der Web-Application-Server setzen

Bei der Entwicklung geschäftskritischer Applikationen auf Basis von Internet-Techniken sollte der Anteil manueller Programmierung möglichst gering sein. Die Darmstädter Software AG (SAG) geht hier mit "Bolero" neue Wege. Michael Wagner ist der Meinung, daß sich die Entwicklungsumgebung trotz einiger Kinderkrankheiten vom Großteil der angebotenen Web-Application- Server positiv abhebt.

Von der Überlegung ausgehend, daß die Integration vorhandener Systeme heute den Normalfall und die Neuentwicklung eher die Ausnahme darstellt, setzt SAGs Bolero im Vergleich zu Konkurrenzprodukten andere Schwerpunkte. Da sich nach Einschätzung des Darmstädter Softwarehauses 50 bis 70 Prozent des Codes einer Anwendung mit Datenbankzugriffen beschäftigen, ist zum Beispiel die Datenbankkopplung deutlich vereinfacht worden.

Bolero besteht im wesentlichen aus dem "Component Studio", einer Anwendungs-Entwicklungsumgebung, einem Compiler und dem Application Server, der die Server-seitigen Anwendungen unterstützt. Das System benutzt eine eigene Sprache, die Java ähnelt, es aber um wesentliche Eigenschaften erweitert und zwecks Plattformunabhängigkeit in den Bytecode der Java Virtual Machine übersetzt. Die Sprache Bolero unterstützt die gleichen Grundkonzepte wie Java, nutzt aber eine andere, deutlich deskriptivere Syntax.

Eigenständige, an Java angelehnte Sprache

Zu den wichtigsten Erweiterungen der Sprache zählen die Vererbung von Basistypen, ein begrenztes Operator Overloading, parametrisierte Klassen, Programming by Contract und eine bereits auf der Sprachebene mögliche Transaktionsorientierung. Bolero wurde als eigenständige Sprache entwickelt und nicht als Preprozessor für Java, um die Nachteile eines mehrstufigen Entwicklungsprozesses zu vermeiden. Da sich Bolero eng an Java anlehnt, lohnt sich laut SAG der Schulungsaufwand in jedem Fall, wenn es um die Entwicklung großer Anwendungen geht.

Das Component Studio setzt sich aus dem obligatorischen GUI- Builder und einer integrierten Oberfläche zur Verwaltung von Projekten, Paketen, Klassen und Methoden zusammen. Schwerpunkt der Entwicklung ist die Auswahl der Eigenschaften von Klassen und Methoden, erst in zweiter Linie erfolgt die Programmierung. Das Werkzeug basiert auf einem Repository, das die Projektstruktur, die Gliederung in Pakete sowie die Eigenschaften und Abhängigkeiten der einzelnen Komponenten speichert. Das Component Studio ermöglicht die Kombination von Javabeans und Active-X- Komponenten mit Bolero-Klassen und generiert auf Knopfdruck die notwendigen Schnittstellen.

Verwaltung langer Transaktionen

Der Application Server unterstützt die im Component Studio konfigurierte Funktionalität der Bolero-Klassen. Er ermöglicht außerdem die Integration der Datenbanken und die Kommunikation mit anderer Software via TCP/IP, Java RMI (Remote Method Invocation) oder DCOM (Distributed Component Object Model). Sämtliche Datenbankoperationen wie Transaktions-Management, die Persistenz von Objekten, die Verteilung von Komponenten und als Besonderheit die Verwaltung langer Transaktionen werden vom Application Server erledigt.

Das Component Studio stellt mit 1,2 Millionen Codezeilen die derzeit größte Java-2.0-Anwendung dar, eine Tatsache, die selbst Sun Microsystems erstaunte. Der Application Server ist, wie auch die von Bolero erzeugten An- wendungen, aufgrund der in Java 1.1.6 installierten Basis aufwärtskompatibel zu Java 2.0. Da die Software AG das Produkt bereits vor der Veröffentlichung von Java 2.0 herausbringen wollte, zwang Sun die Darmstädter zu einem kontrollierten Release. Die von Bolero erzeugten Anwendungen setzen sich aus Java-Klassen zusammen, die in Web-Browsern dargestellt werden und über TCP/IP, RMI oder DCOM mit korrespondierenden Komponenten auf dem Application Server kommunizieren. Die Server-Komponenten ihrerseits greifen über den Application Server auf Datenbanken zu. Die Verteilung der Komponenten auf die Browser erfolgt über einen Standard-Web- Server, unter dem der Bolero-Server seine Arbeit verrichtet.

Alternativ können Bolero-Anwendungen am Front-end auf Basis der Hypertext Markup Language (HTML) ablaufen, die über standardisierte Servlets des Application Server generiert werden. Bestehende HTML-Seiten lassen sich in Bolero importieren und dann zur Erzeugung dynamischer Seiten verwenden. Zudem kann man Javascript und Visual Basic als Ergänzung zu den Bolero- Komponenten nutzen, wobei die Integration über Java- beziehungsweise COM-Schnittstellen erfolgt.

Die Integration von Bolero mit Java ist wechselseitig. Bolero kann Java-Objekte erzeugen, von Java-Klassen erben, Java-Methoden aufrufen und auf Variablen der Java-Objekte zugreifen. Umgekehrt können analoge Operationen auf Bolero-Klassen angestoßen werden. Die Integration von Java in Bolero wird durch die sogenannten Klassenadapter vereinfacht, die eine konsistente Umbenennung von Java-Klassen im Fall von Namenskonflikten ermöglichen.

Neben der Unterstützung für kommerzielle Anwendungen durch entsprechende Datentypen und die Verwendung von Uni- code für die Internationalisierung bietet Bolero auch einige fortgeschrittene Eigenschaften, die sich in dieser Form in keinem vergleichbaren Produkt wiederfinden. Dazu zählen lange Transaktionen, die "Programming-by-Contract"-Technik und die Anwendung von Entwicklungsmustern (Patterns).

Mit langen Transaktionen sind Verfahren gemeint, die über simple Datenbanktransaktionen hinausreichen und die Abbildung ganzer Geschäftsprozesse erlauben. Anhand der vom Entwickler definierten Zustände können über Restart-, Recovery- und Undo-Operationen langdauernde Vorgänge wie die Auftragsabwicklung von der ersten Anfrage bis zum letzten Zahlungseingang abgebildet werden. Die einzelnen Zustandsübergänge werden durch Ereignisse ausgelöst und führen zu normalen Datenbanktransaktionen, die ihrerseits zu einem späteren Zeitpunkt durch Undo-Operationen auch wieder semantisch rückgängig gemacht werden können.

Programming by Contract stellt eine aus dem Software-Engineering bekannte Entwurfsunterstützung dar. Sie überprüft die bei einem Methodenaufruf übergebenen Parameter und die Ergebnisrückgabe auf Korrektheit. Bolero bietet als eines von sehr wenigen Entwicklungswerkzeugen diese Option, die sich aus Performance- Gründen auch abschalten läßt, bereits auf der Sprachebene. Dadurch wird der Aufwand für das Aufspüren von Laufzeitfehlern deutlich reduziert.

Patterns, sogenannte Entwurfsmuster, repräsentieren die für bestimmte Anwendungsfälle gewonnenen Entwicklungserfahrungen. Die bislang nur als theoretische Beschreibung verwendbaren Patterns werden in Bolero mit Hilfe von Beispielen konkretisiert. Die Nutzung erfolgt durch Kopieren und konsistentes Umbenennen der entsprechenden Klassen und Methoden. Über die Pattern- Unterstützung kommen Features, mit denen sich ganze Gruppen von Klassen leicht für den jeweiligen Anwendungsfall adaptieren lassen.

Wie jedes Softwareprodukt in der ersten Version hat auch Bolero mit Einschränkungen und Kinderkrankheiten zu kämpfen. So fehlt schmerzlicherweise ein leistungsfähiger Debugger, und der Pattern- Mechanismus ist recht gewöhnungsbedürftig. Auch die Unterstützung für Entwicklungsteams läßt zu wünschen übrig. Positiv fällt allerdings die hohe Performance der Servlets auf, die nahezu ohne Verzögerung auf Anfragen reagieren. Erstaunlich auch die Schnelligkeit und Stabi- lität der Entwicklungsumge- bung, die den Stand des zur Zeit in Java Machbaren repräsentieren dürfte.

Neben der Verbesserung der genannten Schwachstellen plant SAG eine Unterstützung des Corba-Standards, so daß hier ebenfalls alle relevanten Schnittstellen auf Knopfdruck generiert werden. Als weiteres ist ein Server-basierter Report Writer in der Entwicklung, der die Auswertung von Datenbanken ermöglicht und die bei großen Anwendungen anfallende Fülle von Ausdrucken bewältigt. Eine Öffnung des Repositorys für Drittanbieter ist ebenso geplant wie eine weiterreichende Unterstützung von Entwicklerteams.

Produktstrategie

Nach den Worten von SAG-Vorstandssprecher Erwin Königs war eine echte Integration von neuen Web-Anwendungen und bestehenden unternehmenskritischen Lösungen bislang nur in Ansätzen möglich. Um transaktionsorientierte Anwendungen für das Web zu konzipieren, bedürfe es neuer Werkzeuge wie Bolero.

Von dem Produkt verspricht sich die SAG ein hohes Wachstumspoten- tial in den neuen, stark expandierenden Märkten. Schwerpunkt des gerade erst anlaufenden Marketings ist allerdings nach wie vor die Server-Integration. Die Anbindung an Datenbanken erfolgt auf der Basis existierender Standards.

Die Unabhängigkeit von den bisherigen SAG-Zugpferden "Adabas" und "Natural" zeigt sich besonders deutlich in der Tatsache, daß es keine entsprechenden Migrationswerkzeuge für Bolero gibt. Wohl aber ist eine Integration von Adabas- und Natural-Anwendungen über die hauseigene Middleware "Entire X" mit Bolero möglich.

Michael Wagner arbeitet als Berater und Fachautor in München.