The JTS specification defines five distinct players that take part in transaction processing:
1. Transaction Manager – provides services for transaction demarcation, resource management, synchronization and transaction context propagation.
2. Resource Manager – provides access to the transactional resources like database server or message queue.
3. Application Server or Transaction Processing Monitor – provides run-time environment for the applications and manages the state of the transactions.
4. Application – Most likely operates in run-time environment provided by Application Server. In occasional scenario – it may run in standalone mode.
5. Communication Resource Manager – (CRM) facilitates transaction context propagation between multiple Transaction Managers.