Kap. 2 Middleware-Infrastruktur durch Transaction Processing Monitore (“TP-Heavy”) 2.1 Architekturüberblick • • • Dreistufige/mehrstufige Architektur (“Three-Tier / Multi-Tier”) Aufgabenteilung zwischen Client, Middleware und Server Basis-Middleware-Funktionalität 2.2 Funktionalität und Aufbau eines TP-Monitors • • TP Monitor als Transaktionsbetriebssystem Behandlung von Transaktionen: X/Open DTP 2.3 Workshop • TP-Heavy am Beispiel des TP-Monitors Tuxedo Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 1 2.1 Drei- oder Mehrstufen Architektur G G G G Bisher (zweistufige Architektur) sind wir vor der Frage gestanden, ob die Anwendungsentwicklung im Client (Fat Client) oder im Server (Fat Server) bereitgestellt werden soll Alternative: Einführung einer zusätzlichen Schicht –unabhängig von Client und DB-Server– für die Bereitstellung von Anwendungsfunktionalität • Dreistufige Architekturen (Three-Tier) Weitere Verallgemeinerung: Aufteilung der Anwendungsfunktionalität in mehrere Komponenten, die sich gegenseitig aufrufen (wiederholte Anwendung des Client/Server-Prinzips) • Mehrstufige Architekturen (Multi-Tier) Voraussetzung: Möglichkeit, diese Komponenten auch im Falle von Heterogenität und physischer Verteilung zusammenzuführen ➜ Middleware Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 2 Three-Tier-Architektur G G Application Library Client Client Idee: Zusätzliche Schicht (Applikationsserver) für Anwendungsfunktionalität Doppelrolle: Server und DB-Client gleichzeitig Betriebssystem Server Betriebssystem Application Library DB Server Präsentation Server DB Client Library Client Anwendung DB Server Library Betriebssystem Betriebssystem Anwendungslogik Datenhaltung Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 3 Hauptmerkmale und Vorteile der Three-Tier-Architektur G Mittlere Schicht ist • • G (künstlicher) Server dem (eigentlichen) Client gegenüber (künstlicher) Client dem (eigentlichen) Server gegenüber. Die folgenden Hauptvorteile resultieren daraus: • • • • Anwendungsentwicklung unabhängig vom DBMS-Hersteller Flexibilität: Verwendung von DBMSen verschiedener Hersteller Verfügbarkeit und Lastbalancierung: Replikation von Servern Flexible (technische) Fehlerbehandlung durch Neustart von Teilaktivitäten Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 4 IT-Umgebung eines Grossunternehmens (ca.1996) Terminals PCs > 9000 Terminals (3270) Terminalemulation auf jedem PC 600 PC-LANs 19000 PCs (OS/2, Win 3.11, NT) Grossteil der Applikationen terminalbasiert automatisierte SW-Verteilung (6000 mal / Jahr) Netzwerk Mainframes 2 Rechenzentren 10 Mainframes (MVS, UNIX) DB2, IMS/DB 3500 MIPS 18 TB Disk Printfabrik Multiprotokollnetz (TCP/IP, SNA) 11 Mio Txn. / Tag 50000 Jobs / Nacht 230 Mio Blatt Papier / Jahr 800 geänderte Programme pro Woche Objektverwaltung höherer Ordnung (OHO) – SS 2001 Workstations 800 Workstations und Servers (AIX, Solaris, …) > 100 C/S-Applikationen (davon eine mit > 1000 Benutzern) Diverse Spezialsysteme Kapitel 2: Vorlesung TP-Heavy – 5 IT-Umgebung: Anforderungen G Interoperabilität • • Zwischen heterogenen Plattformen Zwischen zugekauften und eigenen Lösungen, … • Über heterogenen Datenbanken • Bestehender Systeme bzw. Anwendungen um neue Bedürfnisse G Verteilte Transaktionen G Flexible Erweiterung / Anpassung G Sanfte Daten-Migration • Von bestehenden Lösungen auf neue Systeme Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 6 Middleware: Charakterisierung … G G Zur Verbindung von Client- und Server-Komponenten (bzw. auch zur Server/Server-Kommunikation) Definition: Middleware is a stand-alone software entity providing services for one or more applications. (= application infrastructure software) • • G „Not designed to meet business needs but rather application needs“, d.h. Middleware stellt keine Anwendungsfunktionalität zur Verfügung, sondern (Basis-) Dienste zur Unterstützung der Entwicklung und Ausführung von Anwendungen Trennung von Infrastruktur-Funktionalität und Anwendungsfunktionalität Kommunikations-Middleware: Grundlage für die Kommunikation zwischen kooperierenden Prozessen • RPC (Remote Procedure Call) – Hauptsächlich synchrone Ausführung von Prozeduren auf einem entfernten Prozess – Oft implementiert als Teil des Betriebssystems – z.B. in Client-Server-Datenbanksystemen, Echtzeit-Kommunikation Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 7 … Middleware: Charakterisierung G G Middleware Services: Bereitstellung von Diensten aufbauend auf BasisKommunikations-Middleware • Datenbankzugriff („SQL-Middleware“, Kapitel 1) – CLI, ODBC, JDBC • (Verteilte) Transaktionen (dieses Kapitel sowie 4, 5 und 6) – TxRPC, 2PC • Verteilte Objektverwaltung (Kapitel 3, 4, 5) – ORB • Asynchrone Kommunikation (Kapitel 6) – Messages Middleware Frameworks: • Von anwendungsneutraler Software-Umgebung zur Entwicklung von Anwendungen und gleichzeitig auch Laufzeitumgebung für diese, z.B. – Transaktionsmonitore – CORBA – Object Monitors – Publish/Subscribe-Systeme • Bis hin zu anwendungsspezifischen Tools (z.B. Computer-aided Software Engineering Workbenches) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 8 Middleware: Übersicht G Middleware: Software-Schicht in der Mitte zwischen … • • • … Betriebssystem/Netzwerk und Anwendungsprogramm … Clients und Server Interoperabilität zwischen heterogenen Plattformen ➜ Mehr als nur „/“ in Client/Server ClientProgramm Middleware Frameworks Middleware Services ServerProgramm Kommunikations-Middleware Betriebssystem und Netzwerk-Software Betriebssystem und Netzwerk-Software Betriebssystem und Netzwerk-Software Computer- und Netzwerk-Hardware Computer- und Netzwerk-Hardware Computer- und Netzwerk-Hardware Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 9 2.2 TP-Monitor: Funktionalität und Aufbau G G Definition: Betriebssystem für Transaktionsverarbeitung (“managing client/server transactions”). Weiter gefasst: Middleware-Framework (d.h. Infrastruktur) für die Entwicklung und Ausführung von transaktionalen Anwendungen, Diensten und Komponenten der mittleren Stufe einer dreistufigen Architektur. • TP-Heavy: Verwendung von TP-Monitoren für die Entwicklung und Ausführung verteilter Anwendungen Hauptaufgaben eines TP-Monitors • • • Transaktionsverwaltung: Garantie von ACID-Eigenschaften für globale Transaktionen, unabhängig davon, ob DBMSs verschiedener Hersteller involviert sind (Verteilung, Heterogenität). Durchführung und Überwachung eines Zwei-Phasen-Commit (Basierend auf X/Open Distributed Transaction Processing (DTP)-Standard) Prozessmanagement: Starten von Serverprozessen, Durchschleusen/Trichtern (“Funneling”) von eingehenden Requests, Überwachen der Ausführung und Lastbalancierung. Client/Server-und Server/Server-Kommunikation: Ausführungsgarantien durch TxRPC (“transactional remote procedure call”), Transactional Queues und MOMs (Message-oriented Middleware) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 10 Middleware-Charakteristik von TP-Monitoren G TP-Monitor (Darstellung nach Bernstein/Newcomer): • • Bindemittel (“Glue”) für Komponenten und Schicht (= Fournier, “Veneer”) für Anwendungen TP-Monitor TP application programs TP monitor API veneer Request routing User interface services Transactional communications Operating system services Objektverwaltung höherer Ordnung (OHO) – SS 2001 Two-phase commit Communication services … Database system services Kapitel 2: Vorlesung TP-Heavy – 11 TP Monitor als Middleware-Framework G G G TPM Library Client Client Client: Aufruf entfernter Anwendungen “tpcall(....)” Server: Führt SQL-Aufrufe aus TP-Monitor als Server und als DB-Client: Zusammenfassung aller DB-Zugriffe innerhalb des tpcalls des Clients in eine Transaktion Betriebssystem Server Betriebssystem TPM Library DB Server Betriebssystem Objektverwaltung höherer Ordnung (OHO) – SS 2001 Server DB Client Library Client TP-Monitor DB Server Library Betriebssystem Kapitel 2: Vorlesung TP-Heavy – 12 Wiederholung: Transaktionsverwaltung & ACID G G Transaktionen sind Folgen von logisch zusammengehörenden Operationen in einer oder in mehreren Datenbanken mit ACIDEigenschaften ACID-Eigenschaften • • • • Atomicity (Atomarität) – Eine Transaktion wird entweder komplett ausgeführt (“commit”) oder erscheint so, als wäre sie nie gestartet worden, d.h. sie hinterlässt keine Effekte (“rollback”) Consistency (Konsistenz) – Eine Transaktion führt die Datenbank von einem konsistenten Zustand in einen anderen konsistenten Zustand über Isolation – Transaktionen, auch wenn parallel ausgeführt, erscheinen so als ob sie isoliert voneinander (d.h. sequentiell) ausgeführt wurden Durability (Persistenz) – Nach dem Commit einer Transaktion sind ihre Effekte dauerhaft, d.h. überleben auch Systemabstürze Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 13 Verteilte TP-Monitor-Transaktion Kontrollsphäre der verteilten, vom TP-Monitor durch 2PC koordinierten Transaktion Transactional Application A Receive SQL@DB1 Call B SQL@DB2 Return Transactional Application B Receive SQL@DB2 Return Kontext DB1 Objektverwaltung höherer Ordnung (OHO) – SS 2001 DB2 Kapitel 2: Vorlesung TP-Heavy – 14 Prozessmanagement: Betriebssystemlösung Ein Server-Prozess per Client Enorme Belastung für das Betriebssystem bei grosser Anzahl Clients Präsentation • Application Service C Prozess Prozess Prozess Prozess Prozess Datenhaltung Application Service C Prozess Application Service C Application Service A Prozess Application Service A Application Service B Prozess … Application Service B Application Service A … Anwendungslogik G Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 15 … TP-Monitor hält eine Menge von vorgestarteten ServerProzessen bereit (Bündelung) ● Wiederverwendung der Prozesse – Weniger Aufwand für das Betriebssystem ● Load Balancing – TP-Monitor weist ClientRequests freie ServerProzesse zu, oder – Startet neue ServerProzesse ● Application Service B Application Service C Prozess Prozess Prozess Datenhaltung Application Service A TP-Monitor Anwendungslogik (+ TP-Middleware) Präsentation Prozessmanagement: TP-Monitor-Lösung Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 16 Client/Server- u. Server/Server-Kommunikation G Transactional Remote Procedure Call (TxRPC): • • • • üblicher RPC + Zusätzlich: Aufruf wird (Sub-)Transaktion der globalen verteilten Client-Transaktion Jeder Transaktion wird eine automatisch vergebene Transaktionskennung (TXID) zugewiesen Jeder Aufruf bzw. jede Message enthält —neben den eigentlichen Parametern— die TXID der zugehörigen Transaktion Mittels TXID … – Koordiniert der TP-Monitor alle Teilaktivitäten, d.h. entscheidet über gemeinsames Commit oder Rollback (2PC-Protokoll) – Garantiert, dass Nachrichten empfangen bzw. Services genau einmal gestartet werden (“exactly-once” Semantik) Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 17 X/Open DTP G G Standardisierung von APIs für die Unterstützung der Entwicklung verteilter Transaktionen basierend auf dem Two-Phase CommitProtokoll (2PC): X/Open DTP (Distributed Transaction Processing) • Erste Version des Standards 1991 veröffentlicht Unterscheidung mehrerer Komponenten • • • RM: Resource Manager, z.B. DBMS TM: Transaction Manager CRM: Communications Resource Manager ➜ Es werden unterschiedliche Schnittstellen benötigt • Für die Interaktion von Applikationen mit diesen Komponenten bzw. • Zwischen unterschiedlichen Komponenten Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 18 X/Open DTP: Gesamtarchitektur Application (AP) RM API XATMI Transaction Manager (TM) Resource Manager (RM) TX API XA TxRPC CPI-C Communication Resource Managers (CRM) XA+ XAP-TP Interface OSI-TP TCP/IP Objektverwaltung höherer Ordnung (OHO) – SS 2001 APPC OSI Kapitel 2: Vorlesung TP-Heavy – 19 X/Open DTP: APIs G G G RM API = Resource Manager Application Program Interface • TX API = API zum Transaction Manager (TM) • G G Festlegung der Transaktionsgrenzen: BeginTX, CommitTX, AbortTX Transactional Communication zum Aufruf von Anwendungsdiensten in einem Transaktionskontext. Hierzu werden in X/Open DTP die folgenden existierenden APIs übernommen • G z.B. ESQL, CLI • • XATMI, basierend auf Tuxedo’s Application to Transaction Monitor Interface (ATMI) TxRPC (Transactional Remote Procedure Call), basierend auf RPC CPI-C, basierend auf IBM “peer-to-peer” XA API Interface zwischen RM und TM im wesentlichen für die eigentliche Durchführung des 2PC: PrepareCommit, Commit, Rollback XA+ API: Erweiterung von XA die es einem CRM erlaubt, dem TM mitzuteilen, dass ein weiterer (“untergeordneter”) Knoten an der verteilten Transaktion teilnimmt OSI-TP: Zur Kommunikation heterogener Transaktionsmanager Objektverwaltung höherer Ordnung (OHO) – SS 2001 Kapitel 2: Vorlesung TP-Heavy – 20