Transaction Process Monitor

Transaction Process Monitor

Ein Transaktionsmonitor (engl.: transaction processing monitor, kurz TP monitor) ist eine der ältesten und bekanntesten Formen von Middleware, deren Hauptaufgabe das Unterstützen und Abwickeln von Interaktionen zwischen Anwendungen auf verschiedenen, auch heterogenen Rechnerplattformen ist. Ein Transaktionsmonitor bietet Funktionalität zum Entwickeln, Nutzen, Verwalten und Warten transaktionaler verteilter Informationssysteme; seine wichtigste Aufgabe besteht darin, Anwendungen/Operationen transaktionsorientiert abzuwickeln.

Inhaltsverzeichnis

Geschichte

Als eine der ältesten Formen von Middleware sind Transaktionsmonitore heute eine ausgereifte Technologie. Eine der ältesten Implementierungen ist IBM's Customer Information Control System (CICS), die Ende der 1960er entwickelt wurde. Die ersten Transaktionsmonitore boten auf Mainframes robuste Laufzeitumgebungen für große OLTP-Anwendungen. Um das Zugreifen auf gemeinsame Daten zu ermöglichen und dabei die Datenkonsistenz zu sichern, implementierten die Systeme das transaktionale Konzept.

Die nächste Generation von Transaktionsmonitoren war Client-/Server-basiert; für mehrere Jahrzehnte waren Transaktionsmonitore die dominierende Form von Middleware und spielen auch heute noch eine wichtige Rolle bei alltäglichen Vorgängen wie beispielsweise dem Abwickeln von Banktransaktionen. 1998 schätzte die Standish Group[1], dass weltweit ca. 68 Mio Transaktionen pro Sekunde elektronisch abgewickelt werden und 53 Mio davon mithilfe von Transaktionsmonitoren. Heutzutage findet man kaum noch alleinstehende Transaktionsmonitore, vielmehr sind diese in größere Laufzeit-Umgebungen (Container) mit eingebettet. Ein Beispiel hierfür ist die Java Enterprise Umgebung J2EE.

Aufgaben

Aufgrund der Vielfalt seiner Aufgaben ist es schwierig zu präzisieren, was genau ein Transaktionsmonitor ist. Turing-Preisträger Jim Gray meint dazu: “In a contest for the least well defined software term, TP Monitor would be a tough contender” (deutsch: „In einem Wettbewerb um den am schlechtesten definierten Software-Begriff wäre ein Transaktionsmonitor ein harter Konkurrent“).

Grob gesagt integriert ein Transaktionsmonitor verschiedene Systemkomponenten (beispielsweise ein Kommunikationssystem, ein Laufzeitsystem, ein Präsentationssystem, ...), um für Anwendungen/Operationen standardisierte, gleichförmige Schnittstellen zu bieten, die im Fehlerfall stets dasselbe Verhalten bieten. Man kann einen Transaktionsmonitor als ein Betriebssystem für transaktionsgeschützte Anwendungen ansehen, dessen Aufgabenspektrum sich grob in die drei Klassen Client-Server-Kommunikationsverwaltung, Transaktionsverwaltung und Prozessverwaltung aufteilen lässt.

Client-Server- und Server-Server-Kommunikation: sie erlauben die an einer Anwendung beteiligten Dienste und Komponenten auf verschiedene Art aufzurufen, bspw. mit RPCs, mit asynchronen Nachrichten, die persistente Warteschlangen nutzen (Message Oriented Middleware), usw. Transaktionsmonitoren kontrollieren dabei zum Teil Kommunikationsflüsse zwischen Tausenden von Clients und hunderten von Servern.

Transaktionsverwaltung: Die grundlegende Infrastruktur zum Ausführen verteilter Anwendungen bildet das RPC-Protokoll; es ist ein Konzept, das dafür gedacht ist, einen entfernten Prozeduraufruf eines Clients bei einem Server zu ermöglichen und ihn dabei für den Client transparent zu machen, als wäre es ein lokaler Prozeduraufruf.

Dieses Konzept funktioniert gut in Client-Server-Systemen, wenn ein Client einen Server kontaktet; sind aber mehr als zwei Entitäten beteiligt und somit mehr als ein entfernter Prozeduraufruf in die Interaktion involviert (beispielsweise ein Client, der Prozeduren auf zwei verschiedenen Servern aufruft, oder ein Client, der eine Prozedur auf einem Server aufruft, was wiederum einen Datenbankaufruf des Servers zur Folge hat), so behandelt das RPC-Konzept diese entfernten Aufrufe unabhängig voneinander, was im Falle eines Systemfehlers die Wiederherstellung (engl.: recovery) eines korrekten Systemzustandes sehr erschwert.

Ein klassisches Beispiel, um dies zu illustrieren, ist eine Anwendung auf einem Client, die Geld von einem Bankkonto abhebt, um es auf ein anderes Konto zu transferieren. Sollte der Client zwischen beiden Aktionen abstürzen oder ein anders gearteter Fehler auftreten, wäre das abgehobene Geld verloren, gesetzt, der Client konnte seinen Zustand nicht persistent machen.

Transaktionsmonitore implementieren eine transaktionale Erweiterung des RPC-Konzeptes; sie wickeln entfernte Prozeduraufrufe in einer Transaktion mit den ihr inhärenten ACID-Eigenschaften ab. Insbesondere impliziert die ACID-Eigenschaft Atomarität, also dass entweder alle beteiligten entfernten Prozeduraufrufe abgewickelt werden oder keiner. Transaktionsmonitore implementieren damit also eine Abstraktion von RPC, genannt transaktionaler RPC (TRPC).

Eine Gruppe von Prozeduraufrufen wird bei TRPC sozusagen mit der transaktionalen Klammer BOT (beginning of transaction) und EOT (end of transaction) versehen und als Einheit behandelt. Dies sicherzustellen ist Aufgabe des sog. Transaktionsmanagement-Moduls, das die Interaktionen zwischen Clients und Servern steuert und deren Atomarität mithilfe einer Implementierung des 2-Phasen-Commit-Protokolls sichert.

Transaktionsverwaltung beinhaltet auch die Aufgabe, während des Normalbetriebs Logging (bspw. Protokollieren von Nachrichten) durchzuführen, um im Fehlerfall Wiederherstellungsmaßnahmen ergreifen zu können.

Prozessverwaltung: Zu ihren Aufgaben zählt unter anderem das Starten von Server-Prozessen, das Initialisieren von Transaktionsprogrammen und das Kontrollieren ihres Ablaufs; des Weiteren fällt auch Lastbalancierung in diesen Bereich.

Kommerzielle Produkte

Transaktionsmonitore sind in den meisten Applikationsservern und Web Service-Implementierungen integriert. Es gibt eine stattliche Anzahl kommerzieller Implementierungen von Transaktionsmonitoren, beispielsweise IBM's Customer Information Control System (CICS), Microsoft Transaction Server, BEA Tuxedo und openUTM von Fujitsu Siemens Computers; diese sind auch in Produkt-Suiten für Enterprise Application Integration zu finden.

Abgrenzung

Ein Transaktionsmonitor sollte nicht mit einem sog. Transaktionsmanager verwechselt werden. Während das Aufgabenspektrum eines Transaktionsmanagers lediglich das Bereitstellen eines transaktionalen Kontextes für verschiedene Anwendungen/Operationen umfasst, bieten Transaktionsmonitore transaktionsorientiertes Scheduling und Management für verschiedene Ressourcen.

Siehe auch

Literatur

  • Gustavo Alonso, F. Casati, H. Kuno, V. Machiraju: Web Services. Springer, Berlin 2003, ISBN 3-540-44008-9

Quellen und Anmerkungen

  1. http://www.standishgroup.com/

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Transaction processing system — A Transaction Processing System To be considered a transaction processing system the computer must pass the ACID test.From a technical perspective, a Transaction Processing System (or Transaction Processing Monitor) monitors transaction programs …   Wikipedia

  • Monitor — To seek information about an agent s behavior; a device that provides such information. The New York Times Financial Glossary * * * ▪ I. monitor mon‧i‧tor 1 [ˈmɒntə ǁ ˈmɑːntər] verb [transitive] to carefully watch and check a situation in order …   Financial and business terms

  • monitor — To seek information about an agent s behavior; a device that provides such information. Bloomberg Financial Dictionary * * * ▪ I. monitor mon‧i‧tor 1 [ˈmɒntə ǁ ˈmɑːntər] verb [transitive] to carefully watch and check a situation in order to see …   Financial and business terms

  • Java Transaction API — The Java Transaction API (JTA) is one of the Java EE APIs allowing distributed transactions to be done across multiple XA resources. JTA is a specification developed under the Java Community Process as JSR 907. JTA provides for:* demarcation of… …   Wikipedia

  • Microsoft Transaction Server — (MTS) was software that provided services to Component Object Model (COM) software components, to make it easier to create large distributed applications. The major services provided by MTS were automated transaction management, instance… …   Wikipedia

  • Windows NT startup process — The Windows NT startup process is the process by which Windows NT 4.0, Windows 2000, Windows XP and Windows Server 2003 operating systems initialize. In Windows Vista and later, this process has changed slightly; see Windows Vista startup process …   Wikipedia

  • Distributed Transaction Coordinator — The Distributed Transaction Coordinator (MSDTC) service is a component of modern versions of Microsoft Windows that is responsible for coordinating transactions that span multiple resource managers, such as databases, message queues, and file… …   Wikipedia

  • Business Process Modeling Notation — The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is now being maintained by the Object… …   Wikipedia

  • TPM — steht für: Takte pro Minute, ein Tempomaß für Tanzmusik The Phantom Menace, siehe Star Wars: Episode I – Die dunkle Bedrohung Theorie Poröser Medien Third Party Maintenance Topiramat, ein Antiepileptikum Total Productive Maintenance Transaction… …   Deutsch Wikipedia

  • Oracle Database — Developer(s) Oracle Corporation Development status Active Written in …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”