11.2 Alternativen zur verteilten Transaktionsverarbeitung

11.2.2 Programmierte Verteilung (Verteilte Anwendungen)

Hierbei wird die Verteilung auf Ebene der Anwendungsprogramme realisiert, indem von einem Client-Rechner aus externe Anwendungsprogramme aufgerufen werden, um auf dort vorliegende Datenbanken zuzugreifen (Abb. 11-1). Das Verteilungsgranulat "Teilprogramm" bietet eine hervorragende Unterstützung heterogener DBS sowie einer hohen Knotenautonomie. Denn an jedem Knoten kann ein unabhängiges LDBS vorliegen, wobei keine direkte Kooperation zwischen den LDBS stattfindet. Der Datenbankaufbau sowie die Anfragesprache eines LDBS sind nur für lokale Anwendungen sichtbar und damit völlig transparent für externe Benutzer. Auch die DB-Administration ist relativ einfach, da die Vergabe von Zugriffsrechten an externe Benutzer sich auf lokale Teilprogramme bezieht und nicht auf einzelne Datenbankobjekte.

Beispiel 11-1

Die Überweisung eines Geldbetrags zwischen Konten zweier Banken B1 und B2 könnte stark vereinfacht durch folgendes Programm realisiert werden:

    Eingabedaten lesen (Konten K1, K2; Banken B1, B2; Betrag Delta)
    BEGIN-Transaction;
      CALL Debit (B1, K1, Delta, ...); 
      CALL Credit (B2, K2, Delta, ...);
    COMMIT-Transaction; 
    Ausgabenachricht ausgeben; 
Die Überweisung wird also durch Aufruf der zwei Teilprogramme Debit (Abbuchung) und Credit (Zubuchung) realisiert, die auf unterschiedlichen Rechnern ausgeführt werden. Für den Nutzer dieser Funktionen sind Ort, Aufbau und Anfragesprache der dahinterstehenden Datenbanken transparent.

Jedes an einer derartigen Transaktionsbearbeitung beteiligte Teilprogramm kann nur lokale Daten eines Rechners referenzieren, wenn keine weitere Verteilung durch die DBS erfolgt. Ortstransparenz läßt sich dabei erzielen, wenn der TP-Monitor eine Name-Server-Funktion zur Lokalisierung der Programme bietet. Verteilungstransparenz kann für den Anwendungsprogrammierer dagegen i.a. nicht vollständig erreicht werden, da er die verfügbaren Teilprogramme (Anwendungsfunktionen) anderer Rechner kennen muß, um sie korrekt aufzurufen. Gegebenenfalls sind zur Realisierung einer verteilten Anwendung auch eigens Teilprogramme für entfernte Datenbanken zu entwickeln, wobei dann die jeweilige Anfragesprache und Schemainformationen benutzt werden müssen.

Die meisten TP-Monitore unterstützen die programmierte Verteilung (CICS [Wi89], UTM-D [Go90], Tuxedo [Fe93], Encina [Sh93, Wi93], ACMS [Tr93], Top End [Sm93] etc.). Dieser Ansatz wird sogar vielfach mit verteilter Transaktionsverarbeitung gleichgesetzt. Neben der Unterstützung einer hohen Autonomie sowie heterogener DBS liegt der Vorteil v.a. in der aus Systemsicht vergleichsweise einfachen Realisierbarkeit einer verteilten Transaktionsverarbeitung. Dazu sind v.a. ein rechnerübergreifendes Commit-Protokoll sowie die Inter-Programm-Kommunikation zu realisieren (s. Kap. 11.3).