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...
Main Authors: | , , |
---|---|
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 |