110 likes | 236 Views
Finite Model Generation for Distributed Java Programs. Eric MADELAINE Rabea BOULIFA OASIS team INRIA Sophia-Antipolis, France. This talk. Context. Analysis and verification software platform for distributed Java applications. Pervasive and mobile computing, e-commerce, grid computing
E N D
Finite Model Generation for Distributed Java Programs Eric MADELAINE Rabea BOULIFA OASIS team INRIA Sophia-Antipolis, France
This talk. Context • Analysis and verification software platform for distributed Java applications. Pervasive and mobile computing, e-commerce, grid computing • Long term goal: full language, usable by non-specialists • Automatic tools = static analysis, model-checkers, equiv / preorder checkers. Graphical / Logical Specifications Automatic tools, diagnostics, etc. Code analysis Finite model Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Software verification: ESC-Java, CADP, Slam, Blast, Feaver, Bandera, JPF • So, what’s special with distributed applications ? • Asynchronous communication • error-prone, state explosion • Structured: composition of distributed components • hierarchical construction / reduction / analysis of models • bisimulation semantics • Well-defined, architecture-independent semantics • with the ProActive Library. • Inherit methods and tools from existing software: • Static analysis from Soot. • Slicing / abstraction from Bandera. • Standard or prototype checkers (action based) Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Distributed Java Applications: the ProActive Library • Features : distributed, mobile, heterogeneous. • Transparent distribution no shared data between distributed objects. • Message semantics (method calls + request queue) => delivery guarantied by the middleware (MOP). • Requests and responses : transparent future objects with “wait by necessity”. Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
f = RO.M (args); !Req (M, args, f) 1: method call ? Req (M, args, f) 2: request arriving in the queue 3: request served (executed and removed) V= Serv (M, args) 4: response send, then received !Rep (V, f) ? Rep (V, f) X = f.a ; ProActive: Communication Scheme Local object Remote object Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
[st>0] ?Serve(stamp)-> st-- ! Req (Newstamps) ?Rep (Newstamps, x) -> st+=x Stock(s) Invoice(v,k) Model: Parameterised Networks of synchronised LTSs • Actions = Requests/Responses (method name + finite abstraction of arguments) • Finite Extended LTSs (integer variables) • Synchronisation Networks [Arnold 80] Global action < *, …, L1, …, L2, …, * • Concrete syntax : FC2 intermediate language extended for encoding integer parameters Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Model Construction (1): Nets • Finitely manyactive objects class / creation points • User provided approximation of arguments (abstract interpretation to finite or integer domains) => Boxes and Links computed by static analysis (dataflow, reference and alias analysis) Q3 + A3 Q1 + A1 Req (M, args) P(k) Q2 + A2 Rep (v) Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Model Construction (2): Activities • 1 LTS per activity • Construction by SOS rules, based on the Method Call Graph of the active object. • Termination guarantied (for a finite data abstraction) => Rules and proofs in the full paper: http://www-sop.inria.fr/oasis/Vercors Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Classical Tools FC2 (bisimulation-based) Model Checkers Eq/Preorder Checkers FC2p Specialised Tools : Moped (PD Systems) TRex (Automata on reg. Struct.) Harvey (constraint, eq. Theories) Parameterised Verification Methods Source Code Model Construction Finite Instantiation Parameterised Specification : Parameterised networks / Parameterised logics Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
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. • Parameterised models can be finitely instantiated (adapted to each property), or directly fed into specialised tools. They are more compact and more flexible. • Case Study: Chilean electronic tax system • Other ProActive features : group communication, security policy specification. • Behaviour specification for distributed components (in ObjectWeb / Fractal) Directions Model Checking for Dependable Software-Intensive Systems San-Francisco, june 21, 2003
Finite Model Generation for Distributed Java Programs Eric MADELAINE Rabea BOULIFA OASIS team INRIA Sophia-Antipolis, France http://www-sop.inria.fr/oasis/Vercors http://www-sop.inria.fr/oasis/Proactive