Structure and Encapsulation in Distributed Systems: The Proxy Principle

We present a novel view of the structuring of distributed systems, and a few examples of its utilization in an object-oriented context. In a distributed system, the structure of a service or subsystem may be complex, being implemented as a set of communicating server objects; however, this complexity of structure should not be apparent to the client. In our proposal, a client must rst acquire a local object, called a proxy, in order to use such a service. The proxy represents the whole set of servers. The client directs all its communication to the proxy. The proxy, and all the objects it represents, collectively form one distributed object, which is not decomposable by the client. Any higher-level communication protocols are internal to this distributed object. Such a view provides a powerful structuring framework for distributed systems; it can be implemented cheaply without sacricing much exibility. It subsumes may previous proposals, but encourages better information-hiding and encapsulation

[1]  David R. Cheriton,et al.  Amaze: A Distributed Multi-Player Game Program using the Distributed V Kernel , 1984, ICDCS.

[2]  Barbara Liskov,et al.  Guardians and Actions: Linguistic Support for Robust, Distributed Programs , 1983, TOPL.

[3]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[4]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[5]  C. A. R. Hoare The structure of an operating system , 1975, Language Hierarchies and Interfaces.

[6]  Thomas J. LeBlanc,et al.  Hierarchical Process Composition in Distributed Operating Systems , 1985, ICDCS.

[7]  Brian Randell,et al.  Operating Systems, An Advanced Course , 1978 .

[8]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[9]  Claude Bétourné,et al.  Distributed Control Through Task Migration via Abstract Networks , 1985, ICDCS.

[10]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.

[11]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[12]  Anita K. Jones The Object Model: A Conceptual Tool for Structuring Software , 1978, Operating Systems.

[13]  Marc Shapiro,et al.  An Experiment in Distributed Program Design, Using Control Enrichment , 1982, ICDCS.

[14]  Nissim Francez,et al.  Script: A communication abstraction mechanism , 1983, PODC '83.

[15]  Willy Zwaenepoel,et al.  Distributed process groups in the V Kernel , 1985, TOCS.

[16]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[17]  Robert S. Fabry,et al.  Capability-based addressing , 1974, CACM.