Skip to main content

Type-Safe Delegation for Run-Time Component Adaptation

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1628))

Abstract

The aim of component technology is the replacement of large monolithic applications with sets of smaller software components, whose particular functionality and interoperation can be adapted to users’ needs. However, the adaptation mechanisms of component software are still limited. Most proposals concentrate on adaptations that can be achieved either at compile time or at link time. Current support for dynamic component adaptation, i.e. unanticipated, incremental modifications of a component system at run-time, is not sufficient.

This paper proposes object-based inheritance (also known as delegation) as a complement to purely forwarding-based object composition. It presents a typesafe integration of delegation into a class-based object model and shows how it overcomes the problems faced by forwarding-based component interaction, how it supports independent extensibility of components and unanticipated, dynamic component adaptation.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, Martin and Cardelli, Luca. A Theory of Objects. Springer, 1996.

    Google Scholar 

  2. P.S.C. Alencar, D. D. Cowan, C.J.P. Lucena, and L.C.M. Nova. A model for gluing components. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on ComponentOriented Programming (WCOP 98), volume 10, pages 101–108. Turku Center for Computer Science, 1998.

    Google Scholar 

  3. Bosch, Jan. Superimposition-A ComponentAdaptation Technique, 1998.

    Google Scholar 

  4. Don Box. Essential COM. Addison-Wesley, 1998.

    Google Scholar 

  5. Costanza, Pascal. Lava: Delegation in a Strongly Typed Programming Language — Language Design and Compiler (In German: Lava:Delegation in einer streng typisierten Programmiersprache — Sprachdesign und Compiler). Masters thesis, University of Bonn, 1998.

    Google Scholar 

  6. Dony, Christophe and Malenfant, Jacques and Cointe, Pierre. Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and Their Validation. Proceedings OOPSLA’ 92, ACM SIGPLAN Notices, 27(10):201–217, 1992.

    Article  Google Scholar 

  7. Fisher, Kathleen and Mitchell, John C. A Delegation-based Object Calculus with Subtyping. In Proceedings of 10th International Conference on Fundamentals of Computation Theory (FCT’ 95), volume 965 of LectureNotes in Computer Science, pages 42–61. Springer, 1995.

    Google Scholar 

  8. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns — Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995.

    Google Scholar 

  9. Harrison, William and Ossher, Harold and Tarr, Peter. Using Delegation for Software and Subject Composition. Research Report RC 20946 (922722), IBM Research Division, T.J. Watson Research Center, Aug 1997.

    Google Scholar 

  10. William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). ProceedingsOOPSLA’ 93, ACM SIGPLAN Notices, 28(10):411–428, 1993.

    Google Scholar 

  11. Holzle, Urs and Keller, Ralf. Binary ComponentAdaptation. In Proceedings of ECOOP 98, pages 307–329. Springer Verlag, 1998.

    Google Scholar 

  12. William Harrison, Harold Ossher, and Peter Tarr. Load-time subject-oriented programming, June 1998 1998.

    Google Scholar 

  13. Bülent Kücük, M. Nedim Alpdemir, and Richard N. Zobel. Customizable adapters for black-box components. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on Component Oriented Programming (WCOP 98), volume 10, pages 53–60. Turku Center for Computer Science, 1998.

    Google Scholar 

  14. Keller, Ralph and Hölzle, Urs. Supporting the Integration and Evolution of Components Through Binary Component Adaptation. Technical Report TRCS97-15, University of California at Santa Barbara, September 1997.

    Google Scholar 

  15. Günter Kniesel. Delegation for java api or language extension? Technical Report IAI-TR-98-4, ISSN 0944-8535, University of Bonn, May 1998 1998.

    Google Scholar 

  16. Günter Kniesel. Type-safe delegation for dynamic component adaptation. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on Component Oriented Programming (WCOP 98), volume 10, pages 9–18. Turku Center for Computer Science, 1998.

    Google Scholar 

  17. Günter Kniesel. Darwin-A Unified Model of Sharing for Object-Oriented Programming. Ph.d. thesis (forthcoming), University of Bonn, 1999. Knie98.

    Google Scholar 

  18. Lamping, John. Typing the Specialization Interface. Proceedings OOPSLA’ 93, ACM SIGPLAN Notices, 28(10):201–214, 1993.

    Article  Google Scholar 

  19. Lieberman, Henry. Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems. Proceedings OOPSLA’ 86, ACM SIGPLAN Notices, 21(11):214–223, 1986.

    MathSciNet  Google Scholar 

  20. Kai-Uwe Mätzel and Peter Schnorf. Dynamic component adaptation. Technical report 97-6-1, Union Bank of Swizerland, June 1997 1997.

    Google Scholar 

  21. F. Plasil, D. Balek, and R. Janecek. Sofa/dcup:architecture for component trading and dynamic updating. In ICCDS 98, Annapolis, Maryland, USA, 1998. IEEE CS Press.

    Google Scholar 

  22. Schickel, Matthias. Lava:Design and Implementation of Delegation Mechanisms in the Java Runtime Environment (In German: Lava:Konzeptionierung und Implementierung von Delegationsmechanismen in der Java Laufzeitumgebung). Masters thesis, University of Bonn, 1997.

    Google Scholar 

  23. Steyaert, Patrick and Lucas, Carine and Mens, Kim and D’Hondt, Theo. Reuse Contracts: Managing the Evolution of Reusable Assets. Proceedings OOPSLA’ 96, ACM SIGPLAN Notices, pages 268–285, 1996.

    Google Scholar 

  24. Szyperski, Clemens. Independently Extensible Systems Software Engineering Potential and Challenges. In Proceedings of the 19th Australian Computer Science Conference, Melbourne, Australia. Computer Science Association, 1996.

    Google Scholar 

  25. Szyperski, Clemens. Component Software-Beyond Object-Oriented Programming. Addison-Wesley, 1998.

    Google Scholar 

  26. Taivalsaari, Antero. Object-Oriented Programming with Modes. Journal of Object-Oriented Programming (JOOP), 6(3):25–32, 1993.

    Google Scholar 

  27. Weck, Wolfgang. Inheritance Using Contracts & Object Composition. In Weck, Wolfgang and Bosch, Jan and Szyperski, Clemens, editor, Proceedings of the Second International Workshop on Component-Oriented Programming (WCOP’ 97), pages 105–112. Turku Center for Computer Science, Turku, Finland, 1997. ISSN 1239-1905.

    Google Scholar 

  28. Peter Wegner. Concepts and paradigms of object-oriented programming (expansion of oopsla 89 keynote talk). ACM OOPS Messenger, 1(1):7–87, 1990.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-VerlagBerlin Heidelberg

About this paper

Cite this paper

Kniesel, G. (1999). Type-Safe Delegation for Run-Time Component Adaptation. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-48743-3_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66156-6

  • Online ISBN: 978-3-540-48743-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics