Minimizing completion time of a program by checkpointing and rejuvenation
Proceedings of the 1996 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
A survey of rollback-recovery protocols in message-passing systems
ACM Computing Surveys (CSUR)
System structure for software fault tolerance
Proceedings of the international conference on Reliable software
SH-BPEL: a self-healing plug-in for Ws-BPEL engines
Proceedings of the 1st workshop on Middleware for Service Oriented Computing (MW4SOC 2006)
Rx: Treating bugs as allergies—a safe method to survive software failures
ACM Transactions on Computer Systems (TOCS)
Self-healing BPEL processes with Dynamo and the JBoss rule engine
International workshop on Engineering of software services for pervasive environments: in conjunction with the 6th ESEC/FSE joint meeting
The N-Version Approach to Fault-Tolerant Software
IEEE Transactions on Software Engineering
Self-healing by means of automatic workarounds
Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems
Healing Web applications through automatic workarounds
International Journal on Software Tools for Technology Transfer (STTT)
In-field healing of integration problems with COTS components
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatic mining of functionally equivalent code fragments via random testing
Proceedings of the eighteenth international symposium on Software testing and analysis
Ensuring interoperable service-oriented systems through engineered self-healing
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Generating Fixes from Object Behavior Anomalies
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
RAW: runtime automatic workarounds
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Static detection of resource contention problems in server-side scripts
Proceedings of the 34th International Conference on Software Engineering
A self-healing technique for Java applications
Proceedings of the 34th International Conference on Software Engineering
Automating presentation changes in dynamic web applications via collaborative hybrid analysis
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Systematic guidance in solving performance and scalability problems
Proceedings of the 18th international doctoral symposium on Components and architecture
Automatic recovery from runtime failures
Proceedings of the 2013 International Conference on Software Engineering
A framework for self-healing software systems
Proceedings of the 2013 International Conference on Software Engineering
Exception handlers for healing component-based systems
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Automated runtime recovery for QoS-based service composition
Proceedings of the 23rd international conference on World wide web
Hi-index | 0.00 |
We present a technique that finds and executes workarounds for faulty Web applications automatically and at runtime. Automatic workarounds exploit the inherent redundancy of Web applications, whereby a functionality of the application can be obtained through different sequences of invocations of Web APIs. In general, runtime workarounds are applied in response to a failure, and require that the application remain in a consistent state before and after the execution of a workaround. Therefore, they are ideally suited for interactive Web applications, since those allow the user to act as a failure detector with minimal effort, and also either use read-only state or manage their state through a transactional data store. In this paper we focus on faults found in the access libraries of widely used Web applications such as Google Maps. We start by classifying a number of reported faults of the Google Maps and YouTube APIs that have known workarounds. From those we derive a number of general and API-specific program-rewriting rules, which we then apply to other faults for which no workaround is known. Our experiments show that workarounds can be readily deployed within Web applications, through a simple client-side plug-in, and that program-rewriting rules derived from elementary properties of a common library can be effective in finding valid and previously unknown workarounds.