256
IRUS TotalDownloads
Altmetric
Multiparty session types for dynamic verification of distributed systems
File | Description | Size | Format | |
---|---|---|---|---|
Neykova-R-2017-PhD-Thesis.pdf | 3.15 MB | Adobe PDF | View/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 |