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

  • Jim Dowling
  • Tilman Schäfer
  • Vinny Cahill
  • Peter Haraszti
  • Barry Redmond
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1826)


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.


Allocation Strategy Design Pattern Manager Object Dynamic Adaptation Method Invocation 
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.
    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. 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. 3.
    Vinny Cahill. The Iguana Reflective Programming Model. Technical report, Dept. of Computer Science, Trinity College Dublin, 1998.Google Scholar
  4. 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. 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. 6.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.Google Scholar
  7. 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. 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. 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. 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. 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. 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. 13.
    Thomas Ledoux. Implementing Proxy Objects in a Reflective ORB. In CORBA Workshop ECOOP, 1997.Google Scholar
  14. 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. 15.
    Bruno R. Preiss. Data Structures and Algorithms with Object-Oriented Design Patterns in C++. John Wiley & Sons, 1999.Google Scholar
  16. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Jim Dowling
    • 1
  • Tilman Schäfer
    • 1
  • Vinny Cahill
    • 1
  • Peter Haraszti
    • 1
  • Barry Redmond
    • 1
  1. 1.Distributed Systems Group, Department of Computer ScienceTrinity College DublinDublin

Personalised recommendations