On the performance of reflective systems software

Reflection is widely acknowledged as a useful mechanism for facilitating the run-time adaptation/ reconfiguration of software. Often, however, it is also thought to impose intolerably high overheads in performance-critical systems software environments like middleware platforms, operating systems, or programmable routers. In this paper we argue that there are many varieties of reflection (i.e. many types of 'meta-models') and that some of these in fact impose zero or negligible overhead. We further argue that in many cases, particularly cases involving highly dynamic software environments, reflection can actually enhance performance by laying open choices of alternative mechanisms that are best suited to current environmental conditions. Finally, we discuss the case of interception meta-models which, in many implementations, do lead to significant performance problems, and present our experience to date in attempting to minimise these problems.

[1]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[2]  Gordon S. Blair,et al.  A Globally-Applied Component Model for Programmable Networking , 2003, IWAN.

[3]  Alessandro Forin,et al.  MMLite: a highly componentized system architecture , 1998, EW 8.

[4]  Gordon S. Blair,et al.  Supporting mobile multimedia applications through adaptive middleware , 1999, IEEE J. Sel. Areas Commun..

[5]  Gordon S. Blair,et al.  The design of a configurable and reconfigurable middleware platform , 2002, Distributed Computing.

[6]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[7]  Gordon S. Blair,et al.  ReMMoC: A Reflective Middleware to Support Mobile Client Interoperability , 2003, OTM.

[8]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[9]  Alex Villazón,et al.  A Reflective Active Network Node , 2000, IWAN.

[10]  Neil D. Jones,et al.  An introduction to partial evaluation , 1996, CSUR.

[11]  Aniruddha S. Gokhale,et al.  Principles for optimizing CORBA Internet Inter-ORB Protocol performance , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[12]  R. Nigel Horspool,et al.  Unification of Compile-time and Run-time Metaobject Protocols , 1995 .

[13]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[14]  Wouter Joosen,et al.  Customization of Object Request Brokers by Application Specific Policies , 2000, Middleware.

[15]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[16]  Geoff Coulson,et al.  A quality of service configurable concurrency framework for object-based middleware , 2002 .

[17]  Gordon S. Blair,et al.  An Efficient Component Model for the Construction of Adaptive Middleware , 2001, Middleware.

[18]  Eric Eide,et al.  Knit: component composition for systems software , 2000, OSDI.

[19]  Michael Clarke,et al.  An architecture for dynamically extensible operating systems , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[20]  Gordon S. Blair,et al.  The Design of a Resource-Aware Reflective Middleware Architecture , 1999, Reflection.

[21]  Geoff Coulson,et al.  A quality of service driven concurrency framework for object‐based middleware , 2002, Concurr. Comput. Pract. Exp..