Towards preserving correctness in self-managed software systems

Currently, paradigms such as component-based software development and service-oriented software architectures promote modularization of software systems into highly decoupled and reusable software components and services. In addition, to improve manageability and evolveability, software systems are extended with management capabilities and self-managed behavior. Because of their very nature, these self-managed software systems often are mission critical and highly available. In this paper, we focus on the complexity of preserving correctness in modularized self-managed systems. We discuss the importance of consistent software compositions in the context of self-managed systems, and the need for a correctness-preserving adaptation process. We also give a flavor of possible approaches for preserving correctness, and conclude with some remarks and open questions.

[1]  Christine Hofmeister Dynamic reconfiguration of distributed applications , 1993 .

[2]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[3]  Matti A. Hiltunen,et al.  Constructing adaptive software in distributed systems , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[4]  Lui Sha,et al.  An Architectural Description of the Simplex Architecture. , 1996 .

[5]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[6]  Pierre Verbaeten,et al.  NeCoMan: middleware for safe distributed service deployment in programmable networks , 2004, Adaptive and Reflective Middleware.

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

[8]  Wouter Joosen,et al.  Improving software reliability in data-centered software systems by enforcing composition time constraints , 2004, ICSE 2004.

[9]  Wouter Joosen,et al.  The DiPS+ software architecture for self-healing protocol stacks , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[10]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[11]  Ian M. Holland,et al.  Specifying Reusable Components Using Contracts , 1992, ECOOP.

[12]  Wouter Joosen,et al.  Consistency management in the presence of simultaneous client-specific views , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[13]  Sam Michiels,et al.  Component framework technology for adaptable and manageable protocol stacks , 2003 .

[14]  Robbert van Renesse,et al.  Building Adaptive Systems Using Ensemble , 1998, Softw. Pract. Exp..

[15]  Pierre Verbaeten,et al.  A modular approach enforcing safe reconfiguration of producer-consumer applications , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[16]  Debra J. Richardson,et al.  Analyzing dependencies in large component-based systems , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[17]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[18]  Betty H. C. Cheng,et al.  Adding Safeness to Dynamic Adaptation Techniques , 2004 .

[19]  Ingolf Krüger,et al.  Systematic development and exploration of service-oriented software architectures , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[20]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[21]  Jonathan E. Cook,et al.  Highly reliable upgrading of components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[22]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[23]  Lui Sha,et al.  Evolving dependable real-time systems , 1996, 1996 IEEE Aerospace Applications Conference. Proceedings.

[24]  Pierre Verbaeten,et al.  Towards Hot-Swappable System Software: The DiPS/CuPS Component Framework , 2002 .

[25]  Jeff Kramer,et al.  Maintaining node consistency in the face of dynamic change , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[26]  Pierre Verbaeten,et al.  Self-adapting concurrency: the DMonA architecture , 2002, WOSS '02.

[27]  Pierre Verbaeten,et al.  An agent design method promoting separation between computation and coordination , 2004, SAC '04.

[28]  Jean-Marc Jézéquel,et al.  Making Components Contract Aware , 1999, Computer.

[29]  Robbert van Renesse,et al.  Building adaptive systems using ensemble , 1998 .

[30]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..