Zum Hauptinhalt springen
Lexikon

Remote Database Access: Kommunikationsunterstützung für Fernzugriff auf Datenbanken

Datenbanken sind in der Praxis weit verbreitet und haben den Vorteil, daß sich damit sowohl der Nutzen als auch die (oft hohen!) Kosten von Datensammlung und -verwaltung auf einen weiten Kreis von Benutzern verteilen lassen. Im Zusammenhang mit der zunehmenden Vernetzung von Rechnern aller Art über unterschiedliche Distanzen hinweg (LAN, WAN, MAN, . . .) bekommt diese Eigenschaft von Datenbanken noch eine zusätzliche Bedeutung. So wird es nun möglich, von lokal zur Verfügung stehenden Arbeitsplatzrechnern aus Dienste von entfernten, dedizierten Spezialrechnern (z.B. Datenbankrechnern) auch über lokale Rechnergrenzen hinaus mit größtmöglicher Aktualität direkt zu nutzen.

Insbesondere in offenen Rechnernetzumgebungen, in denen die Kommunikationspartner variieren können und einander nicht im voraus bekannt sein müssen sind flexible Nutzungsmöglichkeiten von entfernten Datenbankdiensten von großem praktischen Wert. Gegenüber klassisch verteilten Datenbanken hat dabei der dem "Remote Database Access" (RDA) zugrunde liegende Client/Server-Ansatz insbesondere den Vorteil das der Datenverwaltung auf den Servern ein hohes Maß an lokaler Autonomie erhalten bleibt.

Kommunikationsunterstützung für heterogene, offene Rechnernetze basiert auf generell vereinbarten Software-Schnittstellen und allgemein bekannten (d.h. standardisierten) Kommunikationsprotokollen. So beruht auch beim Fernzugriff auf Datenbanken (engl. Remote Database Access) die Kommunikation zwischen den verteilten heterogenen und miteinander kooperierenden Rechnerknoten auf von der International Standards Organization (ISO) und ihren internationalen Unterorganisationen im Rahmen des Referenzmdells für die Kommunikation in Offenen Systemen (Open Systems Interconnection, OSI) festgelegten Standards.

RDA-Modell

Entsprechend einem allgemeinen Client/Server-Ansatz für verteilte Datenverarbeitung geht auch das dem RDA zugrunde liegende Modell von einem Datenbank-Klienten aus (z.B. einer Arbeitsstation), der die ISO-OSI-Kommunikationsdienste dazu benutzt, auf einen oder mehrere entfernte(n) Datenbank-Server in einer hererogenen Rechnernetzumgebung zuzugreifen.

RDA-Kommunikationsdienste

An der RDA-Dienstschnittstelle stellt die RDA-Kommunikationsunterstützung die folgenden Gruppen von Diensten bereit: Gemäß einer Vereinbarung zwischen RDA-Klient und -Server zu Dialogbeginn können davon auch nur Teilmengen (Functional Units) für bestimmte Verbindungen ausgewählt werden.

Dialogverwaltung: Wie andere ISO-OSI-Anwendungen auch beruht RDA auf verbindungsorientierter Kommunikation zwischen Partnern (Peers). Um eine RDA-Kommunikationsbeziehung aufzubauen, stellt RDA explizite Dienste zum Auf- und Abbau eines Kommunikationsdialoges bereit: "R-BeginDialogue" und "R-EndDialogue" (Die Liste und die Bezeichnungen der Dienste entsprechen dem Stand der Normung von Ende 1990). Dialoge sind logische Beziehungen zwischen Kommunikationspartnern der OSI-Anwendungsebene, die auch über etwaige zwischenzeitliche Störungen der darunterliegenden Verbindungen (Associations) hinweg erhalten bleiben.

Ressourcen-Verwaltung: Während eines Dialoges kann mit der Hilfe der RDA-Dienste "R-Open" und "R-Close" vom Klienten an den Server der Wunsch übermittelt werden, "Ressourcen" der entfernten Datenbank zu öffnen oder zu schließen. Dabei sind Ressourcen von der Anwendung bestimmte Teile der Datenbank, die von einzelnen Tupeln bis zur gesamten Datenbank reichen können.

Da die Übermittlung und Ausführung aller RDA-Operationen in der Regel zu einem "Resultat" führt (z.B. einer "Antwort", einer "Status"- oder einer Fehlermeldung), läßt sich die Grundstruktur der Ausführung aller RDA-Dienste wie folgt beschreiben: Der RDA-Klient übermittelt an den RDA-Server den Wunsch (Request), eine bestimmte Operation entfernt auszuführen; dieser Wunsch wird beim Server angezeigt (Indication), und nach Ausführung der Operation sendet der Server ein Resultat an den Klienten zurück.

Datenbanksprachenunterstützung: Während eines Dialoges und nach Öffnung der notwendigen Ressourcen kann der RDA-Klient mit Hilfe des Dienstes "R-ExecuteDBL" Datenbankkommandos in einer zuvor ausgewählten Datenbanksprache (Database Language, DBL) an den Server übermitteln. Der Server sendet dann als Ergebnis eines solchen Dienstaufrufes die entsprechenden Resultate (s.o.) an den Klienten zurück. Die bei diesem Dienstaufruf verwendete (standardisierte!) Datenbanksprache wird bei Dialogbeginn ausgewählt.

Darüber hinaus stellt RDA Möglichkeiten bereit, durch Verwendung des Dienstes "R-Define" Datenbankkommandos unabhängig von ihrer Ausführung (zu Optimierungszwecken) auch schon vorab an den Server zu übermitteln, dann mit Hilfe des Dienstes "R-Invoke" - i.d.R. später aufzurufen und derartige Definitionen mit Hilfe des Dienstes "R-Drop" wieder zu löschen.

Kontrolldienste: Wenn die Ausführung einzelner Datenbankkommandos unerwartet lange dauert, stellt RDA Dienste zur Abfrage des Status (R-Status) oder zum Löschen (R-Cancel) vorab übermittelter, aber noch nicht abgeschlossener Operationen auf dem Server zur Verfügung.

RDA-Transaktionsverwaltung: Zur Übermittlung von speziellen Nachrichten zur Kontrolle von Datenbanktransaktionen stellt RDA in seiner einfachsten Form optional die folgenden Dienste bereit: "R-BeginTransaction" dient zum Initiieren, "R-Commit" bzw. "R-Rollback" zum erfolgreichen Beenden bzw. zum Zurücksetzen einer entfernten Transaktion.

Wesentlich weiter gehende Kommunikationsmechanismen für die Kontrolle von verteilten Transaktionen stehen als Alternative zu den genannten RDA-Diensten in einem erweiterten RDA-Anwendungskontext zur Verfügung. Hier wird durch direkte Referenz auf den entsprechenden ISO-OSI-Standard für verteilte Transaktionsunterstützung (Transaktion Processing TP) vermieden, daß RDA die auch für andere OSI-Anwendungen wichtigen Grundfunktionen zur Transaktionsverwaltung eigens neu definiert.

RDA-Spezialisierungshierarchie

Da RDA eine spezielle Art beschreibt, entfernte Datenbankoperationen - asynchron - aufzurufen, entspricht das Grundmuster der dabei verwendeten Kommunikation dem eines allgemeineren entfernten Prozeduraufrufes. Innerhalb dieses Rahmens spezifiziert dann der „generische" Teil des RDA einen Rahmen für allgemeine RDA-Dienste, die unabhängig von der zugrunde liegenden Datenbanksprache sind. Erst in einem zweiten Teil des RDA-Standards werden dann die speziellen Datenbankkommandos näher definiert, die für eine bestimmte Datenbanksprache verwendet werden dürfen. Für die standardisierte relationale Datenbanksprache SQL.

RDA-Kommunikationsprotokoll

Das RDA-Kommunikationsprotokoll spezifiziert im Detail zunächst die genauen Formate aller RDA-Nachrichten (Protocol Data Units, PDUs), die zwischen beliebigen RDA-Klienten und RDA-Servern in einer offenen Netzumgebung ausgetauscht werden können. Über die Definition der RDA-PDUs hinaus spezifiziert das RDA-Protokoll dann Regeln und Bedingungen, die jede mit dem Standard konforme Implementierung befolgen muß. Wichtigstes Beispiel für derartige Einschränkungen sind die Reihenfolgeregeln, die alle legalen Abfolgen von RDA-PDUs zwischen den RDA-Kommunikationspartnern beschreiben (Einfaches Beispiel: "R-BeginDialog" muß allen anderen RDA-Operationen vorangehen.)

Status

Ein erster technischer Vorschlag zu RDA wurde bis ca. 1986 von der "European Computer Manufacturers Association" (ECMA) erstellt und darauf in die nationalen und internationalen ISO-Normungsgremien eingebracht. Ende 1990 liegt ein Normungsvorschlag der ISO zu RDA als 2. "Committee Draft" (CD) vor und soll - nach der Planung vom Jahresende 1990 - 1991 als technisch stabiler ISO "Draft International Standard" (DIS) und ein Jahr darauf als verbindlicher ISO-Standard international verabschiedet werden.

Die Liste der im derzeitigen RDA-Standardentwurf noch offenen Punkte umfaßt alternative RDA-Spezialisierungen (z.B. für SQL2, SQL3, Netzwerksprache etc.), spezielle Unterstützung für (Datenbanksprach-)Module, unterbrechbare RDA-Dialoge, erweiterte Transaktionsverwaltungsmechanismen oder etwa Erweiterungen für komplexere Datenmodelle (z.B. für Zugriff auf Multi-Media-Datenbanken) oder auch Anpassungen an die Möglichkeiten von Hochgeschwindigkeitsnetzen.

Literatur

  1. international Organization for Standardization: Basic Reference Model Information Processing Systems - Open Systems Interconnection, international Standard 7498 (1984)
  2. international Organization for Standardization: Remote Database Access - Part 1: Generic Information Processing Systems - Open Systems Interconnection, Draft Proposal 9579-2 (ISO/IECJTC1/C21 WG3 N996) (1990)
  3. International Organization for Standardization: Remote Database Access - Part 2: SQL Specialization Information Processing Systems - Open Systems Interconnection, Draft Proposal 9579-2 (ISO/IECJTC1/C21 WG3 N996) (1990)
  4. International Organization for Standardization: Distributed Transaction Processing Information Processing Systems - Open Systems Interconnection, Draft International Standard 10026-1, 10026-2, 10026-3 (1989)
  5. Svoboda, L.: Clint/Server Model of Distributed Processing, Proc. GI/NTG-Fachtagung "Kommunikation in verteilten Systemen", Karlsruhe, W.-Germany, Informatik-Fachberichte. Vol. 95, pp. 485-498, Heidelberg: Springer 1985

Autor und Copyright

Prof. W. Lamersdorf
Fachbereich Informatik, Universität Hamburg
Schlüterstr. 70, 
W-2000 Hamburg 13

© 1991 Informatik Spektrum, Springer-Verlag Berlin Heidelberg