Protocol combinators for modeling, testing, and execution of distributed systems. (15th February 2021)
- Record Type:
- Journal Article
- Title:
- Protocol combinators for modeling, testing, and execution of distributed systems. (15th February 2021)
- Main Title:
- Protocol combinators for modeling, testing, and execution of distributed systems
- Authors:
- ANDERSEN, KRISTOFFER JUST ARNDAL
SERGEY, ILYA - Abstract:
- Abstract: Distributed systems are hard to get right, model, test, debug, and teach. Their textbook definitions, typically given in a form of replicated state machines, are concise, yet prone to introducing programming errors if naïvely translated into runnable implementations. In this work, we present Distributed Protocol Combinators (DPC), a declarative programming framework that aims to bridge the gap between specifications and runnable implementations of distributed systems, and facilitate their modeling, testing, and execution. DPC builds on the ideas from the state-of-the art logics for compositional systems verification. The contribution of DPC is a novel family of program-level primitives, which facilitates construction of larger distributed systems from smaller components, streamlining the usage of the most common asynchronous message-passing communication patterns, and providing machinery for testing and user-friendly dynamic verification of systems. This paper describes the main ideas behind the design of the framework and presents its implementation in Haskell. We introduce DPC through a series of characteristic examples and showcase it on a number of distributed protocols from the literature. This paper extends our preceeding conference publication (Andersen & Sergey, 2019 a) with an exploration of randomized testing for protocols and their implementations, and an additional case study demonstrating bounded model checking of protocols.
- Is Part Of:
- Journal of functional programming. Volume 31(2021)
- Journal:
- Journal of functional programming
- Issue:
- Volume 31(2021)
- Issue Display:
- Volume 31, Issue 2021 (2021)
- Year:
- 2021
- Volume:
- 31
- Issue:
- 2021
- Issue Sort Value:
- 2021-0031-2021-0000
- Page Start:
- Page End:
- Publication Date:
- 2021-02-15
- Subjects:
- Functional programming (Computer science) -- Periodicals
- Journal URLs:
- http://journals.cambridge.org/action/displayJournal?jid=JFP ↗
http://firstsearch.oclc.org ↗ - DOI:
- 10.1017/S095679682000026X ↗
- Languages:
- English
- ISSNs:
- 0956-7968
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library STI - ELD Digital store
- Ingest File:
- 15574.xml