Configuration and dynamic reconfiguration of component-based applications with Microsoft .NET

Dynamic reconfiguration provides of powerful mechanism to adapt component-based distributed applications to changing environmental conditions. We have designed and implemented a framework for dynamic component reconfiguration on the basis of the Microsoft .NET environment. Within this paper we present an experimental evaluation of our infrastructure for dynamic reconfiguration of component-based applications. Our framework supports the description of application configurations and profiles and allows for selection of a particular configuration and object/component instantiation based on measured environmental conditions. In response to changes in the environment, our framework will dynamically load new configurations, thus implementing dynamic reconfiguration of an application. Configuration code for components and applications has to interact with many functional modules and therefore is often scattered around the whole application. We use aspect-oriented programming techniques to handle configuration aspects separately from functional code. The timing behavior of dynamic reconfiguration depends heavily on properties of the underlying programming environment and the operating system. We have studied to which extend and with which performance impact the Microsoft .NET Platform/sup 1/ supports dynamic reconfiguration. The paper thoroughly discusses our experimental results.

[1]  S RosenblumDavid,et al.  An Architecture-Based Approach to Self-Adaptive Software , 1999 .

[2]  Andreas Polze,et al.  Object and process migration in .NET , 2003, Proceedings of the Eighth International Workshop on Object-Oriented Real-Time Dependable Systems, 2003. (WORDS 2003)..

[3]  Miguel Alexandre Wermelinger Specification of software architecture reconfiguration , 1999 .

[4]  Carolyn L. Talcott,et al.  Towards a Theory of Actor Computation , 1992, CONCUR.

[5]  Mahadev Satyanarayanan,et al.  Agile application-aware adaptation for mobility , 1997, SOSP.

[6]  Atul Prakash,et al.  DACIA: a mobile component framework for building adaptive distributed applications , 2001, OPSR.

[7]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[8]  Andreas Polze,et al.  Aspect-oriented programming with C# and .NET , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[11]  Andreas Polze,et al.  Speed vs . Memory Usage-An Approach to Deal with Contrary Aspects , 2002 .

[12]  Andreas Polze,et al.  Configurable services for mobile users , 2002, Proceedings of the Seventh IEEE International Workshop on Object-Oriented Real-Time Dependable Systems. (WORDS 2002).

[13]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[14]  Klara Nahrstedt,et al.  A control-based middleware framework for quality-of-service adaptations , 1999, IEEE J. Sel. Areas Commun..

[15]  Kim Williams,et al.  Microsoft .NET Remoting , 2002 .

[16]  Bradley R. Schmerl,et al.  Software Architecture-Based Adaptation for Pervasive Systems , 2002, ARCS.

[17]  Michel Wermelinger A hierarchic architecture model for dynamic reconfiguration , 1997, Proceedings of PDSE '97: 2nd International Workshop on Software Engineering for Parallel and Distributed Systems.