Eric MADELAINE ---- OASIS 1
- E. Madelaine
Oasis team
INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis ECNU Dept of Software Engineering October 2010
Specification and Verification for distributed applications running - - PowerPoint PPT Presentation
Specification and Verification for distributed applications running on heterogeneous infrastructures E. Madelaine Oasis team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis ECNU Dept of Software Engineering October 2010 Eric
Eric MADELAINE ---- OASIS 1
Oasis team
INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis ECNU Dept of Software Engineering October 2010
Eric MADELAINE ---- OASIS 2
Specification and Verification for distributed applications Distributed Systems Components Services Adaptation Message passing Clouds Grids Self Healing Reconfiguration Self Optimizing Load Balancing Interfaces MultiCores
Eric MADELAINE ---- OASIS 3
Services Adaptation Message passing Clouds Grids Self Healing Reconfiguration Self Optimizing Load Balancing Components Interfaces MultiCores Distributed Systems
Eric MADELAINE ---- OASIS 4
Safe COTS-based development => Behaviour Specifications
A B C ???
Safe management for complex systems (e.g. replacement at runtime)
C2 A B C
Eric MADELAINE ---- OASIS 5
Yes ! Asynchrony creates race-conditions, dead-locks, etc. Dynamicity creates new challenges: Correct (DYNAMIC) Adaptation, quiescent states, …
Eric MADELAINE ---- OASIS 6
Heterogeneous Resources for Distributed Applications
Windows CCS Cluster Storage Server GPUs Cloud Cluster 47+ linux nodes 2-proc/4-core PacaGrid cluster P2P LAN network Mobile terminals
Eric MADELAINE ---- OASIS 7
Heterogeneous Resources for Distributed Applications
Windows CCS Cluster Storage Server GPUs Cloud Cluster 47+ linux nodes 2-proc/4-core PacaGrid cluster P2P LAN network Mobile terminals
= ProActive = seamless programming, deployment, scheduling, and execution middelware, strong semantic guaranties The Challenge:
may evolve dynamically, while keeping simplicity and correctness
Eric MADELAINE ---- OASIS 8
Eric MADELAINE ---- OASIS 9
Challenges :
Guarantee safety and security for software systems Develop and master future infrastructures of networks and services
ASP Calculus Properties Model- Checking ProActive Components
Propose fundamental principles, techniques and tools for design, development, analysis, and verification of reliable distributed systems
P L A T F O R M S
Eric MADELAINE ---- OASIS 10
ANR (french ministry of research) International “Blanc” project.
University of Tsinghua, Beijing (Pr. Yongwei Wu) INRIA Oasis team (Pr. Denis Caromel, Dr. Eric Madelaine)
Programming Model for Multi-Core Infrastructure with ChinaGrid and CGSP Application and User Case in Bioinformatics
A collaborative project building the basis for safe programming of heterogeneous applications
Eric MADELAINE ---- OASIS 11
Task 1: Programming Model for Multi-Core
1.1 New Basic Programming Model for Multi-Core Extensions of the Active Object programming model:
1.2 Legacy Support and Integration 1.3 Safe Code Generation:
From model-level specification and analysis of properties, to “correct by construction” executable code. This presentation
1.4 Monitoring
Eric MADELAINE ---- OASIS 12
[Denis Caromel – Ludovic Henrio] ASP (Asynchronous Sequential Processes) =
Determinism/Confluence properties Programming abstractions Formal Basis for Verification
Eric MADELAINE ---- OASIS 13
Client obj. A Server obj. B
Eric MADELAINE ---- OASIS 14
Public domain library Object Web Consortium Spin-off company 2007 :
Eric MADELAINE ---- OASIS 15
Attribute Controller Binding Controller Lifecycle Controller Content Controller
Content Controller / membrane
composites encapsulate primitives, which encapsulates code
Interfaces
concern: functional / non-functional
Eric MADELAINE ---- OASIS 16
Grid Component Model (GCM):
Grid aware extension to Fractal Targetting GRIDS requires to handle:
Collective interfaces
Opportunity to use GCM for parallel computing
Component non-functional concerns (membrane) as a Fractal system
functional client interfaces
Opportunity to use GCM for autonomic computing
Eric MADELAINE ---- OASIS
MultiCast MultiCast GatherCast GatherCast
Eric MADELAINE ---- OASIS 18
Opportunity to use GCM for autonomic computing
Dynamic to Autonomic component based system reconfiguration
membranes
strategies to drive all non- functional concerns
EU BIONETS IP project, P. Naoumenko BDO PACA ½ funded PhD:
strategies
Eric MADELAINE ---- OASIS 19
Eric MADELAINE ---- OASIS 20
Applications :
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 MADELAINE ---- OASIS 21
[Arnold, Nivat 92] Synchronization networks [Lin 92] symbolic graphs with assignments [Lakas 96] semantics of Lotos open expressions
[Forte’04: T. Barros, R. Boulifa, E. Madelaine] [Annals of Telecomunications’08: T. Barros, A. Cansado, L. Henrio, E. Madelaine]
Eric MADELAINE ---- OASIS 22 Eric MADELAINE 22
PhiloNET : < Philo[k], Fork[k] > k ∈ [1:n]
Ag = { Think(k), TakeL(k), … } with synchronisation vectors : <Think(k), Think Philo[k] > <TakeL(k), TakeL Philo[k] , Take Fork[k-1] >
Philo[k] Fork[k]
Take Drop TakeL TakeR DropR DropL Think Eat
PhiloNET
Eric MADELAINE ---- OASIS 23
For a given language/framework, define an operational semantics that builds pNets from the program structure.
For Fractal or GCM components:
Primitive components : functional behaviour is known
Composites :
Eric MADELAINE ---- OASIS 24
value domains, on a per-formula basis ⇒ Preservation of safety and liveness properties [Cleaveland & Riely 93] " # $ %&"'# ($ " ) &*+ ' ) *#+ (,
Interesting research subject here…
Eric MADELAINE ---- OASIS 25
[ (not √ ) * . OE ] false
Eric MADELAINE ---- OASIS 26
Functional properties under reconfiguration (respecting the topology)
life-cycle or binding reconfigurations
with the reconfiguration actions visible:
[ true*.Req_Get() ] µX. (< true > true ∧ [¬Resp_Get() ] X )
Eric MADELAINE ---- OASIS 27
Eric MADELAINE ---- OASIS 28
JDC Specification Graphical Editor (Eclipse Plugin) Vercors JDC Formula G C M / ProActi ve Code Generator
ADL/IDL
(final)
Java Skeletons Business code
Runtime pNets/ Fiacre Model Generator
Finite model
Formula Compiler Prover
Eric MADELAINE ---- OASIS 29
Eric MADELAINE ---- OASIS 30
CADP toolset (INRIA Rhône-Alpes, VASY team)
(Lotos, BCG, Sync-vectors)
Large RAM space: Up to billions of states On-the-fly, Tau-reduction, Constrained…
Deadlock search / Regular -calculus
Less optimized than “classical” US model-checkers (Spin, etc) But scales better
Eric MADELAINE ---- OASIS 31
dating agreement protocol with group communication
ProActive-based application, with:
Initiator Participant Participant A B
Eric MADELAINE ---- OASIS 32 Eric MADELAINE ---- OASIS 32
... Group(G)
?Suggest N:=0
Proxy_suggest[c]
!getNth(i,Results[i]) ?R_suggest(i,val) [N=G] !get(Results) get_Suggest(c,Results)
Proxy_validate[c1]
!waitN_Validate(c1,G) waitN_Suggest(c,n) getNth_Suggest(c,i,val)
Initiator
!Participant[i].Q_suggest(c,date) ?Proxy_suggest[c].Suggest !Suggest(c,date) !Validate(c1) !Cancel() waitN_Validate(c1,n) Results[i]:=val N++ !waitN(n) !CollateResults(c1) ?T_CollateResults(Ok) !Suggest(c,date)
Ok!Validate(c1) !Cancel() ?CollateResults(c) Ok:=true i:=0
CollateResults
!T_CollateResults(Ok) ?getNth_Suggest(c,i,x) i:=i+1 [i=G]
Body
Call_suggest(c,date) Call_validate(c1)Suggest
Queue
push(req,queue) ?Q_Suggest(c,date) ?Q_Validate(c1) ?Q_Cancel... ...
Validate Cancel
Participant[i]
T_validate() !Call(req) ?Terminate(req) req ?Serve(req)Body
Serve(req) !Serve(req) req:=pop(queue) ?Q_* !OutOfBounds(err_mess) Call_cancel() T_cancel() T_suggest() !T_suggest() !R_suggest(c,val) ?Call_suggest(c,date) CO: R_Validate(i) BC: Q_Validate(c1) Q_Cancel() BC: BC: Q_Suggest(c,date) !R_Validate(c1)Results:=[⊥, . . . , ⊥] [Results[i] = ⊥]
i ∈ [1..G]
[n ≤ N] [Ok] [¬ Ok] Ok:=Ok ∪x
i ∈ [1..G] i ∈ [1..G]
This is a small system: 10 pLTS 6 int. parameters 1 array parameter 11 pNets 19 synch vectors, including 3 broadcast and 2 collectors.
Eric MADELAINE ---- OASIS 33 Eric MADELAINE 33
group of 3 participants would be impossible
behavioural contract) => e.g. Projector tool of CADP.
Group of 3 participants 406 " 458 / 1 284 170 K / 1 646 K Full system, queue
11 " 54 / 1 489 3 163 / 152 081 Initiator 8 " 90 / 376 1 801 / 5 338 Single participant Total time Minimized Brute force
3 participants Data ∈ ∈ ∈ ∈ { d1,d2 } Res ∈ ∈ ∈ ∈Bool 15 visible labels
Machine: Fedora 10, 4Go RAM 2 dual-core proc@2,4Ghz
Eric MADELAINE ---- OASIS 34 Eric MADELAINE 34
Principles:
memory.
checking) can be applied. Distributed MC is planned in future versions
On the fly partial order reduction available:
Eric MADELAINE ---- OASIS 35 Eric MADELAINE 35
large RAM configurations. The bottleneck is the merge phase.
memory space, at a high price. It may also fail…
(estimated 125 G states) Out of memory during local computation Brute force Tau-confluence Group of 3 participants Brute force Tau-confluence Brute force Tau-compression Tau-confluence
generation
11’32 19h 10’55 13 M / 48 M 392 K / 1 354 K Group of 2 participants (15x8 cores) 6’45 11’48 30’ 170 K / 1 646 K 170 K / 607 K 5 K / 14 K Full system with 3 participants (8x4 cores)
Total time Brute force
Eric MADELAINE ---- OASIS 36 Eric MADELAINE 36
Classical compositional state generation:
Split the application into smaller pieces, minimize each with (branching) bisimulation before combining them.
Distributed verification architecture:
Define the verification activities as a workflow, and use a generic scheduler on the cloud infrastructure. Some of the workflow nodes are multinode (distributed) tasks.
Eric MADELAINE ---- OASIS 37
Task 1 Book nodes; Prepare nodes; Build GCF Task 2.1 Compile client; Generate state space Task 2.2 Compile server; Generate state space Task 2.3 Merge sources Task 3 Rename Participants Task 4 Build product; Minimization
Config1.gcf Config2.gcf InitiatorOptim.fcr Participant.fcr InitiatorOptim.bcg Participant.bcg Participant$K[i].svl Participant$K[i].bcg SystemMin.bcg Flac + Distributor Flac + Distributor SVL BCG tools System.exp
Eric MADELAINE ---- OASIS 38 Eric MADELAINE 38
Classical compositional state generation:
Split the application into smaller pieces, minimize each with (branching) bisimulation before combining them.
⇒ The biggest intermediate structure has ~ 3000 states before reduction. ⇒ A group of 3 (reduced) participants would be 90^3 = 800 000 states. Distributed verification architecture:
Define the verification activities as a workflow, and use a generic scheduler on the cloud infrastructure. Some of the workflow nodes are multinode (distributed) tasks.
=> Open questions: build formalism and tool support to specify
Eric MADELAINE ---- OASIS 39
Eric MADELAINE ---- OASIS 40
Starting Point: the pNETs model for behavioural semantics
Flexible, expressive and compact.
components, group communication, component reconfiguration…
sets. This presentation summarizes our recent work on extensions for group communication Ongoing work on component reconfiguration…
Papers, Use-cases and Tools, Position Offers at :
http://www-sop.inria.fr/oasis/Vercors
Eric MADELAINE ---- OASIS 41
Extensions :
– unbound fifo channels – Counters + presburger arithmetics
Code Generation :
… to ADL descriptions and GCM/ProActive code skeletons
Eric MADELAINE ---- OASIS 42
Generate code from high-level specification
should not modify
deadlock freedom, reachability)
More precise than static analysis !
Perspectives ► User specification environment: Eclipse + Graphical Editor (Component architecture, FSM-based behaviour)
Eric MADELAINE ---- OASIS 43
Papers, Use-cases and Tools, Position Offers at :
http://www-sop.inria.fr/oasis/Vercors
Eric MADELAINE ---- OASIS
Grid Component Model
Objective
Extension of Fractal for programming Grids
Innovations:
Abstract Deployment Multicast and GatherCast Controller (NF) Components
Standardization
By the ETSI TC-GRID
Eric MADELAINE ---- OASIS 45
Autonomic to agile enterprise and business services
SOA @ IT Level Infrastructure
awareness deployment
SOA @ Business Level
Eric MADELAINE ---- OASIS 46
Eric MADELAINE ---- OASIS 47
My Definition : Software modules, composable, reconfigurable, with well-defined interfaces, and well-defined black box behaviour Our interests :
Black boxes, offered and required services
Design of complex systems, hierarchical organization into sub-systems
Architecture Description Language (ADL), management components
Interaction at interfaces through asynchronous method calls
Eric MADELAINE ---- OASIS 48
Parameterized Networks of Synchronised Automata
Specification language Source code pNets system
Abstraction Instantiation Verification tools
Constraint: domains in pNets are “simple types”. The data domains in the source language have to be abstracted beforehand.
Eric MADELAINE ---- OASIS 49
Given :
A set of parameters V (with domains in first order “simple types”) An many-sorted term algebra ∑V, with a distinguished Action sort
A parameterized LTS is <V, S, s0, L> in which:
i,x i,y
y=x-1