Robust Exception Handling in an Asynchronous Environment

While distributed computing is becoming more and more mainstream, it becomes apparent that error handling is an aspect that deserves more attention. We place ourselves in the context of distributed objects, and we try to hide the network behind the usual remote method call semantic. More precisely, we concentrate on the case where method calls are asynchronous, which complicates the error handling. We start with a state of the art in this research field, and then propose our approach, detailing the problems we faced and how we solved them. Our achievement was to provide the well-known way of handling exceptions using the try/catch construction to programs written using asynchronous method calls. Unfortunately, the usage is not totally transparent because of Java limitations. The main part of the approach is to build an exception mask stack following the Java one.

[1]  Rajeev R. Raje,et al.  Asynchronous Remote Method Invocation (ARMI) Mechanism for Java , 1997, Concurr. Pract. Exp..

[2]  Polyvios Pratikakis,et al.  Transparent proxies for java futures , 2004, OOPSLA.

[3]  Christelle Urtado,et al.  A proposition for exception handling in multi-agent systems , 2003 .

[4]  Vaidy S. Sunderam,et al.  Semantic aspects of asynchronous RMI: the RMIX approach , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[5]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[6]  SR : A Language for Parallel and Distributed Programming March 9 , 1992 , 1992 .

[7]  Thierry Coupaye,et al.  ASM: a code manipulation tool to implement adaptable systems , 2002 .

[8]  Pierre Vignéras Vers une programmation locale et distribuée unifiée au travers de l'utilisation de conteneurs actifs et de références asynchrones , 2004 .

[9]  Denis Caromel,et al.  Non-Functional Exceptions for Distributed and Mobile Objects , .

[10]  Toshiaki Yasue,et al.  A region-based compilation technique for a Java just-in-time compiler , 2003, PLDI '03.

[11]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[12]  Tingjian Ge,et al.  JR: Flexible distributed programming in an extended Java , 2004, TOPL.

[13]  Ronald A. Olsson,et al.  Exception Handling during Asynchronous Method Invocation (Research Note) , 2002, Euro-Par.

[14]  Jie Xu,et al.  Exception handling and resolution in distributed object-oriented systems , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.