Protocol combinators for modeling, testing, and execution of distributed systems

Author:

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

Publisher

Cambridge University Press (CUP)

Subject

Software

Reference43 articles.

1. Lange, Julien & Tuosto, Emilio . (2012). Synthesising Choreographies from Local Session Types. Pages 225–239 of: CONCUR. LNCS, vol. 7454. Springer.

2. Krogh-Jespersen, Morten , Timany, Amin , Ohlenbusch, Marit Edna , Gregersen, Simon Oddershede & Birkedal, Lars . (2020). Aneris: A mechanised logic for modular reasoning about distributed systems. Pages 336–365 of: ESOP. LNCS, vol. 12075. Springer.

3. Nanevski, Aleksandar , Morrisett, Greg , Shinnar, Avi , Govereau, Paul & Birkedal, Lars . (2008). Ynot: Dependent types for imperative programs. Pages 229–240 of: ICFP.

4. Distributed Protocol Combinators

5. Dragoi, Cezara , Henzinger, Thomas A. & Zufferey, Damien . (2016). PSync: a partially synchronous language for fault-tolerant distributed algorithms. Pages 400–415 of: POPL. ACM.

Cited by 1 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Counterexample Driven Quantifier Instantiations with Applications to Distributed Protocols;Proceedings of the ACM on Programming Languages;2023-10-16

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3