Once a process becomes ready at a given location, it remains at that location until frozen. While a particular process may be instantiated at any location, its persistent state is always stored at its home address. A personal network consists of an arrangement of processes and a set of directed, typed, secure communication channels connecting process output ports to process input ports. Its topology can be represented by a labeled directed graph, where each node is a process and each edge is a communication channel labeled with its type and the input and output ports connected by that channel. Since processes can freely create input ports, output ports, and channels, the topology of a personal network is completely dynamic.
Processes communicate with each other by passing messages.
Each process has a set of inboxes and outboxes , collectively called mailboxes . Every mailbox has an associated type and access control list, both of which are used to enforce personal network structure and security. Our framework's communication layer works by removing the message at the head of a nonempty outbox and appending a copy to each connected inbox. If the communication layer cannot deliver a message, it raises an exception in the sender containing the message, the destination inbox, and the specific error condition. The communication layer eventually handles every message at the head of an outbox.