Modelling and Verifying Contract-Oriented Systems in Maude

We address the problem of modelling and verifying contract-oriented systems, wherein distributed agents may advertise and stipulate contracts, but — differently from most other approaches to distributed agents — are not assumed to always behave “honestly”. We describe an executable specification in Maude of the semantics of CO2, a calculus for contract-oriented systems [6]. The honesty property [5] characterises those agents which always respect their contracts, in all possible execution contexts. Since there is an infinite number of such contexts, honesty cannot be directly verified by model-checking the state space of an agent (indeed, honesty is an undecidable property in general [5]). The main contribution of this paper is a sound verification technique for honesty. To do that, we safely over-approximate the honesty property by abstracting from the actual contexts a process may be engaged with. Then, we develop a model-checking technique for this abstraction, we describe an implementation in Maude, and we discuss some experiments with it.

[1]  Luca Padovani,et al.  A theory of contracts for Web services , 2007, TOPL.

[2]  José Meseguer,et al.  Design and Analysis of Cloud-Based Architectures with KLAIM and Maude , 2012, WRLA.

[3]  José Meseguer,et al.  A rewriting logic approach to operational semantics , 2009, Inf. Comput..

[4]  Roberto Bruni,et al.  Modelling and analyzing adaptive self-assembly strategies with Maude , 2012, Sci. Comput. Program..

[5]  Ugo de'Liguoro,et al.  Two notions of sub-behaviour for session-based client/server systems , 2010, PPDP.

[6]  Alberto Verdejo,et al.  Implementing CCS in Maude 2 , 2002, Electron. Notes Theor. Comput. Sci..

[7]  S TraianFlorin A Rewriting Logic Approach to Operational Semantics , 2010 .

[8]  Peter Csaba Ölveczky,et al.  Rewriting Logic as a Unifying Framework for Petri Nets , 2001, Unifying Petri Nets.

[9]  Emilio Tuosto,et al.  On the realizability of contracts in dishonest systems , 2012, COORDINATION.

[10]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[11]  Santiago Escobar,et al.  Rewriting Logic and Its Applications , 2014, Lecture Notes in Computer Science.

[12]  José Meseguer,et al.  Twenty years of rewriting logic , 2010, J. Log. Algebraic Methods Program..

[13]  Alceste Scalas,et al.  Choreography Synthesis as Contract Agreement , 2013, ICE.

[14]  Emilio Tuosto,et al.  Contract-Oriented Computing in CO2 , 2012, Sci. Ann. Comput. Sci..

[15]  Emilio Tuosto,et al.  Honesty by Typing , 2013, FMOODS/FORTE.

[16]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[17]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[18]  Koushik Sen,et al.  An Executable Specification of Asynchronous Pi-Calculus Semantics and May Testing in Maude 2.0 , 2002, Electron. Notes Theor. Comput. Sci..

[19]  Hartmut Ehrig,et al.  Unifying Petri Nets , 2001, Lecture Notes in Computer Science.

[20]  Thomas Noll,et al.  Abstraction and Model Checking of Core Erlang Programs in Maude , 2006, WRLA.

[21]  David Lee,et al.  Formal Techniques for Distributed Systems, Joint 11th IFIP WG 6.1 International Conference FMOODS 2009 and 29th IFIP WG 6.1 International Conference FORTE 2009, Lisboa, Portugal, June 9-12, 2009. Proceedings , 2009, FMOODS/FORTE.

[22]  Massimo Bartoletti,et al.  A Calculus of Contracting Processes , 2010, 2010 25th Annual IEEE Symposium on Logic in Computer Science.

[23]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[24]  J. Meseguer Rewriting as a unified model of concurrency , 1990, OOPSLA/ECOOP '90.