14 research outputs found
Compliance for reversible client/server interactions
In the setting of session behaviours, we study an extension of the concept of
compliance when a disciplined form of backtracking is present. After adding
checkpoints to the syntax of session behaviours, we formalise the operational
semantics via a LTS, and define a natural notion of checkpoint compliance. We
then obtain a co-inductive characterisation of such compliance relation, and an
axiomatic presentation that is proved to be sound and complete. As a byproduct
we get a decision procedure for the new compliance, being the axiomatic system
algorithmic.Comment: In Proceedings BEAT 2014, arXiv:1408.556
Retractable Contracts
In calculi for modelling communication protocols, internal and external
choices play dual roles. Two external choices can be viewed naturally as dual
too, as they represent an agreement between the communicating parties. If the
interaction fails, the past agreements are good candidates as points where to
roll back, in order to take a different agreement. We propose a variant of
contracts with synchronous rollbacks to agreement points in case of deadlock.
The new calculus is equipped with a compliance relation which is shown to be
decidable.Comment: In Proceedings PLACES 2015, arXiv:1602.0325
Loosening the notions of compliance and sub-behaviour in client/server systems
In the context of "session behaviors" for client/server systems, we propose a
weakening of the compliance and sub-behaviour relations where the bias toward
the client (whose "requests" must be satisfied) is pushed further with respect
to the usual definitions, by admitting that "not needed" output actions from
the server side can be "skipped" by the client. Both compliance and
sub-behaviour relations resulting from this weakening remain decidable, though
the proof of the duals-as-minima property for servers, on which the
decidability of the sub-behaviour relation relies, requires a tighter analysis
of client/server interactions.Comment: In Proceedings ICE 2014, arXiv:1410.701
Reversing Single Sessions
Session-based communication has gained a widespread acceptance in practice as
a means for developing safe communicating systems via structured interactions.
In this paper, we investigate how these structured interactions are affected by
reversibility, which provides a computational model allowing executed
interactions to be undone. In particular, we provide a systematic study of the
integration of different notions of reversibility in both binary and multiparty
single sessions. The considered forms of reversibility are: one for completely
reversing a given session with one backward step, and another for also
restoring any intermediate state of the session with either one backward step
or multiple ones. We analyse the costs of reversing a session in all these
different settings. Our results show that extending binary single sessions to
multiparty ones does not affect the reversibility machinery and its costs
Causal Consistency for Reversible Multiparty Protocols
In programming models with a reversible semantics, computational steps can be
undone. This paper addresses the integration of reversible semantics into
process languages for communication-centric systems equipped with behavioral
types. In prior work, we introduced a monitors-as-memories approach to
seamlessly integrate reversible semantics into a process model in which
concurrency is governed by session types (a class of behavioral types),
covering binary (two-party) protocols with synchronous communication. The
applicability and expressiveness of the binary setting, however, is limited.
Here we extend our approach, and use it to define reversible semantics for an
expressive process model that accounts for multiparty (n-party) protocols,
asynchronous communication, decoupled rollbacks, and abstraction passing. As
main result, we prove that our reversible semantics for multiparty protocols is
causally-consistent. A key technical ingredient in our developments is an
alternative reversible semantics with atomic rollbacks, which is conceptually
simple and is shown to characterize decoupled rollbacks.Comment: Extended, revised version of a PPDP'17 paper
(https://doi.org/10.1145/3131851.3131864
A theory of retractable and speculative contracts
International audienceBehavioral contracts are abstract descriptions of expected communication patterns followed by either clients or servers during their interaction. Behavioral contracts come naturally equipped with a notion of compliance: when a client and a server follow compliant contracts, their interaction is guaranteed to progress or successfully complete. We study two extensions of behavioral contracts, retractable contracts dealing with backtracking and speculative contracts dealing with speculative execution. We show that the two extensions give rise to the same notion of compliance. As a consequence, they also give rise to the same subcontract relation, which determines when one server can be replaced by another preserving compliance. Moreover, compliance and subcontract relation are both decidable in quadratic time. Finally, we study the relationship between retractable contracts and calculi for reversible computing
Composition and Decomposition of Multiparty Sessions
International audienceMultiparty sessions are systems of concurrent processes, which allow several participants to communicate by sending and receiving messages. Their overall behaviour can be described by means of global types. Typable multiparty sessions enjoy lock-freedom. We look at multiparty sessions as open systems by allowing one to compose multiparty sessions by transforming two of their participants into a pair of coupled gateways, forwarding messages between the two sessions. Gateways need to be compatible. We show that the session resulting from the composition can be typed, and its type can be computed from the global types of the starting sessions. As a consequence, lock-freedom is preserved by composition. Compatibility between global types is necessary, since systems obtained by composing sessions with incompatible global types have locks (or they are not sessions). We also define direct composition, which allows one to connect two global types without using gateways. Finally, we propose a decomposition operator, to split a global type into two, which is the left inverse of direct composition. Direct composition and decomposition on global types prepare the ground for a novel framework allowing for the modular design and implementation of distributed systems