The French National Research Agency Projects for science

Voir cette page en français

ANR funded project

Ingénierie Numérique et Sécurité (INS) 2011
Projet REVER

Programming reversible recoverable systems

Despite the development of many techniques to add reliability and availability to distributed systems
(including exception handling, checkpointing and rollback-recovery schemes, replication protocols, transaction management facilities),
programming dependability remains a challenge. This is in no small part due to the fact that abstractions
available to a system or application programmer are very heterogeneous in scope and function, present different tradeoffs and focuses,
do not compose well, have no common semantical basis and suffer from limited programming language support.
For the most part, these abstractions are available only as separate
programming language libraries, with differing if not conflicting requirements
in terms of programming model assumptions and constraints.

The REVER project aims to address this challenge by facilitating the programming of \emph{recoverable} systems,
i.e. of systems that can tolerate faults by means of system recovery techniques.
Programming recoverable systems is approached in REVER by adopting a radical position. Recognizing that all system recovery schemes rely
on some form of undo or rollback, \rever intends to study the implications, from a programming model point of view, of the following question:

what if we could \textsc{undo} any single action in a distributed program ?

More precisely, the REVER project aims to study the possibility of defining semantically well-founded and composable abstractions for dependable computing on the basis of a reversible programming language substrate,
where \emph{reversibility} means the ability to undo any distributed program execution, possibly step by step, and to revert it
to a state consistent with the past execution. The critical assumption behind \rever is that by adopting a reversible model of computation,
and by combining it with appropriate notions of compensation (to deal with non-reversible elements in distributed computations such as real-world effects) and modularity (in particular to support fault isolation), one can develop systematic and composable abstractions for recoverable and dependable programming.

The REVER workprogramme is articulated around three major objectives:


1. To investigate the semantics of reversible concurrent processes, in particular the relationship that exists between
reversibility and causality, and notions of simulation and equivalence between reversible processes.
2. To study the combination of reversibility with notions of compensation, isolation and modularity in a concurrent and distributed setting,
in order to obtain composable abstractions for programming recoverable systems.
3. To investigate how to introduce these abstractions in a practical (typically, object-oriented and functional) programming language design,
and how they can be implemented efficiently in a distributed and multicore execution environment.


The REVER project is 4-year project, coordinated by INRIA. The REVER partners are: CEA/LIST (MeASI team), the (CNRS-Paris 7) PPS laboratory,
and INRIA (Focus and Sardes teams).

Partners

CEA COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES - CENTRE D'ETUDES NUCLEAIRES SACLAY

INRIA RA- EPI SARDES INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE - (INRIA Siège)

PPS UNIVERSITE DE PARIS 7

ANR grant: 589 774 euros
Beginning and duration: décembre 2011 - 48 mois

 

ANR Programme: Ingénierie Numérique et Sécurité (INS) 2011

Project ID: ANR-11-INSE-0007

Project coordinator:
Monsieur Jean-Bernard Stefani (INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE - (INRIA Siège))
Jean-Bernard.Stefani@nullinria.fr

 

Back to the previous page

 

The project coordinator is the author of this abstract and is therefore responsible for the content of the summary. The ANR disclaims all responsibility in connection with its content.