The Stanford Rapide Project

RAPIDE

The X/Open Distributed Transaction Processing (DTP) Industry Standard

Introduction

X/Open Ltd. is a consortium of vendors who are defining portability standards for the UNIX environment. One standard X/Open has defined is for distributed transaction processing (DTP) [references]. The X/Open DTP standard's purpose is to define a standard communication architecture through which multiple application programs may share resources while coordinating their work into transactions that may execute concurrently. It describes several components and their interfaces, a few instances of a system architecture, as well as several protocols -- including the two phase commit protocol. It also includes an application programming interface to allow applications to be portable.

Overall, the X/Open DTP documents total over 400 pages. Even so, the standard attempts to ensure only the atomicity of transaction systems and does not (so far) address the other ACID properties. The description of the industry standard contained in the X/Open documents is informal, consisting of English text together with component interfaces given in C. The important features of the standard are the interfaces and protocols (in English and state tables) by which the interface functions must be called in specified sequences. The calling sequences are described in terms of a single thread of control and C function calls.

Many different systems with various applications and resources may satisfy this standard. Ones that do are hopefully easier to combine together, thus promoting the goal of ``open'' systems where compliant systems can be built with composable parts from more than one software vendor at relatively low cost by ``instantiating'' an ``open'' shared design.

Architecture

The X/Open DTP standard is a distributed transaction processing architecture for a distributed two phase commit protocol. The architecture defines application programming interfaces and interactions among transactional applications (APs), transaction managers (TMs) and resource managers (RMs).

[X/Open DTP Architecture]

Architecture, when used in this context, deals with the gross overall structure and composition of software components that are used to build a system. Structural issues include: gross organization and global control structure; assignment of functionality to system components; protocols for communication and synchronization; scaling and performance; and selection amoung design alternatives. Each component has an interface that defines the ways the component can communicate with other components. A minimal architecture definition consists of a set of component interfaces and a set of connections between those interfaces.

Reference Architecture

The Rapide reference architecture for the X/Open DTP standard is a formalization that is executable and testable. It formally defines the component interfaces and architectures of compliant systems. The reference architecture also formally defines constraints on and prototype behaviors of the communication protocols for executions of the architectures. This reference architecture based approach formalizes many of the documents informal ideas in terms of Rapide's computational model --- partial orders of event sets (posets).

The local instance architecture depicted in the figure is represented in Rapide via the code: local instance architecture. See also selected constraints of this architecture, exemplary behaviors for the components and an example execution.

Isolation Extension

The standard is still evolving and currently only defines a commitment protocol for ensuring atomicity, and even in this definition no guarantees are made in the presence of failures. In the case of isolation, only very brief descriptions are given that relate to only the most basic forms, even though more relaxed forms of isolation are viewed as a significant advance for SQL2. We studied the effects of extending the standard with several constraints that limit every transaction's execution to be isolated from the other concurrently executing transactions and with prototypical behaviors that implement the two phase locking protocol that ensures isolation.

Conformance Testing

One function X/Open Ltd. performs is the branding of compliant components. X/Open has introduced a trademark to identify products that conform to its specifications. Branding assures the user that the product works as outlined by the standard. When branding works (and X/Open hasn't yet got it working across the board), it ensures that information systems buyers can choose platform vendor, or even application vendor, without fear of interoperability problems.

At present, X/Open endorses 750 products that carry the X/Open brand via conformance testing. Conformance testing involves detecting differences between an application's execution and a standard's constraints. Generally, such testing is called runtime consistency checking, a technique for verifying whether an execution of a program satisfies a specification at run time. Current approaches are limited and cannot detect all violations of distributed transaction processing, e.g., a response to a poll based upon some (not all) of its inputs. However, Rapide uses an execution model that allows the encoding of causal information so that such violations may be detected.

The fundamental principle for conformance testing in Rapide is based upon event pattern mappings. Event pattern mappings specify relationships between architectures, and they permit an application's execution to be automatically runtime tested for conformance with the constraints of a reference architecture.

Publications

For More Information

See the pages for X/Open Ltd. and more specifically the X/Open Transaction Processing Publications.
8/5/97/lp