2.1.2 Interaction with External Components
The following diagram shows the external components that interact with the transaction processing services.

Figure 2: Components interacting with the transaction processing services
Applications, application services, resource managers, external applications, external application services, external resource managers, and external transaction managers use a set of system interfaces to participate in a distributed transaction and perform transaction-processing-specific operations such as transaction marshaling, propagation, and recovery.
Applications and external applications use the system to:
Demarcate when a transaction begins and completes within a series of operations.
Marshal a transaction to other applications and resource managers.
Propagate a transaction from one transaction manager to another.
Perform administrative operations on a specific transaction or a transaction manager.
Resource managers and external resource managers use the system to:
Register with a transaction manager and perform recovery operations.
Enlist for a specific transaction and participate in the corresponding two-phase commit protocol notifications.
Vote on transaction outcomes.
External transaction managers use the system to:
Enlist with the system as a superior transaction manager or subordinate transaction manager for a specific transaction.
Participate in two-phase commit protocol notifications.
Coordinate recovery operations.
The system can also be used by applications or other systems to provide transaction coordination semantics to higher-level applications. For example, application programming frameworks, such as the Microsoft .NET Framework, or a middle-tier application server system such as COM+ provide transaction processing services to their clients by providing a set of high-level interfaces, but in the background, they can use transaction processing services to fulfill the required transaction coordination semantics. This way, the complexity of interacting with the transaction processing services is minimized.