Lexikon

Das OSF Distributed Computing Environment

Verteilte Anwendungsprogramme auf Rechnernetzen gewinnen immer stärker an Bedeutung in Bereichen wie Büroautomatisierung oder rechnerintegrierte Fertigung. Zur Realisierung solcher Programme sind spezielle Werkzeuge und Laufzeitmechanismen wünschenswert. Das Distributed Computing Environment (DCE) der Open Software Foundation (OSF) ist ein entsprechendes unterstützendes Gesamtsystem.

Die Funktionalität des DCE umfaßt die Kommunikation in heterogenen Systemen mittels RPC, nebenläufige Verarbeitung durch leichtgewichtige Prozesse, verteilte Namensverwaltung, Gewährleistung von Sicherheitsaspekten (z.B. Zugriffsschutz), verteilte Synchronisation der Systemzeit, verteilte Dateiverwaltung und Integration von PCs und plattenlosen Rechnern in eine verteilte Workstation-Umgebung.

Diese Funktionalität wird durch verschiedene dedizierte Teilkomponenten erbracht, die von der OSF aus existierenden Systemvorschlägen aufgrund praxisnaher Kriterien ausgewählt und integriert wurden. Zahlreiche Hersteller sind inzwischen Mitglied der OSF und werden eine DCE-Realisierung in Kürze auf ihren Systemen anbieten (z.B. für OSF/1, DEC/Ultrix, IBM/AIX, SunOS, VAX/VMS und z.T. begrenzt für PC/DOS, OS/2 und OS/400). Durch einheitliche Programmier- und Kommunikationsschnittstellen des DCE für alle Plattformen ist die durchgängige Portabilität von DCE-Anwendungen garantiert; dies ist neben der umfangreichen Funktionalität des DCE ein wesentliches Kriterium für die große praktische Bedeutung dieser Softwareumgebung.

Abbildung 1 zeigt die Gesamtarchitektur des DCE. Alle Komponenten basieren auf lokalen Betriebssystemdiensten (z.B. von Unix) und Transportdiensten (z.B. TCP/IP). Verteilte Anwendungen verwenden die sog. DCE-Basisdienste (kursiv in Abb. 1) explizit über eine in C eingebettete Programmierschnittstelle und die weiteren DCE-Systemdienste implizit über z.T. modifizierte Betriebssystemoperationen. Die DCE-Teilkomponenten machen intern auch gegenseitig voneinander Gebrauch.

Basisdienste

Der Threads Service (Basis: DEC Concert Multithread Architecture) bietet eine portable (POSIX Standard 1003.4a, Draft 4) Implementierung leichtgewichtiger Prozesse (Threads) an. Diese teilen sich einen Adreßraum und ermöglichen die nebenläufige Verarbeitung. Dadurch können z.B. entfernte Aufrufe quasiparallel abgesetzt oder lokale Berechnungen nebenläufig durchgeführt werden.

Der Remote Procedure Call (Basis: DEC/HP Network Computing System) dient zur Kommunikation zwischen verteilt plazierten Modulen einer Anwendung auf der Basis des Client/Server-Modells; ein Client fordert bestimmte Dienste von einem Server in Form entfernter Prozeduraufrufe an. Die Prozedurschnittstellen werden in einer deklarativen Sprache (IDL), Interface Definition Language) in Anlehnung an C beschrieben. Das DCE bietet einen IDL-Compiler sowie Laufzeitmechanismen zur Zuordnung von Servern zu Clients (Binden) und zur IDL-basierten Kodierung und Übertragung entfernter Prozeduraufrufe an. Es sind geschachtelte Parameterstrukturen mit Zeigern und Feldern möglich, deren Daten als Wertparameter übergeben werden. Der DCE-RPC bietet eine wählbare Aufrufsemantik (z.B. At-Most-Once-Semantik für normale Aufrufe, die effizientere Idempotent-Semantik für reine Leseoperationen und die Maybe-Semantik für unbestätigte Aufrufe), nebenläufige Aufrufbearbeitung durch mehrere Server-Threads, geschachtelte Aufrufe und Rückaufrufe vom Server an den Client, sichere (authentisierte, autorisierte und verschlüsselte) Aufrufe und Kommunikation zwischen heterogenen Rechnern mit automatischer Datenformat-Konvertierung.

Der Cell Directory Service (CDS) (Basis: DEC Distributed Naming Service (DNS)) verwaltet logische Namen, z.B. von Servern, und bildet diese auf Netzadressen ab, um den Zugriff z.B. durch Clients, zu ermöglichen. Der verwendete Namensraum ist hierarchisch strukturiert. Auch attributierte Namen sind möglich, was z.B. die Anfrage unter Ressourcen-bezogenen Nebenbedingungen erlaubt. Der CDS wird durch mehrere Server implementiert, was z.B. intern die teilweise Replikation des Namensraums ermöglicht. Clients halten sich einen Cache von Anfrageergebnissen. Hierdurch können Verfügbarkeit und Zugriffseffizienz verbessert werden. Die Programmierschnittstelle wird durch das standardisierte X/Open Directory Service Interface realisiert.

Der Security Service (Basis: MIT/Kerberos, ergänzt von HP Security Components) ermöglicht Authentisierung, Autorisierung und Verschlüsselung. Bei der Authentisierung bestätigt ein Client durch Angabe eines geheimen Codes (generiert aus seinem Paßwort) gegenüber einem Server, das es sich bei ihm wirklich um die vorgegebene Identität handelt; dies ist auch umgekehrt für Server möglich. Die Autorisierung ermöglicht die selektive Vergabe von Zugriffsrechten an Clients mittels Zugriffskontrollisten. Die Verschlüsselung von RPC-Nachrichten wird durch geheime Schlüssel realisiert.

Der Distributed Time Service (DTS) (Basis: DEC Distributed Time Synchronization) ermöglicht die Synchronisation der Systemuhren in einer verteilten DCE-Umgebung durch periodischen Austausch der Systemzeit. Es ist auch eine Synchronisation mit externen Zeitgebern möglich. Insgesamt wird hierdurch v.a. die Realisierung Zeitstempelverteilter Algorithmen erleichtert.

Weitere Systemdienste

Der Global Directory Service (GDS) (Basis: Siemens X.500) ergänzt den Cell Directory Service um eine globale Namensverwaltung für große Netze. Der GDS ist konform zur CCITT X.500-Norm, was weltweite Interoperabilität ermöglicht. Neben dem GDS kann auch der Internet Domain Name Service (DNS) als globaler Namensdienst mit dem CDS integriert werden

Das Distributed File System (Basis: Andrew File System der CMU) dient zur netzweiten Dateiverwaltung. Es wird durch mehrere Server implementiert. Clients können innerhalb eines Verwaltungsbereiches lokationstransparent auf verteilt gespeicherte Dateien zugreifen. Der DFS erreicht eine hohe Effizienz und Skalierbarkeit durch ein gezieltes Caching auf den Client-Rechnern. Es ist auch Interoperabilität mit dem SUN Network File System (NFS) möglich; NFS kann als Client auf DFS-Server zugreifen.

Mit Hilfe des Diskless Support (Basis: HP Diskless Client Support) können plattenlose Workstations in eine DCE-Umgebung integriert werden und z.B. auf das DSF zugreifen.

Die PC Integration (Basis: SUN PC/NFS und HP/Microsoft LAN-Manager/X) ermöglicht den Zugang von PCs (mit DOS, UNIX oder OS/2) auf DCE-Server, primär auf DFS und dedizierte Druckerserver.

Gesamtbewertung

Das OSF DCE zeichnet sich durch recht umfassende Funktionalität, gute Komponentenintegration, herstellerübergreifende Interoperabilität in heterogenen Systemen sowie Produktqualität aus. Die Entwicklung verteilter Anwendungen wird durch das DCE auch nach eigenen Erfahrungen deutlich erleichtert.

Die DCE-Programmierschnittstellen sind allerdings teilweise sehr umfangreich und daher mit einigem Lernaufwand verbunden. Die DCE-Systemadministration erfordert aufgrund der umfassenden Funktionalität und der inhärenten Komplexität der DCE-Komponenten deutlich mehr Detailwissen als das herkömmliche Systemmanagement. Zukünftige Erweiterungen sollten an diesen Stellen ansetzen und z.B. vereinfachte objektorientierte Schnittstellen, etwa auf der Basis von C++, sowie weiterführende Management-Werkzeuge anbieten. Wünschenswert wäre auch die Integration verteilter Transaktionsverfahren, was gerade für kommerzielle Anwendungen von großer Bedeutung ist.

Insgesamt dürfen aber die Vorteile des DCE deutlich überwiegen; die Entwicklung verteilter heterogener Anwendungen ohne eine Umgebung wie das DCE wirft ungleich mehr Schwierigkeiten auf. Für die Zukunft bleibt abzuwarten, inwieweit praktisch bedeutsame Erweiterungen und neue Standards verstärkt berücksichtigt werden. Schon heute bietet das DCE aber eine vollständige, fertige Systemumgebung für die kommerzielle Software Entwicklung an.

Literatur

  1. Mühlhäuser, M., Schill, A.: Software Engineering für verteilte Anwendungen, Berlin-Heidelberg: Springer 1992
  2. Open Software Foundation: Introduction to OSF DCE, Cambridge, USA, 1992
  3. Hülsenbusch, R.: Verteilungswerkzeuge: DCE - Integrierte Tools für verteilte Anwendungen, iX, 1, 86-90 (1992)
  4. Schill, A.: Das OSF Distributed Computing Environment: Grundlagen und Anwendung. Berlin-Heidelberg: Springer (im Druck)
  5. Open Software Foundation: DCE Application Develpment Guide, Cambridge, USA, 1992
  6. Steiner, J.G.., Neuman, C., Schiller, J.I.: Kerberos: An Authentication Service for Open Network Systems. Usenix Winter Conf., Berkeley, CA, Jan 1988, p. 191-202
  7. Morris, J.H. Satyanarayanan, M., Conner, M.H., Howard, J.H., Rosenthal, D.S., Smith, F.D.: Andrew: A Distributed Personal Computing Envirenment. Comm. ACM 29 184-201 (1986)

Autor und Copyright

A. Schill
Universität Karlsruhe,
Institut für Telematik
Am Zirkel 2, W-7500 Karlsruhe 1

© 1992 Informatik Spektrum, Springer-Verlag Berlin Heidelberg