256
IRUS Total
Downloads
  Altmetric

Multiparty session types for dynamic verification of distributed systems

File Description SizeFormat 
Neykova-R-2017-PhD-Thesis.pdf3.15 MBAdobe PDFView/Open
Title: Multiparty session types for dynamic verification of distributed systems
Authors: Neykova, Rumyana
Item Type: Thesis or dissertation
Abstract: In large-scale distributed systems, each application is realised through interactions among distributed components. To guarantee safe communication (no deadlocks and communication mismatches) we need programming languages and tools that structure, manage, and policy-check these interactions. Multiparty session types (MPST), a typing discipline for structured interactions between communicating processes, offers a promising approach. To date, however, session types applications have been limited to static verification, which is not always feasible and is often restrictive in terms of programming API and specifying policies. This thesis investigates the design and implementation of a runtime verification framework, ensuring conformance between programs and specifications. Specifications are written in Scribble, a protocol description language formally founded on MPST. The central idea of the approach is a dynamic monitor, which takes a form of a communicating finite state machine, automatically generated from Scribble specifications, and a communication runtime stipulating a message format. We extend and apply Scribble-based runtime verification in manifold ways. First, we implement a Python library, facilitated with session primitives and verification runtime. We integrate the library in a large cyber-infrastructure project for oceanography. Second, we examine multiple communication patterns, which reveal and motivate two novel extensions, asynchronous interrupts for verification of exception handling behaviours, and time constraints for enforcement of realtime protocols. Third, we apply the verification framework to actor programming by augmenting an actor library in Python with protocol annotations. For both implementations, measurements show Scribble-based dynamic checking delivers minimal overhead and allows expressive specifications. Finally, we explore a static analysis of Scribble specifications as to efficiently compute a safe global state from which a monitored system of interacting processes can be recovered after a failure. We provide an implementation of a verification framework for recovery in Erlang. Benchmarks show our recovery strategy outperforms a built-in static recovery strategy, in Erlang, on a number of use cases.
Content Version: Open Access
Issue Date: Jul-2016
Date Awarded: Mar-2017
URI: http://hdl.handle.net/10044/1/45276
DOI: https://doi.org/10.25560/45276
Supervisor: Yoshida, Nobuko
Sponsor/Funder: Engineering and Physical Sciences Research Council
VMware
Pivotal
Ocean Observatories Initiative
European Union
Funder's Grant Number: EP/K034413/1, EP/K011715/1, EP/L00058X/1, EP/N027833/1 and EP/N028201/1;EP/N027965/1. EU FP7 612985 (UPSCALE), COST Actions IC1201 (BETTY) and IC1405 (RC)
Department: Computing
Publisher: Imperial College London
Qualification Level: Doctoral
Qualification Name: Doctor of Philosophy (PhD)
Appears in Collections:Computing PhD theses



Unless otherwise indicated, items in Spiral are protected by copyright and are licensed under a Creative Commons Attribution NonCommercial NoDerivatives License.

Creative Commons