abstract data types and Recursive Petri nets, we claim
that using our model based RECATNet to model the
BPEL process and its different message types is more
natural. The major advatages of the proposed modal
is (1) it can model the control flow and data flow
in BPEL process; (2) it can model communication,
concurrency and synchronisation among processes.
These two requirements must be fulffiled by a formal
model in order to analyse and verify BPEL processes.
3 RECURSIVE ECATNet REVIEW
Recursive ECATNets (abbreviated RECATNets)
(Barkaoui and Hicheur, 2007) are a kind of high
level algebraic Petri nets combining the expressive
power of abstract data types and Recursive Petri
nets (Haddad and Poitrenaud, 2007). Each place in
such a net is associated to a sort (i.e. a data type of
the underlying algebraic specification associated to
this net). The marking of a place is a multiset of
algebraic terms (without variables) of the same sort
of this place. Moreover, transitions in RECATNet
are partitioned into two types (Fig.1): elementary
and abstract transitions. Each abstract transition is
associated to a starting marking represented graph-
ically in a frame. A capacity associated to a place p
specifies the number of algebraic terms which can be
contained in this place for each element of the sort
associated to p.
(a) Elementary transition (b) Abstract transition
Figure 1: Transition types in RECATNets.
As shown in Fig.1, the places p and p
0
are respec-
tively associated to the sorts s and s
0
and to the ca-
pacity c and c
0
. An arc from an input place p to a
transitiont (elementary or abstract) is labelled by two
algebraic expressions IC(p,t) (Input Condition) and
DT (p, t) (Destroyed Tokens). The expression IC(p, t)
specifies the partial condition on the marking of the
place p for the enabling of t (see Table.1).
The expression DT (p, t) specifies the multiset of
terms to be removed from the marking of place p
when t is fired. Also, each transition t may be labelled
by a Boolean expression TC(t) which specifies an
additional enabling condition on the values taken
by contextual variables of t (i.e. local variables of
the expressions IC and DT labelling all the input
arcs of t). When the condition TC(t) is omitted, the
Table 1: Different forms of Input Condition IC(p, t).
IC(p, t) Enabling Condition
a
0
The marking of the place p must be equal
to a. (e.g. IC(p, t) = φ
0
means the
marking of p must empty)
a
+
The marking of the place p must include
a (e.g. IC(p, t) = φ
+
means condition is
always satisfied)
a
−
The marking of the place p must not
include a, with a 6= φ
α1 ∧ α2 Conditions α1 and α2 are both true
α1 ∨ α2 α1 or α2 is true
default value is the term True. For an elementary
transition t, an output arc (t, p
0
) connecting this
transition t to a place p
0
is labelled by the expression
CT (t, p
0
) (Created Tokens). However, for an abstract
transition t, an output arc (t, p
0
) is labelled by the
expression ICT (t, p
0
, i) (Indexed Created Tokens).
These two algebraic expressions specify the multiset
of terms to produce in the output place p
0
when the
transition t is fired. In the graphical representation
of RECATNets, we note the capacity of a place
regarding an element of its sort only if this number
is finite. If IC(p, t) =
de f
DT (p, t) on input arc (p, t)
(e.g. IC(p,t) = a
+
and DT (p, t) = a), the expression
DT (p, t) is omitted on this arc. In what follows, we
note Spec = (S, E) an algebraic specification of an
abstract data type associated to a RECATNet, where
Σ=(S, OP) is its multi-sort signature (S is a finite set
of sort symbols and OP is a finite set operations, such
OP
T
S = φ). E is the set of equations associated
to Spec. X = (X
s
)
s∈S
is a set of disjoint variables
associated to Spec where OP
T
X = φ and X
s
is
the set of variables of sort s. We denote by T
Σ,s
(X)
the set of S-sorted S-terms with variables in the set
X.[T
Σ
(X)]
⊕
denotes the set of the multisets of the
Σ-terms T
Σ
(X) where the multiset union operator (⊕)
is associative, commutative and admits the empty
multiset φ as the identity element. For a transition t,
X(t) denotes the set of the variables of the context
of this transition and Assign(t) denotes the set of
all the possible affectations of this variables set,
i.e.Assign(t) = {sub : X(t) → T
Σ
(φ) | x
i
∈ X(t) of sort
s, sub(x
i
) ∈ T
Σ,s
(φ)}.
Definition 1. A recursive ECAT-
Net is a tuple: RECATNet =
(Spec, P, T, sort,Cap, IC, DT,CT, TC, I, ϒ, ICT )
where:
• Spec = (Σ, E) is a many sorted algebra where the
sorts domains are finite (with Σ = (S, OP) ), and
X = (X
s
)
s∈S
is a set of S-sorted variables
• P is a finite set of places.
MODELSWARD2014-InternationalConferenceonModel-DrivenEngineeringandSoftwareDevelopment
426