I would like to know what is the functions for OracleXEClrAgent and OracleMTSRecoveryService.
I know that OracleXETNSListener enable the listener in order for the TCP port (8080 and 1521) to listen, sending and receiving information from these channels. OracleServiceXE has embedded the port 8080 and 1521 and should depend on OracleXETNSListener because if the listener is off, OracleServiceXE won't be able to run properly.
The Listener does the same as the OracleListener has done for many versions - listen for Oracle Service connection requests. If it detects a request for a service that it monitors, it attempts to connect the requestor to the service and then steps out of the way.
The definition of Oracle Service has expanded dramatically over the years. For a while it was simply the database. Now the service can include external jobs and EPG requests.
DBMS_EPG is the 10gR2 replacement for the Apache HTTP and provides HTTP, FTP and WebDAV service. It resides in the database. The listener will monitor the network for these kinds of requests on specific ports (eg: 8080) and pass them to EPG.
OracleMTSRecoveryService dewalswith integrationto the Microsoft Transaction Service - a wonderful way of handling distributed transactions under COM+ control (assuming you don't want to use the MUCH easier built-in distributed transaction capability together with heterogeneousservices). Discussed in depth in the "Oracle® Services for Microsoft Transaction Server Developer's Guide"
OracleXEClrAgent provides the host for the Microsoft Common Language Runtime - documented in the "Oracle Data Provider for .NET Developer's Guide" and "Oracle Database Extensions for .NET Developer's Guide"