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]

Read more

Summary

Backgrounds

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

A motivating example
A timed monitor framework
Contributions and outline
Timed global protocols
Formal semantics of Scribble timed global protocols
Timed properties of global protocols
Timed local protocols
C B of the form
Correspondence of global and local protocols
Checking feasibility and wait-freedom
Step 1
Step 2
Step 3
Step 4
Implementing timed protocols with python
Runtime verification and enforcement of time properties
Error detection
Benchmarks on transparency of timed monitors
Temporal patterns in global protocols
Related and future work
Conclusion
Correspondence between scribble and timed-MPST
Findings
); References
Full Text
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

Schedule a call