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.

     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