Michael Merz
Universität Hamburg, Fachbereich Informatik
Vogt-Kölln-Straße 30, 22527 HAMBURG
Hintergrund
Einführung und Verbreitung neuartiger Netzwerktechnologien gewährleisten nicht nur schnelle und zuverlässige Datenübertragung, sondern ermöglichen auch eine effiziente Nutzung von entfernten Diensten in offenen verteilten Umgebungen. Dadurch entsteht auch im Bereich der Kooperation verteilter Rechner ein offener Markt von Diensten. Hier stellen einenerseits Diensterbringer (Server) dedizierte Dienste über wohldefinierte Schnittstellen einer Vielzahl von externen Anwendungen zur Verfügung - andererseits haben Dienstnehmer (Clients) damit prinzipiell die Möglichkeit, aus einer Vielzahl verschiedenartiger Dienste eine Auswahl zu treffen und diese dann lokal zu nutzen.
Entsprechend wandelt sich auch die Koordination der (verteilten) Software-Produktion immer mehr von einer rein projektorientierten Auftragsvergabe an Subkontraktoren hin zur Nutzung eines globalen Marktes von bereits existierenden Diensten mit einer hinreichen großen Anzahl an Komponentenanbietern und -nachfragern. So bieten viele Software-Anbieter oft stark spezialisierte Software-Komponenten an, deren Einbindung in größere Anwendungen aufgrund gemeinsam vereinbarter Absprachen (z.B. bzgl. Benutzerschnittstellen, EDI-Standards, Datenbankschnittstellen, etc.) nur geringe Kosten verursacht. Dadurch wird auch der verteilte Software-Entwicklungsprozeß immer weniger zentral koordiniert sondern zunehmend zu einem Komponentenmarkt. Andererseits spiegelt sich hier ebenfalls die Anforderungsvielfalt von Entwicklungsprojekten in einer hohen Heterogenität der angebotenen Komponentenfunktionalität wider. Dieser potentiellen Vielfalt mit Hilfe von ('de jure'- bzw. 'de facto'-) Standardisierung von Schnittstellen zu begegnen, ist nur bis zu einem gewissen Grade möglich. Je weiter nämlich insbesondere innovative - also zunächst nicht standardisierte - Softwarekomponenten Teil der Anwendungssphäre sind, desto weniger einheitliche Vereinbarungen sind zwischen Schnittstellenangeboten möglich; aus Wettbewerbsgründen ist oft in diesem Bereich ist sogar eine gewisse Individualität von Schnittstellentypen (Syntax) und Funktionalität (Semantik) gefordert.
Ziele des Beitrages
Die oben geschilderten, marktmäßig nutzbaren Dienste können auf der einen Seite in eine Menge von bereits bekannten (klassifizierten oder standardisierten), auf der anderen Seite eine Menge von neuartigen, noch unbekannten (unklassifizierten) unterschieden werden. Der vorliegende Beitrag hat zum Ziel, das Potential aktuell diskutierter Infrastruktur-Architekturen insbesondere zur Unterstützung des Zugriffs auf neuartige, unklassifzierte Dienste in offenen verteilten Umgebungen (d.h. die dynamische Vermittlung semantisch heterogener Dienste zur Laufzeit) zu vergleichen. Unter diesem Gesichtspunkt sollen vor allem das "World-Wide-Web" (WWW), die Objektmodelle von "OMG CORBA", Microsoft's "OLE 2", des "ISO ODP-Traders" sowie schließlich die im Rahmen des Projektes COSM/TRADE entwickelte Architektur eines 'Common Open Service Markets' (COSM) verglichen werden.
Dienstvermittlung im 'Common Open Service Market' (COSM)
Im Projekt COSM steht die Unterstützung sogenannter unklassifizierter Dienste im Vordergrund, d.h. Dienste, die bezüglich ihrer Schnittstelle und Diensteigenschaften noch nicht durch ein normiertes Klassifikationsschema erfaßbar sind. Aus diesem Grunde ist hier der menschliche Benutzer interaktiv als urteilsfähige Instanz eng in den Dienstauswahl und -zugriffsprozeß eingebunden. Somit erfordern unklassifizierte Dienste auch spezifische Werkzeuge für den Benutzer zur Unterstützung der Dienstvermittlung und -interaktion. Diese Unterstützung besteht u.a. in einer generischen Repräsentation für Dienstbeschreibungen, welche um spezielle Beschreibungsaspekte erweitert werden können. Client-Anwendungen können diese Informationen nutzen, um dedizierte Informationen über entfernte Dienste zu erlangen und so den menschlichen Benutzer bei der Interaktion mit externen Diensten im verteilten Systemen unterstützen. Auf diese Weise wird die erforderliche Flexibilität beim Anbieten von Diensten oder bei deren Zugriff in dem Maße erhöht, wie es für einen offenen Dienstemarkt erforderlich ist. (Eine spätere Standardisierung von Dienstschnittstelle und -semantik ist hierbei nicht ausgeschlossen, sodaß dann COSM-Dienste auch z.B. mit Hilfe eines ODP-Traders - wie im Partnerprojektes TRADE realisiert - weitgehend automatisch vermittelt werden können.)
Architekturen zur Dienstvermittlung im Vergleich
Entwickler von Vermittlungsinfrastrukturen sind generell sowohl mit den Anforderungen klassifizierter als auch unklassifizierter Dienste in verteilten Umgebungen konfrontiert: Einerseits lassen standardisierte Komponenten (oder auch "Dienste") die konkrete Implementierung der Software in den Hintergrund treten, indem der Standard eine eindeutige Beschreibung von durch ihn spezifizierten Funktionalität zusichert; andererseits kann ein Vermittlungsdienst nicht standardisierte (unklassifizierte) Komponenten nur auf der Basis relativ hoher Abstraktion verwalten - z.B. als "Objekt". Um letztlich dennoch dem Benutzer in der Rolle des Software-Entwicklers oder des Anwenders Zugriff und Nutzung derartiger Objekte zu ermöglichen, ist eine Repräsentation der Schnittstellen- und Verhaltensspezifikation erst zur Laufzeit möglich und erforderlich. Bei der systemtechnischen Unterstützung des (statischen wie dynamischen) Zugriffs auf derartige Dienstschnittstellen in offenen Umgebungen ist damit ein Kontinuum verschiedener Spezialisierungsgrade von Client-Software denkbar (von ganz wenig bis hin zu sehr viel speziellem Wissen über den zugegriffenen Dienst), welches an den folgenden Beispielen näher erläutert werden sollen: