Abstract
When building dependable systems by integrating untrusted software components that were not originally designed to interact with each other, it is inevitable the occurrence of architectural mismatches related to assumptions in the failure behaviours. These mismatches if not prevented during system design have to be tolerated during run-time. This paper presents an architectural abstraction based on exception handling for structuring fault-tolerant software systems. Exception handling has been used effectively for incorporating fault tolerance into software systems. The proposed architectural abstraction transforms untrusted software components into idealised fault tolerant architectural elements (iFTE), which clearly separate the normal and exceptional behaviours, in terms of their internal structure and interfaces. An advantage of this architectural abstraction is that it can be instantiated into both components and connectors. Moreover, the proposed abstraction clearly facilitates system structuring, and the analysis of exception propagation, which can make the overall system quite complex if exceptions, and their respective handlers, and not properly incorporated into system design. The feasibility of the proposed approach is evaluated in terms of a simple case study.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Anderson, T., Lee, P.A.: Fault Tolerance: Principles and Practice. Prentice-Hall, Englewood Cliffs (1981)
Avizienis, A., Laprie, J.-C., Randell, B., Landwehr, C.: Basic Concepts and Taxonomy of Dependable and Secure Computing. IEEE Transactions on Dependable and Secure Computing 1(1), 11–33 (2004)
Castor Filho, F., Brito, P.H.S., Rubira, C.M.F.: A Framework for Analyzing Exception Flow in Software Architectures. In: WADS. Proceedings of the ICSE 2006 Workshop on Architecting Dependable Systems. St. Louis, MI, USA, May 2005, pp. 21–27 (2005)
Castor Filho, F., de C Guerra, P.A., Pagano, V.A., Rubira, C.M.F.: A Systematic Approach for Structuring Exception Handling in Robust Component-Based Software. Journal of the Brazilian Computer Society 3(10) (2005)
Cristian, F.: Exception Handling. Dependability of Resilient Computers. Anderson, T., (ed.) BSP, pp. 68–97 (1989)
Clements, P., et al.: Documenting Software Architectures: Views and Beyond. Addison-Wesley, Reading (2003)
de Lemos, R., de C. Guerra, P.A., Rubira, C.: A Fault-Tolerant Architectural Approach for Dependable Systems. IEEE Software (Special Issue on Software Architectures), 80–87 (2006)
de Lemos, R., Romanovsky, A.: Exception Handling in a Cooperative Object-Oriented Approach. In: ISORC 1999. Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing Saint Malo, France. May 1999, pp. 3–13 (1999)
Gacek, C., de Lemos, R.: Architectural Description of Dependable Software Systems. In: Besnard, D., Gacek, C., Jones, C.B. (eds.) Structure for Dependability: Computer-Based Systems from an Interdisciplinary Perspective, pp. 127–142. Springer, London, UK (2006)
de C. Guerra, P.A., Rubira, C., de Lemos, R.: A Fault-Tolerant Software Architecture for Component-Based Systems. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677, pp. 129–149. Springer, Heidelberg (2003)
Larsen, K.G., Pettersson, P., Yi, W.: UPPAAL in a Nutshell. International Journal on Software Tools for Technology Transfer 1(1–2), 134–152 (1997)
Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architectures. SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)
Randell, B.: System Structure for Software Fault Tolerance. IEEE Transactions on Software Engineering 1(2), 220–232 (1975)
Rubira, C.M.F., de Lemos, R., Ferreira, G.R.M., Castor Filho, F.: Exception Handling in the Development of Dependable Component-Based Systems. Software-Practice and Experience 35(3), 195–236 (2005)
Di Ruscio, D., Muccini, H., Pelliccione, P., Pierantonio, A.: Towards Weaving Software Architecture Models. In: ECBS, Joint Meeting of the 4th MBD and 3rd MOMPES. Potsdam, Germany, March 2006 (to appear)
SAE-AS5506 Architecture Analysis and Design Language. Society of Automotive Engineers (SAE) (2004)
SAE-AS5506/1 SAE Architecture Analysis and Design Language (AADL) Annex, vol. 1 Annex E: Error Model Annex. International Society of Automotive Engineers. Warrendale, USA (June 2006)
Shaw, M., Garlan, D.: Software Architectures: Perspectives on an Emerging Discipline. Prentice-Hall, Inc., Upper Saddle River, NJ (1996)
Sloman, M., Kramer, J.: Distributed Systems and Computer. Networks. Prentice Hall, Englewood Cliffs (1987)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
de Lemos, R. (2007). Architectural Fault Tolerance Using Exception Handling. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems IV. Lecture Notes in Computer Science, vol 4615. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74035-3_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-74035-3_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74033-9
Online ISBN: 978-3-540-74035-3
eBook Packages: Computer ScienceComputer Science (R0)