![]() |
|
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