An application programming interface (API) presents services of a system
to applications. The API is usable with all processes, local and remote,
and is transparent with respect to the location of processes. A process
table stores information about processes created using the system. The
process table supports centralized process control and peer-to-peer
process communication and synchronization. Each process is assigned a
Universally Unique Identifier (UUID) that uniquely identifies the process
no matter the computing device on which it runs. A parent UUID and a
group UUID may be attached to the process and used for enforcing
dependencies (e.g., for halting the process and all of its child
processes) and for managing arbitrary, user-defined groups, respectively.
A global event is associated with each process. When a process receives
this event, it performs a controlled shutdown, cleans up, and reports
status.