This paper describes the Gaggle, a mechanism for grouping and naming objects in an object-oriented distributed system. Using Gaggles, client objects can access distributed replicated services without regard for the number of objects that provide the service. Gaggles are not themselves a replication mechanism; instead they enable programmers to construct their own replicated distributed services in whatever way is appropriate for the application at hand, and then to encapsulate the result.
From the point of view of a client, a Gaggle can be named and invoked exactly like an object. However, Gaggles can be used to represent individual objects, several ordinary objects, or even several other Gaggles. In this way they encapsulate plurality. If a Gaggle is used as an invokee, one of the objects that it represents is chosen (non-deterministically) to receive the invocation.
KeywordsStable Storage File Object Digital Equipment Corporation Dynamic Type Ordinary Object
Unable to display preview. Download preview PDF.
- Architecture Projects Management Ltd. “ANSA: An Application Programmer’s Introduction to the Architecture”. TR.017, APM Ltd, November 1991.Google Scholar
- Black, A. P. “Supporting Distributed Applications: Experience with Eden”. Proc. 10th ACM Symp. on Operating Systems Prin., December 1985, pp. 181–193.Google Scholar
- Black, A. P. and Hutchinson, N. “Typechecking Polymorphism in Emerald”. Tech. Rep. CRL 91/1 (Revised), DEC Cambridge Research Lab., Cambridge, MA, July 1991.Google Scholar
- Gifford, D. K. “Weighted Voting for Replicated Data”. Proc. 7th ACM Symp. on Operating Systems Prin., December 1979, pp. 150–159.Google Scholar
- Jul, E. Object Mobility in a Distributed Object-Oriented System. Ph.D. Thesis, University of Washington, Dept. of Computer Science, December 1988. (Tech. Rep. 88-12-06).Google Scholar
- Ladin, R., Liskov, B. and Shrira, L. “Lazy Replication: Exploiting the Semantics of Distributed Services”. Proc. of the 9th ACM Symp. on Prin. of Distributed Computing, Quebec City, Quebec, August 1990, pp. 43–57.Google Scholar
- Lampson, B. W. “Designing a Global Name Service”. Proc. 5th ACM Symp. on Prin. Distributed Computing, August 1986, pp. 1–10.Google Scholar
- Pardyak, P. “Group Communication in an Object-Based Environment”. Proc. International Workshop on Object-Orientation in Operating Systems, Paris, France, September 1992.Google Scholar
- Schroeder, M. S. “Software Clerks”. Proc. ACM SIGOPS Workshop on Models and Paradigms for Distributed System Structuring, Le Mont Saint-Michel, France, September 1992.Google Scholar
- Shapiro, M., Gourhant, Y., Narzul, J. L. and Makpangou, M. “Structuring Distributed Applications as Fragmented Objects”. Rapport de Recherche 1404, INRIA, Le Chesnay Cedex, France, January 1991.Google Scholar
- van Renesse, R., Birman, K., Cooper, R., Glade, B. and Stephenson, P. “Reliable Multicast between Microkernels”. Proc. of the USENIX workshop on Micro-Kernels and Other Kernel Architectures, Seattle, Washington, April 1992, pp.269–283.Google Scholar
- van Renesse, R., Cooper, R., Glade, B. and Stephenson, P. “A RISC Approach to Process Groups”. Proc. ACM SIGOPS Workshop on Models and Paradigms for Distributed System Structuring, Le Mont Saint-Michel, France, September 1992.Google Scholar