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

被引:1
|
作者
Andersen, Kristoffer Just Arndal [1 ]
Sergey, Ilya [2 ,3 ]
机构
[1] Aarhus Univ, Dept Comp Sci, Aarhus, Denmark
[2] Yale NUS Coll, NUS Sch Comp, Singapore, Singapore
[3] Natl Univ Singapore, Singapore, Singapore
关键词
D O I
10.1017/S095679682000026X
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 naively 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.
引用
收藏
页数:29
相关论文
共 50 条
  • [21] Multiparty Session Programming with Global Protocol Combinators
    Neykova, Rumyana
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2020, (322): : 12 - 12
  • [22] An open systems strategy for distributed occam execution
    Singleton, P
    Cook, BM
    PARALLEL PROGRAMMING AND JAVA, 1997, 50 : 88 - 103
  • [23] REMOTE PROCEDURE EXECUTION SOFTWARE FOR DISTRIBUTED SYSTEMS
    PETRAVICK, DL
    BERMAN, EF
    SERGEY, GP
    IEEE TRANSACTIONS ON NUCLEAR SCIENCE, 1989, 36 (05) : 1706 - 1709
  • [24] Distributed manufacturing execution systems: A workflow perspective
    Chin-Yin Huang
    Journal of Intelligent Manufacturing, 2002, 13 : 485 - 497
  • [25] Remote execution function blocks for distributed systems
    Dept. of Automation and Computer Science, University Politehnica of Bucharest, Romania
    UPB Sci. Bull. Ser. C Electr. Eng. Comput. Sci., 1 1 (29-40):
  • [26] A formalism to model task execution in distributed systems
    Jayaram, R
    Mall, R
    Patnaik, LM
    Girault, C
    INFORMATION SCIENCES, 1996, 88 (1-4) : 113 - 129
  • [27] Probabilistic testing for a distributed conference protocol
    Goga, N
    2004 IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN & CYBERNETICS, VOLS 1-7, 2004, : 5154 - 5158
  • [28] Distributed manufacturing execution systems: A workflow perspective
    Huang, CY
    JOURNAL OF INTELLIGENT MANUFACTURING, 2002, 13 (06) : 485 - 497
  • [29] REMOTE EXECUTION FUNCTION BLOCKS FOR DISTRIBUTED SYSTEMS
    Rohat, Oana
    Popescu, Dan
    UNIVERSITY POLITEHNICA OF BUCHAREST SCIENTIFIC BULLETIN SERIES C-ELECTRICAL ENGINEERING AND COMPUTER SCIENCE, 2016, 78 (01): : 29 - 40
  • [30] Service combinators for WEB computing in Distributed Oz
    Hadim, MB
    Van Roy, P
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, VOLS I-V, 2000, : 1879 - 1883