On the Monitorability of Session Types, in Theory and Practice (Extended Version)

05/13/2021
by   Christian Batrolo Burlò, et al.
0

In concurrent and distributed systems, software components are expected to communicate according to predetermined protocols and APIs - and if a component does not observe them, the system's reliability is compromised. Furthermore, isolating and fixing protocol/API errors can be very difficult. Many methods have been proposed to check the correctness of communicating systems, ranging from compile-time to run-time verification; among such methods, session types have been applied for both static type-checking, and run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a novel formal model of session-monitored processes; with it, we formulate and prove new results on the monitorability of session types, connecting their run-time and static verification - in terms of soundness (i.e., whether monitors only flag ill-typed processes) and completeness (i.e., whether all ill-typed processes can be flagged by a monitor). On the practical side, we show that our monitoring theory is indeed realisable: building upon our formal model, we develop a Scala toolkit for the automatic generation of session monitors. Our executable monitors can be used to instrument black-box processes written in any programming language; we assess the viability of our approach with a series of benchmarks.

READ FULL TEXT

page 5

page 7

page 9

page 13

page 15

page 21

page 25

page 33

research
07/22/2021

Minimal Session Types for the π-calculus (Extended Version)

Session types enable the static verification of message-passing programs...
research
12/14/2022

PSTMonitor: Monitor Synthesis from Probabilistic Session Types

We present PSTMonitor, a tool for the run-time verification of quantitat...
research
04/01/2021

Idris 2: Quantitative Type Theory in Practice

Dependent types allow us to express precisely what a function is intende...
research
07/05/2022

Generalised Multiparty Session Types with Crash-Stop Failures (Technical Report)

Session types enable the specification and verification of communicating...
research
10/09/2020

CAMP: Cost-Aware Multiparty Session Protocols

This paper presents CAMP, a new static performance analysis framework fo...
research
10/24/2019

Model-View-Update-Communicate: Session Types meet the Elm Architecture

The Elm programming language pioneers the Model-View-Update (MVU) archit...
research
08/06/2019

Topological Run-time Monitoring for Complex Systems

In this paper we introduce a new data-driven run-time monitoring system ...

Please sign up or login with your details

Forgot password? Click here to reset