280 likes | 433 Views
Applying Petri Net Unfoldings for Verification of Mobile Systems. Apostolos Niaouris Joint work with V. Khomenko, M. Koutny MOCA ‘06. Outline. Mobility and π -calculus Model checking π- calculus p-nets Translation from π- calculus to p-nets Implementation issues
E N D
Applying Petri Net Unfoldings for Verification of Mobile Systems Apostolos Niaouris Joint work with V. Khomenko, M. Koutny MOCA ‘06
Outline • Mobility and π-calculus • Model checking π-calculus • p-nets • Translation from π-calculus to p-nets • Implementation issues • Examples and experimental results • Next steps
Mobility and π-calculus • Mobility – one of the main features of many crucial modern distributed computing systems of ever growing complexity • Formal analysis and verification using process algebras like π-calculus • π-calculus can express dynamic changes in a process ability to communicate with the external environment, by passing references (channels) through interactions on previously known channels
π-calculus • Syntax of π-calculus • countably infinite set of channels • Free channels of P:fn(P) • Agent obtained from P by replacing all free occurrences of c by b: {b/c}P • Well-formed π-calculus expression
Representing π-calculus • Context-based expressions • set of restricted channels • set of channel holders • partial mapping
Representing π-calculus • Context-based expressions • set of restricted channels • set of channel holders • partial mapping type-K type-R type-I
Model checking π-calculus Pi-calculus expression At the moment, only finite pi-calculus is supported
Model checking π-calculus Pi-calculus expression Safe High-level PN (p-nets) Automatic translation
p-nets • Transitions • Places
p-nets • Transitions • Places
p-nets • Transitions • Places
p-nets • Transitions • Places
p-nets • Transitions • Places • Tag-place
Operators for p-nets Operators for choice, parallel composition and restriction
From π-calculus to p-nets • Translation of base process 0 and the three prefixes
From π-calculus to p-nets • For compound sub-expressions • Restriction operator • Tokens
Model checking π-calculus Pi-calculus expression Safe High-level PN (p-nets) PUNF MPSat Property Checking PN unfolding
Implementation issues • Infinity of new channels • Read arcs • Non-safeness • Partial-transition expansion • Reducing the number of holder places
Example • Classroom example • Scalable specification • 1 teacher process • 3,4 student processes • Check for proper termination
Example NESS a?ness a T ness h1 h4 h3 h2
Example h1!ness | h2!ness | h3!ness | h4!ness NESS a T ness h1 h4 ness ness ness h3 h2 ness
Example h1?addr1 | h2?addr2 | h3?addr3 | h4?addr4 NESS a T ness ness ness ness ness h1 h4 ness ness h3 h2 ness ness
Example NESS a T ness h1 h4 h2 h3 ness ness ness ness
h!h1. h1!done. STOP + h?another1.addr1!h1.addr1!another1. h1!done.STOP Example NESS a T ness ness ness h1 h4 h3 h2 ness h ness h ness ness
Next steps • We need efficient extensions of the unfolding approach for read arcs • Introduce a restricted form of recursion still allowing one to use model-checking • Deal with the state space explosion caused by aspects other than high level of concurrency • Further performance comparisons of this model with other approaches