Bringing Coq into the World of GCM Distributed Applications

Among all programming paradigms, component-based engineering stands as one of the most followed approaches for real world software development. Its emphasis on clean separation of concerns and reusability makes it appealing for both industrial and research purposes. The Grid Component Model (GCM) endorses this approach in the context of distributed systems by providing all the means to define, compose and dynamically reconfigure component-based applications. While structural reconfiguration is one of the key features of GCM applications, this ability to evolve at runtime poses several challenges w.r.t reliability. In this paper we present Mefresa, a framework for reasoning on the structure of GCM applications. This contribution comes in the form of a formal specification mechanized in the Coq Proof Assistant. Our aim is to demonstrate the benefits of interactive theorem proving for the reasoning on software architectures. We provide a configuration and reconfiguration language for the safe instantiation of distributed systems.

[1]  Henry Muccini,et al.  CHARMY: an extensible tool for architectural analysis , 2005, ESEC/FSE-13.

[2]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[3]  Eric Madelaine,et al.  Model-checking Distributed Components: The Vercors Platform , 2006, FACS.

[4]  Thomas Ledoux,et al.  FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures , 2009, Ann. des Télécommunications.

[5]  Christine Paulin-Mohring,et al.  The coq proof assistant reference manual , 2000 .

[6]  Ludovic Henrio,et al.  Structural Reconfiguration: An Autonomic Strategy for GCM Components , 2009, 2009 Fifth International Conference on Autonomic and Autonomous Systems.

[7]  Yves Bertot Coq in a Hurry , 2006 .

[8]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[9]  Ludovic Henrio,et al.  Stopping safely hierarchical distributed components: application to GCM , 2008, CBHPC '08.

[10]  Masha Sosonkina,et al.  Proceedings of the 2008 compFrame/HPC-GECO workshop on Component based high performance , 2008, HiPC 2008.

[11]  Philippe Merle,et al.  A formal specification of the Fractal component model in Alloy , 2008 .

[12]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[13]  Ludovic Henrio,et al.  Behavioural models for distributed Fractal components , 2009, Ann. des Télécommunications.

[14]  Denis Caromel,et al.  GCM: a grid extension to Fractal for autonomous distributed components , 2009, Ann. des Télécommunications.

[15]  Ludovic Henrio,et al.  A Framework for Reasoning on Component Composition , 2009, FMCO.

[16]  Petr Hnetynka,et al.  Dynamic Reconfiguration and Access to Services in Hierarchical Component Models , 2006, CBSE.

[17]  Eric Madelaine,et al.  Fractal à la Coq , 2012 .

[18]  Christoph Sprenger,et al.  A Verified Model Checker for the Modal µ-calculus in Coq , 1998, TACAS.

[19]  Ludovic Henrio,et al.  Verifying Safety of Fault-Tolerant Distributed Components , 2011, FACS.

[20]  Narciso Martí-Oliet,et al.  The Maude 2.0 System , 2003, RTA.

[21]  Joseph Sifakis,et al.  Rigorous Component-Based System Design Using the BIP Framework , 2011, IEEE Software.