Automatic workarounds for web applications

Automatic workarounds for web applications
复制标题

DOI:
10.1145/1882291.1882327
复制
发表时间:
2010-11
期刊:
--
影响因子:
--
通讯作者:
A. Carzaniga;Alessandra Gorla;Nicolò Perino;M. Pezzè
A. Carzaniga;Alessandra Gorla;Nicolò Perino;M. Pezzè
中科院分区:
其他
文献类型:
--
作者:
A. Carzaniga;Alessandra Gorla;Nicolò Perino;M. Pezzè

文献摘要

被引文献

相似文献

我们提出了一项技术,该技术会自动和运行时为故障的Web应用程序找到解决方法。自动变速器利用Web应用程序的固有冗余性,因此可以通过Web API的不同调用序列获得应用程序的功能。通常,运行时解决方法是针对失败的,并要求该应用程序在执行解决方案之前和之后保持一致的状态。因此,它们非常适合交互式Web应用程序,因为这些应用程序允许用户以最小的努力充当故障检测器,并且还可以使用仅阅读状态或通过交易数据存储管理其状态。在本文中,我们着重于广泛使用的Web应用程序(例如Google Maps)的访问库中发现的错误。首先,我们对已知解决方法的Google Maps和YouTube API的许多报告的故障进行分类。从那些人中,我们得出了许多一般和API特定的程序练习规则,然后我们将其应用于其他不知道解决方法的错误。我们的实验表明,解决方法可以通过简单的客户端插件轻松地部署在Web应用程序中,并且从公共库的基本属性中得出的程序练习规则可以有效地查找有效且以前未知的解决方法。
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.