SPY: Local Verification of Global Protocols

This paper presents a toolchain for designing deadlock-free multiparty global protocols, and their run-time verification through automatically generated, distributed endpoint monitors. Building on the theory of multiparty session types, our toolchain implementation validates communication safety properties on the global protocol, but enforces them via independent monitoring of each endpoint process. Each monitor can be internally embedded in or externally deployed alongside the endpoint runtime, and detects the occurrence of illegal communication actions and message types that do not conform to the protocol. The global protocol specifications can be additionally elaborated to express finer-grained and higher-level requirements, such as logical assertions on message payloads and security policies, supported by third-party plugins. Our demonstration use case is the verification of choreographic communications in a large cyberinfrastructure for oceanography [10].

[1]  Nobuko Yoshida,et al.  Multiparty Session Types Meet Communicating Automata , 2012, ESOP.

[2]  Nobuko Yoshida,et al.  Session-Based Distributed Programming in Java , 2008, ECOOP.

[3]  Laura Bocchi,et al.  Asynchronous Distributed Monitoring for Multiparty Session Enforcement , 2011, TGC.

[4]  Patrick Th. Eugster,et al.  Efficient Session Type Guided Distributed Interaction , 2010, COORDINATION.

[5]  Nobuko Yoshida,et al.  Structuring Communication with Session Types , 2014, Concurrent Objects and Beyond.

[6]  Laura Bocchi,et al.  Monitoring Networks through Multiparty Session Types , 2013, FMOODS/FORTE.

[7]  Tomasz Janowski,et al.  Distributed Computing and Internet Technology, 4th International Conference, ICDCIT 2007, Bangalore, India, December 17-20, Proceedings , 2007, ICDCIT.

[8]  Jane Hillston,et al.  Challenges for Quantitative Analysis of Collective Adaptive Systems , 2013, TGC.

[9]  Ross J. Anderson Security engineering - a guide to building dependable distributed systems (2. ed.) , 2001 .

[10]  Nobuko Yoshida,et al.  Type-Safe Eventful Sessions in Java , 2010, ECOOP.

[11]  Nobuko Yoshida,et al.  Multiparty Session C: Safe Parallel Programming with Message Optimisation , 2012, TOOLS.

[12]  Nobuko Yoshida,et al.  Dynamic multirole session types , 2011, POPL '11.

[13]  Gary Brown,et al.  Scribbling Interactions with a Formal Foundation , 2011, ICDCIT.

[14]  Nicholas Ng High Performance Parallel Design Based on Session Programming , 2011 .