Workshop TP

Werbung
2.3 Infrastruktur durch Transaction
Processing Monitore (“TP-Heavy”)
Workshop
• Vertiefung der X/Open DTP Protokolle
• Programmierparadigmen
• Verteilte Transaktionsverarbeitung (i. Vgl. zu Oracle)
• Optimierungen für 2PC
• Funktionalität und Aufbau des TP-Monitors TUXEDO
• Komponenten
• Systemarchitektur
• Einführung in die Übungsaufgabe
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 1
Verteilte Transaktionsverarbeitung mit
X/Open DTP
Laufzeitumgebung
des TP Monitor
• Verteilte Überweisung
Client
Transfer
ATM
TP Monitor
Service
Debit
Credit
Bern
DB
DB
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Zürich
DB
DB
Kapitel 2: Workshop TP-Heavy – 2
X/Open’s Programmierparadigmen
• Service-Orientierung
• Bereitstellung von Funktionalität über C/COBOL-Funktionen
• Bekanntgabe dieser Funktionen an den TP Mon. (Advertising)
• sog. Request-/Response-Programmierung
• Konversations-Orientierung
• Eröffnung eines Kanals
• Senden von Daten und Ergebnissen über diesen Kanal
• Typed Buffers
• Strukturen zum maschinenunabh. Datenaustausch
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 3
Programmier-Unterstützung durch X/Open
•
Kommunikations-Puffer
• tpalloc - Speicher anfordern
• tpfree - Speicher freigeben
• tprealloc - neue
Speichergrösse
•
Erstellung von Services
• tpservice - Template für einen
Service
• tpreturn - Verlassen einer
Service-Routine
Objektverwaltung höherer Ordnung (OHO) – SS 2002
•
Service-Aufruf
• tpacall - asynchroner Aufruf
• tpcall - synchroner Aufruf
• tpcancel - Antwort verwerfen
• tpgetrply - Antwort zu
asynchronem Aufruf holen
•
Konversations-Routinen
• tpconnect - Konversation
eröffnen
• tpdiscon - Konv. beenden
• tprecv - Nachricht empfangen
• tpsend - Nachricht senden
Kapitel 2: Workshop TP-Heavy – 4
Programmier- vs. Systemsicht
•
Programmiersicht:
Code, den der Applikationsentwickler schreiben muss
•
Aufgaben:
• DB-Zugriff implementieren
• Transaktionsgrenzen setzen
• Aufruf anderer TP-MonitorServices durchführen
• Kommunikationspufferverwaltung
(!)
Objektverwaltung höherer Ordnung (OHO) – SS 2002
•
Systemsicht:
Boilerplate Code, der vom System
automatisch ausgeführt wird und
in TP-Monitor-Bibliotheken
implementiert ist
•
Aufgaben
• Verwaltung des Transaktionsbaumes gegenüber DBMSs
und weiteren TP-MonitorInstanzen
• Zwei-Phasen-Commit
• Lastbalanzierung
• Datenabhängiges Routing
• ...
Kapitel 2: Workshop TP-Heavy – 5
Programmierer-Sicht Service-Orientierung
Aufrufe in den Applikationsprogrammen
Client
tpcall(.)
tx_begin()
Transfer
ATM
tx_commit()
tpcall(char*)
Debit
tpcall(char*)
tpreturn(.)
EXEC SQL AT DB_NAME
Bern
DBMS
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Credit
tpreturn(.)
EXEC SQL AT DB_NAME
Zürich
DBMS
Kapitel 2: Workshop TP-Heavy – 6
Systemsicht: Transaktionsbaum 1
Transfer
tpcall
TM
ax_add_branch
ax_add_branch
CRM
XID1
TM
Debit
ax_start
XID2
CRM
TM
Bern
DBMS
Objektverwaltung höherer Ordnung (OHO) – SS 2002
ATM
ax_start
CRM
Zürich
Credit
DBMS
Kapitel 2: Workshop TP-Heavy – 7
Systemsicht: Transaktionsbaum 2
Transfer
tx_commit
TM
ATM
xa_prepare
xa_prepare
CRM
xa_prepare(XID1)
TM
Debit
ax_prep.
xa_prepare
xa_prepare(XID2)
CRM
TM
Bern
DBMS
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Credit
ax_prep.
xa_prepare
CRM
Zürich
DBMS
Kapitel 2: Workshop TP-Heavy – 8
Systemsicht: Transaktionsbaum 3
Transfer
TPEABORT
TM
ATM
XA_OK
XA_RB
CRM
XA_OK
TM
Debit
TM_OK
XA_OK
XA_RB
CRM
TM
Bern
DBMS
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Credit
TM_RB
CRM
XA_RBINTEGRITY
Zürich
DBMS
Kapitel 2: Workshop TP-Heavy – 9
Optimierungen im 2PC
• Zielsetzungen:
• Verminderung der Anzahl benötigter Nachrichten
• Verringerung der I/O auf dem Log
• Angewandte Techniken:
• presumed abort: kein Log-Eintrag - TA-Branch wurde aborted
• group commit: akkumuliertes Schreiben von Log-Einträgen
(Log-Dämon wird alle 50msec aktiviert, TA solange verzögert)
• transfer-of-commit: prepare, und mit neuem TA-Branch wird
dortiger TM 2PC-Koordinator
• lazy commit: asynch. Commit-Logging - keine Durability
• last-resource-manager-option: bei entarteten TA-Bäumen
transfer-of-commit anwenden, so dass letzter DB als 2PCKoordinator
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 10
TP Monitor TUXEDO
• Hersteller: Bea Systems http://www.beasys.com
• System-Komponenten:
• TUXEDO System/T
• Administrationsschnittstelle
• Applikationsentwicklung
• Implementierung von TM, XA, XA+, XATMI
• TUXEDO System/D: SQL-DBMS (Resource Manager) zu System/T
• TUXEDO Workstation: Client-Anbindung von entfernten
Rechnern
• TUXEDO /Q: Transaktionelle Message-Queues
• TUXEDO /TxRPC: Implementierung von X/Open TxRPC
• TUXEDO /Domain: Interoperabilität mit anderen TUXEDO
Instanzen oder anderen TP Monitoren über OSI-TP
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 11
TUXEDO: System-Architektur
TUXEDO Kernel: BBL
Client
call
X
A
T
M
I
queue
push/get
CREDIT
put
queue
put
Transaction
Manager
Objektverwaltung höherer Ordnung (OHO) – SS 2002
push/get
DEBIT
LOG
Kapitel 2: Workshop TP-Heavy – 12
TUXEDO: Mehrrechner-Architektur
TUXEDO Kernel: BBL
X
A
T
M
I
queue
queue
TUXEDO Kernel: BBL
CREDIT
DEBIT
X
A
T
M
I
queue
queue
CREDIT
DEBIT
remote call
put
remote call
stub
BRIDGE
Message Transmission
Objektverwaltung höherer Ordnung (OHO) – SS 2002
BRIDGE
Kapitel 2: Workshop TP-Heavy – 13
TUXEDO: Load-Balancing
•
X
A
T
M
I
Many Services - Single Queue:
sobald Service fertig, neuen
Auftrag aus der Queue
CREDIT
CREDIT
Objektverwaltung höherer Ordnung (OHO) – SS 2002
•
Many Services - Many Queues:
Service-“Farm“ ggf. auf mehreren
Rechnern, Zuteilung nach
Workload-Heuristik
X
A
T
M
I
CREDIT
CREDIT
Kapitel 2: Workshop TP-Heavy – 14
Die TP-Monitor BRIDGE
• Herstellerspezifische Lösungen
• meist als eigenständiger Betriebssystem-Prozess
• Aufgabe an der Daten-Quelle:
• Entgegennahme von Aufträgen für entfernte Rechner
• Entgegennahme von Daten für entfernte Rechner
• ggf. Übersetzung der Daten in maschinenunabhängige
Repräsentation (sog. Marshalling)
• Aufgaben Daten-Senke: gleicher Ablauf in umgekehrter Reihenfolge
• sowie: Positionierung des Auftrags in der richtigen Queue
• Ergebnisse werden auf dem gleichen Weg zurückgesandt
• Siehe auch Object Request Broker-Konzept im CORBA-Teil
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 15
Übungsaufgabe
• Zielsetzung: Programmierung einer verteilten
Überweisungstransaktion mit TUXEDO
• Schritte:
• Hallo-Welt-Service mit TUXEDO
• Verteilte Verarbeitung einer Überweisung
• Sicherstellung der ACID-Eigenschaften
• Lerneffekte
• Anwendung der TX- und ATMI-Standards sowie von FML-Buffers
• Arbeit mit komplexem System: OS, RDBMS, TP Mon
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 16
Zielsystem
Client
Client
Transfer
Transfer
Deposit
Withdraw
Bern
STUD5
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Deposit
Withdraw
Zürich
STUD2
Kapitel 2: Workshop TP-Heavy – 17
TUXEDO FML-Buffers
• TUXEDO-spezifische Erweiterung der X/Open Typed Buffers
• Datenstruktur zum Austausch zwischen Rechnern
• tpcall(char* svc, char* idata…);
• Vorteil:
• Information durch Feldbezeichner-Wert-Paare (<fname>,<value>)
z.B.: [(VORNAME,”Torsten”), (NACHNAME,”Grabs”)]
• Effizienter Transfer von Puffern “beliebiger” Grösse
• Inhaltsbasiertes Routing (abhängig vom Pufferinhalt)
• Programmierschnittstelle:
• tpalloc:
Anfordern dynmischen Speichers unter TP Mon.Kontrolle
• Finit:
Initialisierung des Puffers
• Fchgs:
Einfügen/Aendern von Feldern im Puffer
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 18
Zielsystem
tx_begin()
Client
Transfer
ATM
tx_commit()
tpcall(char*)
tpcall(char*)
Debit
Credit
EXEC SQL AT DB_NAME
EXEC SQL AT DB_NAME
Bern
Oracle
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Zürich
Oracle
Kapitel 2: Workshop TP-Heavy – 19
Ausblick: Transaktionelle Message Queues
für die Bankapplikation
Client
ATM
Queue
Queue
Transfer
Queue
Bern
Withdraw
Zürich
Credit
DB
DB
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 2: Workshop TP-Heavy – 20
Herunterladen