Multiparty Session Actors

@inproceedings{Neykova2014MultipartySA,
  title={Multiparty Session Actors},
  author={Rumyana Neykova and Nobuko Yoshida},
  booktitle={COORDINATION},
  year={2014}
}
Actor coordination armoured with a suitable protocol description language has been a pressing problem in the actors community. We study the applicability of multiparty session type (MPST) protocols for verification of actor programs. We incorporate sessions to actors by introducing minimum additions to the model such as the notion of actor roles and protocol mailboxes. The framework uses Scribble, which is a protocol description language based on multiparty session types. Our programming model… 

Figures and Tables from this paper

An Erlang Implementation of Multiparty Session Actors

This article describes the implementation of a prototype framework for monitoring Erlang/OTP gen_server applications against multiparty session types, showing how previous work on multipartysession actors can be adapted to a purely actor-based language, and how monitor violations and termination of session participants can be reported in line with the Erlang mantra of "let it fail".

Multiparty Session Types for Safe Runtime Adaptation in an Actor Language (Extended version)

The design and implementation of EnsembleS is presented, the first actor-based language with adaptive features and a static session type system, and the safety of well-typed programs is proved, making essential use of recent advances in non-classical multiparty session types.

0 Multiparty Asynchronous Session Types

This work extends the foregoing theories of binary session types to multiparty, asynchronous sessions, which often arise in practical communication-centred applications and introduces a new notion of types in which interactions involving multiple peers are directly abstracted as a global scenario.

A Linear Decomposition of Multiparty Sessions for Safe Distributed Programming

The first encoding of a full-fledged multiparty session pi-calculus into linear pi-Calculus is developed, using the encoding as the foundation of a practical toolchain for safe multiparty programming in Scala and the implementation is the first to support distributed multiparty delegation.

Advanced Join Patterns for the Actor Model based on CEP Techniques

This work aims to provide a set of synchronization operators that help actor-based languages to handle the complex interaction required by modern reactive distributed systems and is the first one to add advanced CEP synchronization operators to the relatively simplistic single-message based matching -- mechanisms of most actor- based languages.

Communicating Finite State Machines and an Extensible Toolchain for Multiparty Session Types

The relationship between MPST and communicating finite state machines (CFSMs) is summarised, which offers not only theoretical justifications of MPST but also a guidance to implement MPST in practice.

Hybrid Session Verification Through Endpoint API Generation

A new hybrid session verification methodology for applying session types directly to mainstream languages, based on generating protocol-specific endpoint APIs from multiparty session types, which guarantees the absence of protocol violation errors during the execution of the session.

Global Type Local Type Local Type Local Type Endpoint Process Monitor Endpoint Process Monitor Static

This paper proposes a new theory of monitored π-calculus with dynamic usage of multiparty session types (MPST), offering a rigorous foundation for safety assurance of distributed components which asynchronously communicate through multiparty sessions.

Session-Based Compositional Analysis for Actor-Based Languages Using Futures

A type discipline based on session types is provided, which gives a high-level abstraction for structured interactions and statically verify if the local implementations comply with the communication correctness in a concurrency model using futures.
...

References

SHOWING 1-10 OF 36 REFERENCES

Behavioural Types for Actor Systems

A minimal actor calculus is presented that takes as primitive the basic constructs of Scala's Actors API and shows that well typed and balanced actor systems are deadlock-free and any message will eventually be handled by the target actor.

Multiparty Asynchronous Session Types

The theory introduces a new notion of types in which interactions involving multiple peers are directly abstracted as a global scenario, and the fundamental properties of the session type discipline, such as communication safety, progress, and session fidelity, are established.

Actors with Multi-headed Message Receive Patterns

This work proposes and design an extension of Erlang style actors with receive clauses containing multi-headed message patterns, inspired by the multi-set constraint matching semantics found in Constraint Handling Rules.

Dynamic multirole session types

A role-based multiparty session type theory is proposed where roles are defined as classes of local behaviours that an arbitrary number of participants can dynamically join and leave, and a type system with universal types for polling can handle this dynamism and retain type safety.

Practical Interruptible Conversations - Distributed Dynamic Verification with Session Types and Python

A dynamic verification framework for structured interruptible conversation programming that ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol.

Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python

A dynamic verification framework for structured interruptible conversation programming that ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol.

Actors, Roles and Coordinators - A Coordination Model for Open Distributed and Embedded Systems

The formal study has shown that the ARC system is closed under composition and recursion, and formally defines the role and coordinator behaviors and the composition of the actor computation model with the proposed coerced coordination model.

A foundation for actor computation

An actor language is presented which is an extension of a simple functional language, and an operational semantics for this extension is provided, and it is shown that the three forms of equivalence, namely, convex, must, and may equivalences, collapse to two in the presence of fairness.

Why Do Scala Developers Mix the Actor Model with other Concurrency Models?

This study is the first to point out the phenomenon of mixing concurrency models by Scala developers and to systematically identify the factors leading to it, and reveal two reasons for mixing that can be influenced by researchers and library-builders: weaknesses in the actor library implementations, and shortcomings of the actor model itself.

ACTORS - a model of concurrent computation in distributed systems

  • G. Agha
  • Computer Science
    MIT Press series in artificial intelligence
  • 1985
A foundational model of concurrency is developed and issues in the design of parallel systems and why the actor model is suitable for exploiting large-scale parallelism are addressed.