Networks of computers provide the opportunity for a user to run distributed applications and to distribute his workload among many available machines. Unfortunately, the design of current command interpreters, and in many cases of the underlying operating systems, often makes this hard to do. The design of remote execution and program management facilities is often based upon the assumption that programs run at a single site, and that they run as a single process, or have a restricted class of configurations. These problems can be corrected by providing a layer of distributed services between client programs and the underlying operating system. PPM, the Personal Program Manager, provides a service layer that can be used by both command interpreters and distributed applications. The PPM Services provide remote execution facilities that allow distributed programs to be run. They support a login session abstraction that provides location transparent bookkeeping and a common pool of name-value bindings in a session that can encompass many machines. They support a job abstraction that provides job control actions, such as termination, a means of expressing intrajob failure dependencies, and a pool of job-specific name-value bindings. These abstractions make the writing and running of distributed programs easier, while also making it easier to redistribute the work load.

The PPM Creation Service allows distributed jobs to be created and their communications configured. It allows these jobs to be suspended and terminated as units. The PPM Bookkeeping Service allows clients to monitor the work within a login session that may span many hosts. These services simplify the writing of programs that behave predictably in the face of machine failures. The PPM Environment Service allows programs to share name-value bindings with one another. This is useful as a simple means of interprocess communication, as a repository of information affecting future programs, and as a way of communicating to programs user-specific settings for values used by programs. The Environment Service provides a rich name space that allows bindings to affect processes on the basis of where they run, what program they run, from what command session they run, and so forth.

The PPM Services provide an interface that hides many of the details of the underlying system from their clients. They can be implemented on a variety of systems and their facilities used to support login sessions spanning machines running heterogeneous operating systems. Distributed jobs can thus take advantage of the facilities of different systems, without losing the ability to interact through a single interface. A prototype of the PPM Services for UNIX 4.3BSD is described, as well as the applicability of the PPM Services to other operating systems. Several issues related to the design of command interpreters for distributed login sessions are discussed, as well as a description of a prototype command interpreter.





Download Full History