Designing fault-tolerant SOA based on design diversity

Sociedade Brasileira de Computacao - SB - Tập 2 - Trang 1-36 - 2014
Amanda S Nascimento1, Cecília MF Rubira2, Rachel Burrows3, Fernando Castor4, Patrick HS Brito2,5
1Institute of Exact Sciences and Biology, Federal University of Ouro Preto, Ouro Preto, Brazil
2Institute of Computing, University of Campinas, Campinas, Brazil
3Department of Computer Science, University of Bath, Bath, UK
4Informatics Center, Federal University of Pernambuco, Recife, Brazil
5Institute of Computing, Federal University of Alagoas, Maceió, Brazil

Tóm tắt

Over recent years, software developers have been evaluating the benefits of both Service-Oriented Architecture (SOA) and software fault tolerance techniques based on design diversity. This is achieved by creating fault-tolerant composite services that leverage functionally-equivalent services. Three major design issues need to be considered while building software fault-tolerant architectures based on design diversity: (i) selection of variants; (ii) selection of an adjudication algorithm to choose one of the results; and (iii) execution of variants. In addition, applications based on SOA need to function effectively in a dynamic environment where it is necessary to postpone decisions until runtime. In this scenario, control is highly distributed and involves conflicting user requirements. We aim to support the software architect in the design of fault-tolerant compositions. Leveraging a taxonomy for fault-tolerant systems, this paper proposes guidelines to aid software architects in making key design decisions. The taxonomy is used as the basis for defining a set of guidelines to support the architect in making decisions related to fault tolerance in SOA. The same taxonomy is used in a systematic literature review of solutions for fault-tolerant composite services. The review investigates how existing approaches for fault-tolerant composite services address design diversity issues and also specific issues related to SOA. The contribution of this work is twofold: (i) a set of guidelines for supporting the design of fault-tolerant SOA, based on a taxonomy for fault tolerance techniques; and (ii) a systematic literature review of existing solutions for designing fault-tolerant compositions using design diversity. Although existing solutions have made significant contributions to the development of fault-tolerant SOAs, there is a lack of approaches for fault-tolerant service composition that support strategies with diverse quality requirements and encompassing sophisticated context-aware capabilities. This paper discusses which design issues have been addressed by existing diversity-based approaches for fault-tolerant composite services. Finally, practical issues and difficulties are summarized and directions for future work are suggested.

Tài liệu tham khảo

Abdeldjelil H, Faci N, Maamar Z, Benslimane D: A diversity-based approach for managing faults in web services. In Proceedings of the IEEE 26th International Conference on Advanced Information Networking and Applications. IEEE Computer Society, Los Alamitos, CA, USA; 2012:81–88. Ammar HH, Cukic B, Mili A, Fuhrman C: A comparative analysis of hardware and software fault tolerance: impact on software reliability engineering. Ann Software Eng 2000,10(1–4):103–150. Anderson, T, Barrett PA, Halliwell DN, Moulding MR (1985) Software fault tolerance: An evaluation. IEEE Trans Software Eng SE-11(12): 1502–1510. Arlat J, Kanoun K, Laprie JC: Dependability evaluation of software fault-tolerance. In Digest of Papers of the 18th International Symposium on Fault-Tolerant Computing (FTCS’18). Society, Washington, DC, USA; 1988:142–177. Avizienis A, Laprie JC, Randell B, Landwehr C: Basic concepts and taxonomy of dependable and secure computing. IEEE Trans Dependable Secure Comput 2004,1(1):11–33. Blough DM, Sullivan GF: A comparison of voting strategies for fault-tolerant distributed systems. In Proceedings of the 9th Symposium Reliable Distributed Systems (SRDS’09). IEEE Computer Society, Washington, DC, USA; 1990:136–145. Broen RB: New voters for redundant systems. J Dyn Syst Meas Contr 1975,97(1):41–45. Burrows R, Garcia A, Taiani F: Coupling metrics for aspect-oriented programming: A systematic review of maintainability studies. In Evaluation of Novel Approaches to Software Engineering. Edited by: Maciaszek L, Gonzalez-Perez C, Jablonski S. Springer, Berlin; 2010:277–290. Buys J, De Florio V, Blondia C: Towards context-aware adaptive fault tolerance in soa applications. In Proceedings of the 5th ACM International Conference on Distributed Event-Based System (DEBS’11). ACM, New York, NY, USA; 2011:63–74. Cardozo ESF, Araújo Neto JBF, Barza A, França ACC, da Silva FQB: Scrum and productivity in software projects: a systematic literature review. In Proceedings of the 14th International Conference on Evaluation and Assessment in Software Engineering (EASE’10). British Computer Society, Swinton, UK, UK; 2010:131–134. Carzaniga A, Gorla A, Pezzè M: Handling software faults with redundancy. In WADS, Lecture Notes in Computer Science, vol. 583. Edited by: de Lemos R, Fabre JC, Gacek C, Gadducci F, ter Beek MH. Springer, Berlin; 2008:148–171. Daniels F, Kim K, Vouk MA: The reliable hybrid pattern: a generalized software fault tolerant design pattern. In Proceedings of the 4th Conference of Patter Languages of Programming Conference (PloP’97). Washington University, St. Louis, MO, USA; 1997:1–9. Di Giandomenico F, Strigini L: Adjudicators for diverse-redundant components. In Proceedings of the 9th Symposium on Reliability in Distributed Software and Database Systems (SRDS’90). IEEE Computer Society, Washington, DC, USA; 1990:114–123. Dillen R, Buys J, Florio V, Blondia C: Wsdm-enabled autonomic augmentation of classical multi-version software fault-tolerance mechanisms. In Computer Safety, Reliability, and Security. Edited by: Ortmeier F, Daniel P. Springer, Berlin; 2012:294–306. Eckhardt, DE, Lee LD (1985) A theoretical basis for the analysis of multiversion software subject to coincident errors. IEEE Trans Software Eng SE-11(12): 1511–1517. Eckhardt DE, Caglayan AK, Knight JC, Lee LD, McAllister DF, Vouk MA, Kelly JPJ: An experimental evaluation of software redundancy as a strategy for improving reliability. IEEE Trans Software Eng 1991,17(7):692–702. Elmendorf, WR (1972) Fault-tolerant programming In: Proceedings of the 2nd IEEE International Symposium on Fault Tolerant Computing (FTCS’2), 79–83. Faci N, Abdeldjelil H, Maamar Z, Benslimane D: Using diversity to design and deploy fault tolerant web services. In Proceedings of the 20th IEEE International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE’11). IEEE Computer Society, Washington, DC, USA; 2011:73–78. Florio VD, Blondia C: A survey of linguistic structures for application-level fault tolerance. ACM Comput Surv 2008,40(2):6:1–6:37. Garcia AF, Rubira CMF, Romanovsky AB, Xu J: A comparative study of exception handling mechanisms for building dependable object-oriented software. J Syst Software 2001,59(2):197–222. Gärtner FC: Fundamentals of fault-tolerant distributed computing in asynchronous environments. ACM Comput Surv 1999,31(1):1–26. Gonçalves EM, Rubira CMF: Archmeds: an infrastructure for dependable service-oriented architectures. In Proceedings of the 17th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS’10). IEEE Computer Society, Washington, DC, USA; 2010:371–378. Gorbenko A, Kharchenko V, Popov P, Romanovsky A: Dependable composite web services with components upgraded online. In Architecting Dependable Systems III. Edited by: Lemos R, Gacek C, Romanovsky A. Springer-Verlag, Berlin; 2005:92–121. Gorbenko A, Kharchenko V, Romanovsky A: Using inherent service redundancy and diversity to ensure web services dependability. In Methods, Models and Tools for Fault Tolerance. Edited by: Butle M, Jones C, Romanovsky A, Troubitsyna E. Springer, Berlin; 2009:324–341. Gorbenko A, Romanovsky A, Kharchenko V, Tarasyuk O: Dependability of service-oriented computing: time-probabilistic failure modelling. In Software Engineering for Resilient Systems. Edited by: Avgeriou P. Springer, Berlin; 2012:121–133. Gotze J, Muller J, Muller P: Iterative service orchestration based on dependability attributes. In Proceedings of the 34th Euromicro Conference on Software Engineering and Advanced Applications (SEAA’08). IEEE Computer Society, Washington, DC, USA; 2008:353–360. Hilford V, Lyu MR, Cukic B, Jamoussi A, Bastani FB: Diversity in the software development process. In Proceedings of the 3rd Workshop on Object-Oriented Real-Time Dependable Systems (WORDS,97). IEEE Computer Society, Washington, DC, USA; 1997:129–136. Horning JJ, Lauer HC, Melliar-Smith PM, Randell B: A program structure for error detection and recovery. In Proceedings of an International Symposium on Operating Systems: Theoretical and Practical Aspects. Springer, London, UK; 1974:171–187. Huhns MN, Singh MP: Service-oriented computing: key concepts and principles. IEEE Internet Comput 2005,9(1):75–81. Jorgensen M, Shepperd M: A systematic review of software development cost estimation studies. IEEE Trans Software Eng 2007,33(1):33–53. Kim KH: Distributed execution of recovery blocks: An approach to uniform treatment of hardware and software faults. In Proceedings of 4th the International Conference on Distributed Computing Systems (ICDSC’84). IEEE Computer Society, Washington, DC, USA; 1984:526–532. Kitchenham B, Charters S: Guidelines for performing systematic literature reviews in software engineering. Tech. Rep. Technical Report EBSE 2007–001. Department of Computer Science, University of Durham; 2007. Kitchenham BA, Mendes E, Travassos GH: Cross versus within-company cost estimation studies: a systematic review. IEEE Trans Software Eng 2007,33(5):316–329. Kitchenham BA, Pearl Brereton O, Budgen D, Turner M, Bailey J, Linkman S: Systematic literature reviews in software engineering - a systematic literature review. Inform Software Tech 2009,51(1):7–15. Knight JC, Leveson NG: An experimental evaluation of the assumption of independence in multiversion programming. IEEE Trans Software Eng 1986,12(1):96–109. Kotonya G, Hall S: A differentiation-aware fault-tolerant framework for web services. In Service-Oriented Computing. Edited by: Maglio PP, Weske M, Yang J, Fantinato M. Springer, Berlin; 2010:137–151. Laprie JC, Béounes C, Kanoun K: Definition and analysis of hardware and software-fault-tolerant architectures. Computer 1990,23(7):39–51. Laranjeiro N, Vieira M: Towards fault tolerance in web services compositions. In Proceedings of the 2nd International Workshop on Engineering Fault Tolerant Systems (EFTS’07). ACM, New York, NY, USA; 2007. Lee PA, Anderson T: Fault tolerance: principles and practice. Springer-Verlag New York, Inc., Secaucus; 1990. Looker N, Munro M, Xu J: Increasing web service dependability through consensus voting. In Proceedings of the 29th annual International Conference on Computer Software and Applications (COMPSAC-W’05). IEEE Computer Society, Washington, DC, USA; 2005:66–69. Lyu MR: Handbook of Software Reliability Engineering. Inc., Hightstown; 1996. Lyu MR, Chen JH, Avizienis A: Experience in metrics and measurements of n-version programming. Int J Reliab Qual Saf Eng 1994,1(1):41–62. Mansour H, Dillon T: Dependability and rollback recovery for composite web services. IEEE Trans Serv Comput 2011,4(4):328–339. McAllister, DF, Vouk MA (1996) Handbook of software reliability engineering, 567–614.. McGraw-Hill, Inc., Hightstown. chap Fault-tolerant Software Reliability Engineering, ., [http://dl.acm.org/citation.cfm?id=.239425239466] Milanovic N, Malek M: Service-oriented operating system: A key element in improving service availability. In Proceedings of the 4th International Symposium on Service Availability (ISAS ‘07). Springer, Berlin; 2007:31–42. Nascimento, AS, Rubira CMF, Lee J (2011) An spl approach for adaptive fault tolerance in soa In: Proceedings of the 15th International Software Product Line Conference (SPLC’11), 1–8. Nascimento, AS, Castor F, Rubira CMF, Burrows R (2012a) An empirical study on design diversity of functionally equivalent web services In: Proceedings of the 7th International Conference on Availability, Reliability and Security (ARES’12), 236–241.. ACM, New York, NY, USA. Nascimento, AS, Castor F, Rubira CMF, Burrows R (2012b) An experimental setup to assess design diversity of functionally equivalent services In: Proceedings of the 16th International Conference on Evaluation and Assessment in Software Engineering (EASE’12), 177–186.. IET, Herts, UK. Nascimento AS, Rubira CMF, Burrows R, Castor F: A model-driven infrastructure for developing product line architectures using cvl. In Proceedings of the 7th International Conferences on Self-Adaptative and Self-Organizing Systems (SBCARS’13). IEEE Computer Society, Washington, DC, USA; 2013. Nourani E: A new architecture for dependable web services using n-version programming. In Proceedings of 3rd International Conference on Computer Research and Development (ICCRD’11). IEEE Computer Society, Washington, DC, USA; 2011:333–336. Nourani, E, Azgomi MA (2009) A design pattern for dependable web services using design diversity techniques and ws-bpel In: Proceedings of the 6th International Conference on Innovations in Information Technology (IIT’09), 290–294. Papazoglou MP, Heuvel WJ: Service oriented architectures: approaches, technologies and research issues. Int J Very Large Data Bases 2007,16(3):389–415. Papazoglou MP, Traverso P, Dustdar S, Leymann F: Service-oriented computing research roadmap. In Dagstuhl Seminar Proceedings 05462. Universidad de Talca, Talca; 2006:1–29. Papazoglou MP, Traverso P, Dustdar S, Leymann F: Service-oriented computing: state of the art and research challenges. Computer 2007,40(11):38–45. Pullum LL: Software fault tolerance techniques and implementation. Artech House, Inc., Norwood; 2001. Randell, B (1975) System structure for software fault tolerance In: Proceedings of the 1st International Conference on Reliable Software, 437–449. Saglietti F: The impact of voter granularity in fault-tolerant software on system reliability and availability. In Software Fault Tolerance. Edited by: Kersken M, Saglietti F. Springer-Verlag, Berlin; 1992:199–212. Santos GT, Lung LC, Montez C: Ftweb: a fault tolerant infrastructure for web services. In Proceedings of the 9th IEEE International EDOC Enterprise Computing Conference (EDOC ‘05). IEEE Computer Society, Washington, DC, USA; 2005:95–105. Scott RK, Gault JW, Mcallister DF: Fault-tolerant software reliability modeling. IEEE Trans Software Eng SE 1987,13(5):582–592. Shin K, Lee YH: Error detection process: model, design, and its impact on computer performance. IEEE Trans Comput 1984,33(6):529–540. Townend P, Groth P, Xu J: A provenance-aware weighted fault tolerance scheme for service-based applications. In Proceedings of the 8th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC’05). IEEE Computer Society, Washington, DC, USA; 2005:258–266. Trivedi KS, Grottke M, Andrade E: Software fault mitigation and availability assurance techniques. Int J Syst Assur Eng Manage 2010,1(4):340–350. Vouk MA, Mcallister DF, Eckhardt DE, Kim K: An empirical evaluation of consensus voting and consensus recovery block reliability in the presence of failure correlation. J Comput Software Eng 1993,1(10):364–388. Wilfredo, T (2000) Software fault tolerance: a tutorial. Tech. Rep. Technical Report NASA/TM-2000–210616, National Aeronautics and Space Administration (NASA). Williams BJ, Carver JC: Characterizing software architecture changes: A systematic review. Inform Software Tech 2010,52(1):31–51. Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Norwell; 2000. Xu J: Achieving dependability in service-oriented systems. In Dependable and Historic Computing. Edited by: Jones CB, Lloyd JL. Springer, Berlin; 2011:504–522. Yuhui C, Romanovsky A: Improving the dependability of web services integration. IT Professional 2008,10(3):29–35. Zheng Z, Lyu MR: Ws-dream: a distributed reliability assessment mechanism for web services. In Proceedings of the International Conference on Dependable Systems and Networks. IEEE Computer Society, Washington, DC, USA; 2008:392–397. Zheng, Z, Lyu MR (2010a) An adaptive qos-aware fault tolerance strategy for web services. Empir Software Eng 15(4): 323–345. Zheng, Z, Lyu MR (2010b) Collaborative reliability prediction of service-oriented systems In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE’10), 35–44.