Encapsulating Plurality

  • Andrew P. Black
  • Mark P. Immel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 707)


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.


Stable Storage File Object Digital Equipment Corporation Dynamic Type Ordinary Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Architecture Projects Management Ltd. “ANSA: An Application Programmer’s Introduction to the Architecture”. TR.017, APM Ltd, November 1991.Google Scholar
  2. [2]
    Bernstein, P. A. and Goodman, N. “An Algorithm for Concurrency Control and Recovery in Replicated Distributed Databases”. Trans. Database Systems 9,4 (December 1984), pp.596–615.CrossRefMathSciNetGoogle Scholar
  3. [3]
    Birman, K. P., Schiper, A. and Stephenson, P. “Lightweight Causal and Atomic Group Multicast”. Trans. Computer Systems 9,3 (August 1991), pp.272–314.CrossRefGoogle Scholar
  4. [4]
    Black, A. P. “Supporting Distributed Applications: Experience with Eden”. Proc. 10th ACM Symp. on Operating Systems Prin., December 1985, pp. 181–193.Google Scholar
  5. [5]
    Black, A. P., Hutchinson, N., Jul, E., Levy, H. M. and Carter, L. “Distribution and Abstract Types in Emerald”. IEEE Trans. on Software Eng. SE-13,1 (January 1987), pp. 65–76.CrossRefGoogle Scholar
  6. [6]
    Black, A. P. and Artsy, Y. “Implementing Location Independent Invocation”. IEEE Trans. on Parallel and Distributed Syst. 1,1 (January 1990), pp. 107–119.CrossRefGoogle Scholar
  7. [7]
    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
  8. [8]
    Gifford, D. K. “Weighted Voting for Replicated Data”. Proc. 7th ACM Symp. on Operating Systems Prin., December 1979, pp. 150–159.Google Scholar
  9. [9]
    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
  10. [10]
    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
  11. [11]
    Lampson, B. W. “Designing a Global Name Service”. Proc. 5th ACM Symp. on Prin. Distributed Computing, August 1986, pp. 1–10.Google Scholar
  12. [12]
    Pardyak, P. “Group Communication in an Object-Based Environment”. Proc. International Workshop on Object-Orientation in Operating Systems, Paris, France, September 1992.Google Scholar
  13. [13]
    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
  14. [14]
    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
  15. [15]
    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
  16. [16]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Andrew P. Black
    • 1
  • Mark P. Immel
  1. 1.Cambridge Research LaboratoryDigital Equipment CorporationCambridgeUSA

Personalised recommendations