**7.1. C-net: Net with variables [5,8]**

C-net was originally defined for programming, i.e. for computation and communication. Variables are essentially different from conventional place elements of directed nets. A conflict between transitions in a net system is caused by either the lack of tokens in a shared place, or by the limited capacity of a shared place; a conflict between operations on a variable is read-write conflict: simultaneous read-write on the same variable is impossible by nature regardless of the exact value of that variable. Besides, there is a rich variety of data types and operations for data types. Conditions for case classification cannot be formally expressed without variables and operations on variables. The example of insurance claim explains: c1 = x∧y, c2 = (¬x∧y)∨(x∧¬y), c3 =¬x∧¬y provide a third way of case classification.

When variables are introduced into a net as another kind of state elements, a net becomes a C-net. A simplified version of C-net is introduced next, just to serve the need of modeling case semantics.

Definition 20

136 Petri Nets – Manufacturing and Computer Science

semantics is to select a route for the processing of a given case.

Let Σ= (S,T;F,K,W,M0) be the workflow logic developed for a business process. Case

A healthy enterprise should have new cases arrive every day. It is impossible to have different routes for different cases. Cases must be classified so that one route for one case

Let C= {c1, c2, …ck} be the set of conditions for case classification. For example, let Boolean variable x, y be used to record conclusions given by tasks "check policy" and "check claim" respectively for insurance claim i.e. x and y are blanks on the B-form. One way to specify case classes is: c1 = x∧y, c2 =¬x∨¬y. This classification is consistent with the workflow logic developed in Figure 24. Another way of case classification is to have 4 classes: c1 = x∧y, c2 =¬x∧y, c3=x∧¬y, c4 =¬x∧¬y. This classification leads to a different task set: there have to be 4 end tasks. Thus the workflow logic is also different. The B-form should as well be changed

A route on a workflow logicΣ= (S,T;F,K,W,M0) is a RP/T-systemΣ'= (S',T';F',K',W',M0')

S 'contains the start place s, a unique end place e, and all synchronizers in S that have a

T' consists of the start transition (task), the transition in the pre-set of e, and for every

The difference betweenΣ= (S,T;F,K,W,M0) and Σ'= (S',T';F',K',W',M0') appears when a synchronizer p is an OR-join and/or OR-split. Conditions c1, c2, …ck will be used to select a

conditions are explicit variables, since they will appear explicitly in the system model for

C-net was originally defined for programming, i.e. for computation and communication. Variables are essentially different from conventional place elements of directed nets. A conflict between transitions in a net system is caused by either the lack of tokens in a shared place, or by the limited capacity of a shared place; a conflict between operations on a variable is read-write conflict: simultaneous read-write on the same variable is impossible

For x ∈ S', K'(x) = K(x); For (x, y) ∈F', W'(x, y) = W(x, y); M0'(x) = M0(x) for all x in S'.◆

p and b transitions from p.

. Thus, variables (blanks in B) used in these

.

Before going on from conditions to routes, a definition of routes is needed.

p, p.,(a, b)) in S', a transitions from .

p and b transitions from p.

such that S',T', and F' are subsets of S,T and F respectively:

**7. Case semantics** 

class.

accordingly.

Definition 19

directed path to e

synchronizer p= (.

transitions from .

case semantics.

F' = {(x,y) | x,y∈ S'∪ T'∧ (x,y) ∈ F}.

**7.1. C-net: Net with variables [5,8]** 

Σ= (S,V,T;F,K,W,R,Wr, MT, M0) is a C-net system if

S,V,T are the sets of places, variables and transitions respectively; F,R,Wr are respectively the flow relation, the read relation and the write relation; K,W are the capacity function and the arc weight function; MT is a marking on T and M0 is a marking (initial marking) on S.◆

A transition may read and/or write a variable, but not must. The marking on a transition has a Boolean expression as its guard and assignments as its body when it writes. The guard and the body must be consistent in relation to read and write. For example, the guard can only refer to variables that are to be read by the transition.

If a transition has nothing to do with variables, conventional transition rules apply. If a transition has nothing to do with places, it is enabled when its guard is true. If a transition is related with places as well as variables, it is enabled if it is enabled by places and its guard is true.

Isolated transitions are excluded in a C-net.

An enabled transition may fire to produce a successor marking on S, the marking on T remains like the weight function and the capacity function; variables in write relation with this transition are assigned values by the assignments.

A c-net transition in general has a figure called "status" as part of MT. Transition firings may change "status". But this does not concern us.

To save space, detailed formal definitions are avoided. Figure 25 illustrates them, including graphical presentation of C-nets.

**Figure 25.** A C-net System: Case Semantics for Insurance Claim

#### 138 Petri Nets – Manufacturing and Computer Science

The case semantics of insurance claim given in Figure 25 divides conceivable cases into 2 classes. Variables like x and y are drawn as double circles, write relation is represented by a zero-headed arc from transition to variable, reversed zero-headed arc represents read relation. For example, t2 writes x and t4 , t5 read x.

Workflow Modelling Based on Synchrony 139

, (a, b)) requires management

p well synchronized with

**Figure 26.** Another Case Semantics for Insurance Claim

As suggested by Figure 8 (b), every synchronizer p = (.

(transition t in the detail of the synchronizer) to keep tasks in .

whether the case is well processed and to put the completed B-form in place.

with given condition ci in C produces the route for all cases classified by ci.

) is the logic pair for the business process in question.◆

**8. Business process management** 

semantics is the workflow engine.

**8.1. Management logic** 

transitions in p.

Definition 22

2. ∑'

3. (∑,∑'

1. The directed net N'

= (T, S; F,K'

F,K,W, M0), where K'

,W'

weights on its input arcs; W'

synchronizer.

The only OR-split synchronizer in Figure 26 is p2. It has 3 tasks in its post-set and each of which bears a different condition as its guard. This is consistent with p2: p2 is a XOR-split

So far we have proposed a formal model as workflow logic and a formal model as case semantics for a well-designed business process. Case semantics in embedded in a Workflow logic when they are consistent with each other. There is a unique route for every conceivable case as the semantics of that case. Thus, a firm foundation has been laid for management automation. The computer system that conducts the processing of each given case based its

place, the engine must recognize the proper business process when a case (B-form) arrives, and to have the corresponding workflow logic ready, and to appoint an executer for the start-task and passes the B-form to the executer. At an end-place, the engine must check

All in all, places and synchronizers are exactly where the engine does its duty. In other words, the dual of workflow logic is the management logic, and the dual of case semantics

= (T,S;F) is the dual net of directed net N = (S,T;F).

, **M0**) is the workflow management logic for workflow logic ∑= (S, T;

(t) = ∑ W(p, t) for every t in T, i.e. the capacity of t is the sum of all

(x, y) = W(x, y) for all (x, y) in F; **M0** (t) = 0 for t in T.

p, p.

. The start-place requires management, so do all end-places. At the start-

The start transition t1 is in no relation with x and y, it has no guard, no body. The guards of both t2 and t3 are "true", denoted by default. The write operations of these two transitions are to be performed by their executers, denoted as x:= D where D is the abbreviation of "default". Transitions t4 and t5 have conditions for case classification as their guards. They have empty body since they write no variables.

Apparently, the case semantic contains two routes: one for each class. As long as the classification of cases is complete and consistent (every case falls into exactly one class), there would be a unique route for each case.
