sumption thereby is that today’s server nodes hosting
services are not fully utilized in terms of CPU cores
and main memory. The concurrent execution of ser-
vices and processes on one server seems reasonable
and will reduce remaining network transfer. Addi-
tionally, these servers may run the same execution en-
vironments for both services and processes (e.g. ap-
plication server like JBoss (JBoss, 2010)). Thus the
communication between process and service can be
based on shared objects in main memory rather that
XML text messages. This will eliminate XML con-
version and significantly reduce resource utilization.
Therefore, the main goal of our advisor is to place
processes near to dependent services based on there
communication costs. This 1) reduces network trans-
fer times and latency for relocated processes, 2) elimi-
nates resource-intensive XML conversion and latency
significantly if process and service are executed in
the same software environment and 3) frees network
bandwidth on the ESB for other tasks.
2.1 Advisor Meta Model
Our advisor meta model describes the entities and
their interaction that are the base for our advisor algo-
rithm in Section 3: a set of processes P, a set of ser-
vices S, a set of service bundles B and a set of server
nodes N.
The set of processes P represents the business pro-
cesses we want to reassign to server nodes. Thereby a
single process plan p is defined as p = (A, S
p
), where
A is the set of activities with A = (a
1
, . . . , a
i
, . . . , a
k
)
that are connected as control flow in an acyclic, di-
rected graph and S
p
with S
p
= (s
1
, . . . , s
i
, . . . , s
l
) is the
set of services that P interacts with. Note that S
p
is
actually a subset of S. For A, we distinguish two
classes of activities in p
i
for cost purposes based on
(B
¨
ohm et al., 2009): interaction-oriented and non-
interaction-oriented activities. Interaction-oriented
activities comprise receive, invoke and reply,
whereas non-interaction-oriented activities comprise
e.g., assign, switch or fork. Processes interact
with services using their interaction-oriented activity
invoke. In Figure 2, process plan p1 interacts with
services {s1, s2, s3} and p2 with {s2, s4}.
A services s in S is defined as s
i
= (d
in
, d
out
, f ).
Thereby, d
in
describes the input data and d
out
is the
output data with d
out
= f (d
in
). Note, that d
in
an d
out
have direct effect on communication costs in pro-
cesses and are therefore used to calculate communi-
cation costs. Furthermore, services are considered as
black box only exposing data structures and coarse-
grained execution statistics.
Since most services and their locations have
bundles B
processes P
p2
p1
p3
services S
s1
s3
s5
s2
s4
nodes N
n1
n2
n3
...
...
b1
b2
Figure 2: Process Deployment Advisor Meta Model.
evolved historically, there may be dependencies be-
tween services. As an abstraction layer between ser-
vices and their actual execution node we introduce
service bundles, where services in one bundle are log-
ically grouped and may, if relocated, be relocated as
one atomic block. Thereby a service bundle b can
comprise all services on one node or just a subset of
it with b = (s1, . . . , sk). Furthermore, it is assigned to
a specific server node and can be marked as moveable
or not.
Finally, servers in N are the physical execution
environment for processes and services. They are
considered heterogenous in terms of CPU and main
menory but equal in their type of network intercon-
nect.
2.2 Statistics and Cost Model
To be able to evaluate every meta model entity in
terms of resource consumption and communication
costs, we have to gather statistics and define a cost
model. For the statistics, on every server node, the
node itself and its components (services S and pro-
cesses P) are monitored and all statistics are sent to
the advisor component and stored for further use. If
no statistics for a specific node-component pair have
been recorded, the statistics for central execution is
used.
Execution Statistics. For services, we monitor ba-
sic statistics for every service s
i
like workload M(s
i
)
and average execution time T
exec
(s
i
). For processes,
a more fine-grained monitoring is required. Beside
the actual workload M(p
i
) we monitor the average
execution time T
exec
(a
i
) for all k activities in pro-
cess plan p
i
. Furthermore, we subtract the waiting
time T
wait
(a
i
) from T
exec
(a
i
) for interaction-oriented
activities to get their plain processing time. Addi-
tionally, for interaction-oriented activities in p
i
, av-
erage input and output cardinalities |d
in
| and |d
out
| are
monitored. This includes the number and position of
XML elements to cover workload-dependent repeti-
tion groups in arrays. Although cardinalities might be
useful for all activities and for general process plan
ICEIS 2011 - 13th International Conference on Enterprise Information Systems
212