Disclosed are mechanisms for creating and communicating with computer
processes. An application programming interface (API) presents services
of the 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.