Exceptions, Errors, and Termination for
Asynchronous Objects
Dealing with exceptions and errors in distributed and object-oriented
systems is not an easy task, but pragmatic
solutions are now being defined and used (see for instance the Java RMI
library). With the emergence of Distributed
and Asynchronous objects, new
challenges are being faced.
First of all, upon an asynchronous call (the caller is not
blocked waiting for the reply), if an exception occurs, where and
how to propagate it?
The control might be outside the scope of the try-catch exception
handling.
In fact, it seems that different solutions have to be used
simultaneously, depending on the nature and time of the exception:
- at request transmission,
- at request service (e.g. a pre-condition on parameters not being
respected),
- at reply transmission (e.g. a post-condition on result not being
respected),
- at reply reception,
- upon the use of the result.
An important aspect to be taken into account is the
contextual nature of exceptions:
some exceptions in a given situation are just normal cases in another
framework.
For instance, if a remote object cannot be reached in a distributed
system, an exception is usually
launched. But, if the system must handle unconnected communication
mode (e.g. a laptop or a
PDA not being connected to a server all the time), it is no longer an
error but just a special case to be
handled by the system (i.e. storing the message for later
transmission).
By analogy to component technology that exhibited
Non-Functional Properties (Security, Persistence, Transaction,
etc.), we could talk here about Non-Functional
Exceptions:
exceptions that are not at the application level, but maybe at the
deployment level. As such, they might be subject to various
configurations and potentially dynamic policies.
To summarize, the general objective of this research will be to:
- propose, define and, experiment flexible
mechanisms to deal with Functional and
Non-Functional Exceptions in
distributed, mobile, and asynchronous object systems.
- propose, define and, experiment flexible
mechanisms to deal with Error and Termination
If the candidate is willing to, protocols for Distributed Garbage
Collections can be designed and used.
The models and propositions must be flexible enough to deal with the
variations exposed above, and to specifically take into account ``Non
Functional Exceptions'' and errors.
MOP (Meta-Object Protocol) and reflection are clearly
techniques that can provide answers to such objectives.
At the same time, the static verification of exception handling
from method signature is clearly an issue that has to be taken into
account; in Java the exeptions are part
of the type system are checked statically.
P2P architectures and configurations will have to be taken into account.
Experiments will be achieved within the ProActive framework, a
100% Java library offering basic features that will allow to move
quickly to the heart of this research:
o creation of remote active objects,
o asynchronous calls with transparent futures,
o mobility of active objects with automatic
forwarding of request and reply.
The library is itself extensible by the programmers, making the system
open for adaptations and
research experimentations.
These research should lead to a PhD program (Thèse de
Doctorat).
Encadrement : Denis Caromel
Téléphone : 04 92 38 76 31
Email :
Denis.Caromel@inria.fr
Laboratoire ou équipe : INRIA Sophia Antipolis --
I3S-CNRS, Projet OASIS
Part of an International collaboration with : Alexander
Romanovsky
Phone : +44 191 222 8135 Fax : +44 191 222 8232
Email :
Alexander.Romanovsky@newcastle.ac.uk
Affiliation: Department of Computing Science, University of
Newcastle, Newcastle upon Tyne, NE1 7RU, UK
and also with : Christophe Dony
Phone : (+33) 4 67 41 85 33 Fax : (+33) 4 67 41 85 00
Email :
dony@lirmm.fr
Affiliation: Université Montpellier-II - LIRMM, France
Prérequis : langages à objets, programmation
répartie
Matériel et logiciels utilisés : Stations de
travail, Java
Lieu du stage: INRIA Sophia Antipolis, Nice, France,
potentially
visits at University of Newcastle, Newcastle upon Tyne, UK.
Références:
Towards Seamless Computing and
Metacomputing in Java
D. Caromel, W. Klauser, J. Vayssiere,
pp. 1043--1061 in Concurrency Practice and
Experience,
September-November 1998, 10(11--13), Editor
Geoffrey C. Fox, Published by Wiley & Sons.
Available
here
Advances in Exception Handling Techniques.
A. Romanovsky, C. Dony, J.L. Knudsen, A.
Tripathi (Eds).
Springer-Verlag, LNCS-2022, 289 pages, 2001.
Available
here
Computational reflection in class based
object oriented languages.
Jacques Ferber.
In Norman Meyrowitz, editor, Proceedings of
OOPSLA'89, pages 317--326,
New Orleans, Louisiana, October 1989. ACM.
Maybe
Soon vailable here