Abstract
We propose a dynamic verification framework for protocols in real-time distributed systems. The framework is based on Scribble, a tool-chain for design and verification of choreographies based on multiparty session types, which we have developed with our industrial partners. Drawing from recent work on multiparty session types for real-time interactions, we extend Scribble with clocks, resets, and clock predicates in order to constrain the times in which interactions occur. We present a timed API for Python to program distributed implementations of Scribble specifications. A dynamic verification framework ensures the safe execution of applications written with our timed API: we have implemented dedicated runtime monitors that check that each interaction occurs at a correct timing with respect to the corresponding Scribble specification. To demonstrate the practicality of the proposed framework, we express and verify four categories of widely used temporal patterns from use cases in literature. We analyse the performance of our implementation via benchmarking and show negligible overhead.
Highlights
Recent work [BYY14a] extends Multiparty Session Types (MPSTs) with time, to enable the verification of realtime distributed systems
As observed in [BCD+13] the direct application of static verification techniques based on MPST presents a few obstacles
MPSTs can be used in two ways within the same scenario: for static verification and for dynamic enforcement via trusted monitors; global safety still holds in such mixed networks [BCD+13]
Summary
Recent work [BYY14a] extends Multiparty Session Types (MPSTs) with time, to enable the verification of realtime distributed systems. The work in [BYY14a] enables modular static type checking of distributed implementations (i.e., processes in a session π -calculus) against timed-MPSTs. composition of distributed processes written in different languages. Static verification guarantees safe communications in the overall distributed system assuming that all its parts have been independently and locally type-checked This requires a degree of trust that cannot always be assumed between the principals that provide the parts of the system. These issues are tackled in [BCD+13, DHH+15] by extending the theory of MPSTs to combine static and dynamic techniques in the verification of different parts of a system. Time is necessary in many OOI use-cases, for instance to associate timeouts to requests when resources can be used for fixed amounts of time, or to schedule the execution of services at certain time intervals to reduce the busy wait and minimise energy consumption
Published Version (
Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have