Abstract
To build highly available or reliable applications out of unreliable third-party components, some software-implemented fault-tolerant mechanisms are introduced to gracefully deal with failures in the components. In this paper, we address an important issue in the approach: how to select the most suitable fault-tolerant mechanisms for a given application in a specific context. To alleviate the difficulty in the selection, these mechanisms are abstracted as Fault-tolerant styles (FTSs) at first, which helps to achieve required high availability or reliability correctly because the complex interactions among functional parts of software and fault-tolerant mechanism are explicitly modeled. Then the required fault-tolerant capabilities are specified as fault-tolerant properties, and the satisfactions of the required properties for candidate FTSs are verified by model checking. Specifically, we take application-specific constraints into consideration during verification. The satisfied properties and constraints are evidences for the selection. A case study shows the effectiveness of the approach.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Workshop on Architecting Dependable Systems, http://www.cs.kent.ac.uk/wads/
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 Trans. on Dependable and Secure Computing 1(1), 11–33 (2004)
Bernardeschi, C., Fantechi, A., Gnesi, S.: Model checking fault tolerant systems. Software Testing Verification and Reliability 12, 251–275 (2002)
Bose, P.: Automated Translation of UML Models of Architectures for Verification and Simulation Using SPIN. In: Proceedings of the 14th IEEE Int’l Conference on Automated Software Engineering, pp. 102–109. IEEE Computer Society Press, Los Alamitos (1999)
Brito, P.H.S., Lemos, R., Rubira, C.M.F.: Verification of Exception Control Flows and Handlers Based on Architectural Scenarios. In: Proceeding of the 11th IEEE High Assurance Systems Engineering Symposium (HASE), pp.177–186 (2008)
Candea, G., et al.: JAGR: an autonomous self-recovering application server. In: Proc. of the 5th Int’l Workshop on Active Middleware Services, Seattle, USA, pp. 168–177 (2003)
Ebnenasir, A., Cheng, B.H.C.: Pattern-Based Modeling and Analysis of Failsafe Fault-Tolerance. In: 10th IEEE International Symposium on High Assurance System Engineering (HASE), Dallas, Texas, USA, November 14–16 (2007)
ECperf webpage, http://java.sun.com/developer/earlyAccess/j2ee/ecperf/download.html
Garlan, D., Chung, S., Schmerl, B.: Increasing system dependability through architecture based self-repair. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677. Springer, Heidelberg (2003)
de Guerra, P.A.C., Rubira, C.F., Romanovsky, A., de Lemos, R.: A fault-tolerant software architecture for COTS-based software systems. In: Proc. of ESEC/FSE-11, Helsinki, Finland, pp. 375–378 (2003)
Holzmann, G.J.: The Model Checker SPIN. IEEE Trans. on Software Engineering 23(5) (1997)
Issarny, V., Banatre, J.: Architecture-Based Exception Handling. In: Proc. of the 34th Annual Hawaii International Conference on System Sciences, vol. 9, p. 9058 (2001)
Lan, L., Huang, G., Wang, W., Mei, H.: A Middleware-based Approach to Model Refactoring at Runtime. In: Proceedings of the 14th Asia-Pacific Software Engineering Conference (APSEC 2007) (2007)
de Lemos, R., Guerra, P., Rubira, C.: A fault-tolerant architectural approach for dependable systems. IEEE Software 23(2), 80–87 (2006)
Mei, H., Huang, G.: PKUAS: An Architecture-based Reflective Component Operating Platform. In: IEEE Int’l Workshop on Future Trends of Distributed Computing Sys. (2004)
Mei, H., Huang, G., Liu, T., Li, J.: Coordinated Recovery of Middleware Services: A Framework and Experiments. Int. J. Software Informatics 1(1), 101–128 (2007)
Muccini, H., Romanovsky, A.: Architecting Fault Tolerant Systems. Technical report, University of Newcastle upon Tyne, CS-TR-1051 (2007)
Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and Merging of Statecharts Specifications. In: Proc. 29th Int’l Conference on Software Engineering, pp. 54–64 (2007)
Object Management Group, UML(TM) Profile for Modeling Quality of Service and Fault Tolerance Characteristics and Mechanisms, http://www.omg.org/docs/ptc/04-09-01.pdf
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)
Pottinger, R.A., Bernstein, P.A.: Merging models based on given correspondences. In: Proc. 29th int’l Conference on Very Large Data Bases, pp. 862–873 (2003)
Romanovsky, A.: A Looming Fault Tolerance Software Crisis? ACM SIGSOFT Software Engineering Notes 32(2) (2007)
Salatge, N., Fabre, J.C.: Fault Tolerance Connectors for Unreliable Web Services. In: Proc. of 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2007), Edinburgh, UK, pp. 51–60 (2007)
Seo, C., et al.: Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems. In: Proc. of SEPCASE 2007, Minneapolis, MN, USA (2007)
Sözer, H., Tekinerdogan, B.: Introducing Recovery Style for Modeling and Analyzing System Recovery. In: Proc. of 7th IEEE/IFIP Working Conference on Software Architecture, Vancouver, Canada, pp. 167–176 (2008)
Yuan, L., Dong, J.S., Sun, J., Basit, H.A.: Generic Fault Tolerant Software Architecture Reasoning and Customization. IEEE Trans. on Reliability. 55(3), 421–435 (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Li, J., Chen, X., Huang, G., Mei, H., Chauvel, F. (2009). Selecting Fault Tolerant Styles for Third-Party Components with Model Checking Support. In: Lewis, G.A., Poernomo, I., Hofmeister, C. (eds) Component-Based Software Engineering. CBSE 2009. Lecture Notes in Computer Science, vol 5582. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02414-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-02414-6_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02413-9
Online ISBN: 978-3-642-02414-6
eBook Packages: Computer ScienceComputer Science (R0)