The following are the major dependencies of other subsystems on the Messaging subsystem:
File server: needs to be able to clone open file handles. This allow processes to access files in another process’s data cages area.
Task scheduler: needs to store the capabilities of the process that creates a schedule within the task information for that schedule. The task scheduler must data cage the schedule information.
Kernel: a process needs to be able to obtain the Secure ID (SID) (that is allocated by the kernel to a process) and capabilities of the process that started it.
Application Architecture: ability to launch an application by passing an open file handle that can then be used by the launched application.
Central repository: ability to assign different security capabilities to settings within a repository, and to be able to guarantee committing multiple settings. This can be either as APIs to set an array of settings or as APIs to store settings in memory and provide a commit to disk API.
ESock: hosts the service-providing protocol modules and network interfaces.
ETel: a telephony server to provide a generic interface to initiate, control, and terminate telephone calls.
SQL: a component that provides an SQL database service.