Composable partial multiparty session types for open systems
Session types are a well-established framework for the specification of interactions between components of a distributed systems. An important issue is how to determine the type for an open system, i.e., obtained by assembling subcomponents, some of which could be missing. To this end, we introduce...
Saved in:
Published in | Software and systems modeling Vol. 22; no. 2; pp. 473 - 494 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
Berlin/Heidelberg
Springer Berlin Heidelberg
01.04.2023
Springer Nature B.V |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Session types are a well-established framework for the specification of interactions between components of a distributed systems. An important issue is how to determine the type for an
open
system, i.e., obtained by assembling subcomponents, some of which could be missing. To this end, we introduce
partial sessions
and
partial (multiparty) session types
. Partial sessions can be
composed
, and the type of the resulting system is derived from those of its components without knowing any suitable global type nor the types of missing parts. To deal with this incomplete information, partial session types represent the
subjective
views of the interactions from participants’ perspectives; when sessions are composed, different partial views can be
merged
if compatible, yielding a unified view of the session. Incompatible types, due to, e.g., miscommunications or deadlocks, are detected at the merging phase. In fact, in this theory the distinction between global and local types vanishes. We apply these types to a process calculus for which we prove
subject reduction
and
progress
, so that well-typed systems never violate the prescribed constraints. In particular, we introduce a generalization of the progress property, in order to accommodate the case when a partial session cannot progress not due to a deadlock, but because some participants are still missing. Therefore, partial session types support the development of systems by incremental assembling of components. |
---|---|
Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
ISSN: | 1619-1366 1619-1374 |
DOI: | 10.1007/s10270-022-01040-x |