Adaptive parameter passing

  • Cristina Videira Lopes
Parallelism and Distribution
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1049)

Abstract

Control over parameter passing is a key issue in distributed object-oriented applications. The two simplest solutions — passing objects by global reference and passing objects by deep copy — both have significant drawbacks. Instead, an intermediate amount of copying is often best. However, achieving the right amount of copying is difficult for two reasons: (i) compilers and operating systems cannot automatically make the best decision on how much to copy; (ii) there hasn't been a good mechanism for the programmer to express the intermediate amount of copying that should be done.

This paper presents a new mechanism that allows programmers to express in a natural and succinct way how much of the object graph should be copied to the remote context. The specifications are done using a very simple declarative meta-language — GOOP — that has graphs of classes as its domain. GOOP allows the specification of: (i) whether the parameter object should be passed by copy or by reference; and (ii) if passed by copy, what parts of the parameter object's graph should be copied.

Keywords

Address Space Remote Service Class Graph Object Graph Graph Language 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abtracting Object Interactions Using Compositions Filters. In Guerraoui, Nierstrasz, and Riveill, editors, ECOOP'93 Workshop on Object-Based Distributed Programming, pages 152–184. Springer-Verlag, 1994.Google Scholar
  2. 2.
    J. K. Bennet. The Design and Implementation of Distributed Smalltalk. In OOP-SLA '87 Proceedings, pages 318–330, Orlando, Florida, October 1987.Google Scholar
  3. 3.
    Lodewijk Bergmans, Mehmet Aksit, Ken Wakita, and Akinori Yonezawa. An object-oriented model for extensible concurrent systems: the composition-filters approach. Memoranda Informatica, 92(87), December 1992.Google Scholar
  4. 4.
    A.D. Birrell and B.J.Nelson. Implementing remote procedure calls. Technical Report CSL-83-7, Xerox, October 1983.Google Scholar
  5. 5.
    Grady Booch. Object-Oriented Design With Applications. Benjamin/Cummings Publishing Company, Inc., 1991.Google Scholar
  6. 6.
    Mark Day. Object Clusters May Be Better Than Pages. In 4rd Workshop on Workstations Operating Systems, pages 119–122, Napa, California, October 1993.Google Scholar
  7. 7.
    Margaret Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, Reading, Massachusetts, 1990.Google Scholar
  8. 8.
    Svend Frφlund and Gul Agha. A language framework for multi-object coordination. In Oscar Nierstrasz, editor, Lecture Notes in Computer Science, pages 346–360. ECOOP'93, Springer-Verlag, July 1993.Google Scholar
  9. 9.
    Sabine Habert, Laurence Mosseri, and Vadim Abrossimov. COOL: Kernel Support for Object-Oriented Environments. In OOPSLA ECOOP '90, Proceedings, pages 269–277, Ottawa, Canada, October 1990.Google Scholar
  10. 10.
    Walter L. Hürsch and Cristina V. Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, Boston, USA, February 1995.Google Scholar
  11. 11.
    Ivar Jacobson, Mangus Christerson, Patrik Jonsson, and Gunnar Overgaard. Object-Oriented Software Engineering — A Use Case Driven Approach. ACM Press, Addison-Wesley, 1992.Google Scholar
  12. 12.
    Eric Jul, Henry Levy, Norman Hutchinson, and Andrew Black. Fine-Grained Mobility in the Emerald System. ACM Transactions on Computer Systems, 6(1):109–133, february 1988.Google Scholar
  13. 13.
    Gregor Kiczales. Towards a new Model of Abstraction in Software Engineering. In Proceedings of the Int'l Workshop on New Models for Software Archtecture Reflection and Meta-level Architecture, November 1992.Google Scholar
  14. 14.
    Gregor Kiczales et al. Foil for the Workshop on Open Implementation. 1994. http://www.parc.xerox.com/PARC/spl/eca/oi/workshop-94/foil/main.htmlGoogle Scholar
  15. 15.
    Gregor Kiczales. Why are black boxes so hard to reuse? Invited talk, OOPSLA'94. http://www.parc.xerox.com/PARC/spl/eca/oi/gregor-invite.htmlGoogle Scholar
  16. 16.
    Karl J. Lieberherr, Ignacio Silva-Lepe, and Cun Xiao. Adaptive object-oriented programming using graph-based customization. Communications of the ACM, 37(5):94–101. May 1994.Google Scholar
  17. 17.
    Karl J. Lieberherr and Cun Xiao. Formal Foundations for Object-Oriented Data Modeling. IEEE Transactions on Knowledge and Data Engineering, 5(3):462–478, June 1993.Google Scholar
  18. 18.
    Barbara Liskov. Distributed Programming in Argus. Communications of the ACM, pages 300–312, March 1988.Google Scholar
  19. 19.
    Klaus-Peter Löhr. Concurrency annotations for reusable software. Communications of the ACM, 36(9):90–101, September 1993.Google Scholar
  20. 20.
    Cristina V. Lopes and Karl Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Mario Tokoro, editor, Lecture Notes in Computer Science, pages 81–99, Bologna, Italy, July 1994. ECOOP'94, Springer-Verlag.Google Scholar
  21. 21.
    Cristina Videira Lopes. IK RPC V3.0: User's and Reference Manuals. INESC, Lisboa, Portugal, March 1992.Google Scholar
  22. 22.
    Pattie Maes. Concepts and Experiments in Cmputational Reflexion. In Proceedings of ACM OOPSLA, pages 147–155, 1987.Google Scholar
  23. 23.
    H. Masuhara, S. Matsuoka, T. Watanabe, and A. Yonezawa. Object-oriented concurrent reflective languages can be implemented efficiently. In Andreas Paepcke, editor, OOPSLA, pages 127–144, Vancouver, Canada, October 1992. ACM Press.Google Scholar
  24. 24.
    Hideaki Okamura and Yutaka Ishikawa. Object Location Control Using Meta-level Programming. In Mario Tokoro, editor, Lecture Notes in Computer Science, pages 299–319, Bologna, Italy, July 1994. ECOOP'94, Springer-Verlag.Google Scholar
  25. 25.
    OMG. The Common Object Request Broker: architecture and specification, December 1991.Google Scholar
  26. 26.
    Jens Palsberg, Cun Xiao, and Karl Lieberherr. Efficient implementation of adaptive software. ACM Transactions on Programming Languages and Systems, 1995.Google Scholar
  27. 27.
    James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991.Google Scholar
  28. 28.
    Ignacio Silva-Lepe, Walter Hürsch, and Greg Sullivan. A Demeter/C++ Report. C++ Report, SIGS Publication, February 1994.Google Scholar
  29. 29.
    Manolis Tsangaris and Jeffrey Naughton. On the performance of object clustering techniques. In Michael Stonebraker, editor, ACM SIGMOD Int'l Conference on Management of Data, pages 144–153. ACM Press, 1992.Google Scholar
  30. 30.
    Cun Xiao. Adaptive Software: Automatic Navigation Through Partially Specified Data Structures. PhD thesis, Northeastern University, 1994.Google Scholar
  31. 31.
    Private conversation with members of the Composition Filters research team.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Cristina Videira Lopes
    • 1
  1. 1.College of Computer ScienceNortheastern UniversityBostonUSA

Personalised recommendations