Transaction monitor

from Wikipedia, the free encyclopedia

A transaction monitor (ger .: transaction processing monitor , shortly TP monitor ) is one of the oldest and most popular forms of middleware , whose main mission supporting and unwinding of interactions between applications on different, even heterogeneous computing platforms is. A transaction monitor offers functionality for developing, using, managing and maintaining transactional distributed information systems ; its most important task is to handle applications / operations in a transaction-oriented manner.

history

As one of the oldest forms of middleware , transaction monitors are a mature technology today. One of the oldest implementations are the IMS TM and CICS from IBM. The first transaction monitors offered robust runtime environments for large OLTP applications on mainframes . The systems implemented the transactional concept to enable access to shared data while ensuring data consistency .

The next generation of transaction monitors was client / server based; Transaction monitors have been the dominant form of middleware for several decades and still play an important role in everyday processes such as the processing of bank transactions. In 1998 the Standish Group estimated that around 68 million transactions per second are processed electronically worldwide, 53 million of them using transaction monitors. Nowadays you can hardly find stand-alone transaction monitors, rather they are embedded in larger runtime environments ( containers ). An example of this is the Java Enterprise Environment Java EE .

tasks

Due to the variety of its tasks, it is difficult to specify exactly what a transaction monitor is. Turing award winner Jim Gray says: “ In a contest for the least well defined software term, TP monitor would be a tough contender ” (German: “In a competition for the most vague software term, transaction monitor would be a strong contender”).

Roughly speaking, a transaction monitor integrates various system components (for example a communication system, a runtime system, a presentation system, ...) in order to provide standardized, uniform interfaces for applications / operations that always offer the same behavior in the event of an error. A transaction monitor can be viewed as an operating system for transaction-protected applications whose range of tasks can be roughly divided into the three classes of client-server communication management, transaction management and process management.

Client-server and server-server communication : they allow the services and components involved in an application to be called up in various ways, e.g. with RPCs , with asynchronous messages that use persistent queues ( Message Oriented Middleware ), etc. Transaction monitors control the Part of communication flows between thousands of clients and hundreds of servers.

Transaction Management : The basic infrastructure for running distributed applications is the RPC protocol; it is a concept that is intended to allow a remote procedure call from a client on a server and thereby make it transparent to the client as if it were a local procedure call.

This concept works well in client-server systems when a client contacts a server; but more than two entities are involved and thus more than one remote procedure call is involved in the interaction (e.g. a client that calls procedures on two different servers, or a client that calls a procedure on one server, which in turn calls a database from the server for sequence has), the RPC concept addresses these remote Views independently, which the recovery (engl .: in case of a system error recovery ) of a correct system state very difficult.

A classic example to illustrate this is an application on a client that withdraws money from a bank account in order to transfer it to another account. If the client crashes between the two actions or any other type of error occurs, the withdrawn money would be lost, assuming the client could not make its state persistent.

Transaction monitors implement a transactional extension of the RPC concept; they handle remote procedure calls in a transaction with their inherent ACID properties . In particular, the ACID property implies atomicity , i.e. either all the remote procedure calls involved are processed or none. Transaction monitors thus implement an abstraction from RPC, called transactional RPC (TRPC) .

At TRPC, a group of procedure calls is provided with the transactional brackets BOT (beginning of transaction) and EOT (end of transaction) and treated as a unit. Ensuring this is the task of the so-called transaction management module , which controls the interactions between clients and servers and ensures their atomicity using an implementation of the 2-phase commit protocol .

Transaction management also includes the task of logging (e.g. logging messages) during normal operation in order to be able to take recovery measures in the event of an error.

Process management : Your tasks include starting server processes, initializing transaction programs and controlling their flow; Furthermore, load balancing also falls into this area.

Commercial products

Transaction monitors are integrated in most application servers. There are a number of commercial implementations of transaction monitors, including IBM's Customer Information Control System (CICS), Microsoft Transaction Server , Oracle Tuxedo, NonStop TS / MP (HPE) and open UTM from Fujitsu Siemens Computers ; these can also be found in product suites for enterprise application integration .

Demarcation

A transaction monitor should not be confused with a so-called transaction manager . While the range of tasks of a transaction manager only includes providing a transactional context for different applications / operations, transaction monitors offer transaction-oriented scheduling and management for different resources.

See also

literature

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

Individual evidence

  1. standishgroup.com