RFC 2372 (rfc2372) - Page 2 of 24
Transaction Internet Protocol - Requirements and Supplemental Information
Alternative Format: Original Text Document
RFC 2372 TIP Requirements and Supplemental Information July 1998
1. Introduction
Transactions are a very useful programming paradigm, greatly
simplifying the writing of distributed applications. When
transactions are employed, no matter how many distributed application
components participate in a particular unit-of-work, the number of
possible outcomes is reduced to only two; that is, either all of the
work completed successfully, or none of it did (this characteristic
is known as atomicity). Applications programming is therefore much
less complex since the programmer does not have to deal with a
multitude of possible failure scenarios. Typically, transaction
semantics are provided by some underlying system infrastructure
(usually in the form of products such as Transaction Processing
Monitors, and/or Databases). This infrastructure deals with failures,
and performs the necessary recovery actions to guarantee the property
of atomicity. The use of transactions enables the development of
reliable distributed applications which would otherwise be difficult,
if not impossible.
A key technology required to support distributed transactions is the
two-phase commit protocol (2-pc). 2-pc protocols have been used in
commercial Transaction Processing (TP) systems for many years, and
are well understood (e.g. the LU6.2 2-pc (syncpoint) protocol was
first implemented more than 12 years ago). Today a number of
different 2-pc protocols are supported by a variety of TP monitor and
database products. 2-pc is used between the components participating
in a distributed unit-of-work (transaction) to ensure agreement by
all parties regarding the outcome of that work (regardless of any
failure).
Today both standard and proprietary 2-pc protocols exist. These
protocols typically employ a "one-pipe" model. That is, the
transaction and application protocols are tightly-integrated,
executing over the same communications channel. An application may
use only the particular communications mechanism associated with the
transaction protocol. The standard protocols (OSI TP, LU6.2) are
complex, with a large footprint and extensive configuration and
administration requirements. For these reasons they are not very
widely deployed. The net of all this is restricted application
flexibility and interoperability if transactions are to be used.
Applications may wish to use a number of communications protocols for
which there are no transactional variants (e.g. HTTP), and be
deployed in very heterogeneous application environments.
In summary, transactions greatly simplify the programming of
distributed applications, and the 2-pc protocol is a key
transactional technology. Current 2-pc protocols only offer
transaction semantics to a limited set of applications, operating
Evans, et. al. Informational