当前位置: X-MOL 学术J. Funct. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Protocol combinators for modeling, testing, and execution of distributed systems
Journal of Functional Programming ( IF 1.1 ) Pub Date : 2021-02-15 , DOI: 10.1017/s095679682000026x
KRISTOFFER JUST ARNDAL ANDERSEN , ILYA SERGEY

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, 2019a) with an exploration of randomized testing for protocols and their implementations, and an additional case study demonstrating bounded model checking of protocols.

中文翻译:

用于分布式系统建模、测试和执行的协议组合器

分布式系统很难正确建模、测试、调试和教学。他们的教科书定义通常以复制状态机的形式给出,简洁明了,但如果天真地转换为可运行的实现,则容易引入编程错误。在这项工作中,我们提出分布式协议组合器(DPC),一个声明式编程框架,旨在弥合分布式系统的规范和可运行实现之间的差距,并促进它们的建模、测试和执行。DPC 建立在用于组合系统验证的最先进逻辑的思想之上。DPC 的贡献是一个新颖的程序级原语系列,它有助于从更小的组件构建更大的分布式系统,简化最常见的异步消息传递通信模式的使用,并为测试和用户友好的动态验证提供机制的系统。本文描述了框架设计背后的主要思想,并介绍了它在 Haskell 中的实现。我们通过一系列典型的例子来介绍 DPC,并在文献中的一些分布式协议上展示它。本文扩展了我们之前的会议出版物 (Andersen & Sergey, 2019a),探索了协议及其实现的随机测试,以及一个展示协议有界模型检查的附加案例研究。
更新日期:2021-02-15
down
wechat
bug