Model Generation for Distributed Java Programs - PowerPoint PPT Presentation

About This Presentation
Title:

Model Generation for Distributed Java Programs

Description:

INRIA, Sophia-Antipolis France, I3S, UNSA. Luxembourg, November 28, 2003 ... Example (Philosopher Diner) public void runActivity(){ while(true){ think(); getForks ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 22
Provided by: rbou
Category:

less

Transcript and Presenter's Notes

Title: Model Generation for Distributed Java Programs


1
Model Generation for Distributed Java Programs
  • Rabéa Boulifa
  • Eric Madelaine
  • Oasis Team
  • INRIA, Sophia-Antipolis France, I3S, UNSA

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
2
Outline
  • Distributed Java Applications, the ProActive
    Library
  • Approach
  • Models Networks and LTSs
  • Model Construction
  • Conclusion

scientiFic engIneering of Distributed Java
applIcation
Luxembourg, November 28, 2003
3
Context, ProActive library
  • Active objects communicate by Remote Method
    Invocation.
  • Each active object
  • has a request queue (always accepting incoming
    requests)
  • has a body specifying its behaviour (local state
    and computation, service of requests, submission
    of requests)
  • manages the  wait by necessity  of responses
    (futures)

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
4
Approach
Control flow analysis
MCG
ProActive Application
Behavioural Semantics
LTS
  • Behavioural model (Labelled Transition Systems),
    built in a compositional (structural) manner
    One LTS per active object.
  • Synchronisation based on ProActive semantics
  • Usable for Model-checking ? finite / small
    models

scientiFic engIneering of Distributed Java
applIcation
Luxembourg, November 28, 2003
5
Method Calls informal diagram
Current object
Remote object
!Req_m
!Req_m
  • method call

?Req_m
  • request arriving in
  • the queue

?Req_m
!Serv_m
  • request served
  • (executed and removed)

!Serv_m
!Rep_m
  • response sent back

!Rep_m
  • response received

?Rep_m
?Rep_m
Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
6
Model Networks of synchronised LTSs
  • Finite enumeration active objects ? Synchro.
    Networks Arnold 80
  • Boxes and links computed by static analysis
  • Labelled transition systems, LTSs
  • 1 LTS per activity LTS behaviour LTS queue.
  • LabelsRequests/Responses (meth. name finite
    abstract. of param.)

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
7
Construction procedure
  • Finite network analyse the source code of the
    application, by some finite abstraction of
    parameters.
  • For each Active Object Class (with all required
    passive classes)
  • build the Method Call Graph, MCG
  • compute the sequential LTS, using the SOS rules
  • interleave at each wait by necessity points,
    using the Future rule (gt asynchronous LTS).
  • generate the request queue LTS.
  • combine the asynchronous LTS with the queue LTS.
  • Property For a finite data abstraction ?
    Termination guaranteed


Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
8
Building of Network
  • Enumeration
  • O Oi a finite number of active object
    classes.
  • Dom (Oi) a finite number of instantiations of
    each class.
  • (use a finite abstraction of creation
    parameters)
  • Incoming ports (available services) set of
    public methods
  • Outgoing links remote requests
  • (use a finite abstraction of message
    parameters)

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
9
Method Call Graph
MCGltid, V, ?C, ?T , ? gt method name nodes
call edges transfer edges reference to
future nodes ? ent(id), call(id), rep(id),
seq, ret public void getForks()
ObjectForSynchro lf
Forkid.take() ObjectForSynchro lr
Forkright_ind.take()
waitFor(lf) waitFor(lr)
Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
10
Rules SOS-style

Premisses
ltvpattern, n, A, M, Sc, Smgt ? ltv', n', A, M',
Sc, Smgt
MCG node
method stack
LTS node
Continuation stack
LTS
mapping

At beginning ltvent(runActivity), ?, ?, M, ,
gt
Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
11
Local Call
We will go and analyse its code, just as if we
where inlining it. We shall not develop loops or
recursive procedures.
Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
12
Remote Call
v1 ?T v2 Active(O) fresh(n')
R_Call
ltv1call(O.m), n, A, M, Sc, Smgt ?
ltv2, n', A?(n  
n ), M ? v1 ? n', Sc, Smgt
!Req_M
O is a remote active object. We simply generate a
send message !Req_M encoding the method name and
its (abstracted) parameters.
Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
13
Futures
?Rep_M
?(v1)v2 n1M(v1) n2M(v2) A (A ??
)
Fut
ltv1, Agt ? A 
Where M is the phantom of M, i.e. the union of
all Ms during the construction procedure
V v O.m1(x) xxx yyy v.f()
scientiFic engIneering of Distributed Java
applIcation
Luxembourg, November 28, 2003
14
Example (Philosopher Diner)
  • public void runActivity()
  • while(true)
  • think() getForks()
  • eat() putForks()
  • public void getForks()
  • ObjectForSynchro lf
  • Forkid.take()
  • ObjectForSynchro lr
  • Forkright_ind.take()
  • waitFor(lf)
  • waitFor(lr)

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
15
MCG ? LTS
Sc
Sm




Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
16
MCG ? LTS
Sc Sm





Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
17
MCG ? LTS
Sc Sm















Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
18
Conclusion
  • Behaviour models of ProActive distributed
    applications encode asynchronous communication
    between distributed objects.
  • With usual data/structure abstraction, we build
    finite, hierarchical, models suitable for
    automatic verification.
  • Prototype implementation based on Soot and
    Bandera tools.
  • Future directions
  • Parameterised models can be finitely instantiated
    (adapted to each property), or directly fed into
    specialised tools. They are more compact and more
    flexible.
  • Other ProActive features group communication,
    exceptions.
  • Behaviour specification for distributed
    components.

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
19
Properties
  • Check properties
  • deadlocks, livelock, temporal logic formulas
  • Check equivalence with

Luxembourg, November 28 ,2003
scientiFic engIneering of Distributed Java
applIcation
20
Model Generation for Distributed Java Programs
  • Rabéa Boulifa
  • Eric Madelaine
  • Oasis Team
  • INRIA, Sophia-Antipolis France
  • http//www-sop.inria.fr/oasis/Vercors
  • http//www-sop.inria.fr/oasis/Proactive

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
21
Model Networks of synchronised LTSs(2)
  • Labelled transition systems, LTSs
  • 1 LTS per activity LTS behaviour LTS queue.
  • Labels Requests/Responses
  • (method name finite abstraction of
    parameters)
  • Construction by SOS rules, based on the Method
    Call Graph.

Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
22
MCG ? LTS
Sc
Sm




Luxembourg, November 28, 2003
scientiFic engIneering of Distributed Java
applIcation
Write a Comment
User Comments (0)
About PowerShow.com