Rollback recovery in session-based programming

To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of “undoing” the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we pro...

Full description

Bibliographic Details
Main Authors: Mezzina, CA, Tiezzi, F, Yoshida, N
Format: Conference item
Language:English
Published: Springer 2023
_version_ 1826310150444548096
author Mezzina, CA
Tiezzi, F
Yoshida, N
author_facet Mezzina, CA
Tiezzi, F
Yoshida, N
author_sort Mezzina, CA
collection OXFORD
description To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of “undoing” the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we propose a language enriched with programming facilities to commit session interactions, to roll back the computation to a previous commit point, and to abort the session. Rollbacks in our language always bring the system to previous visited states and a rollback cannot bring the system back to a point prior to the last commit. Programmers are relieved from the burden of ensuring that a rollback never restores a checkpoint imposed by a session participant different from the rollback requester. Such undesired situations are prevented at design-time (statically) by relying on a decidable compliance check at the type level, implemented in MAUDE. We show that the language satisfies error-freedom and progress of a session.
first_indexed 2024-03-07T07:47:48Z
format Conference item
id oxford-uuid:fc9797cb-874b-43ae-a52f-7a53b1c11b78
institution University of Oxford
language English
last_indexed 2024-03-07T07:47:48Z
publishDate 2023
publisher Springer
record_format dspace
spelling oxford-uuid:fc9797cb-874b-43ae-a52f-7a53b1c11b782023-06-15T08:36:46ZRollback recovery in session-based programmingConference itemhttp://purl.org/coar/resource_type/c_5794uuid:fc9797cb-874b-43ae-a52f-7a53b1c11b78EnglishSymplectic ElementsSpringer2023Mezzina, CATiezzi, FYoshida, NTo react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of “undoing” the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we propose a language enriched with programming facilities to commit session interactions, to roll back the computation to a previous commit point, and to abort the session. Rollbacks in our language always bring the system to previous visited states and a rollback cannot bring the system back to a point prior to the last commit. Programmers are relieved from the burden of ensuring that a rollback never restores a checkpoint imposed by a session participant different from the rollback requester. Such undesired situations are prevented at design-time (statically) by relying on a decidable compliance check at the type level, implemented in MAUDE. We show that the language satisfies error-freedom and progress of a session.
spellingShingle Mezzina, CA
Tiezzi, F
Yoshida, N
Rollback recovery in session-based programming
title Rollback recovery in session-based programming
title_full Rollback recovery in session-based programming
title_fullStr Rollback recovery in session-based programming
title_full_unstemmed Rollback recovery in session-based programming
title_short Rollback recovery in session-based programming
title_sort rollback recovery in session based programming
work_keys_str_mv AT mezzinaca rollbackrecoveryinsessionbasedprogramming
AT tiezzif rollbackrecoveryinsessionbasedprogramming
AT yoshidan rollbackrecoveryinsessionbasedprogramming