A specific concern of our research is developing the infrastructure that supports structuring distributed applications by composing components using sequential, choice, and parallel composition, in the anarchic environment of unforeseen applications and unpredicted interactions. We suggest program component units that can be composed in systematic ways to create structured distributed applications. We propose two kinds of compositional units, processes and sessions , and demonstrate properties of these units in the context of other work done on the theory of composition. Composing Distributed Objects on the Internet. We model every program, appliance, and document connected to the Internet with a state that is persistent for the lifetime of its corresponding entity, as shown in Figure 2 .
State is encapsulated in the persistent files of an entity's corresponding process.
A process is a persistent object that may be multithreaded. Given this model, we propose an infrastructure that supports the systematic modification of the states of arbitrary collections of entities. Specific questions that we explore include the following. As a result, our overall distributed system may have millions of persistent objects and hundreds of thousands of concurrent sessions. One of the issues addressed in this paper is the provision of a programming model that has large numbers of processes while using limited resources.