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 条
  • [41] Efficient clustering for parallel tasks execution in distributed systems
    Zomaya, AY
    Chan, G
    INTERNATIONAL JOURNAL OF FOUNDATIONS OF COMPUTER SCIENCE, 2005, 16 (02) : 281 - 299
  • [42] Traceability and integrity of execution in distributed workflow management systems
    Montagut, Frederic
    Molva, Refik
    COMPUTER SECURITY - ESORICS 2007, PROCEEDINGS, 2007, 4734 : 251 - +
  • [43] Using execution trace data to improve distributed systems
    Moe, J
    Sandahl, K
    INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2002, : 640 - 648
  • [44] Experiences building a service execution node for distributed IN systems
    Perdikeas, MK
    Chatzipapadopoulos, FG
    Venierís, IS
    TRENDS IN DISTRIBUTED SYSTEMS: TOWARDS A UNIVERSAL SERVICE MARKET, 2000, 1890 : 310 - 317
  • [45] From Serial Loops to Parallel Execution on Distributed Systems
    Bosilca, George
    Bouteiller, Aurelien
    Danalis, Anthony
    Herault, Thomas
    Dongarra, Jack
    EURO-PAR 2012 PARALLEL PROCESSING, 2012, 7484 : 246 - 257
  • [46] Investigation into Combinatory systems with dual combinators
    Bimbó K.
    Studia Logica, 2000, 66 (2) : 285 - 296
  • [47] Modeling adaptable multimedia and self-modifying protocol execution
    Guan, SU
    Lim, SS
    FUTURE GENERATION COMPUTER SYSTEMS-THE INTERNATIONAL JOURNAL OF ESCIENCE, 2004, 20 (01): : 123 - 143
  • [48] Communication mechanism in distributed protocol testing system
    Wang, ZL
    Wu, JP
    Li, ZJ
    Yin, X
    2003 INTERNATIONAL CONFERENCE ON COMMUNICATION TECHNOLOGY, VOL 1 AND 2, PROCEEDINGS, 2003, : 149 - 152
  • [49] Monitoring of Complex Applications Execution in Distributed Dependable Systems
    Pop, Florin
    Costan, Alexandru
    Dobre, Ciprian
    Stratan, Corina
    Cristea, Valentin
    EIGHTH INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED COMPUTING, PROCEEDINGS, 2009, : 241 - 244
  • [50] Towards Modeling and Execution of Collective Adaptive Systems
    Andrikopoulos, Vasilios
    Bucchiarone, Antonio
    Saez, Santiago Gomez
    Karastoyanova, Dimka
    Mezzina, Claudio Antares
    SERVICE-ORIENTED COMPUTING - ICSOC 2013 WORKSHOPS, 2014, 8377 : 69 - 81