Der nachfolgende Artikel von Dr. Gernot Starke erschien im Konferenzband der ONLINE '97 und in der Kundenzeitschrift der Schumann AG.
 

Objekte werden Realität

Int*net als Integrationsplattform

Der Artikel erläutert Anwendungsarchitekturen, die bewährte Internet-Technologien mit verteilter Objekttechnologie verbinden. Auf diese Weise entstandene Lösungen zeichnen sich durch Einbindung existierender Client/Server und Host-Systeme und einen hohen Integrationsgrad aus. Beispiele aktueller Projektsituationen belegen dabei die praktische Einsatzfähigkeit solcher Systeme.

Bedeutung des Int*net 
Die Int*nets, namentlich Internet und Intranet, gehören zu den am häufigsten genannten Fachbegriffen der letzten Monate. Für beide existieren grundsätzlich zwei verschiedene Nutzungstypen: Neben der reinen Informationsdarstellung bietet sich Int*net als Basis für interaktive Anwendungen an. Die kommerzielle Attraktivität des Mediums ergibt sich insbesondere daraus, daß auch bereits existierende Systeme mit überschaubarem Aufwand in diese neue Welt migrieren können. Aus dieser Sichtweise erklärt sich der Begriff der Integrationsplattform: Internet-Technologie ermöglicht Integration existierender, auf heterogenen Plattformen basierender Anwendungssysteme.

Notwendigkeit der Integration
Existierende und neu zu schaffende DV-Systeme können und dürfen heute aus vielen Gründen nicht mehr als Insellösungen betrieben werden: Flexible Geschäftsabläufe bedürfen ebenso der Unterstützung durch die Informationsverarbeitung. Für sich daraus ergebenden komplexen informationstechnischen Fragestellungen können nur extrem flexible Systeme passende Antworten liefern. Existierende Applikationen bilden dabei die fachliche Basis, um die herum neu zu schaffende Systeme entstehen können.

Integrationsplattform DB-Gateway 
Für Int*nets existiert mit den Datenbank-Gateways eine konzeptionell einfache Integrationsmöglichkeit. Sie ermöglichen auf simple Weise den Browser-gestüzten Zugriff auf vorhandene Informationsresourcen. Neben standardisiertem Datenzugriff über das Common Gateway Interface (CGI) beziehungsweise JDBC existieren mittlerweile eine Reihe proprietärer Produkte, die aus dem Int*net den direkten Zugriff auf SQL-Datenbanken erlauben. Nachfolgende Abbildung gibt einen schematischen Überblick.


Abbildung 1: Datenbank-Gateway 

Nachteilig an dieser Vorgehensweise erweist sich der Umstand, daß üblicherweise das Betriebssystem des Servers für jeden Aufruf der Datenbankschnittstelle einen eigenständigen Prozeß startet. Bei vielen parallelen Benutzern kommt es hier schnell zu Performanceproblemen. Weiterhin handelt es sich auf der Client-Seite um eine rein statische Darstellung von Informationen, der jegliche Interaktivität fehlt. Hier kommt nun ein weiterer möglicher Integrationsfaktor ins Spiel, nämlich Java.

Integrationsplattform Java
Die im Zusammenhang mit dem Internet vieldiskutierte Programmiersprache reichert die bis dato statischen Inhalte von Int*nets um dynamische Ausführung von Code an (executable content principle). Auf der Client-Seite von Int*nets können damit vollwertige Applikationen ablaufen. Java bietet neben einer starken Ausrichtung auf die Objektorientierung auch noch den Vorteil einer kompakten und leicht erlernbaren Sprache.

Mehrwert gegenüber Smalltalk und C++ 
Der Papierform zufolge stellen Portabilität und plattformübergreifende Verfügbarkeit auch für Smalltalk und C++ keine wesentlichen Probleme dar. In praxi jedoch existieren kaum wirklich portable und heterogen verfügbare Anwendungssysteme für diese Sprachen. Pflege von Programmen auf mehreren Betriebssystemen, insbesondere für mehrere GUI-Plattformen ist heutzutage immens aufwendig und teuer. Erfahrungen im Java-Umfeld deuten hier in andere Richtungen: Sieht man von ?Kinderkrankheiten? ab, so stellt die Java-Standardbibliothek ?AWT? (Abstract Window Toolkit) die Portabilität zwischen unterschiedlichen Grafik-Plattformen in hohem Maße sicher. Von C++ hebt sich Java durch einen entscheidenden Faktor positiv ab: Das Design von Java schließt bereits im Vorfeld ganze Klassen potentieller Programmierfehler aus. Programme in C++ arbeiten häufig mit Zeigervariablen und sind nur in Ausnahmefällen wirklich objektorientiert aufgebaut. Meist handelt es sich um Systeme, die eine bunte Mischung funktionaler und objektorientierter Elemente enthalten. Von der angeblichen Wartbarkeit solcher Hybridsysteme können erfahrene C++ Programmierer ein Lied singen. Sprachkonstrukte wie ?#define private public? strafen häre Konzepte der Softwaretechnik Lügen. Inline-Expansion sowie Heerscharen von Header-Dateien verwirren auch die fähigsten Softwareentwickler. Java hingegen zeichnet sich durch das Motto ?Weniger ist mehr? aus.

Kritische Erfolgsfaktoren
Für den übergreifenden Erfolg von Java existieren mehrere kritische Erfolgsfaktoren:
· Sicherheit
· Entwicklungsplattformen
· Marktakzeptanz
· Connectivity

Sicherheit 
Im Hinblick auf Sicherheit gilt es für Java-Applets aus dem Internet, die Authentisierungsfrage zu klären: Nur durch ausgefeilte kryptographische Verfahren gelingt es, einem Endanwender im Internet die Herkunft eines Java-Programms zu beweisen. Die im Bereich der Verschlüsselungsverfahren geltenden gesetzlichen Bestimmungen erschweren für Anwender und Entwickler von Java gleichermaßen den Überblick. Die Gemeinde der Java-Anbieter hat auch unter diesen harten Exportrestriktionen der USA zu beweisen, daß sichere Authentisierung von Java-Applets funktioniert. Die neuen Versionen der Java Security API?s und andere Produkte lassen hier hoffen. Letztlich entscheidet an dieser Stelle die Akzeptanz der Anwender. Erste kommerzielle Programme, beispielsweise im Bereich des Internet-Homebanking, belegen das Vertrauen, das selbst namhafte Banken der Sicherheit von Java-Technologie entgegenbringen.

Entwicklungsplattformen
Lange Zeit erschien die Frage nach produktiven Entwicklungsumgebungen für Java als die Gretchenfrage. Durch die Ähnlichkeit zu C++ schufen eine Reihe namhafter Hersteller sehr schnell Java-Versionen ihrer jeweiligen C++ Entwicklungswerkzeuge. Mit Stand Dezember 1996 konkurrieren eine ganze Reihe Werkzeuge um die Gunst der Java-Entwickler. Neben dem komplett in Java geschriebenen ?Java Workshop? der Firma Sun überzeugen ?Visual J++? von Microsoft, ?Latte? von Borland sowie ?Cafe? von Symantec durch gelungene Tools. Gerade in heterogenen Umgebungen überzeugt die Fähigkeit des Java-Workshop, (fast) unabhängig vom Betriebssystem und Hardwareplattform gleichermaßen zu funktionieren. Mittlerweile liegen auch eine Reihe kommerzieller Klassenbiblotheken in Java vor , so daß Entwickler auch (objektorientierte) Räder nicht neu erfinden müssen.

Marktakzeptanz 
Technisch gute Konzepte können nur durch die Akzeptanz einer großen Zahl von Anwendern zu industrieller Realität reifen. Bei den relationalen Datenbanken dauerte dieser Prozeß mehr als eine Dekade. Java erblickte Anfang 1995 das Licht der Welt, von daher scheint es etwas verfrüht, zum heutigen Zeitpunkt auf den Durchbruch schließen (oder hoffen) zu wollen. Ein Trend zumindest läßt sich eindeutig feststellen: Eine Reihe namhafter Unternehmen, wie beispielsweise Sun Microsystems, IBM, Hewlett-Packard, Oracle, Novell, Netscape und Microsoft beteiligen sich sehr intensiv an der Java-Euphorie und entwickeln entsprechende Produkte im Umfeld der Int*nets. Die bislang vorliegenden Erfahrungen aus Java-Projekten reichen dennoch für viele Entscheider nicht aus, um in großem Maße auf den Java-Zug zu springen. Der Kreis der zahlreichen Mainframe-Anwender erwartet mit Spannung die Vorstellung der diversen angekündigten Netz-Computer (u.a. von Sun, Oracle und IBM). Diese Geräte könnten für Java das entscheidende Sprungbrett zum Erfolg bilden: Java-basierte Netzcomputer, die in großen Stückzahlen gleichermaßen alte 3270-Terminals wie Fat-Client-PC?s ablösen, können im Umfeld der großen DV-Anwender mittelfristig zu immensen Kostenvorteilen führen.

Connectivity 
In mittleren und großen Unternehmen stellen DV-Projekte heute immense Anforderungen an die Connectivity eingesetzter Produkte. Neben Netzwerken und unterschiedlichen Betriebssystemen gehören insbesondere Datenbanksysteme sowie vorhandene Altapplikationen zu den Integrationszielen. · Netzwerk-Connectivity bietet Java bereits in seinen Standardbibliotheken. Aber Vorsicht: hier wird von der grundsätzlichen Verfügbarkeit von TCP/IP-Stacks ausgegangen. Im Falle von beispielsweise SNA-Netzen müssen Anwendungsprogramme unter Umständen zwischen diesen Protokollen übersetzen. Auf dem Markt existieren eine Reihe von Produkten (beispielsweise das Multi-Protocol Programming Interface (MPPI) der Schumann AG), die diese Konvertierungen leisten. · Die Verträglichkeit von Java mit kommerziellen Datenbanksystemen beschreibt die Java Database Connectivity (JDBC) -Schnittstelle. Sie definiert eine Zugriffsschicht basierend auf den weit verbreiteten ODBC-Treibern. · Vorhandene Applikationen, zumindest C oder C++-Bibliotheken, lassen sich aus Java heraus aufrufen. Damit jedoch verliert eine solche hybridsprachliche Applikation jenen Charme, der Java-Programme an sich kennzeichnet: die Unabhängigkeit von Hard- und Softwareplattformen. Für den Einsatz von Java auf der Server-Seite spielt diese eingebaute Portabilität allerdings nur eine untergeordnete Rolle.


Abbildung 2: Corba-Architektur

Integrationsplattform Corba
Die Object Management Group (OMG) definiert mit dem Common Object Request Broker Architecture (Corba)-Standard eine höchst leistungsfähige Integrationsplattform. In Kurzform: Die in diesem Standard beschriebenen sogenannten Object Request Broker (ORBs) erlauben die flexible Kommunikation von Objekten auf völlig beliebigen DV-Architekturen und beliebigen Netzen. Auf abstrakter Ebene vermittelt Corba allgemeine Dienstleistungen. Damit dient es als Basis für flexible Client/Server-Strukturen: Clients fordern per ORB Services an. Egal ob über LAN, WAN oder das Internet, die ORBs vermitteln techniktransparent. Dabei spielt es keinerlei Rolle, in welcher Sprache oder auf welchem Betriebssystem die jeweiligen Objekte implementiert sind.
Willkommener Effekt dieser starken Entkopplung von Client und Servern: Die Vision von Componentware rückt in greifbare Nähe. Programmteile können als eigenständige Services implementiert und quasi beliebig ersetzt oder im Netz verschoben werden, ohne daß die Tücken der Softwareverteilung, der Anpassung von Clients und andere Damoklesschwerter drohen. Insbesondere Anwendern mit umfangreichen Beständen an gewachsenen DV-Systemen sollten hier unbedingt die Ohren klingen: Corba ermöglicht sanfte Migration in neue Welten, sowohl auf Client- als auch auf Server-Seite.

Corba als Migrationsstrategie
Wiederverwendung existierender Software stellt bei Corba einen interessanten Aspekt dar. Unter dem Oberbegriff der Investitionssicherung können beispielsweise Mainframe-ständige Systeme in neue Welten migrieren, ohne daß auf Client-Seite hohe Neuinvestitionen erforderlich werden.


Abbildung 3: Corba als Migrationsstrategie

Im Zuge der Einführung von Windows-NT als Client-Plattform konzipieren mittlerweile eine Reihe mittlerer und großer Unternehmen solche Architekturen. In praxi bietet hier ein prototypisches Vorgehen viele Vorteile.

Kosteneffizienz, Flexibilität und Skalierbarkeit
Als Folgerungen aus den Konzepten von Corba ergeben sich eine Reihe von Vorteilen für Client/Server-Architekturen. In Abbildung 4 lassen sich die verteilten Applikations-Server beliebig skalieren oder sogar verschieben: Da die Kommunikation grundsätzlich über den ORB abgewickelt wird, spielt das für den Client keine Rolle. Dieser hohe Grad an Flexiblität und Skalierbarkeit spielt in industriellen Umfeldern eine immer größer werdende Rolle. Die eingangs erwähnte Unabhängigkeit von Betriebssystemen und Programmiersprachen ermöglicht einerseits hohe Portabilität, andererseits verringert sie auch die Abhängigkeit von einzelnen Herstellern. Letzlich zeigen Kosten-/Nutzenanalysen auf, daß durch den hohen Grad an Wiederverwendbarkeit durch die Corba-Technologie langfristig auch erhebliche finanzielle Vorteile entstehen. Objektorientierte Anwendungsentwicklung erweist sich mittel- und langfristig als erheblich kosteneffizienter als andere Techniken.
 

Technologie als Chance
Ein erhebliches Problem bei der Einführung verteilter Objekttechnologie in Unternehmen stellt die technische Kompetenz dar. Gewöhnlich genügt es nicht, mit Objektorientierung vertraute Programmierer und Anwender an einen Tisch zu bringen. Vielmehr sind aus mehreren Bereichen der Datenverarbeitung Spezialisten gefragt: Objektorientierung, Corba und Connectivity bilden die wesentlichen Elemente. Seit 1995 haben sich weltweit knapp 10 Kompetenzzentren für verteilte Objekttechnologie etabliert. Die Aufgabe dieser Object Reality Center (ORCs) ist es, verteilte Objekttechnologie auf der Basis von Client/Server-Architekturen gemeinsam mit Anwendern in Firmen einzuführen. Typische Projekte dieser ORCs erstellen Prototypen, um den Erfolg und die Akzeptanz möglichst schon in frühen Projektphasen zu sichern. Im deutschsprachigen Raum betreibt die Schumann Unternehmensberatung AG dieses Object Reality Center gemeinsam mit Sun Microsystems.

Ausblick
Leider wird heute noch bei vielen Int*net-Projekten der Integrationsaspekt außer Acht gelassen. Die Möglichkeiten dieses jungen, aber dennoch technologisch ausgereiften und stabilen Mediums bleiben dadurch in erheblichem Maße ungenutzt. Diese Chance zu nutzen, stellt eine interessante und vielversprechende Herausforderung dar. Gerade die stetig fortschreitende Standardisierung im Bereich Corba, der anhaltende Erfolgszug der Int*net-Technologien (wie beispielsweise Java) sowie die breite Akzeptanz der Objektorientierung werden schon in naher Zukunft Kostenvorteile auf breiter Front an die Anwender weitergeben.

Köln, Februar 1997