DocumentCode :
3307982
Title :
Implementing Retry - Featuring AOP
Author :
Cabral, Bruno ; Marques, Paulo
Author_Institution :
CISUC, Univ. of Coimbra, Coimbra, Portugal
fYear :
2009
fDate :
1-4 Sept. 2009
Firstpage :
73
Lastpage :
80
Abstract :
Everyday experience tells us that some errors are transient, but also that some can be handled simply by "retrying" the failed operation. For instance, a glitch on the network might turn a resource unreachable for a short period of time; or a sudden peak of work on a server can cause a momentary denial of service. In many occasions, without other kind of specialized recovery code, it is possible to keep a program running only by retrying a failed operation. Unfortunately, retry is not explicitly available on many platforms or programming languages and, even if it were, it could not be blindly used for dealing with every abnormal situation. On languages like C# or Java, or even on languages that offer the retry construct such as Smalltalk and Eiffel, where errors are represented and communicated through exceptions, there is no simple way to clear the effects of a failed operation and, thus, re-attempt its execution. Programmers have to explicitly write sometimes complex and error-prone code to repair the state of a program and the execution context. In this paper, we propose an AOP technique for implementing "retry" on systems lacking such a feature without using any language extensions for AOP or imposing modifications to the development language. Our approach eliminates the need for programmers to write "state-cleaning" code for normal objects by means of a transparent transactional mechanism and provides the means to identify non-idempotent operations on the code. In our evaluation we show that a relevant number of application failures can be masked using this approach.
Keywords :
C language; Java; codes; security of data; AOP; C#; Java; denial of service; programming languages; specialized recovery code; state-cleaning code; Automatic programming; Computer crime; Computer languages; Context; Encapsulation; Java; Network servers; Programming profession; Runtime environment;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Dependable Computing, 2009. LADC '09. Fourth Latin-American Symposium on
Conference_Location :
Joao Pessoa
Print_ISBN :
978-1-4244-4678-0
Electronic_ISBN :
978-0-7695-3760-3
Type :
conf
DOI :
10.1109/LADC.2009.15
Filename :
5234317
Link To Document :
بازگشت