This paper describes a design concept for systems of cooperating distributed processes based on a variant of coloured Petri-nets. Designing complex process systems is aided by abstractions similar to those that are available in programming languages. Essential invariance properties of small subsystems which in incremental steps may either be verified by formal methods or validated by simulation are not corrupted when embedding them in the contexts of larger systems. The paper focuses particularly on the construction of large systems by recursive abstractions of small net templates which, at execution time, may be recursively expanded to distribute application problems evenly over several processing sites for concurrent processing. A Coordination Language for Systems of Cooperating Processes C. Assmann .
Programming distributed computer systems is still a difficult organizational problem.
A viable approach to render this problem manageable are coordination languages which describe distributed process systems. They strictly separate the specification of process communication structures from those of the computations to be performed by the processes. The coordination language K2 to be proposed in this paper is based on a variant of coloured Petri-nets which primarily defines process systems with deterministic behaviour, but also allows for controlled forms of nondeterminism. Net-based specification of cooperating processes combine the advantages of an underlying calculus which facilitates formal analysis and verification of an orderly system behaviour, graphical representations which clearly expose structural dependencies among system components, and last not least of an interactively controlled simulation by stepwise execution and the possibility to display intermediate states of token distributions. They also provide various forms of net abstractions including recursive specifications which allow for the systematic construction of large systems from small subsystems by net composition.