From formal specifications to ready-to-use software components: the concurrent object oriented Petri net approach

CO-OPN (Concurrent Object Oriented Petri Net) is a formal specification language for modelling distributed systems; it is based on coordinated algebraic Petri nets. We describe a method for generating an executable prototype from a CO-OPN specification. We focus our discussion on the generation of executable code for CO-OPN classes. CO-OPN classes are defined using Petri nets. The main problems arise when implementing synchronization and non-determinism of CO-OPN classes in procedural languages. Our method proposes a solution to these problems. Another interesting aspect of our method is the easy integration of a generated prototype into any existing system. This paper focuses on the generation of Java code that fulfils the Java Beans component architecture, however our approach is also applicable to other object-oriented implementation languages with a component architecture.

[1]  D WarrenDavidH,et al.  Prolog - the language and its implementation compared with Lisp , 1977 .

[2]  Nicolas Guelfi,et al.  Object-Oriented Nets with Algebraic Specifications: The CO-OPN/2 Formalism , 2001, Concurrent Object-Oriented Programming and Petri Nets.

[3]  Ron Ben-Natan,et al.  CORBA - a guide to common object request broker architecture , 1995, J. Ranade Workstation series.

[4]  David H. D. Warren,et al.  Prolog - the language and its implementation compared with Lisp , 1977, Artificial Intelligence and Programming Languages.

[5]  Philippe Schnoebelen,et al.  Refined Compilation of Pattern-Matching for Functional Languages , 1988, Sci. Comput. Program..

[6]  Nicholas Carriero,et al.  How to write parallel programs - a first course , 1990 .

[7]  Mathieu Buffo Experiences in coordination programming , 1998, Proceedings Ninth International Workshop on Database and Expert Systems Applications (Cat. No.98EX130).

[8]  Didier Buchs,et al.  A Coordination Model for Distributed Object Systems , 1997, COORDINATION.

[9]  Gerhard Weikum,et al.  Principles and realization strategies of multilevel transaction management , 1991, TODS.

[10]  Didier Buchs,et al.  Structured Algebraic Nets with Object-Orientation , 1995 .

[11]  Didier Buchs,et al.  Rapid prototyping of formally modelled distributed systems , 1999, Proceedings Tenth IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype (Cat. No.PR00246).

[12]  Nicolas Guelfi,et al.  A Formal Specification Framework for Object-Oriented Distributed Systems , 2000, IEEE Trans. Software Eng..

[13]  Christine Choppy,et al.  Mixing abstract and concrete modules: specification, development and prototyping , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[14]  Morris Sloman,et al.  Configuring object-based distributed programs in REX , 1992, Softw. Eng. J..

[15]  Didier Buchs,et al.  Evolutive prototyping of heterogeneous distributed systems using hierarchical algebraic Petri nets , 1996, 1996 IEEE International Conference on Systems, Man and Cybernetics. Information Intelligence and Systems (Cat. No.96CH35929).

[16]  E. B. Moss,et al.  Nested Transactions: An Approach to Reliable Distributed Computing , 1985 .