Enforcing safety properties in web applications using petri nets

Web applications are often based on the client-server model which relies on concurrent execution of asynchronous processes. Enforcing correctness of concurrent software is notoriously difficult. In general, automatic verification checks if a given system has a certain property, while supervisory control enforces the same property by restricting system behavior. Supervisor control problems are often computationally more tractable to solve than verification problems. Most verification problems are NP -hard, while some supervisory control problems can be solved in polynomial time with the appropriate representation. Here we present two algorithms, one for enforcing mutual exclusion and the other for deadlock prevention for web applications written in Java. We combine these two methods in order to guarantee that a web application or web service comply with given safety properties including freedom from deadlock and system specific mutual exclusion properties.

[1]  Michael D. Ernst,et al.  Static Deadlock Detection for Java Libraries , 2005, ECOOP.

[2]  MurataTadao,et al.  An Application of Petri Net Reduction for Ada Tasking Deadlock Analysis , 1996 .

[3]  Michael D. Lemmon,et al.  Liveness-enforcing supervision of bounded ordinary Petri nets using partial order methods , 2002, IEEE Trans. Autom. Control..

[4]  Panos J. Antsaklis,et al.  Feedback control of Petri nets based on place invariants , 1994, Proceedings of 1994 33rd IEEE Conference on Decision and Control.

[5]  Stephan Melzer,et al.  Deadlock Checking Using Net Unfoldings , 1997, CAV.

[6]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[7]  Walter Vogler,et al.  An Improvement of McMillan's Unfolding Algorithm , 2002, Formal Methods Syst. Des..

[8]  Kenneth L. McMillan,et al.  A technique of state space search based on unfolding , 1995, Formal Methods Syst. Des..

[9]  Tadao Murata,et al.  Detection of Ada Static Deadlocks Using Petri Net Invariants , 1989, IEEE Trans. Software Eng..

[10]  Xudong He,et al.  Mapping Petri nets to parallel programs in CC++ , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[11]  Panos J. Antsaklis,et al.  Synthesis of deadlock prevention supervisors using Petri nets , 2002, IEEE Trans. Robotics Autom..

[12]  A. Bourjij,et al.  A new methodology for Hardware/Software codesign using Petri nets , 2001, 2001 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (IEEE Cat. No.01CH37233).

[13]  Walter Vogler,et al.  An Improvement of McMillan's Unfolding Algorithm , 1996, Formal Methods Syst. Des..

[14]  Panos J. Antsaklis,et al.  Supervisory control of Petri nets with uncontrollable/unobservable transitions , 1996, Proceedings of 35th IEEE Conference on Decision and Control.

[15]  Tadao Murata,et al.  An Application of Petri Net Reduction for Ada Tasking Deadlock Analysis , 1996, IEEE Trans. Parallel Distributed Syst..