11.4 Standardisierungsansätze

11.4.1 X/Open Distributed Transaction Processing (DTP)

Hauptziel von X/Open DTP ist die Standardisierung von Systemschnittstellen zur verteilten Transaktionsbearbeitung [GR93]. Dabei wird das in Abb. 11-4 gezeigte Modell eines verteilten Transaktionssystems zugrundegelegt. Man erkennt, daß in jedem der Rechner die Komponenten eines zentralisierten Transaktionssystems (Kap. 2.1.4) vorgesehen sind, also ein Transaction-Manager (TM), verschiedene Resource-Manager (RM) sowie Anwendungsprogramme. Neu hinzugekommen ist ein Communication-Manager (CM) pro Knoten, der einem speziellen Resource-Manager zur Durchführung von Kommunikationsaufgaben entspricht.

Abb. 11-4: X/Open-Modell eines verteilten Transaktionssystems [GR93]

Wesentlicher Teil der Standardisierung ist die Festlegung der Schnittstellen zwischen diesen Komponenten. Das API (Application Programming Interface) umfaßt dabei neben Funktionen zur Transaktionsverwaltung (TX-Schnittstelle) und Resource-Manager-Aufrufen zusätzlich noch die Kommunikationsschnittstelle zum CM. Zur Kommunikation ist dabei sowohl die Unterstützung von Konversationen (basierend auf der SAA-Schnittstelle CPI-C von IBM) als von RPCs (basierend auf MIA RTI, s.u.) vorgesehen. Als Schnittstelle zwischen Anwendungen und DBS-Resource-Managern wurde von X/Open eine Teilmenge von SQL festgelegt, die von den meisten SQL-Implementierungen unterstützt wird. Dies war trotz der ISO-Standardisierung von SQL erforderlich, da existierende Implementierungen eine Vielzahl von Abweichungen zum Standard aufweisen.

Die Schnittstellen XA+ sowie XA dienen zur Abwicklung des Commit-Protokolls und sind für die Anwendungen nicht sichtbar (kein API-Bestandteil). Das Commit-Protokoll läuft zwischen den TMs der an einer Transaktionsausführung beteiligten Rechner ab, wobei die Kommunikation wiederum über die Communication-Manager abgewickelt wird. Als Commit-Protokoll ist dabei der ISO-Standard OSI TP vorgesehen; die X/Open-Schnittstelle XA+ legt fest, welche Aufrufe hierfür zwischen TM und CM zu verwenden sind. Die Resource-Manager sind über die XA-Schnittstelle am Commit-Protokoll beteiligt.

Zur Ausführung einer Transaktion teilt die Anwendung zunächst dem lokalen TM den Transaktionsbeginn mit, woraufhin dieser eine globale Transaktions-ID vergibt. Diese ID wird bei allen folgenden TM-, RM- und CM-Aufrufen der Transaktion mitgegeben. Nach Aufruf eines RM meldet sich dieser (über die XA-Schnittstelle) ebenfalls beim lokalen TM an, damit diesem bekannt ist, wer am Commit-Protokoll zu beteiligen ist. Für den Aufruf eines entfernten Programms (Abb. 11-4) ist von der Anwendung ein CM-Aufruf erforderlich. Die CM-Komponente informiert daraufhin den lokalen TM, daß sich die betreffende Transaktion auf einen anderen Rechner ausweitet (Schnittstelle XA+). Am zweiten Rechner erfolgt von der dortigen CM-Komponente eine Anmeldung der Transaktion an den lokalen TM sowie der Aufruf des entsprechenden Programms. Nachdem im Client-Rechner das Anwendungsprogramm dem lokalen TM das Commit mitteilt, führt dieser das Commit-Protokoll mit allen lokalen RMs sowie externen TMs aus, die an der Transaktion beteiligt waren.

Das X/Open-Modell sieht einen TP-Monitor nicht explizit vor, jedoch würde dieser typischerweise die Funktionalität des TM und des CM umfassen. Daneben bieten TP-Monitore jedoch noch eine Reihe weiterer Dienste (z.B. Programmverwaltung, Lastbalancierung, Authentifikation, Präsentationsunterstützung etc.), die im X/Open-Modell (noch) nicht explizit definiert sind. Heterogene DBS sind als Resource-Manager problemlos integrierbar, sofern sie die XA-Schnittstelle unterstützen. Eine zunehmende Anzahl von DBVS (Informix, Oracle etc.) und TP-Monitoren (Encina, CICS/6000, UTM-D etc.) bietet eine solche XA-Kompatibilität.