Automated Fault Localization for Service-Oriented Software Systems

In this thesis, we have focused on applying Spectrum-based Fault Localization (SFL) to diagnose Service-Oriented Systems at runtime. We reused a framework-based online monitoring technique to obtain the service transaction information. We devised a three-phased oracle and combined this with monitoring to detect system failures at runtime. Both monitor and oracle generate component involve- ment and pass/fail information required by SFL. We conducted an experiment with a case system to validate the performance of SFL in diagnosing service-oriented systems. The results show that SFL is able to identify faulty service operations in 73% of the cases correctly. With the preliminary attempt of applying SFL to service-oriented systems, we discovered that the monitoring topology can influence the accuracy of diagnosis for service-oriented systems. Therefore, we applied Genetics Algorithms (GA) to find the optimal monitoring topologies for SFL diagnosis. With the assistance of GA techniques, we have identified the following characteristics of optimal monitoring topologies: • invoking components in isolation • more monitoring points, including the monitoring of inactivity • including the monitoring of the system context • including tracing information Through a careful investigation of the failed diagnoses from the initial step of applying SFL to service-oriented systems, we found that the main reasons for failed diagnoses can be attributed to (1) tight interactions between services and (2) fault intermittency of services. In order to improve the diagnosis, we have proposed two possible solutions to deal with tight interaction. One solution is to increase the monitoring granularity by adding monitors at the code block level in the service implementation. The other solution is to include the monitoring of invocation links between services into the SFL diagnosis. The former solution is able to achieve 100% correct diagnoses, however, it requires the ownership of services to place monitors inside the services. The latter solution can be done with a more realistic set-up and it can also significantly improve the diagnoses. We have also assessed the runtime overhead caused by the diagnosis for service-oriented system. Since the diagnosis engine in our approach is detached from the service-oriented system, the overhead of diagnosis imposed on the running service-oriented system is from monitoring. We measured the monitoring overhead at different levels of granularity, and found out that the monitoring at the service communication level consumes high overhead, whereas the monitoring at the service implementation level is much lower, but highly depends on the number of monitors deployed.

[1]  Colin Atkinson,et al.  Reducing Verification Effort in Component-Based Software Engineering through Built-In Testing , 2006, 2006 10th IEEE International Enterprise Distributed Object Computing Conference (EDOC'06).

[2]  Bradley R. Schmerl,et al.  SORASCS: a case study in soa-based platform design for socio-cultural analysis , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[3]  Marco Pistore,et al.  Run-Time Monitoring of Instances and Classes of Web Service Compositions , 2006, 2006 IEEE International Conference on Web Services (ICWS'06).

[4]  Tom Mens,et al.  Towards a software evolution benchmark , 2001, IWPSE '01.

[5]  Andy Zaidman,et al.  Analysis of service diagnosis improvement through increased monitoring granularity , 2017, Software Quality Journal.

[6]  Johan de Kleer,et al.  Fundamentals of model-based diagnosis , 2003 .

[7]  Susan Elliott Sim,et al.  Using benchmarking to advance research: a challenge to software engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[9]  Jun Han,et al.  Run-time management and optimization of web service monitoring systems , 2011, 2011 IEEE International Conference on Service-Oriented Computing and Applications (SOCA).

[10]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[11]  Patrick Martin,et al.  A Middleware Solution to Monitoring Composite Web Services-Based Processes , 2008, 2008 IEEE Congress on Services Part II (services-2 2008).

[12]  Sebastian Abeck,et al.  Towards a Model-driven Development of Monitored Processes , 2007, Wirtschaftsinformatik.

[13]  Byoungju Choi,et al.  A family of code coverage-based heuristics for effective fault localization , 2010, J. Syst. Softw..

[14]  John A. Clark,et al.  Metrics are fitness functions too , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..

[15]  Doug Tidwell,et al.  Programming Web services with SOAP , 2001 .

[16]  Paolo Traverso,et al.  Service-Oriented Computing: a Research Roadmap , 2008, Int. J. Cooperative Inf. Syst..

[17]  George Spanoudakis,et al.  Run-time monitoring of requirements for systems composed of Web-services: initial implementation and evaluation experience , 2005, IEEE International Conference on Web Services (ICWS'05).

[18]  Walter Binder,et al.  Automated maintenance of service compositions with SLA violation detection and dynamic binding , 2010, International Journal on Software Tools for Technology Transfer.

[19]  James R. Larus,et al.  The use of program profiling for software maintenance with applications to the year 2000 problem , 1997, ESEC '97/FSE-5.

[20]  Andy Zaidman,et al.  Spicy stonehenge: Proposing a SOA case study , 2012, 2012 4th International Workshop on Principles of Engineering Service-Oriented Systems (PESOS).

[21]  Hans-Gerhard Gross,et al.  Runtime Integration and Testing for Highly Dynamic Service Oriented ICT Solutions -- An Industry Challenges Report , 2009, 2009 Testing: Academic and Industrial Conference - Practice and Research Techniques.

[22]  G.A. Lewis,et al.  Service-Oriented Architecture and its implications for software maintenance and evolution , 2008, 2008 Frontiers of Software Maintenance.

[23]  Paolo Traverso,et al.  Service-Oriented Computing: State of the Art and Research Challenges , 2007, Computer.

[24]  Kwei-Jay Lin,et al.  A Hybrid Diagnosis Approach for QoS Management in Service-Oriented Architecture , 2012, 2012 IEEE 19th International Conference on Web Services.

[25]  Luciano Baresi,et al.  Event-Based Multi-level Service Monitoring , 2013, 2013 IEEE 20th International Conference on Web Services.

[26]  Carlo Ghezzi,et al.  Monitoring conversational web services , 2007, IW-SOSWE '07.

[27]  S. Papavassiliou,et al.  Diagnosing Anomalies and Identifying Faulty Nodes in Sensor Networks , 2007, IEEE Sensors Journal.

[28]  Carlo Ghezzi,et al.  A journey to highly dynamic, self-adaptive service-based applications , 2008, Automated Software Engineering.

[29]  Philippe Dague,et al.  A Model-Based Approach for Diagnosing Fault in Web Service Processes , 2009, Int. J. Web Serv. Res..

[30]  Kazuhiro Saitou,et al.  Genetic algorithms as an approach to configuration and topology design , 1994, DAC 1993.

[31]  Gregory M. Provan,et al.  Approximate Model-Based Diagnosis Using Greedy Stochastic Search , 2010, J. Artif. Intell. Res..

[32]  Rudi Lutz,et al.  Evolving good hierarchical decompositions of complex systems , 2001, J. Syst. Archit..

[33]  Claus Pahl,et al.  Customisable Transformation-Driven Evolution for Service Architectures , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[34]  Erkki Mäkinen,et al.  Generating software architecture spectrum with multi-objective genetic algorithms , 2011, 2011 Third World Congress on Nature and Biologically Inspired Computing.

[35]  Erkki Mäkinen,et al.  Genetic Synthesis of Software Architecture , 2008, SEAL.

[36]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[37]  Sooyong Park,et al.  Reinforcement learning-based dynamic adaptation planning method for architecture-based self-managed software , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[38]  M M Lehman,et al.  Software Evolution , 2002 .

[39]  Ralf Steinmetz,et al.  A Cross-Layer Approach to Performance Monitoring of Web Services , 2006, WEWST@ECOWS.

[40]  Gerardo Canfora,et al.  Service-Oriented Architectures Testing: A Survey , 2009, ISSSE.

[41]  M. Ceccato,et al.  Applying and combining three different aspect Mining Techniques , 2006, Software Quality Journal.

[42]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[43]  Anup Kumar,et al.  A genetic algorithm for distributed system topology design , 1995 .

[44]  Luciano Baresi,et al.  Towards Self-healing Composition of Services , 2007, Contributions to Ubiquitous Computing.

[45]  Markus Stumptner,et al.  Diagnosis of Service Failures by Trace Analysis with Partial Knowledge , 2010, ICSOC.

[46]  Giovanni Denaro,et al.  Ensuring interoperable service-oriented systems through engineered self-healing , 2009, ESEC/FSE '09.

[47]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[48]  Eric A. Brewer,et al.  Pinpoint: problem determination in large, dynamic Internet services , 2002, Proceedings International Conference on Dependable Systems and Networks.

[49]  Andy Zaidman,et al.  Spectrum-based fault diagnosis for service-oriented software systems , 2012, 2012 Fifth IEEE International Conference on Service-Oriented Computing and Applications (SOCA).

[50]  Peter Zoeteweij,et al.  An Evaluation of Similarity Coefficients for Software Fault Localization , 2006, 2006 12th Pacific Rim International Symposium on Dependable Computing (PRDC'06).

[51]  Pearl Brereton,et al.  Service-based software: the future for flexible software , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[52]  Markus Stumptner,et al.  On computing correct processes and repairs sing partial behavioral models , 2012, ECAI.

[53]  Johan Moe,et al.  Understanding distributed systems via execution trace data , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[54]  Heiko Ludwig,et al.  The WSLA Framework: Specifying and Monitoring Service Level Agreements for Web Services , 2003, Journal of Network and Systems Management.

[55]  Schahram Dustdar,et al.  Non-intrusive monitoring and service adaptation for WS-BPEL , 2008, WWW.

[56]  Irene Grosclaude Model-based monitoring of component-based software systems , 2004 .

[57]  Marco Pistore,et al.  Assumption-Based Composition and Monitoring of Web Services , 2007, Test and Analysis of Web Services.

[58]  Peter Zoeteweij,et al.  A practical evaluation of spectrum-based fault localization , 2009, J. Syst. Softw..

[59]  Kwei-Jay Lin,et al.  A dependency matrix based framework for QoS diagnosis in SOA , 2009, 2009 IEEE International Conference on Service-Oriented Computing and Applications (SOCA).

[60]  Arie van Deursen,et al.  Realizing service migration in industry—lessons learned , 2011, J. Softw. Evol. Process..

[61]  Pearl Brereton,et al.  Turning Software into a Service , 2003, Computer.

[62]  Kai Koskimies,et al.  Tool Support for Software Architecture Design with Genetic Algorithms , 2010, 2010 Fifth International Conference on Software Engineering Advances.

[63]  Alexander L. Wolf,et al.  Fault Localization in MANET-Hosted Service-Based Systems , 2012, 2012 IEEE 31st Symposium on Reliable Distributed Systems.

[64]  Gerardo Canfora,et al.  Testing services and service-centric systems: challenges and opportunities , 2006, IT Professional.

[65]  Farooque Azam,et al.  A Survey of Quality Assurance Frameworksfor Service Oriented Systems , 2011 .

[66]  Mike P. Papazoglou,et al.  The Challenges of Service Evolution , 2008, CAiSE.

[67]  Hans-Gerhard Gross,et al.  Runtime Testability in Dynamic High-Availability Component-Based Systems , 2010, 2010 Second International Conference on Advances in System Testing and Validation Lifecycle.

[68]  Boualem Benatallah,et al.  Service Oriented Architecture: Overview and Directions , 2007, Lipari Summer School.

[69]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[70]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[71]  Peter Zoeteweij,et al.  Diagnosis of Embedded Software Using Program Spectra , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[72]  Andy Zaidman,et al.  Maintenance Research in SOA - Towards a Standard Case Study , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[73]  Gilbert Syswerda,et al.  Uniform Crossover in Genetic Algorithms , 1989, ICGA.

[74]  David E. Goldberg,et al.  Genetic Algorithms, Tournament Selection, and the Effects of Noise , 1995, Complex Syst..

[75]  Jun Han,et al.  Assessing the Performance Impact of Service Monitoring , 2010, 2010 21st Australian Software Engineering Conference.

[76]  Paola Inverardi,et al.  Automatic synthesis of behavior protocols for composable web-services , 2009, ESEC/FSE '09.

[77]  Andy Zaidman,et al.  Improving Service Diagnosis through Invocation Monitoring , 2013, 2013 13th International Conference on Quality Software.

[78]  Peter Zoeteweij,et al.  Software fault diagnosis , 2007 .

[79]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[80]  Rui Abreu,et al.  Spectrum-Based Sequential Diagnosis , 2011, AAAI.

[81]  J. F. Aguilar Madeira,et al.  Multi-objective optimization of structures topology by genetic algorithms , 2005, Adv. Eng. Softw..

[82]  Nicolai M. Josuttis,et al.  Soa In Practice The Art Of Distributed System Design , 2007 .

[83]  Luciano Baresi,et al.  Smart monitors for composed services , 2004, ICSOC '04.

[84]  Arjan J. C. van Gemund,et al.  Prioritizing Tests for Software Fault Localization , 2010, 2010 10th International Conference on Quality Software.

[85]  Eda Marchetti,et al.  Introducing service-oriented coverage testing , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[86]  Philippe Dague,et al.  Modeling and Diagnosing OrchestratedWeb Service Processes , 2007, IEEE International Conference on Web Services (ICWS 2007).

[87]  Wu Chou,et al.  Control Flow Analysis and Coverage Driven Testing for Web Services , 2008, 2008 IEEE International Conference on Web Services.

[88]  Soo-Ho Chang,et al.  Building Accountability Middleware to Support Dependable SOA , 2009, IEEE Internet Computing.

[89]  Andy Zaidman,et al.  Improving Service Diagnosis through Increased Monitoring Granularity , 2013, 2013 IEEE 7th International Conference on Software Security and Reliability.

[90]  G. Granelli,et al.  A genetic algorithm-based procedure to optimize system topology against parallel flows , 2006, IEEE Transactions on Power Systems.

[91]  Markus Stumptner,et al.  Evaluating Models for Model-Based Debugging , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[92]  George Spanoudakis,et al.  Non-Intrusive Monitoring of Service-Based Systems , 2006, Int. J. Cooperative Inf. Syst..

[93]  Annapaola Marconi,et al.  Synthesis and Composition of Web Services , 2009, SFM.

[94]  Liliana Ardissono,et al.  Fault Tolerant Web Service Orchestration by Means of Diagnosis , 2006, EWSA.

[95]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[96]  John W. Creswell,et al.  Designing and Conducting Mixed Methods Research , 2006 .

[97]  Andy Zaidman,et al.  A framework-based runtime monitoring approach for service-oriented software systems , 2011, QASBA '11.