Skip to main content

Using Reflection to Support Dynamic Adaptation of System Software: A Case Study Driven Evaluation

  • Conference paper
  • First Online:
Reflection and Software Engineering (OORaSE 1999)

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

Included in the following conference series:

Abstract

A number of researchers have recently suggested the use of reflection as a means of supporting dynamic adaptation of object-oriented software especially systems software including both middleware and operating systems. In order to evaluate the use of reflection in this context we have implemented a resource manager that can be adapted to use different resource management strategies on behalf of its clients using three distinct technologies: design patterns, dynamic link libraries, and reflection. In this paper we report on this experiment and compare the three approaches under performance, ability to separate functional code from code concerned with adaptation, and programming effort. We conclude that although the overhead of using reflection may be high, reflection offers significant advantages in terms of the ability to separate functional and adaptation code.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Brian Bershad, Przemyslaw Pardyak, and et. Al. Language Support for Extensible Operating Systems. In Workshop on Compiler Support for System Software, 1996.

    Google Scholar 

  2. Gordon Blair, Fabio Costa, Geoff Coulson, Fabien Delpiano, Hector Duran, Bruno Dumant, Francois Horn, Nikos Parlavantzas, and Jean-Bernard Stefani. The Design of a Resource-Aware Reflective Middleware Architecture. In Proceedings of Meta-Level Architectures and Reflection’99, pages 115–134, 1999.

    Google Scholar 

  3. Vinny Cahill. The Iguana Reflective Programming Model. Technical report, Dept. of Computer Science, Trinity College Dublin, 1998.

    Google Scholar 

  4. Richard P. Draves. The Case for Run-Time Replaceable Kernel Modules. In In Procceedings of the 4th Workshop on Workstation Operating Systems, pages 160–164, 1993.

    Google Scholar 

  5. Roy Campbell et al. Designing and Implementing Choices: an Object-Oriented System in C++. In Communications of the ACM, Sept. 1993, 1993.

    Google Scholar 

  6. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.

    Google Scholar 

  7. Brendan Gowing. A Reflective Programming Model and Language for Dynamically Modifying Compiled Software. PhD thesis, Department of Computer Science, University of Dublin, Trinity College, 1997.

    Google Scholar 

  8. Brendan Gowing and Vinny Cahill. Meta-Object Protocols for C++: The Iguana Approach. In, editor, Proceedings of Reflection’96, pages 137–152. XEROX Palo Alto Research Center, April 1996.

    Google Scholar 

  9. Graham Hamilton, Michael L. Powell, and James G. Mitchell. Subcontract: A Flexible Base for Distributed Programming. In Proceedings of the 14th Symposium on Operating Systems Principles, pages 69–79. ACM Special Interest Group on Operating Systems, December 1993. Also Operating Systems Review, 27(5).

    Google Scholar 

  10. Gregor Kiczales, John Lamping, Christina Lopes, Chris Maeda, and Anurag Mendhekar. Open Implementation Guidelines. In 19th International Conference on Software Engineering (ICSE). ACM Press, 1997.

    Google Scholar 

  11. Gregor Kiczales, John Lamping, Chris Maeda, David Keppel, and Dylan McNamee. The Need for Customisable Operating Systems. In Proceedings of the 4th Workshop on Workstation Operating Systems, pages 165–169. IEEE Computer Society, IEEE Computer Society Press, October 1993.

    Google Scholar 

  12. Fabio Kon, Roy Campbell, and Manual Roman. Design and Implementation of Runtime Reflection in Communication Middleware: the dynamicTAO case. In ICDCS’99 Workshop on Middleware, 1999.

    Google Scholar 

  13. Thomas Ledoux. Implementing Proxy Objects in a Reflective ORB. In CORBA Workshop ECOOP, 1997.

    Google Scholar 

  14. Scott Mitchell, Hani Naguib, George Colouris, and Tim Kinberg. Dynamically Reconfiguring Multimedia Components: A Model-based Approach. In SIGOPS European Workshop on Support for Composing Distributed Applications, 1998.

    Google Scholar 

  15. Bruno R. Preiss. Data Structures and Algorithms with Object-Oriented Design Patterns in C++. John Wiley & Sons, 1999.

    Google Scholar 

  16. Douglas C. Schmidt and Chris Cleeland. Applying Patterns to Develop Extensible and Maintainable ORB Middleware. In IEEE Communications Magazine Special Issue on Design Patterns, April 1999.

    Google Scholar 

  17. Ashish Singhai, Aamod Sane, and Roy Campbell. Quarterware for Middleware. In 18th IEEE International Conference on Distributed Computing Systems (ICDCS 1998), pages 192–201, 1998.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dowling, J., Schäfer, T., Cahill, V., Haraszti, P., Redmond, B. (2000). Using Reflection to Support Dynamic Adaptation of System Software: A Case Study Driven Evaluation. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds) Reflection and Software Engineering. OORaSE 1999. Lecture Notes in Computer Science, vol 1826. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45046-7_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-45046-7_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67761-1

  • Online ISBN: 978-3-540-45046-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics