2.1.3 System Components
This section describes the externally visible view of the system and the components within the system.
The conceptual framework for the transaction processing services is defined in terms of the roles that are specified in [MS-DTCO] section 1.3.3. The most basic role interaction scenario is shown in the following diagram. The application performs work on a local resource manager. No propagation is necessary because the resource manager and the application share a common local transaction manager. All communications between the application and the transaction manager, between the resource manager and the transaction manager, and between the management tool and the transaction manager are based on core protocols. Communications between the application and the resource manager are implementation-specific.

Figure 3: Basic communication between the roles as defined in the transaction lifecycle
The following roles use the core protocols:
Application: A client application that performs transacted work on a number of resource managers. The application creates a transaction, and therefore, only that application has the right to commit the transaction.
Application service: A service that accepts requests to perform transacted work on local resource managers. An application service does not have the right to commit transactions.
Transaction manager: A service that coordinates the lifetime of transactions by providing functionality for resource managers to enlist in these transactions. The transaction manager also provides functionality to enlist in transactions that are coordinated by remote transaction managers.
Resource manager: A participant that is responsible for coordinating the state of a resource with the outcome of transactions. For a specified transaction, a resource manager enlists with exactly one transaction manager to vote on that transaction outcome and to obtain the final outcome.
Management tool: An application that monitors the health of a transaction manager and configures settings that are related to transaction coordination.
The following roles use the optional protocols:
External application: An application that uses a protocol other than a core protocol to communicate with the transaction processing services.
External application service: An application service that uses a protocol other than a core protocol to communicate with the transaction processing services.
External transaction manager: A transaction manager that uses a protocol other than a core protocol to communicate with the transaction processing services.
External resource manager: A resource manager that uses a protocol other than a core protocol to communicate with the transaction processing services.
The following diagram shows a distributed scenario. The application performs work on a local resource manager and a remote resource manager. It is necessary for the transaction to be propagated from the application's local transaction manager to the remote resource manager's transaction manager.

Figure 4: Distributed communication between the roles as defined in the transaction lifecycle
As shown in the previous diagram, the system uses various facets to enable communication between different roles. Specific details about these facets and their uses are discussed later in this section.
The communication between the application and application service, between the application and the resource manager, and between the application service and the resource manager are implementation-specific. The expectation is that this communication consists of a request for work to be done, along with all information that is necessary to enlist in the transaction, including the transaction identifier. Otherwise, all other communication is based on the core protocols.