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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Brian Bershad, Przemyslaw Pardyak, and et. Al. Language Support for Extensible Operating Systems. In Workshop on Compiler Support for System Software, 1996.
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.
Vinny Cahill. The Iguana Reflective Programming Model. Technical report, Dept. of Computer Science, Trinity College Dublin, 1998.
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.
Roy Campbell et al. Designing and Implementing Choices: an Object-Oriented System in C++. In Communications of the ACM, Sept. 1993, 1993.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.
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.
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.
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).
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.
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.
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.
Thomas Ledoux. Implementing Proxy Objects in a Reflective ORB. In CORBA Workshop ECOOP, 1997.
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.
Bruno R. Preiss. Data Structures and Algorithms with Object-Oriented Design Patterns in C++. John Wiley & Sons, 1999.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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