A Framework for Using Component Redundancy for self-Optimising and self-Healing Component Based Systems

The ever-increasing complexity of software systems makes it progressively more difficult to provide dependability guarantees for such systems, especially when they are deployed in unpredictably changing environments. The Component Based Software Development initiative addresses many of the complexity related difficulties, but consequently introduces new challenges. These are related to the lack of component intrinsic information that system integrators face at system integration time, as well as the lack of information on the component running-context that component providers face at component development time. We propose an addition to existing component models, for enabling new capabilities such as adaptability, performance optimisation and tolerance to context-driven faults. The concept of ‘component redundancy’ is at the core of our approach, implying alternate utilisation of functionally equivalent component implementations, for meeting application-specific dependability goals. A framework for implementing component redundancy in component-based applications is described and an example scenario showing the utility of our work is given.

[1]  Chang Liu,et al.  RAIC: Architecting Dependable Systems through Redundancy and Just-In-Time Testing , 2002 .

[2]  Leonard J. Bass,et al.  Attribute-Based Architecture Styles , 1999, WICSA.

[3]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[4]  Jean-Marc Jézéquel,et al.  Trusted Components , 1999, TOOLS.

[5]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[6]  Lorenzo Strigini,et al.  Diversity for off-the-shelf components , 2000 .

[7]  John Murphy,et al.  Performance management in component-oriented systems using a Model Driven Architecture/spl trade/ approach , 2002, Proceedings. Sixth International Enterprise Distributed Object Computing.

[8]  Marija Mikic-Rakic,et al.  Increasing the confidence in off-the-shelf components: a software connector-based approach , 2001, SSR '01.

[9]  Michael N. Huhns,et al.  Robust Software , 2002, IEEE Internet Comput..

[10]  Paola Inverardi,et al.  Performance analysis at the software architectural design level , 2001, Perform. Evaluation.

[11]  Christine Mingins,et al.  Providing Trusted Components to the Industry , 1998, Computer.

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

[13]  Cecilia Mary Fischer Rubira,et al.  An Idealized Fault-Tolerant Architectural Component , 2002 .

[14]  Gregor Kiczales,et al.  Beyond the Black Box: Open Implementation , 1996, IEEE Softw..

[15]  Willy Zwaenepoel,et al.  Performance and scalability of EJB applications , 2002, OOPSLA '02.

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

[17]  Brian Randell,et al.  The Evolution of the Recovery Block Concept , 1994 .

[18]  Bev Littlewood,et al.  Modeling software design diversity: a review , 2001, CSUR.