described here may seamlessly employ this continuous-state
semantics. Even in the realm of Markovian analysis, PEPA is
the possibility of performing efficient and scalable stochastic
simulation, via its interpretation against a recently proposed
population-based semantics [5].
3. OVERVIEW OF PEPA
PEPA is a stochastic process algebra which allows the per-
formance evaluation of models described using the following
two-level grammar:
S := (α,r).S| S + S|A
C := S | C
¤¢
L
C | C/L
The first production defines sequential components, whereas
the second allows composition of components. Below is an
informal description of the operators of the grammar. For the
formal definition the reader is referred to [14].
Prefix (α,r).S denotes an activity of type α performed at rate
r by a sequential component. The sequential compo-
nent is said to enable the activity. The rate indicates an
exponential distribution with mean delay 1/r. When the
activity completes, the sequential component behaves as
S.
Choice P + Q indicates probabilistic choice among the activi-
ties enabled by the sequential components P and Q.
Constant A
def
= S is used to define cyclic behaviour. The
sequential component A behaves as S.
Cooperation P
¤¢
L
Q allows composition. P and Q carry out
their enabled activities concurrently if the type of the
activity is not in the cooperation set L. If the activ-
ity’s type is in L, they perform a shared action at a rate
which depends on the rates of the individual components
involved in the cooperation. A rate of a shared activity
may be left as unspecified at a particular sequential com-
ponent by using the symbol >. This signifies that the
shared rate is specified by other components.
Hiding C/L turns all the enabled activities of C whose type is
in the action set L into silent activities over which coop-
eration is not possible. Hiding will not be used in the
remainder of this paper.
PEPA descriptions are interpreted against an operational
semantics which results in a labelled transition system whose
states are PEPA components and transition labels are the
(type, rate) pairs of the activities enabled by that state. A Con-
tinuous Time Markov Chain (CTMC) can be derived from the
labelled transition system by associating each state of the sys-
tem with a state of the Markov process. The generator matrix
is extracted from the rates in the transition labels. The solu-
tion of this underlying CTMC ultimately allows for the perfor-
mance evaluation of the system.
As a practical example, consider the PEPA model of an appli-
cation invoking some web service modelled as two sequential
components, as shown in Fig. 2. After a certain amount of
thinking time (with mean duration p
1
λ) the application may
perform a local activity and loop back to its initial state. Alter-
natively (rate p
2
λ), it may make a request to the web ser-
vice (shared activity) and wait until a respond action can be
performed. Below the PEPA description is the corresponding
labelled transition system.
A p pl
def
= (think, p
1
λ).Appl
1
+ (think, p
2
λ).Appl
2
A p pl
1
def
= (local, m).Appl
A p pl
2
def
= (request, rq).A ppl
3
A p pl
3
def
= (respond, r p).Appl
WS
def
= (request,>).WS
1
WS
1
def
= (serve,µ).WS
2
WS
2
def
= (respond,>).WS
S ys
def
= A p pl
¤¢
L
WS
L = {request, res pond}
¡
¡
¡
¡ª
@
@
@
@R
¾-
?
?
(think, p
1
λ) (think, p
2
λ)
A p pl
¤¢
L
WS
A p pl
1
¤¢
L
WS A p pl
2
¤¢
L
WS
A p pl
3
¤¢
L
WS
1
A p pl
3
¤¢
L
WS
2
(respond, rp)(l ocal, m)
(request, rq)
(serve,µ)
Figure 2: The PEPA model of the web service and its underly-
ing derivation graph
4. ACTIVITY DIAGRAMS AND MARTE
In this section we describe our approach to performance
evaluation via UML2 activities, developed in the context of
MARTE. The specification of activities in the UML has
changed significantly with the transition from UML1.5 to
UML2. In this work we shall be concerned with the semantics
of the latest version. Unless otherwise stated, the term UML
refers to the UML2 specification in the remainder of this paper.
In this section we overview the meta-model of UML activities
with focus on the elements of interest for performance evalu-
ation using PEPA. The definitive reference for UML activities
is the UML2 formal specification [24].
An activity is a behavioural element of the UML which mod-
els the coordination of lower-level behaviours, both sequential
and concurrent, to carry out a computational step. An activ-
ity is represented as a graph of activity nodes connected by
two kinds of edges: control flows and object flows. Activity
nodes may be of three types: Action nodes, modelling a unit of
computation of the system; Object nodes, representing objects
existing at a given point during an activity; and Control nodes,
which are used for the coordination of flows. We are concerned
with control flows here. Figure 3 shows the UML elements
which will be considered for translation throughout this paper.
We use MARTE according to the activity-based approach
discussed in [23], Sect. 7.2.1.2.
1
In particular, the extension
units of interest here are those of the Base Performance Com-
1
Although this approach is described in the SPT specification,
similar arguments hold for MARTE. An easy-to-use correspon-
dence table between MARTE and SPT is provided in Annex H
of [25].