skip to main content
article

Self-healing components in robust software architecture for concurrent and distributed systems

Published: 01 July 2005 Publication History

Abstract

This paper describes an approach to designing self-healing components for robust, concurrent and distributed software architecture. A self-healing component is able to detect object anomalies inside of the component, reconfigure inter-component and intra-components before and after repairing the sick object, repair it, and then test the healed object. For this, each self-healing component is structured to the layered architecture with two layers, the service layer and the healing layer, which are designed separately from each other. The service layer of a self-healing component provides functional services to other components, whereas the healing layer encapsulates the self-healing mechanism for monitoring objects in the service layer and repairing the sick objects detected. The process of component self-healing includes detection, reconfiguration before and after repairing, repair, and testing. To illustrate this approach, the elevator system is considered.

References

[1]
{1} G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide. Addison-Wesley, Reading, MA, 1999.]]
[2]
{2} F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, Pattern Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996.]]
[3]
{3} E.M. Dashofy, A. van der Hoek, R.N. Taylor, Towards architecture-based self-healing systems, in: Workshop on Self-Healing Systems, Proceedings of the First Workshop on Self-Healing Systems, November 18-19, Charleston, SC, 2002.]]
[4]
{4} P.A. de C. Guerra, R. de Lemos, An idealized fault-tolerant architectural component, in: Workshop on Architecting Dependable Systems, ICSE'02 International Conference on Software Engineering, May 25, Orlando, FL, 2002.]]
[5]
{5} P.A. de C. Guerra, R. de Lemos, An idealized fault-tolerant architectural component, in: Workshop on Architecting Dependable Systems, ICSE'02 International Conference on Software Engineering, May 25, Orlando, FL, 2002.]]
[6]
{6} D. Garlan, B. Schmerl, Model-based adaptation for self-healing systems, in: Workshop on Self-Healing Systems, Proceedings of the First Workshop on Self-Healing Systems, November 18-19, Charleston, SC, 2002.]]
[7]
{7} H. Gomaa, Designing Concurrent, Distributed, and Real-Time Applications with UML, Addison-Wesley, 2000.]]
[8]
{8} H. Gomaa, D.A. Menasce, M.E. Shin, Reusable component patterns for distributed software architectures, in: 2001 Symposium on Software Reusability, SSR'01 Sponsored by ACM/SIGSOFT, May 18-20, Toronto. Ontario, Canada, 2001.]]
[9]
{9} H. Gomaa, M.E. Shin, Multiple view meta-modeling of software product lines, in: The Eighth IEEE International Conference on Engineering of Complex Computer Systems, ICECCS 2002, Maryland, December 2002.]]
[10]
{10} IBM, An architectural blueprint for autonomic computing, IBM and Autonomic Computing, 2003.]]
[11]
{11} K.H. Kim, C. Subbaraman, Fault-tolerant real-time objects, Communications of the ACM 40 (1) (1997).]]
[12]
{12} P. Koopman, Elements of the self-healing system problem space, in: Workshop on Software Architectures for Dependable Systems, WADS2003, ICSE'03 International Conference on Software Engineering, May 3-11, Portland, Oregon, 2003.]]
[13]
{13} H. Kopetz, G. Grundteidl, TTP -- a protocol for fault-tolerant real-time systems, IEEE Computer (1994) 14-23.]]
[14]
{14} P. Oriezy, M.M. Gorlick, R.N. Taylor, G. Johnson, N. Medvidovic, A. Quilici, D. Rosenblum, A. Wolf. An architecture-based approach to self-adaptive software, IEEE Intelligent Systems 14 (3) (1999) 54-62.]]
[15]
{15} J. Rumbaugh, G. Booch, I. Jacobson, The Unified Modeling Language Reference Manual. Addison-Wesley, Reading, MA, 1999.]]
[16]
{16} M.J. Rutherford. K. Anderson, A. Carzaniga, D. Heimbigner, A.L. Wolf, Reconfiguration in the enterprise JavaBean component model, in: Proceedings of the IFIP/ACM Working Conference on Component Deployment, Berlin, 2002, pp. 67-81.]]
[17]
{17} M. Shaw, D. Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996.]]
[18]
{18} M.E. Shin, A. Levis, L. Wagenhals, Mapping of UML-based system model to design/CPN model for system model evaluation, in: Workshop on Compositional Verification of UML'03, October 22, San Francisco, 2003.]]
[19]
{19} J. Xu, B. Randell, A. Romanovsky, C.M.F. Rubira, R.J. Stroud, Z. Wu, Fault tolerance in concurrent object-oriented software through coordinated error recovery, in: Proc. 25th Int. Symp. on Fault-Tolerant Computing, Pasadena, June 1995, pp. 499-508.]]

Cited By

View all

Recommendations

Reviews

Holger Giese

Is the concept of self-healing a step forward compared to fault tolerance__?__ This paper claims that self-healing components can be achieved by a process consisting of "anomalous object detection, dynamic reconfiguration before and after object self-healing, repair of sick objects, and testing of repaired objects." At first glance, this looks pretty much like the classical four constituent phases of fault tolerance [1]: "(i) error detection; (ii) damage confinement and assessment; (iii) error recovery; and (iv) fault treatment and continued system service." Since self-healing, in contrast to fault tolerance, does not necessarily guarantee continued service, it might not require all four stages at full strength. However, the proposed simplification of step (ii), which only protects the environment against the sick object after it has been detected and until it has been healed, seems to go too far, as potential effects on the connected objects are ignored. The replacement of steps (iii) and (iv), by a repair and test step for the sick object only, is even more problematic, as no error recovery that addresses the corrupted states of other infected objects, and no fault treatment that excludes the possibility that the observed fault can affect the system again, is included. Since the proposal doesn't present any assumptions or restrictions that justify the outlined simplifications, or outline which phenomena, such as software and hardware faults, or transient or permanent faults are addressed by the approach, it is rather unclear what is delivered here by self-healing. Furthermore, no evaluation results for the approach are given; my answer to the initial question in this review is that this work is not a step forward, even though self-healing, in general, can be. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image Science of Computer Programming
Science of Computer Programming  Volume 57, Issue 1
Special issue on system and software architectures(IWSSA'04)
July 2005
127 pages

Publisher

Elsevier North-Holland, Inc.

United States

Publication History

Published: 01 July 2005

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media