1 / 22

Parameterized Models for Distributed Java Objects

Parameterized Models for Distributed Java Objects. Tomás Barros & Rabéa Boulifa OASIS Project INRIA Sophia Antipolis April 2004. Agenda. Main Goal Parametrized Models Generation of Models Properties Study Case Conclusion Perspectives. Main Goal.

dacian
Download Presentation

Parameterized Models for Distributed Java Objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parameterized Models for Distributed Java Objects Tomás Barros & Rabéa Boulifa OASIS Project INRIA Sophia Antipolis April 2004

  2. Agenda • Main Goal • Parametrized Models • Generation of Models • Properties • Study Case • Conclusion • Perspectives

  3. Main Goal Analysis and Verification of Behavioural Properties of Distributed (Java) Systems • Naturally description of realistic distributed systems • (Semi) Automatic model generation from source code • Hierarchy & Compositionability

  4. Architecture (parameterized) Properties (parameterized) Rabea Architecture (parameterized) Instantiations Tomás Static Analysis Abstract Source Code Source Code Abstraction (ProActive) Aims Snapshot Informal Requirements Model Checker

  5. Parameterized Models

  6. 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)

  7. Method Calls : informal diagram Current object i Remote object j !Req_m(args) • method call !Req_m(args) ?Req_m(args) • request arriving in • the queue ?Req_m(args) • request served • (executed and removed) !Serv_m(args) !Serv_m(args) !Rep_m(val) • response sent back !Rep_m(val) • response received ?Rep_m(val) ?Rep_m(val)

  8. serve serve Aj Ai Qj Qi use use Req Req Pi Pj Parameterized Networks Parameterized Synchronisation Networks Active Object j • O= {Oi} a set of active object classes. • Dom(Oi) a set of instantiations of each class (by abstraction of creation parameters). Active Object i Queue pLTS Req(args) Behaviour pLTS Rep(v)

  9. Networks of synchronised pLTSs • Parametrized Labelled transition systems, pLTSs= LTSs with guarded parameterized transitions • 1 pNet per activity=pLTS body + pLTS queue + pLTS proxy • Labels= Requests/Responses (method name + finite abstraction of parameters) • Construction by rules, based on the eXtended Method Call Graph.

  10. a p MCG=<id, V, C, T > method namenodescall edgestransfer edges eXtended Method Call Graph It encodes both the usual control flow usual in MCG (resolution of class analysis and of method calls), and the data low relative to interesting parameters. nodes  { ent(m, args), pp(lab), ret(val), call(var, o.m, ags), use(val), serve(mset, pred) } witho typed as remote or local

  11. Buffer XMCG

  12. Procedure • Global Network: analyse the source code of the application, parameterized by some finite abstraction of parameters. • For each Active Object Class (with all required passive classes): • build the eXtended Method Call Graph, XMCG • compute the sequential pLTS, using rules • for each use node construct the proxy "Future" pLTS • generate the request queue pLTS • Combine the pLTSs (the body, the queue and the proxy). • Property: For a finite data abstraction  Termination guarantied

  13. Algorithm… rules

  14. Call rule • If o is remote, we simply generate a send message !o.Q_m(this, f, args) encoding the method name, its status and its (abstracted) param. with future var. • else the message !o.Call_m(args) is sentto the method proccess and according to the return value is void or no the responseis awaited or no.

  15. Consumer Network

  16. Buffer Network Buf.Body get put Buf.Queue

  17. True/False + diagnostic Parameterized Property

  18. Electronic Invoices in Chile

  19. Electronic Invoices in Chile • 15 parameterized automata • 4 level of hierarchy • state explosion: grouping, hiding, reduction by bisimulation • 7 properties successful verified (after fixing the model)

  20. Conclusions • Outlined a graphical language • Developed instantiating tool • Generation of model from ProActive source code • Validated our approach into a realistic application

  21. Perspectives • Refine the language and formalise the abstractions • Parameterized verification and pre-order relation • Components and dynamic binding/creation • On-the-fly model checking and graphical editor (currently started)

  22. Thank you Tomás Barros Tomas.Barros@sophia.inria.fr Rabea Boulifa Rabea.Boulifa@sophia.inria.fr Vercors: http://www-sop.inria.fr/oasis/Vercors ProActive: http://www-sop.inria.fr/oasis/ProActive

More Related