Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble.

Slides:



Advertisements
Similar presentations
Semantic Formalisms 2: Software Components Eric Madelaine INRIA Sophia-Antipolis Oasis team UNICE – EdStic Mastère Réseaux.
Advertisements

Elton Mathias and Jean Michael Legait 1 Elton Mathias, Jean Michael Legait, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis,
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Verification of Evolving Software Natasha Sharygina Joint work with Sagar Chaki and Nishant Sinha Carnegie Mellon University.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
Eric MADELAINE1 E. Madelaine, Antonio Cansado, Emil Salageanu OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis OSCAR meeting, Valparaiso,
1 Flexible Subtyping Relations for Component- Oriented Formalisms and their Verification David Hurzeler PhD Examination, 9/11/2004.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
Component-Interaction Automata for Specification and Verification of Component Interactions P. Vařeková and B. Zimmerova Masaryk University in Brno Czech.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Optimisation of behaviour of component-based distributed systems INRIA - I3S - CNRS – University of Nice Sophia-Antipolis EPC SCALE Galyna Zholtkevych.
Safe composition of distributed adaptable components A distributed component model Behavioural specification and verification Ludovic Henrio and Eric Madelaine.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
INRIA Sophia-Antipolis, Oasis team INRIA Rhône-Alpes, Vasy team Feria–IRIT/LAAS, SVF team Toulouse GET - ENST Paris, LTCI team FIACRE Models and Tools.
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Formalism and Platform for Autonomous Distributed Components Bio-inspired Networks and Services A Distributed Component Model Formalisation in Isabelle.
Eric Madelaine FORTE ’04 -- Madrid sept /25 Parameterized Models for Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa.
Eric MadelaineOSMOSE -- WP2 -- Prague June 2004 Models for the Verification of Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa,
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
A graphical specification environment for GCM component-based applications INRIA – I3S – CNRS – University of Nice-Sophia Antipolis EPC OASIS Oleksandra.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
Natallia Kokash (Accepted for PACO’2011) ACG, 31/05/ Input-output conformance testing for channel-based connectors 1.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Behavioural Verification of Distributed Components Ludovic Henrio and Eric Madelaine ICE Florence 1.
Behavioural Verification of Distributed Components Ludovic Henrio and Eric Madelaine ICE
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
Mastère RSD - TC4 2005/20061 Distributed Components –ProActive-Fractal : main concepts –Behaviour models for components –Deployment, management, transformations.
Parameterized Models for Distributed Java Objects Tomás Barros & Rabéa Boulifa OASIS Project INRIA Sophia Antipolis April 2004.
ProActive components and legacy code Matthieu MOREL.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Eric MadelaineOSCAR Workshop -- Santiago Nov Verification of Distributed Applications Eric Madelaine work with Isabelle Attali, Tomás Barros, Rabéa.
Parameterized models for distributed objects Eric Madelaine, Rabéa Boulifa, Tomás Barros OASIS INRIA Sophia-Antipolis, I3S, UNSA
A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Eric MADELAINE ---- OASIS1 E. Madelaine Oasis team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis RESECO ’08 Santiago – Nov. 24, 2008 Specification.
Eric MADELAINE1 A. Cansado, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis Fractal workshop, Nantes, 3 july.
RESECO - Montevideo - 22 nov 2007Reseco, Montevideo, 22 nov 2007 Eric Madelaine - OASIS Team1 Specifying and Generating Safe GCM Components INRIA – Sophia.
VERIFYING THE CORRECT COMPOSITION OF DISTRIBUTED COMPONENTS: FORMALISATION AND TOOL Ludovic Henrio 1, Oleksandra Kulankhina 1,2, Dongqian Liu 3, Eric Madelaine.
Eric MADELAINE ---- OASIS1 E. Madelaine Oasis team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis ECNU Dept of Software Engineering October 2010.
Specifying Fractal and GCM Components With UML Solange Ahumada, Ludovic Apvrille, Tomás Barros, Antonio Cansado, Eric Madelaine and Emil Salageanu SCCC.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Tomás BarrosMonday, April 18, 2005FIACRE Toulouse p. 1 Behavioural Models for Hierarchical Components Tomás Barros, Ludovic Henrio and Eric Madelaine.
Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
Eric MADELAINE -- GridComp -- OASIS 1 E. Madelaine (A. Cansado) GridComp project OASIS team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis GridComp.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis DCC, University.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Mastère RSD - TC4 2005/20061 Distributed JAVA Aims and Principles The ProActive library Models of behaviours Generation of finite (parameterized) models.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
Model Generation for Distributed Java Programs Rabéa Boulifa Eric Madelaine Oasis Team INRIA, Sophia-Antipolis France, I3S, UNSA Luxembourg, November 28,
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
The Role of Reflection in Next Generation Middleware
Behavioural Models for Distributed Hierarchical Components
Formal Specification and Verification of Distributed Component Systems
Distributed Components and Futures: Models and Challenges
Logical architecture refinement
Semantic Formalisms 3: Distributed Applications
Presentation transcript:

Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble 29 nov 2005 Verification of Distributed Hierarchical Components

Eric MADELAINE2 Context Components and safe composition Fractive Building Behaviour models Formal Model Configuration and Introspection Asynchrony Checking Properties Conclusion & Perspectives Agenda

Eric MADELAINE3 Definition : Software modules, composable, with well-defined interfaces, and well-defined black box behaviour Our interests : 1. Encapsulation Black boxes, offered and required services 2. Composition Design of complex systems, hierarchical organization into sub-systems 3. Separate administration Architecture Description Language (ADL), administration components 4. Distribution (e.g. Computational Grid) Interaction at interfaces through asynchronous method calls Software Components

Eric MADELAINE4 Applications : Build complex systems from off-the-shelf components Check behavioural compatibility between sub-components Check correctness of component deployment and behaviour Check correctness of the transformation inside a running application. Behaviour specification and Safe composition Aim : Build reliable components from the composition of smaller pieces, using their formal specification. Component paradigm : only observe activity at interfaces. Behavioural properties: Deadlock freeness, progress/termination, safety and liveness.

Eric MADELAINE5 Fractive’s components FRACTAL : Component model specification + ProActive : Java library for distributed applications = Fractive Features: Hierarchical Component Model ADL description (Fractal’s XML Schema/DTD) Separation of functionality / management Distributed components (from distributed objects) Asynchronous computation (non-blocking method calls) Strong Formal Semantics (ASP) => properties and guarantees

Eric MADELAINE6 ATTRIBUTEBINDINGLIFE CYCLECONTENT Content Fractal Components

Eric MADELAINE7 A Fractive : Active objects Proxy Java Object A ag = newActive (“A”, […], VirtualNode) V v1 = ag.foo (param); V v2 = ag.bar (param);... v1.bar(); //Wait-By-Necessity V Wait-By-Necessity is a Dataflow Synchronization A Active Object Future Object Request Req. Queue Thread v1 v2 ag WBN!

Eric MADELAINE8 Fractive example <interface name="alarm" role="server" signature="components.AlarmInterface"/> <behaviour file="AlarmBehav" format="FC2Param"/> <binding client="BufferSystem.alarm" server="Alarm.alarm"/> <interface name="alarm" role="server" signature="components.AlarmInterface"/> <behaviour file="AlarmBehav" format="FC2Param"/> <binding client="BufferSystem.alarm" server="Alarm.alarm"/>

Eric MADELAINE9 Context & Motivation Building Behaviour Models Formal Model Configuration and Introspection Asynchrony Checking Properties Conclusion & Perspectives Agenda

Eric MADELAINE10 Parameterized LTS (pLTS) & Synchronisation Network (pNet) Parameters for value passing and indexed processes Extension of Lin’s symbolic graphs with assignments and Arnold’s synchronisation networks. Simple Types : Integers, Intervals, Enumerations, Records. Behaviour: Parameterized Networks of synchronised Transitions Systems T. Barros, R. Boulifa, E. Madelaine: Parameterized Models for Distributed Java Objects, Forte'2004 Conference, Madrid, Sep. 2004, LNCS 3235, © Springer-Verlag

Eric MADELAINE11 (1) Program semantics ==> Behaviour Model (parameterized) user-specified abstract interpretation (2) Behaviour Model ==> Finite Model Value Passing case : d efine an abstract representation from a finite partition of the value domains, on a per-formula basis  Preservation of safety and liveness properties [Cleaveland & Riely 93] Families of Processes : no similar generic result (but many results for specific topologies). Counter-example : on parameterized topologies of processes, reachability properties require induction reasoning. Practical approach : explore small finite configurations in a “bug search” fashion, use “infinite systems” techniques for decidable domains when available Abstractions and Correctness

Eric MADELAINE12 Fractive Behavioural Models : Principles Compositionality Reasonning at each separate composition level Functional behaviour is known Given by the user Obtained by static analysis (primitive components, e.g. ProActive active objects) Computed from lower level Non functional behaviour automatically added from the component’s ADL Automata within a synchronisation network Incorporate controllers for management interfaces, and for asynchronous communication management Build the product, Hide, Minimize….

Eric MADELAINE13 Building Fractive Behavioural Models 1)Assemble sub- components, Buffer(Max,S) !B.Q_get() !B.R_get(v) Consumer(c) … … … S Q_get() R_get(v) Alarm(m) BufferSubSystem

Eric MADELAINE14 Building Fractive Behavioural Models 1)Assemble sub- components 2)add non-functional controls: 1)Bindings C(c) B Q_get() R_get(v) ?bind(B,IA) ?unbind(B,IA) !Err(unbound,B,IA) P(p) Q_put(x) B.Alarm() BSS.Alarm() ?bind(B,IF) ?unbind(B,IF) unbound bound

Eric MADELAINE15 Building Fractive Behavioural Models 1)Assemble sub- components 2)add non-functional controls: 1)Bindings B ?bind(…) ?unbind(…) !Err(unbound,…) B.Alarm() P(p) C(c)

Eric MADELAINE16 Building Fractive Behavioural Models 1)Assemble sub- components 2)add non-functional controls: 1)Bindings 2)Start/Stop B ?bind(…) ?unbind(…) !Err(unbound,…) B.Alarm() P(p) C(c) !start() !stop()

Eric MADELAINE17 Building Fractive Behavioural Models 1)Assemble sub- components 2)add non-functional controls: 1)Bindings 2)Start/Stop 3)Add Interceptor : 1)Body C(c) B !Err(unbound,…) P(p) !start() !stop() Body ?Serve start/stop ?Serve bind/unbind ?Serve(M,fut,args) !fut.call(M,args) !bind/unbind !start/stop ?bind(…) ?unbind(…)

Eric MADELAINE18 Building Fractive Behavioural Models 1)Assemble sub- components 2)add non-functional controls: 1)Bindings 2)Start/Stop 3)Add Interceptor : 1)Body 2)Queue, LF and proxies = Controller Body Proxy (fut) Queue ?Serve(M,…) Call(M,…) LF Response… Request… C(c) B !Err(unbound,…) P(p) !start() !stop() ?bind(…) ?unbind(…)

Eric MADELAINE19 Result : The Static Automaton Deployment Automaton : Static Automaton = ( Controller || Deployment ) + hiding & minimisation Fine Tuning = Specify different hiding sets, depending on the properties we want to prove: deployment phase functional phase topology-preserving transformations

Eric MADELAINE20 Context & Motivation Behaviour models Checking Properties Functional and management interactions Conclusion & Perspectives Agenda

Eric MADELAINE21 Behaviour correctness (from the user point of view) Initial Composition Generic properties : successful deployment, absence of errors, deadlock freeness User Requirements expressed as temporal formulas Reconfiguration preserving the network structure Preservation of properties (aka service interaction) New features Compositionality The Static Automaton, after hiding/minimization, is the functional behaviour used at next level of composition

Eric MADELAINE22 Deployment (on the Static Automaton with successful synchronisation visible) The deployment is always successful [ (not √ )* ] true No Error during deployment [ (not √ ) *. O E ] false Verification of Properties regular μ-calculus (Mateescu’2004) e.g. start Buffer without linking the alarm interface

Eric MADELAINE23 Functional behaviour (on the Static Automaton) Get from the buffer eventually gives an answer Verification of Properties [ true*.Req_Get () ]  X. ( true  [  Resp_Get() ] X )

Eric MADELAINE24 Functional properties under reconfiguration (respecting the topology) Future update (asynchronous result messages) independent of life-cycle or binding reconfigurations E.g: Proved on an Extended Static Automaton allowing the following control operations: Verification of Properties [ true*.Req_Get() ]  X. ( true  [  Resp_Get() ] X )

Eric MADELAINE25 Structural Transformations (ongoing work) Scenario : Running application, Need to Replace/Update one sub-component Check the protocol compatibility before replacement Principle : Use the formal Behaviour Specification Identify states of the application behaviour model in which the transformation is possible, … compute the corresponding states after transformation. Use the merged automaton to check properties. Benefits : Identifies prerequisite and rules for safe transformation.

Eric MADELAINE26 Context & Motivation Behaviour models Checking Properties Related Work, Conclusion & Perspectives Agenda

Eric MADELAINE27 Related Work From Process Algebras to Components Semantics : LTSs, congruences, refinement Processes, Connectors, and CSP refinement : Wright Hierarchical components, weak bisimulation, Buchi automata : Darwin Semantics of encapsulation : Kell calculus Sofa Frame (spec) vs. Architecture (implementation) compliance relation based on traces Hierarchical construction through parallel composition, with error detection Behavioural Contracts (e.g. Carrez et al.) Interface behavioural-type compatibility (decidable) Component contract compliance (non decidable) No other work to our knowledge dealing with functionality + management (even in the synchronous case)

Eric MADELAINE28 Vercors Platform Tool set : Code analysis(prototype, partial) Model generation (prototype, soon available) Interactions with model-checking and verification tools (available) Supported by FIACRE An ACI-Security action of the French research ministry

Eric MADELAINE29 Ongoing work Expression of Properties : Pattern language specific to Grid Application Extensions : Group communication Perspectives New verification tools (infinite state classes) “Safe by construction” programming style

Eric MADELAINE30 Conclusions Model for the behaviour of distributed hierarchical components Automatic Construction of the control parts Verification of properties in different phases Implementation of a prototype tool for model construction, using standard model- checking tools Asynchrony is essential for large scale grid applications (hide the latency, fewer deadlocks), but brings in new difficulties (at developer level). Papers, Use-cases and Tools at :