11.4 Standardisierungsansätze

11.4.6 IBM Distributed Relational Database Architecture (DRDA)

Im Rahmen seiner Systemarchitektur SAA (System Application Architecture) definierte IBM 1990 die sogenannte "Distributed Relational Database Architecture (DRDA)" [Da93]. Es handelt sich dabei um die Festlegung verschiedener Kooperationsformen für den Zugriff auf mehrere relationale SQL-Datenbanksysteme. Dabei wird primär der integrierte Zugriff auf die SQL-Datenbanksysteme von IBM unterstützt, nämlich DB2/MVS (MVS/ESA-Betriebssystem), DB2/6000 (AIX), DB2/2 (OS/2), SQL/DS (VM und VSE) und SQL/400 (OS/400). Da die DRDA-Spezifikationen jedoch öffentlich dokumentiert wurden, können auch DBS anderer Hersteller in die Verarbeitung eingebunden werden, sofern sie die DRDA-Protokolle befolgen.

DRDA unterscheidet drei Stufen für den Datenbankzugriff in verteilten Umgebungen: "Remote Unit of Work" (RUOW), "Distributed Unit of Work" (DUOW) und "Distributed Request". Dabei ist "Unit of Work" die IBM-Bezeichnung für Transaktion. Die einzelnen Verteilungsformen können folgendermaßen charakterisiert werden:

Abb. 11-9: DRDA-Stufen

Stufe 3 wird von den erwähnten SQL-DBVS von IBM derzeit noch nicht unterstützt, Stufe 2 lediglich von DB2/MVS (seit Version 3.1) und DB2/6000 und DB2/2 (seit Version 2). Die anderen DBVS bieten zur Zeit nur Stufe 1. Die Realisierung des verteilten Commit-Protokolls, das ab Stufe 2 erforderlich ist, basiert auf LU6.2. Globale Deadlocks werden über einen Timeout-Ansatz aufgelöst.

Ähnlich wie RDA spezifiziert DRDA kein API (SQL), sondern die genauen Kommunikationsprotokolle und Nachrichtenformate für die Verteilung von DB-Operationen. Die Abbildung von SQL-Operationen einer Anwendung auf die DRDA-Nachrichten erfolgt über einen DRDA-Client, auch Application Requester genannt. Dieser kommuniziert mit einem Application Server, der mit dem jeweiligen DBVS zusammenarbeitet (Abb. 11-10). DRDA legt dabei die Protokolle zwischen Application Requester und Application Server sowie zwischen Application Server und DB-Server (DBVS) fest. Die Funktionen von Application Requester bzw. Server müssen nicht notwendigerweise durch eigene Komponenten (Gateways) erbracht werden, sondern sind in DRDA-kompatiblen DBS meist schon integriert[54]. Damit spezifiziert DRDA zugleich ein Protokoll zum Austausch von SQL-Operationen (bzw. Teiloperationen bei Stufe 3) und Ergebnissen zwischen DRDA-DBVS.

Abb. 11-10: Client-Server-Kooperation bei DRDA

Die Unterstützung der DRDA-Protokolle verlangt erhebliche Systemerweiterungen am DBVS und schränkt somit dessen Autonomie und Heterogenität ein. Dies gilt in besonderem Maße für Stufe 3 von DRDA, welche eine ähnlich enge Kooperation zwischen den einzelnen DBS verlangt wie in (homogenen) Verteilten DBS.


[54] Die DBVS DB2/2 und DB2/6000 erfordern jedoch eigene Zusatzkomponenten DDCS/2 bzw. DDCS/6000 (Distributed Database Connection Services) für die Weitergabe von SQL-Operationen an entfernte DRDA-DBVS.