Session Types Go Dynamic or How to Verify Your Python Conversations

  title={Session Types Go Dynamic or How to Verify Your Python Conversations},
  author={Rumyana Neykova},
  • R. Neykova
  • Published in PLACES 10 December 2013
  • Computer Science
This paper presents the first implementation of session types in a dynamically-typed language - Python. Communication safety of the whole system is guaranteed at runtime by monitors that check the execution traces comply with an associated protocol. Protocols are written in Scribble, a choreography description language based on multiparty session types, with addition of logic formulas for more precise behaviour properties. The presented framework overcomes the limitations of previous works on… 

Figures from this paper

Session types in Elixir

An adaptation of session types to provide behavioural information about public functions in Elixir modules is proposed and a tool is constructed that automates typechecking for Elixir modules.

Benefits of session types for software development

The beliefs that drive research into session types are examined, and the hypotheses upon which session types have been designed and implemented are identified and formulated in a more suitable manner for testing.

Contract-Oriented design of distributed applications: A tutorial

This tutorial illustrates a contract-oriented design methodology consisting of five phases: specification writing, specification analysis, code generation, code refinement, and code analysis, which automatically translates a given honest specification into a skeletal Java program which renders the contract- oriented interactions.

Ensuring Faultless Communication Behaviour in A Commercial Cloud

This work confirms the feasibility of applying session types to protocols used by a commercial Cloud provider and suggests how the methodology can be used to ensure the correctness of protocols for Cloud brokers, that integrate services exposed by multiple Cloud coordinators, each of whom must correctly cooperate with the Cloud broker.

ABCD Report: 2017

  • Computer Science
  • 2017
A journal version of “Monitoring networks through multiparty session types” on a new theory for dynamic run-time monitoring by Bocchi (Kent), Chen (Darmstadt), Demangeon (UPMC), Honda (QM) and Yoshida (Imperial) has been published in Theoretical Computer Science.

Panini: a concurrent programming model with modular reasoning

Panini is presented, a concurrent programming model with sparse and cognizant interference that enables modular reasoning in concurrent programs.



Asynchronous Distributed Monitoring for Multiparty Session Enforcement

This work proposes a formal model of runtime safety enforcement for largescale, cross-language distributed applications with possibly untrusted endpoints and proves monitor transparency, communication conformance, and global session fidelity in the presence of possibly unsafe endpoints.

Runtime Monitoring of Web Service Conversations

This work proposes to use runtime monitoring of conversations between partners as a means of checking behavioral correctness of the entire Web service system and identifies a subset of UML 2.0 sequence diagrams as a property specification language and shows that it is sufficiently expressive for capturing safety and liveness properties.

A Theory of Design-by-Contract for Distributed Multiparty Interactions

An assertion method, based on the π-calculus with full recursion, is presented, which generalises the notion of DbC to multiparty distributed interactions to enable effective specification and verification of distributed multiparty protocols.

Multiparty Session Types Meet Communicating Automata

A generalised variant of multiparty session types that have a direct semantical correspondence to CFSMs is presented, generalising Gouda et al's work [12] (for two machines) to an arbitrary number of machines.

Automatic Generation of Self-monitoring MASs from Multiparty Global Session Types in Jason

This work defines a procedure for automatically deriving a self-monitoring MAS that ensures that agents conform to the protocol at run-time, by adding a monitor agent that checks that the ongoing conversation is correct w.r.t. the global session type.

Interaction-based Runtime Verification for Systems of Systems Integration

This article obtains a comprehensive, tool-supported approach for model-based runtime verification of interactions in the systems integration domain, and uses aspect-oriented programming techniques to inject the monitors into the implementation of the components.

Smart monitors for composed services

This work investigates how to monitor dynamic service compositions with respect to contracts expressed via assertions on services with one based on late-binding and reflection and the other based on a standard assertion system.

Theories for Session-based Governance for Large-scale Distributed Systems

An asynchronous monitoring framework and the process calculus for dynamically governing the asynchronous interactions among distributed multiple applications is proposed and it is proved that this monitoring model guarantees the satisfaction of global assertions, and state and prove theorems of local and global safety, transparency, and session fidelity.

Type-Safe Eventful Sessions in Java

A Java language extension and a novel type discipline for type-safe event-driven session programming that counters the problems of traditional event-based programming with abstractions and safety guarantees based on session types, while retaining the expressiveness and performance characteristics of events.

Advanced Message Queuing Protocols (AMQP) homepage

  • Advanced Message Queuing Protocols (AMQP) homepage