3/97

Anwendungen modular zusammenbauen:

Trend zu Komponentensoftware

Achim Scharf

Die Ära der monolithischen Softwarepakete scheint sich dem Ende zu nähern. Der Trend geht zu Standardanwendungen, die aus Objekten bzw. Komponenten modular zusammengesetzt werden. Auch Web-Anwendungen basieren verstärkt auf solchen Software-Komponenten.

"Die objektorientierte Softwareentwicklung und objektorientierte Systeme i.a. haben für den Anwender eine Reihe von signifikanten Vorteilen, und wir wollen hier eine führende Rolle nicht nur auf der Basis von Betriebssystemen, sondern auch bei Anwendungen einnehmen", stellt John Slitz, zuständig für objektorientierte Software der IBM fest. Ziel von IBM ist es u.a., Anwendungen visuell aus "vorgefertigten" Softwarekomponenten zusammenzusetzen. Solche Komponenten müssen nicht unbedingt in einer objektorientierten Sprache wie C++ oder Smalltalk kodiert sein, sondern können durchaus auch Cobol- oder C-Code enthalten.

Konkurrierende Ansätze

Dieser Ansatz zur Komponenten-Software erfordert jedoch ein Objektmodell zum dynamischen Binden oder Aufrufen von Komponenten. Zwei Lager stehen sich auf diesem Feld gegenüber, einerseits die Object Management Group (OMG) als Interessensgemeinschaft von mehr als 500 Firmen, andererseits Microsoft mit Verbündeten wie der deutschen Software AG.

SOM (System Object Model) der IBM basiert auf dem Corba-Standard (Common Object Request Broker Architecture) der Object Management Group (OMG). Ziel der OMG ist die Entwicklung einer objektorientierten Architektur für verteilte Anwendungen in einer vernetzten heterogenen Umgebung. Auf der SOM-Implementierung basiert Open Doc, ein Konzept für die Erstellung komponentenbasierter Software und zusammengesetzter Dokumente (compound documents).

Das "Component Object Model (COM)" ist der Kern der OLE-Technik. Dieser standardisierte Mechanismus läßt Objekte zusammenarbeiten, die von verschiedenen Herstellern und in unterschiedlichen Programmiersprachen erstellt worden sind. Die "OLE-Automation" ermöglicht es einer Anwendung, dynamisch die Dienste einer anderen Anwendung zu nutzen, ohne daß diese speziell dafür eingerichtet worden wäre. Fertige Objekte müssen aber auch systematisch gespeichert werden. "Structured Storage" ist dazu ein hierarchisches Verfahren, das als Dateisystem innerhalb einer Datei angesehen werden kann. Mit Structured Storage können verschiedene Komponenten ihre Daten koordiniert in ein und dieselbe Datei schreiben. Für den Austausch strukturierter Datenobjekte bietet sich der "Uniform Data Transfer" als einheitliches Verfahren an. Es ist vergleichbar mit einer Verallgemeinerung des Clipboard-Konzeptes in Windows.

Mit der Component Software Technologie in OLE lassen sich einzelne Anwendungen wie Bausteine behandeln, die miteinander Daten austauschen. Diese Bausteine können dann zu neuen Applikationen kombiniert werden. OLE ist eine objektbasierte Architektur für die Integration von Programmkomponenten. Anfangs begrenzt auf die Übernahme von Daten, wird das Konzept nun auf die Erzeugung von Softwarekomponenten erweitert. Laut Klaus Kreplin, Leiter der Datenbankentwicklung bei der SAG, habe Corba trotz der Standardisierung mit vielen Implementierungsvarianten zu kämpfen, die einer echten Interoperabilität im Wege stünden. Man habe sich daher für das Konkurrenzprodukt OLE entschieden und werde dieses auf alle wesentlichen Unix-Plattformen sowie auf das Mainframe-Betriebssystem MVS portieren.

Neben der reinen Portierung will die Software AG OLE in die hauseigene Middleware integrieren, andererseits wird die Entwicklungsumgebung Natural diese Technologie unterstützen. Damit ließen sich zugekaufte oder eigenentwickelte Software-Komponenten (Business Objects) in Anwendungen einbinden und in der "OLE-Welt" verteilen. Die SAG selber will aus ihren vertikalen Anwendungen selber Software-Komponenten, beispielsweise für Bankanwendungen, entwickeln und auf dem sich schnell verbreiternden Markt anbieten.

Nach einer Definition der Component Integration Labs (CI Labs) ist Open Doc ein neues Modell in der Computerindustrie mit dem Ziel, die Anwenderschnittstellen und die Verwaltung von Informationen zu verbessern. Open Doc soll die Komplexität heutiger Anwendungspakete durch auswechselbare Softwarekomponenten unterschiedlicher Hersteller reduzieren. Komponentenbasierte Software setzt auf seiten des Clients weniger Systemressourcen voraus, während andererseits die Anwendungen erheblich übersichtlicher und wartbarer werden.

Die Softwarekomponenten können auch verteilt sein, die Infrastruktur ist unwesentlich und kann sich aus heterogenen Netzwerken unterschiedlichster Art einschließlich Internet und Intranets zusammensetzen.

Anwendungen lassen sich durch "Drag and Drop" von unterschiedlichen funktionalen Komponenten in einer Shell zusammenbauen, indem Verbindungen zwischen diesen Komponenten und eventuell ein Skript zur Steuerung der Kommunikation zwischen den Komponenten aufgebaut wird. Ein solches Skript könnte von einem Anwendungsspezialisten explizit geschrieben oder durch Aktionen des Anwenders in einem typischen Szenario automatisch generiert werden.

Denkbar ist, daß eine neue Komponente für einen völlig neuen Datentyp in eine Applikation geladen wird und auf diesem Wege integraler Teil dieser Anwendung wird. Open Doc ist derzeit für AIX, MacOS, OS/2 und Windows verfügbar und wurde im April von der Object Management Group (OMG) zum "Document Component Facility Standard" erklärt, dem Standard für gemeinsam nutz- und anpaßbare Verbunddokumente (Compound Documents). Open Doc ist auch das Bindeglied der neuen Komponenten-Architektur "Arabica" für Java-Applets und Applikationen. Während Java-Softwaremodule auf jeder Plattform lad- und ausführbar sind, sichert Open Doc das Zusammenspiel der Parts. Arabica ermöglicht damit den Einsatz von Java auch in kritischen Geschäftsanwendungen sowie den Zugriff auf Internet-Anwendungen durch die Transaktionssysteme und Datenbanken.

Neue Formen der Anwendungsentwicklung

Mit dem neuen Ansatz der komponentenbasierten Softwareentwicklung verschieben sich auch die Aufgabenschwerpunkte auf Komponenten-Entwickler, Applikations-Assemblierer und Endanwender bzw. Adaptierer an die Endanwendung.

Komponenten-Entwickler sind zuständig für die Entwicklung der fundamentalen Komponenten oder Parts für Text, Image oder Datenbankzugriff. Der Entwicklungsaufwand entspricht dem für die Kernfunktionen heutiger monolithischer Anwendungen, jedoch beschränkt sich die Sicht nur auf die Funktionalität dieser Komponente. Als Programmiersprachen kommen zunächst C und C++ in Betracht, weiterhin müssen solche Entwickler mit den internen und plattformspezifischen Schnittstellen vertraut sein. Beispielsweise sollte ein Part-Entwickler für AIX Programmierkenntnisse der grafischen Bedieneroberfläche sowie übergeordneter Schnittstellen haben, wie beispielsweise der "Open Class Library". Diese Klassenbibliothek ist Bestandteil des C++-Entwicklungssystems Visual Age für AIX und OS/2. Sie bietet eine Abstrahierung von der Benutzerschnittstelle und damit einen hohen Grad an Plattformunabhängigkeit im Sourcecode. Entsprechen die Parts der Open Doc-Spezifikation, so ist auch die Interoperabilität von Komponenten unter- schiedlicher Herkunft gesichert.

Applikations-Assemblierer bauen aus diesen Komponenten Anwendungen zusammen. Programmierkenntnisse sind weniger gefragt, mehr ein Verständnis für die Anwendung und welche Komponenten für deren Realisierung erforderlich sind.

Endanwender oder der Anwenderservice letztlich verpassen dieser Anwendung ein Feintuning. Üblicherweise beschränkt sich diese Aufgabe auf geringfügige Änderungen der Benutzerschnittstelle.

Architektur von Open Doc

Die Architektur von Open Doc setzt sich aus mehreren von CILabs lizensierten Technologien zusammen. Dazu gehören das System Object Model (SOM), Bento, Open Scripting Architecture (OSA) sowie die Interoperability Services (OLEO). SOM ist das zugrundeliegende Objektmodell für alle Open Doc-Klassen einschließlich der Interprozeß-Kommunikation. Bento heißt derSpeichermechanismus für unterschiedliche Datenstrukturen innerhalb einer Datei. Ein Dokument mit Grafik und Text wird typischerweise in einer einzigen Datei gespeichert. OSA erlaubt Komponenten, Dokumenten und Applikationen untereinander ereignisgetriebene, semantische Nachrichten auszutauschen. OLEO schließlich ermöglicht eine Koexistenz und Zusammenarbeit von unterschiedlichen Komponenten-Ansätzen wie Open Doc und OLE. Open Doc selber setzt sich aus rund hundert Klassen zusammen, die zunächst die nachfolgend beschriebenen Services bereitstellen sowie untereinander und mit den entwickelten Parts interagieren.

SOM ist eine programmiersprachen-unabhängige Objektdefinitions- und -Beschreibungssemantik. Basis ist der sogenannte Object Request Broker, zu dessen zentralen Aufgaben die Weiterleitung von Methodenaufrufen, die Rückmeldung von Fehlerzuständen oder Ergebnissen und die Lokalisation entfernter Objekte gehören. Mit CORBA (Common Object Request Broker Architecture) hat die OMG eine konkrete Spezifikation des Object Request Brokers veröffentlicht. SOM basiert auf dieser Spezifikation.

Um die Unabhängigkeit von Programmiersprachen zu gewährleisten, ist IDL (Interface Definition Language) ein Bestandteil der CORBA-Spezifikation. Hierbei handelt es sich um eine Beschreibungssprache, mit der die Schnittstellen ihrer Objekte unabhängig von der Programmiersprache nach außen bekanntgegeben werden. Damit andere Anwendungen diese Objekte aufrufen können, müssen sie über einen IDL-Compiler verfügen, der die IDL-Schnittstelle des aufgerufenen Objekts auf die Implementierungssprache dieser Anwendung abbildet. Ein weiterer Vorteil ist die Vererbung. Basierend auf SOM-Objekten anderer Entwickler lassen sich eigene objektorientierte Softwareentwicklungen realisieren. Entwickler sollten die Grundlagen von SOM und IDL beherrschen sowie mit der entsprechenden Entwicklungsumgebung vertraut sein. SOM gibt es inzwischen für C, C++, Rexx und Cobol. "Die Abstrahierung der Anwendung von der Programmiersprache ist unser Ziel", unterstreicht Swainson.

Die Services auf der Komponentenebene beinhalten einen Satz von Klassen, mit deren Hilfe Parts zusammenarbeiten. Dazu gehören Methoden zur Bereitstellung von Ressourcen, zur Registrierung von Objekten für kooperative Anwendungen sowie Komponenten für eine persistente Speicherung.

Die Speicher-Services auf der Komponentenebene gehören zu den wesentlichen Funktionen und wurden unter der Bezeichnung "Bento" von Apple entwickelt. Bento speichert mehrere inhaltliche Elemente als Objekt, es ist der standardmäßige, aber ersetzbare Speichermechanismus in Open Doc. Die wesentlichen Entitäten mit denen Bento arbeitet, sind Container, Objekte, Values, Properties und Typen.

Ein Container repräsentiert eine Form der (übergangsweisen) Datenspeicherung und kann ein oder mehrere Objekte aufnehmen. Physikalisch gesehen sind Container oft normale Files, können aber auch als Speicherblöcke, Zwischenablage oder Netzwerk-Messages auftreten. Objekte können einfach oder komplex sowie klein oder groß sein, Beispiele wären ein Textteil oder der Inhalt einer Präsentationsfolie. Values bezeichnen den aktuellen Speicherplatz innerhalb eines Containers und hängen von der Speicherkapazität ab. Properties definieren die Rolle eines Value, sie ähneln dem Feldnamen in einem Record. Der Typ eines Value schließlich beschreibt dessen Format und Struktur, beispielsweise die Kompression oder die Byte-Reihenfolge.

Die Interoperabilitäts-Servives lösen das Problem der Zusammenarbeit von Open Doc mit anderen komponentenbasierenden Systemen. Open Linking and Embedding of Objects (OLEO) ermöglicht eine bidirektionale Interoperabilität mit OLE 2.0 von Microsoft. Damit lassen sich Anwendungen erstellen, die sowohl OLE-Objekte als auch Open Doc-Parts beinhalten. Drag/Drop, Cut/Paste sowie das Linken von Daten soll zwischen diesen beiden Komponententypen möglich sein. "OLE von Microsoft als proprietärer Standard ist in Open Doc eingebunden", so John Slitz, zuständig bei IBM für das Marketing der Objekttechnologie. IBM hat Open Doc in die OS/2-Version Warp 4 sowie in AIX eingebunden. Unter der Internetadresse http://www.software.ibm.com/clubopendoc können Entwickler nicht nur Testsoftware herunterladen, sondern auch Ideen und Erfahrungen austauschen.

IBM und Iona arbeiten intensiv an der Interoperabilitat zwischen SOM (IBM) und Orbix (Iona). Orbix ist eine weitergehende CORBA-Implementierung und läuft derzeit auf mehr als 20 Betriebssystemen. "Durch die Zusammenarbeit von IBM und Iona stellen wir sicher, daß ihre neuen komponentenbasierten Applikationen konsistent zusammenarbeiten und den OMG-Standards entsprechen," so John Slitz von IBM. Annrai O'Toole von Iona sieht in der Verbindung zu IBM "einen wichtigen Schritt auf dem Weg zur Realisierung der offenen verteilten Programmierung für den Massenmarkt." Laut Chris Stone, Präsident und CEO der OMG, ist CORBA quasi die Voraussetzung, daß diese verschiedenen Applikationen harmonieren, als wären sie aus einem Guß.

Open Doc dürfte aus dieser Hinsicht in mehrerer Hinsicht profitieren, denn Iona stellte kürzlich eine erste Implementierung des CORBA Event Service vor. Orbix Talk ist eine standardkonforme Implementierung des CORBA Event Service gemäß der CORBA Services Spezifikation der OMG und verbindet die verteilte Objekttechnologie mit nachrichtenbasierter Middleware. Die Erweiterung Talk Store wird darüber hinaus Persistenz- und Playbackfunktionalitäten enthalten. Durch die entkoppelte Interaktion können große komponentenbasierte Anwendungssysteme erstellt werden.

Die asynchrone Kommunikation von Orbix Talk basiert auf dem UDP/IP (User Data Protocol/Internet Protocol) Multicast-Standard. Die Zuverlässigkeit des UDP Multicast wurde durch das Orbix Talk Reliable Multicast Protocol (OTRMP) noch verbessert. Dieses Protokoll gewährleistet, daß Nachrichten in der korrekten Reihenfolge sicher an alle Applikationen weitergeleitet werden. Für die Persistenz spielt Talk Store eine wichtige Rolle. Es stellt sicher, daß Nachrichten von Servern bei Orbix Talk-Clients auch dann ausgeliefert werden, wenn Server oder Client ausfallen.

Neben dieser reinen Softwareentwicklung hat sich in den letzten Monaten ein anderer Trend aufgetan, das Internet und speziell dynamische Web-Seiten. Java und ActiveX heißen die Schlagworte in diesem Umfeld.

Die Sprache des Internet

Die Sprache des World Wide Web für interaktive Anwendungen wird die von Sun im Jahr 1985 entwickelte Programmiersprache Java sein, eine Weiterentwicklung von C++. Java ist objektorientiert und hat drei verschiedene Formen der Vererbung aus den bekannten Sprachen C++, Objective C und Modula übernommen. Von C++ kam das Prinzip der "Interface and Implementation Inheritance" für Einfach-Vererbung; aus Objective C wurde das Konzept für Mehrfach-Vererbung von Schnittstellen übernommen und von Modula das Prinzip des Packaging. Damit lassen sich logisch zusammengehörige Klassen hierarchisch gruppiert ansprechen. Alle Klassen werden von der Basisklasse "Objekt" geerbt. Neben Klassen für "Wrapper" für die Basistypen gibt es Klassen für Animation, Interaktion, Threadbehandlung oder für den File- und Netzwerkzugriff. Weiterhin lassen sich mit Hilfe eines Windowing Toolkit Elemente einer Benutzeroberfläche erzeugen.

Das Konzept von Java sind kleine Programme, sogenannte Applets, die bei Bedarf vom Web-Server zum Web-Browser geschickt und ausgeführt werden. Sicherheit spielt bei Java eine wichtige Rolle, denn der Einsatz in vernetzten Strukturen ist vorrangig. Da Java ohne Pointer auskommt, gibt es keine Laufzeitfehler aufgrund von Speicherschutzverletzungen. Der Zugriff auf ein Applet beispielsweise läßt sich in mehreren Schritten darstellen. Ein Verifyer prüft zeilenweise die Korrektheit des zu ladenden Bytecodes. Eine nachträgliche Änderung des Codes, beispielsweise innerhalb des Netzes, ist laut Sun dadurch nicht möglich. Ein Loader lädt den Bytecode einschließlich aller referenzierten und vererbten Klassen in die virtuelle Java-Maschine. Dabei wird ein eigener Namensraum für lokale (built-in classes) und entfernte (remote) Klassen eingerichtet. Bei der Referenzierung einer Klasse haben lokale Klassen eine Präferenz gegenüber entfernten Klassen. Nur wenn die angesprochene Klasse lokal nicht vorhanden ist, werden über ein Netzwerk geladene Klassen verwendet. Damit ist das "Spoofing" verhindert, wo lokale Klassen durch "bösartige" entfernte Klassen ersetzt werden.

Die Portierung von Anwendungen auf unterschiedliche Plattformen ist mit Java kein Problem mehr, denn nur die sogenannte "Virtual Machine" muß auf der entsprechenden Plattform verfügbar sein. Anwendungen können via Internet oder Intranet sowohl Apple-, Unix- oder Windows-Anwendern zur Verfügung gestellt werden.

Möglich sind auch Client-Server-Anwendungen in Kombination mit einem Nachrichtenmodell wie Corba (Common Object Request Broker Architecture). Mit der Betaversion von JOE 1.0 stellte Sun im August den ersten auf Java basierenden Corba-konformen Object Request Broker vor. Mit JOE lassen sich Java-Browser direkt mit Anwendungen und Daten koppeln, um dann in Intranets oder über das Internet darauf zugreifen zu können. JOE ist eine Ergänzung zu Java. Im Gegensatz zu HTML und CGI-Skripts, die auf Abruf immer neue Seiten generieren, übersenden Java- Applets mit JOE lediglich zu aktualisierende Informationen. Integriert ist ein ORB, ein OMG-konformer IDL-Compiler für Java sowie eine Vorabversion für entfernte Java-Objekt-Kommunikation unter dem Standard Corba ESIOP (Environment Specific Inter-ORB-Protocols). Auch die Kommunikation mit ORBs nach Corba 2.0 IIOP (Internet Inter-ORB-Protocols) wird unterstützt.

Java Beans

Heutige Java-Applets unterstützen nur ein statisches Komponentenmodell. Applets lassen sich zwar auf Webseiten plazieren, sie können aber nicht mit der Webseite oder anderen Applets auf der Seite interagieren. Java Beans werden die Java-Plattform mit dynamischer Interaktion erweitern, indem sich wiederverwendbare Software-Komponenten für vielfältige Kombinationen definieren lassen, aus denen sich neue Anwendungen innerhalb und außerhalb von Browser-Umgebungen zusammenstellen lassen. Zu diesen Umgebungen zählt Sun HotJava, den Navigator von Netscape, Delphi von Borland, den Internet Explorer, Visual Basic und Word von Microsoft oder Claris Works. Solche Komponenten können Elemente einer grafischen Bedienoberfläche, Applets oder ganze Anwendungen sein.

Das Komponentenmodell von Java Beans läßt sich laut Sun in der Form implementieren, daß über Bibiliotheken Brücken zu OLE/COM von Microsoft, Open Doc von CI Labs oder Live Connect von Netscape gebaut werden. Zusätzlich sind Java Beans auf dem Java OS (Betriebssystem auf der Java Station) lauffähig.

Entwickler können mit diesem Gerüst wiederverwendbare Softwarekomponenten komplett in Java erstellen, spezifische oder nicht-portierbare Aufrufe müssen nicht im portablen Java-Code eingebaut werden. Die Services dieser Beans werden ein Teil der Java-Plattform, sie lassen sich auch außerhalb von Containern als dynamisch kommunizierende Applets einsetzen. Die Spezifikation der entsprechenden APIs wurde im Oktober 1996 fertiggestellt. An den Spezifikationen der aktuellen Version von Java Beans waren Baan, Borland, CI Labs, Corel, Informix, IBM, Justsystem, Lotus, Netscape, Novell, Oracle, Park Place Digitalk, Silicon Graphics, SunSoft, Sybase, Symantec und Visual Edge beteiligt.

Apple und IBM wollen zusammen mit Java Soft eine beiderseitige Interoperabilität zwischen Java Beans und Open Doc realisieren. Ein Anwender könnte Java Beans Komponenten, wie einen Button oder einen Datenbank-Viewer in einen Open-Doc-Container einbauen. Durch diese Verbindung würde durch die Betätigung des Buttons eine neue Ansicht der Datenbank als Teil ihres Container-Dokuments auf dem Bildschirm erscheinen. Java Soft arbeitet an der Interoperabilität mit ActiveX-Containern der Windows-Plattform sowie mit Live-Connect-Containern des Netscape Navigators. Eine Beta-Version des "Java Beans Development Kit" mit Test-Container, Klassen, Java-Beans-Code mit verfügbaren Quellen und Dokumentation ist seit Dezember 1996 verfügbar.

Die Interoperabilität zwischen ActiveX/OLE/COM wird als besonders wichtig erachtet. Das entsprechende OCX wird eine Brückenfunktion ausüben, um ein Java Bean als priorisierte Klasse in Visual Basic, Visual C++, Word, Excel und dem Internet Explorer zu handhaben. Dieses OCX wird Events und Properties der Beans in entsprechende COM-Funktionen transformieren und selber als Server für automatische OLE-Aufrufe agieren. Beans sollen zudem auch in Corba-Services integriert werden.

ActiveX

ActiveX heißt Microsofts Überbegriff für Technologien und Tools zur Entwicklung von Internet-Applikationen und -Inhalten. Alle Technologien und Tools basieren auf dem Component Object Model (COM) und/oder des Win32-API.

ActiveX-Controls sind im wesentlichen OLE-Controls. Für das Internet/Intranet gibt es noch einige Interfaces, die in ein OLE-Control implementierbar sind. So ist beispielsweise ein asynchrones Downloaden eines ActiveX-Controls ein wichtiges Merkmal, denn damit kann man Inhalte der "Web-Seite" schon begutachten, während das Control geladen wird. Zusätzlich wurden die Interfaces für ActiveX-Controls von insgesamt 14 auf zwei reduziert. Zwar werden wohl die meisten Interfaces eines OLE-Controls auch weiterhin in einem ActiveX-Control implementiert sein, aber durch diese Definition eines ActiveX-Controls läßt sich die Größe eines bestehenden OLE-Controls von 500 Kilobyte auf einige Kilobyte reduzieren.

ActiveX-Controls sind mit OLE-Controls kompatibel. Sie sind nicht nur speziell für das Internet einsetzbar, sondern lassen sich in jede Applikation einbinden, die mit den Programmiersprachen oder Datenbankprogrammen von Microsoft geschrieben wurden.

Mit dem OBJECT-Tag beispielsweise lassen sich ActiveX-Controls selbst in Webpages einbinden. Einige davon sind bereits im Internet Explorer enthalten und sofort einsatzfähig. Hunderte von weiteren Controls mit den unterschiedlichsten Funktionen sind laut Microsoft weltweit verfügbar. ActiveX-Controls sind allerdings in letzter Zeit in Verruf geraten. Gegenüber Java seien erhebliche Sicherheitsmängel festzustellen, hat beispielsweise der Hamburger Chaos-Computer-Club festgestellt.

ActiveX-Controls sollen laut Microsoft Java-Programme erweitern und eine Reihe von Programmiersprachen wie Borland C++/Delphi, Visual Basic sowie Visual C++ können diese Controls als wiederverwendbare Komponenten nutzen. AktiveX steht laut Microsoft nicht in Konkurrenz zu Java, sondern stellt eine Ergänzung dar.

Für Entwickler gibt es bereits eine Reihe von APIs und Diensten, die Win32 und OLE in Richtung Internet erweitern. Das ActiveX SDK ist eine Sammlung von APIs, welche die Internet-Integration in Applikationen erleichtern. Dazu zählen DocObjects (OLE Documents Interfaces), sie ermöglichen einem Web-Browser Dokumente nicht nur im HTML-Format, sondern in jeglichem Format darzustellen. Die Beschränkung auf HTML für Internet-Dokumente entfällt somit. Hyperlinks elauben im Zusammenspiel mit DocObjects und der URL-Caching API die Navigation durch Dokumente jeglichen Formats zu navigieren, so wie man es von Web-Browsern und HTML-Dateien kennt. Microsoft und Adobe arbeiten gemeinsam an einer speziellen Fontspezifikation für das Internet unter der Bezeichnung OpenType-Fonts. Internet Erweiterungen für Win32 bieten Schnittstellen mittels HTTP-, FTP- und Gopher-Protokollen, um den Zugriff auf das Internet erheblich zu vereinfachen.

Visual J++ ist für Entwickler mit mittlerer als auch hoher Qualifikation gedacht. Java-Anwendungen lassen sich über Visual J++ mit einer Reihe von Komponenten erweitern, die in anderen Programmiersprachen erstellt wurden und die ActiveX-Spezifikationen unterstützen. Das Developer in Visual J++ integriert alle Werkzeuge wie einen Editor, einen Ressourcen Editor und eine Projektverwaltung. Java-Applet-Assistenten helfen bei der Erstellung von Applets, die plattformübergreifend und mit Multithreading-Eigenschaften einsetzbar sind. Per grafischem Debugger lassen sich Applets im Umfeld des Browsers und multiple Applets auf der gleichen Webseite debuggen, ebenso auf der Bytecode-Ebene. Der Quellcode-Compiler erreicht eine Geschwindigkeit von mehr als einer Million Zeilen Code pro Minute.

Für Datenbankabfragen über das Internet gibt es ein neues Tool namens DBWeb. Diese Komponente von DBWeb-Server übernimmt die Verarbeitung zwischen einer ODBC-Datenbank und dem Internet Information Server. Sie führt die Abfragen durch, die ein Anwender mittels eines Browsers an die Datenbank schickt und zeigt dann das Abfrageergebnis in einer Webpage an. Der Administrator ist für die Erstellung von Webseiten zuständig. Mit Hilfe eines Schema-Assistenten lassen sich auch ohne HTML-Kenntnisse Webseiten für die Darstellung der Abfrageergebnisse entwickeln.

Neue Offenheit bei Microsoft

Microsoft hat zum ersten Mal in der Unternehmensgeschichte eine Technologie an ein unabhängiges Gremium übergeben, das nun die Weiterentwicklung von ActiveX sowie der zugehörigen Komponenten wie DCOM steuern soll.

Die neue ActiveX Group gehört zur Open Group, die als Holding über der Open Systems Foundation (OSF) und der X/Open präsidiert. Im Steering Comittee sind außer Adobe Systems auch Computer Associates, Digital Equipment, Hewlett-Packard, Lotus Development, Microsoft, NCR, Sybase, SAP, Siemens-Nixdorf und die Software AG vertreten. Rund tausend ActiveX-Controls sollen auf dem Markt verfügbar sein. Die ActiveX Group wird sich mit der künftigen Entwicklung von Schlüsseltechnologien auf den Gebieten Objektorientierung und Internet befassen.

Dazu gehören das Component Object Model (COM) und Distributed COM, die als Objektmodelle die Basis für alle ActiveX-Komponenten bilden. Als weitere Standards werden Remote Procedure Call einschließlich Interface Definition Language (optimierte Version von Distributed Computing Environment DCE/RPC), Standard Security Provider Interface (Sicherheit mit User-Authentifikation), Structured Storage (betriebssystem-unabhängiges strukturiertes Dateiformat), Registry (Datenbank mit ActiveX-Objekten), Monikers (asynchrone Kommunikation zwischen Objekten) und Automation (Programmierbarkeit von Objekten) unterstützt.

Konfliktpotential

Zwischen Microsoft und Sun gibt es total unterschiedliche Ansichten über die Zukunft des netzwerkorientierten Computings. Microsoft setzt weiterhin auf Windows und die herkömmliche PC-Architektur. Aus Sicht von Microsoft führt Sun die Diskussion ActiveX versus Java, während Microsoft den Schwerpunkt auf PCs versus Sun legt.

Die Sprache Java wurde von Microsoft lizensiert und Visual J++ soll das beste Entwicklungstool überhaupt sein. Der plattformneutrale Bytecode über die virtuelle Java-Maschine sei ebenfalls hervorragend, denn Anwender von Visual J++ hätten damit plattformneutrale Entwicklungstools und Laufzeitsysteme. Doch seien damit auch Kompromisse verbunden, beispielsweise nur vier Fonts, keine rechte Maustaste, kein Sound, kein Ausdruck und kein DirectX. Letztendlich gebe es keine Möglichkeit, wettbewerbsfähige Anwendungen für den Macintosh, Windows oder sogar Solaris zu entwickeln.

ActiveX ist nach Microsofts Verständnis ein Satz von Technologien, die Software-Komponenten jedweder Programmiersprache einschließlich Java in einer Netzwerkumgebung integrieren. Content-Entwickler könnten damit interaktive Webseiten wesentlich einfacher gestalten, indem sie auf wiederverwendbare Komponenten zurückgreifen anstatt immer wieder bei Null beginnen zu müssen.

Diese Unterstützung bezieht sich allerdings auf die Implementierung der virtuellen Java-Maschine, die von Microsoft für Unix, Macintosh und natürlich Windows vorgenommen wurde. Derzeit sieht Microsoft auch nicht, inwieweit Java Beans mehr bieten könnten als die bisherige Unterstützung von Java in ActiveX. Open Doc sei zudem kein ernstzunehmender Wettbewerb. Der Markt für ActiveX-Komponenten habe in 1996 ein Volumen von etwa 2,2 Milliarden Schilling erreicht und soll bis zum Jahr 2000 auf mehr als 10 Milliarden Schilling wachsen.

In der nächsten Folge beschäftigen wir uns mit der Verteilung von Komponenten im Netzwerk

Dipl.-Ing. Achim Scharf arbeitet als freiberuflicher Fachjournalist in München


San Francisco Projekt bringt erste Java Framework Codes auf den Markt

Weitere Mitstreiter für das San-Francisco Projekt gewann IBM im Jänner mit der Auslieferung einer frühen Code-Version ihrer objektorientierten Anwendungs-Frameworks an führende Softwareentwickler. 25 neue Softwarehäuser - darunter Borland international, Platinum Technology und die Symantec Corporation - stoßen zu den bislang 50 Unternehmen, die auf Basis dieser erstmals Java-basierten Komponenten kundenindividuelle Geschftsanwendungen entwickeln wollen. Das Besondere der San Francisco Frameworks sehen die Softwarehäuser in der sofortigen Verfügbarkeit einer Entwicklungsinfrastruktur, womit alle Kapazitäten auf das Anwendungsdesign selbst konzentriert werden knnen.

Zu den Softwarehäusern, die die ersten ausgelieferten San Francisco-Codes testen, gehört auch die Kölner G.U.S. AG & Co. "Die Java-basierten Objekte ermöglichen uns eine wesentlich schnellere und kostengünstigere Entwicklung mageschneiderter Kundenanwendungen", so Geschftsführer Heinz Paul Bonn. Diese laufen auf allen gewünschten Plattformen und lassen sich - was besonders wichtig ist - schnell an veränderte Geschäftsanforderungen anpassen. Die US-amerikanische Lawson Software, führend in angewandter Objekt-Methodik, sieht als weiteres wichtiges Testergebnis den Wegfall aufwendiger Vorarbeiten zur Programmerstellung: "Die entwicklungstechnische Infrastruktur liegt uns mit den San- Francisco Frameworks bereits vor - damit können wir gleich die von unseren Kunden gewünschten Anwendungsfunktionen ausfeilen."

Die Programmierer von Borland International wollen die neuen Software-Module als Teil ihrer Golden- Gate-Initiative nutzen, die auf die Verbindung von Client/Server- mit Internet-Architekturen zielt. Die Java- basierten Frameworks sollen dabei das eigene Rapid-Application-Entwicklungswerkzeug unterstützen und so zur komfortablen Erstellung neuer Java-Anwendungen beitragen.

DCOM für Solaris

Aus der Entwicklungskooperation mit Microsoft hat die Software AG eine Vorabversion von DCOM (Distributed Component Object Model) für Sun Solaris 2.5 ausgeliefert.

Mit ihrer Entwicklungskooperation wollen Microsoft und Software AG den Einsatz der DCOM-Architektur auch auf Unix- und Mainframe-Plattformen ausdehnen. Die Verfgbarkeit von DCOM FTE (DCOM For The Enterprise) für Sun Solaris soll ein erster Schritt auf dem Weg zur Kommunikation verteilter Objekte in heterogenen Umgebungen mit DCOM sein.

DCOM FTE für Sun Solaris 2.5 besteht aus einer Entwicklungsumgebung und einem Laufzeitsystem. Letzteres umfat bereits einen groen Teil der endgltigen DCOM-Implementierung, die noch in diesem Jahr einem Betatest unterzogen wird. Die aktuelle Version bietet die Unix-Implementierung des Microsoft RPC, des SCM (Service Control Manager), des Windows NT Registry, der ROT (Running Object Table) und des IDL Compilers sowie Support fr NT Services wie Multi-Threading, Marshalling, File Monikers und eine Teilmenge der Template Library.

Aufgrund der groen Nachfrage hat die Software AG die Lieferdaten fr alle DCOM-Versionen vorverlegt: Die Freigaben fr die Plattformen Sun Solaris 2.5, IBM Open Edition MVS, Digital Unix 4.0 und Linux 2.0 sind fr April 1997 geplant. Weitere Versionen fr HP-UX 10.10 und IBM AIX 4.3 werden im Frhjahr 1997 in den Betatest gehen. IBM OS/400, SCO UnixWare sowie Sinix werden zur Jahresmitte folgen.

Die Software AG ist Mitglied im Steering Committee der neu gegrndeten Active Group mit Sitz in Cambridge (Mass., USA). Dieses Herstellergremium hat sich zum Ziel gesetzt, die DCOM-Technologie als offenen Industriestandard zu etablieren.

Mit OLE Wrapper wird in Kombination mit Entire Broker schon heute OLE-fhigen Desktop-Anwendungen ein Zugriff auf vorhandene Server-Anwendungen ermglicht, die auf Unix- oder Mainframe-Systemen laufen.