Rajib Hayat Khan Algo
Rajib Hayat Khan Algo
Rajib Hayat Khan Algo
Abstract: Performance assessment should be included in the software development process to ensure the
quality of the software in operation. Hence, this paper introduces a performance modeling framework for a
distributed software system that proposes a transformation process from a high level Unified Modeling
Language (UML) notation to a Stochastic Reward Net (SRN) model. The model is solved for relevant
performance metrics. In order to capture the system dynamics through our modeling framework, we
outline a specification style that focuses on the UML collaboration and activity as reusable specification
building blocks, while UML deployment diagram identifies the physical components of the system and the
assignment of software artifacts to the identified system components. Efficient deployment mapping of
software components on the available physical resources of the system is investigated by deriving the cost
function. The UML specification presented in this work facilitates to delineate the complete behavior of the
system components according to the functionalities they offer and has been utilized as input for model
transformation. The paper describes the mapping rules for defining the transformation process from the
UML model to the SRN model. In addition, the tool support of the framework is introduced that ensures
automatic translation from UML to SRN model and evaluation of the SRN model. The applicability of our
framework is demonstrated in the context of performance modeling of distributed systems.
1. Introduction
The design and implementation of distributed systems and services are always intricate endeavors and
complex tasks (The terms “system” and “service” are used interchangeably in this paper). Systems consist
of logical components that interact and are deployed in a physical, resource-constrained infrastructure.
Quantitative analysis determines whether a system achieves its non-functional properties based on the
functional behavior that is mapped onto a physical, resource-constrained infrastructure. Quantitative
analysis is realized by conducting a performance evaluation of the distributed system. It is evident that a
successful development process for a distributed system is not guided solely by the perfect modeling and
implementation of such a system. This process is also supported by the early assessment of performance-
related factors, which helps developers to reveal any bottleneck in the modeling, design, and
implementation of a distributed system that can jeopardize meeting end-user expectations. This, in turn,
reduces the cost of making any modification of the system architecture once the system is built. In the
worst case, this modification might require restarting the development process from the beginning.
However, the perfect modeling of the system functional behavior is a great concern at the early stage of the
development process for the acceptable evaluation of a system performance. Being able to assess the
performance of a distributed system at an early stage in the development process is considered to be a
matter of great importance. However, this is a considerable challenge that includes the following:
Precise and formally correct description of the system functional behavior, even at the early stage
Representation of the physical infrastructure that the system is expected to be executed on, including
the resource constraints
Non-functional attributes of the system, including acceptable thresholds (e.g., given as QoS parameters
in a Service Level Agreement (SLA))
Knowledge of the specific system complexity and domain, with the expected usage pattern,
deployment strategy, operational issues, environmental influences, and other related factors
Selection of an approach for performance evaluation to produce pertinent results in accordance with
the real system behavior
In order to develop a framework that addresses these challenges, we need the following:
Modeling functional behavior in a manner that can be combined with the deployment and enables
scalable, automated translation into a model that can assess the performance of a distributed system
Non-functional properties that reflect the performance attributes of the system
Physical resource constraints to capture the effect of different deployment strategies
Performance evaluation approach to uncover meaningful evaluation results when the real system does
not exist
Considering the above-mentioned factors, the general structure of the performance modeling framework
for a distributed system is illustrated in Fig. 1 [1]. The rounded rectangle in the figure represents
operational steps, whereas the square boxes represent input/output data. The inputs for the automated
model transformation process are as follows:
A system or service functional behavior
Information of a system execution environment
Non-functional parameters
The model representations of the functional behavior, physical platform, and non-functional properties
are combined to form annotated models. Then, a given deployment of the service components onto the
currently available physical resources (assumed static throughout the evaluation) is added, using
annotated models. Finally, this deployment specification is automatically translated into a performance
evaluation model and the performance of the system can be assessed. When using the framework given in
Fig. 1, several feedback loops will exist, depending on the objective of the case study [1]. Furthermore, the
modeling process is supported by a set of tools, including Arctis and Symbolic Hierarchical Automated
Reliability/Performance Evaluator (SHARPE) with the incremental model checking facility. Arctis is used
for specifying the system functional behavior [2]. The evaluation of the performance models generated by
the framework is achieved using SHARPE [3].
Numerous efforts have been considered so far to develop a performance model from the system design
specification. Lopez-Grao et al. proposed a conversion method where annotated UML activity diagram is
formalized using generalized stochastic petrinet model [4]. In Ref. [5], the authors presented an overview of
their aspect-oriented Formal Design Analysis Framework (FDAF) and how it can be used to design and
analyze performance properties. In Ref. [6], the author experienced annotating UML class diagrams with
fragments of the Object-Z specification language. Another approach is proposed by IBM where the Object
Constraint Language (OCL) [7] is used as a standard formal specification language to formalize UML
diagrams. In Ref. [8], the author proposed Software/Hardware Engineering (SHE) method that enables
constructing formal executable models based on the expressive modeling Parallel Object-Oriented
Specification Language (POOSL). The related works presented here still lack of a complete formal semantics
and capabilities to prove the properties and refinements as well as fails to provide the formal
representation of concurrent activities. Some other efforts have been taken to outline formal definition of
UML models and mostly the works are based on the UML statechart diagram and sequence diagram [9] -
[12]. UML activity diagram is not thoroughly investigated to generate a performance model for software
performance analysis except some of the works in [5], [13], [14]. Moreover, several tools exist in this regard
to generate a performance model from UML [15] - [19]. ArgoUML is a well established UML modeling tool
with no support of generating performance model [15]. UML-Performance Simulator (UML-PSI) is a
software performance evaluation tool based on the process-oriented simulation [16]. PERMABASE uses
UML class, sequence, and deployment diagram to generate performance model [17]. Protocol Software
Performance Engineering using XMI (proSPEX) is a performance modeling tool for the design and
performance analysis of communication protocols specified with UML [18]. Performance by Unified Model
Analysis (PUMA) provides a unified interface between different kinds of design information and different
kinds of performance models, for example - markov models, Stochastic Petri Nets (SPN), process algebras,
queues, and layered queues [19]. Among all the cited tools, only PUMA has the support of generating SPN
model. Our model semantics and supported diagrams are different than the above mentioned framework
and also our approach supports the model checking facility.
The objective of this paper is to provide an extensive modeling framework that offers an automatic
transformation process from system specification models to performance evaluation models for generating
the performance result of the systems at the early stage of the development process. The transformation
must be scalable and efficient in such a way that it can hide the intricate system details. The main focus of
this paper is on the framework shown in Fig. 1, mostly without the feedback loops [1]. The paper is
organized as follows: Section 2 delineates the overview of the framework, Section 3 describes the
formalization of UML model, Section 4 defines the tool support of our framework, Section 5 explains the
case study, and Section 6 delineates the conclusion with future directions.
different viewpoints and from different detail levels. UML collaboration is utilized as the main specification
unit to define the service functional behavior. The service components are defined as collaboration roles
and the interactions among the collaboration roles are specified by the collaboration diagram. The UML
collaboration diagram that is mentioned in our work is purely structural. That means the collaboration
diagram defines the structure of the service specification as combination of service components and the
necessary interactions among them. In particular, we model collaboration in the form of encapsulated
building blocks in a self-contained way that can easily be composed with each other [21]. In particular,
capturing the properties of the system into collaborative building blocks will allow system developers to
reuse those building blocks. This, in turn, makes the developer’s tasks easier and faster by removing the
need for the system developer to be an expert in all domains of distributed systems. The reusability of
encapsulated collaborative building blocks provides tremendous benefits to delineate system functional
behavior such as the following:
When the collaborative building block will be formed in a self-contained way, the system developers
can just reuse them to build the system without dealing inner complexities
Collaborative building blocks might be combined into more comprehensive services. This means that
new services can be developed combining existing building blocks rather than starting the
development process from scratch. This, in turn, increases the productivity in accordance with cost
reduction.
Modeling system functional behavior by composing the basic specification unit thus reflects the
subsystem properties in the resulting system behavior. Thus, the system overall functional behavior
will be consistent with the behavior of its components.
As the service specification later on will be transformed into a performance model, provided only the
structural specification of the service is not sufficient. This transformation requires a way to define the
behavioral aspects of the collaboration to know the exact functional behavior of the service components. In
order to remove this shortcoming, we use UML activity diagram. The internal behavior of a building block is
described by UML activity. It is declared as the classifier behavior of the collaboration and has one activity
partition for each collaboration role in the structural description.
For delineating the detailed behavior of the system and to know about how the different events of the
collaborative building blocks are coupled, UML collaborations and activities are used to complement each
other. UML collaborations focus on the role binding and structural aspects, whereas the UML activities
complement this by also covering the behavioral aspect [22]. For this purpose, call behavior actions are
used. Collaboration is represented by call behavior action referring to the respective activity of building
blocks. Each call behavior action represents an instance of a building block. For each activity parameter
node of the referred activity, a call behavior action declares a corresponding pin. Pins have the same
symbol as the activity parameter nodes to represent them on the frame of a call behavior action. Arbitrary
logic between pins may be used to synchronize the building block events and transfer data between them.
By connecting the individual input and output pins of the call behavior actions, the events occurring in
collaborations can be coupled with each other.
physically distributed. This, in turn, aids in exposing the direct mapping between the software components
to the system physical components to exhibit the probable deployment of the service.
physical resources in the execution environment. However, one shortcoming of UML is not having the
capability to incorporate non-functional parameters, which is vital for conducting the quantitative analysis
of the system. This requires a mechanism for providing a specification to make quantitative prediction
regarding non-functional properties of the system, taking into account both software and hardware
characteristics. Thus, we use MARTE specification style to generate annotated UML model, which provides
several stereotypes and tagged values (see Section 2.3) for incorporating performance-related parameters
into the service specification model defined by the UML [23]. Examples of annotated model have been given
in the case study section (see Section 5).
Some of the service components can be restricted in the deployment mapping to specific physical
nodes, which are called bound components
Furthermore, we observe the processing cost that physical nodes impose, while hosting the service
components and also the target balancing of the cost among the physical nodes available in the network.
Communication costs are considered if the collaboration between two service components occurs remotely,
i.e., it occurs between two physical nodes [26], [24]. In other words, if two service components are placed
onto the same physical node, the communication cost between them will be ignored. This holds for the case
study that is conducted in this paper. This is not generally true, and it is not a limiting factor of our
framework. The cost for execution of the background process for conducting the communication between
the collaboration roles is always considerable no matter whether the collaboration roles are deployed on
the same or different physical nodes. Using the above specified input, the deployment logic provides an
efficient deployment architecture taking into account the QoS requirements for the specified services. We
then define the objective of the deployment logic as obtaining an efficient (low-cost, if possible optimum)
mapping of the service components onto the physical nodes that satisfies the requirements in a reasonable
time. The deployment logic is mentioned by the cost function F(M) [24]. The cost function should reflect the
execution, communication, and overhead cost. Ideally, the service turnaround time should be minimized,
which, in turn, maximizes the utilization of system resources while minimizing the communication between
processing nodes. As a result, a high system throughput can be accomplished taking into account the
expected execution and inter-node communication requirements of the service components on the given
hardware architecture [27]. The cost function F(M) is mainly influenced by our method of service definition.
Service is defined in our approach as a collaboration of E service components labeled as ci (where i = 1,….,E)
and K collaborations labeled as kj, (where j = 1,…,K). In addition, the following labeling methods are used
[24]:
f
The execution cost between the service components is labeled, ci
fk
The communication cost between the service components is labeled, j
The cost for execution of the background process for conducting the communication between the
fB
service components (overhead cost) is labeled, j
We will assess the quality of the solution of equally distributed cost among the processing nodes and the
lowest cost possible, while taking into account the following:
f
execution cost ci
, i = 1,….,E
fk
communication cost j
, j = 1,….,K
fB
overhead cost j
, j = 1,….,K
f , f k ,and f are derived from the service specification, and thus, the total offered execution cost for the
ci j jB
|E|
given service can be calculated as i 1
f
ci
[24]. Hence, the average load Ta becomes [25]:
1
| E|
Ta i 1
f
ci
(1)
|X|
where X = the available total nodes in a network N where the service is deployed.
To account for the communication cost f k of the collaboration kj in the service, the function q0 (M, c) is
j
q0 M, c {n N | c n M} (2)
This means that q0 (M, c) returns the physical node n from a set of physical nodes N available in the
network that hosts components in the list mapping M [24]. Let collaboration k1 c1 , c2 and set of physical
Given a mapping M = {mn} (where mn is the set of service components at physical node n) the total load
can be obtained as lˆn ci mn fc [24]. Furthermore, the overall cost function F(M) becomes [24], [25]
i
The absolute value | lˆn Ta | is used to penalize the deviation from the desired average load per physical
node.
Conducting the model transformation in a correct, automated, and scalable way requires developing
reusable model transformation rules that can handle the model transformation process of large and
multifaceted systems. The reusability of model transformation rules makes the model transformation
process easier and faster for the system developers who will just apply the rules for model transformation
without understanding the inner complexity.
In particular, we will generate SRN models as analytical models from service functional specification. The
reason behind focusing on the SRN model is due to having some prominent and interesting properties such
as - priorities assignment in transitions, presence of guard functions for enabling transitions that can use
entire state of the net rather than a particular state, marking dependent arc multiplicity that can change the
structure of the net, marking dependent firing rates, and reward rates defined at the net level [28]. The SRN
model is described formally by the 6-tuple {Φ, T, A, TT, Ml, m0} in the following manner [24]:
Φ = Finite set of the place
T = Finite set of the transition
A {Φ × T} {T × Φ} is a set of the arc connecting Φ and T
TT: T → {Timed (time>0), Immediate (time = 0)} specifies the type of the each transition.
Ml: A→ {1, 2, 3,…} is the multiplicity associated with the arcs in A.
m: Φ → {0, 1, 2,..} is the marking that denotes the number of tokens for each place in Φ. The initial
marking is denoted as m0.
In order to keep the service specification model and analytical model consistent with each other, the
process of model transformation is driven by the model transformation rules, which provide an efficient,
scalable, and automated approach to conduct model transformation for large, complex, and multifaceted
distributed systems. By considering the semantic definition of the SRN models, we provide the model
transformation rules to generate performance models. Rules for generating performance SRN models can
be divided into two categories:
Rule 1: Deployment mapping of a collaboration role
Rule 2: Deployment mapping of collaboration
Rule 1: Deployment mapping of a collaboration role: Rule 1 addresses the generation of an SRN
model of a collaboration role with deployment mapping, which is shown in Fig. 2 (where Pi = Processing of
ith collaboration role and di = Processing performed of the ith collaboration role) [1]. Mainly, rule 1 has been
utilized to model the load of a physical node. For each physical node, there must be an upper bound on the
execution of the process in parallel with that node. The execution of the process is only possible when the
node has the capacity to do so. When the collaboration role of a building block deploys onto a physical node,
the equivalent SRN model is illustrated in Fig. 2 [1]. Initially, place PPn contains q (where integer q > 0)
tokens, which define the upper bound on the execution of the process in parallel with a physical node n, and
the timed transition do will fire (which symbolizes the execution of the process i) only when there is a
token available in both the place Pi and PPn. The place PPn will again receive its token back after firing of the
timed transition do, indicating that the node is ready to execute other processes deployed on that node.
When the collaboration role of a building block deploys onto a physical node, the equivalent SRN model is
represented by the 6-tuple in the following manner:
Φ = {Pi, di, PPn}
T= {do, exit}
A = {{(Pi × do) (do × di)}, {(PPn × do) (do × PPn)}, {(di × exit) (exit × Pi)}}
TT = (do → Timed, exit → Immediate)
Ml= {(Pi × do) →1, (do × di) →1, (PPn × do) →1, (do × PPn) →1(di × exit) →1, (exit × Pi)→1}
mo = {(Pi→1}, (di →0), (PPn →q)}
Rule 2: Deployment mapping of collaboration: Rule 2 addresses the generation of an SRN model of
collaboration, which is illustrated in Fig. 3 [1]. The collaboration connects only two collaboration roles in
bidirectional manner, where roles are deployed on the same or different physical nodes. When
collaboration roles i and j are deployed on the same physical node n, the timed transition tij in the SRN
model is only realized by the overhead cost, as in this case, communication cost = 0. When collaboration
roles i and j are deployed on the different physical nodes n and m, the timed transition tij in the SRN model
is realized by both the overhead cost and communication cost.
The SRN model of a collaboration, where collaboration connects only two collaboration roles in a
bidirectional manner and the roles are deployed on the same physical node can be represented by the 6-
tuple in the following way:
Φ = {Pi, di, Pj, dj PPn}
T= {doi, doj,tij}
A= {(Pi × doi) (doi × di), (PPn × doi) (doi × PPn), (di × tij) (tij × Pi), (Pj × doj) (doj × dj), (PPn × doj)
(doj × PPn), (dj × tij) (tij × Pj)}
TT = {(doi, doj, tij) → Timed}
Ml= {((Pi × doi), (doi × di), (PPn × doi), (doi × PPn), (di × tij), (tij × Pi), (Pj × doj), (doj × dj), (PPn × doj), (doj ×
PPn), (dj × tij), (tij × Pj)) →1}
mo = {(Pi→1),(di →0), (Pj→1) (dj →0), (PPn →q)}
Similar to the above, the UML model of collaboration can be represented by the 6-tuple, where
collaboration connects only two collaboration roles in bidirectional way and the roles are deployed on the
different physical nodes.
op1 op2
operation2 operation1
Decision node
op1 op2
operation1 operation2
t1 t2
operation op
Merge node
op1 op2
operation1 operation2
T
Timer node
op1 op2
operation1 operation2
t
op
operation
Join node
op
operation
t
op1 op2
operation2 operation1
Fork node
Furthermore, we present the transformation rules in Table 1 to generate SRN models for some of the
components of the activity diagram that might have been presented in collaborative building blocks [1].
Regarding the decision node, the activation of outgoing flow is achieved based on a condition that means
the decision is not random. Therefore, we attach a guard function with immediate or timed transition in the
equivalent SRN model of the decision node during the model transformation. The guard function is
associated with a condition based on which the activation of the transition will be permitted. For example,
immediate transition tyes in Table 1 is attached with a guard function [gr] in the SRN model, which will
capture the same condition to be activated as the outgoing flow indicated as “yes” in the activity diagram. If
the condition of the guard function [gr] is fulfilled, the attached transition will be activated. In the same
manner, it is also possible to attach a guard function with the immediate transition tno instead of transition
tyes and to conduct the same process for the activation of outgoing flow.
Section seven specifies the built in functions of SHARPE or user-defined functions that can be used to derive
result.
Although the Arctis and SHARPE tools have been utilized to describe service definitions using UML
collaboration and activity as well as model evaluations, the following steps of our modeling framework
have been developed:
System physical platform using UML deployment diagram
Deployment mapping
Generation of annotated UML model
Automated Model transformation
Model validation for XML
The steps of the performance modeling framework, such as UML deployment diagram and deployment
mapping (see Section 2.2 and 2.5), and performance parameters incorporation into UML models (see
Section 2.4) are generated as XML documents. We have defined XML schema files for corresponding XML
documents. The XML schema file describes the structure of an XML document that is used to validate the
corresponding XML document to ensure that the XML data are in correct format and the XML document is
syntactically correct. Hence, erroneous data or typos in the XML document will be fixed during the XML
validation and inform users to correct the corresponding data. To ensure this claim, we have defined
several constraints and checks in the schema files.
5. Case Study
As a representative example, we consider two case scenarios to show the applicability of our
performance modeliWe agree to cancel your articleng framework.
Collaboration Ki is associated with two instances of deadline (see Fig. 5(a)) as collaborations in the example
scenario are associated with two kinds of cost: communication cost and overhead cost [1].
Fig. 4(a). Collaborations and components [26] (b). Deployment diagram of example scenario [1].
Fig. 5(a). Detail behavior of collaborative building block (b). Internal behavior of collaboration [1].
By considering the annotated UML model and the model transformation rules, the corresponding SRN
model of our example scenario is illustrated in Fig. 6 [24]. Fig. 6 sketches the resulting SRN model by
illustrating details of entire places and transitions, which is produced by applying the model transformation
rules (see Section 2.6) [24]. According to the transformation rules 1, each collaboration role is defined by
the two states Pi and di and the passing of token from state Pi to di is realized by the timed transition.
Initially, there will be a token from place P1 to P10. According to rule 1, in order to define the upper bound
on the execution of the processes in parallel by a network node, we introduce three places PP1, PP2, and PP3
in the SRN model for the corresponding three physical nodes and initially, these three places will contain q
(Here, q = 1) tokens, where q will define the maximum number of the process that will be handled by a
physical node at particular time instant. To ensure the upper bound on the execution of the processes in
parallel of a network node n1, we introduce arcs from place PP1 to transitions t4, t7, and t8. That means
components C4, C7, and C8 can start their processing if there is token available in place PP1 as the firings of
transitions t4, t7, and t8 not only depend on the availability of the token in the places P4, P7, and P8 but also
depend on the availability of the token in the place PP1. Likewise, to ensure the upper bound on the
execution of the processes in parallel of network nodes n2 and n3, we introduce arcs from place PP2 to
transitions t2, t3, and t5 and from place PP3 to transitions t1, t6, t9, and t10. For generating the SRN model
from annotated UML model, firstly, we will consider the collaboration roles deploy on the processor node
n1, which are C4, C7, and C8 (see Table 2). Here, component C7 is connected with C4 and C8. The
communication cost between the components is 0 but still there is a cost for execution of the background
processes. So according to rule 2, after the completion of the state transitions from P7 to d7 (states of
component C7), from P4 to d4 (states of component C4) and from P8 to d8 (states of component C8) the states
d7, d4, and d7, d8 are connected by the timed transitions k8 and k9 to generate the SRN model. In the same
way, the SRN models for collaboration roles deployed on the processor nodes n2 and n3 have been
generated. In order to generate the system level SRN model, we need to combine the entire three SRN
models generated for three processor nodes by considering the interconnection among them. To compose
the SRN models of processor nodes n1 and n2, states d4 and d3 are connected by the timed transition k1 and
states d4 and d5 are connected by the timed transition k2 according to rule 2. Likewise, composition of the
SRN models of processor nodes n2 and n3, and processor nodes n1 and n3 has been achieved [24].
The throughput calculation according to “(7)” (see Appendix A) for the different deployment mappings
including the optimal deployment mapping is shown in Table 3 [24]. The optimal deployment mapping
presented in Table 3 also ensures the optimality in case of throughput calculation. Though we present here
the throughput calculation of some of the deployment mappings of the software artifacts the approach
presented in this work confirms the optimality in every case [24].
Table 3. Deployment Mapping in the Example Scenario Along with Throughput [24]
For composition of the building blocks to delineate the detailed behavior of the taxi control system,
activity parameter nodes are used that can be connected to other elements. For each activity parameter
node of the referred activity, a corresponding pin is declared. There are different types of pins (activity
parameter nodes) illustrated on the building blocks such as starting pin, streaming pin, and terminating pin.
The pins shown in Fig. 8 (resT, reqC, resC1, reqT, etc.) are all streaming pins, which pass tokens throughout
the active phase of the building blocks and are used to connect the building blocks to delineate the detailed
behavior of the taxi control system [1]. The detailed behavior of the taxi control system is shown in Fig. 9
[1], which is mainly composed of the collaborations demonstrated in Fig. 8. When a new taxi arrives or a
busy taxi becomes free after completing the tour, the taxi performs a log-in operation into the system and
set that taxi status to free. Then, the control centre will be notified of the status update. The control centre
is responsible for adding the taxi in the free taxi queue. When there is a taxi available in the free taxi queue,
the control centre sends the tour order information to the free taxi if there is any pending tour order. After
receiving the tour order information, the taxi notifies the control centre of its acceptance of the request. The
control centre adds the taxi into the busy taxi pool and notifies the taxi about the changing of its status. The
taxi then performs the system log-off operation and checks the tour order to determine whether the client
is still waiting for a taxi or not. Based on the results given by the control centre, the taxi conducts the tour
and then again performs log-in operation into the system and changes its status. The control centre
receives notification about any client request. The control centre is responsible for adding the request in
the queue. After receiving a request from the client, there might be two possibilities in the control centre
(which is realized by the decision node dec): either the control centre looks for an available taxi, or the
request might be cutoff because of the number of client requests exceed the capacity of the control centre to
handle the client requests. If the control centre locates an available taxi, it notifies the user about the
availability of taxi, but the number of client requests will be cutoff if it exceeds the capacity of the control
centre. When a taxi is ready to conduct the tour and a client is waiting for the taxi, the taxi will start the tour.
When the tour finishes, the taxi becomes free and is then ready to pick up another client.
Fig. 8. Internal behavior of the collaboration using UML activity of taxi control system [1].
<<saStep>>
Fig. 9. Detailed illustration of the service behavior using UML activity [1].
str: status
Taxi update & tour Control trn: tour order Mobile
centre & notify
request device
Taxi Control Client
[1…*] centre [1…*]
Fig. 10. Deployment diagram and deployment mapping of a taxi control system [1].
UML deployment diagram for the taxi control system is illustrated in Fig. 10 [1], where the system
components taxi and the user mobile device are connected with the control centre via a wireless
communication channel.
Annotation of the UML model for the taxi control system is illustrated in Fig. 9 and Fig. 10 [1]. In Fig. 9,
the annotated activity diagram is defined as follows: after being deployed in the execution environment,
communication between taxi and control centre is achieved in 50 sec, whereas the overhead time to
conduct this communication is 5 sec, which is annotated using the stereotype SaStep and two instances of
the tagged value deadline (according to the UML profile for MARTE) – deadline1 defines the communication
time, and deadline2 is used for overhead time. The communication between the client and the control centre
and the communication between the taxi and the client can be annotated in the same manner as above.
Annotation of UML deployment diagram of the taxi control system according to the MARTE profile is
demonstrated in Fig. 10. The control centre is connected with the client and taxi using a wireless
communication channel, where the tagged value schedPolicy specifies that the control centre follows a FIFO
scheduling policy to serve the queued jobs. Moreover, the tagged value resmult indicates that the maximum
number of instances of the resource control centre is 1, and the tagged value capacity indicates that the
maximum number of permissible concurrent users handled by the control centre is 20.
Fig. 10 also demonstrates the deployment mapping of a taxi control system, where it is a straightforward
and one-to-one mapping between the service components and the physical components [1].
We will illustrate how the model transformation rules have been utilized to generate the performance
SRN model for the example taxi control system. Generation of an analytical model (SRN) for the
performance evaluation of the taxi control system by applying the model transformation rules is
demonstrated in Fig. 11 [1]. Considering the deployment mapping of the taxi control system (see Fig. 10),
UML models with annotations (see Fig. 9 and Fig 10), and the model transformation rules (see Section 2.6)
the SRN model of the taxi control system has been generated. The collaborative building block status update
& tour request is transformed into a SRN model according model transformation rule 2 (see Fig. 3). The
generated places and transition from collaborative building block status update & tour request are Pli, Pafq,
Prat, and ttr. The timed transition ttr is realized by both the communication time and overhead time, as the
collaboration roles taxi and control centre are deployed on different physical nodes. Likewise, the
collaborative building block tour order & notify is transformed into a SRN model according to model
transformation rule 2 (see Fig. 3). The generated places and transition from collaborative building block
tour order & notify are Pgr, Pafq, Pgt, and tto. The timed transition tto is realized by the communication time
and overhead time, as the collaboration roles client and control centre are deployed on different physical
nodes. Client activity partition of the tour order & notify collaborative building block also contains a
decision node, which is transformed into a SRN model according to the decision node transformation rule
(see Table 1). Two flows are created from place Pgt: one towards the immediate transition it1 and another
towards the timed transition tst. The immediate transition it1 is realized by a guard function [gr], which is
only enabled when the client requests exceed the capacity of the control centre. The definition of guard
function [gr] is given as: [If (#(Pgt) > n) 1 else 0], where (#(Pgt)) defines the number of client requests that
have arrived in the system and ‘n’ defines the capacity of the control centre. In addition, the collaborative
building block start tour is transformed into a SRN model according to model transformation rule 2 (see Fig.
3), where the timed transition tst is realized by the communication time and overhead time.
Pafq Pgr
str: status update Pli trn: tour order
& tour request & notify
tto
ttr
Pgt t1
[gr]
Prat
tst
The obtained SRN model for the taxi control system has been solved to calculate the mean response time
for serving client requests (using little’s law [32]) for various numbers of client and taxi combinations. The
result is shown in the graph presented in Fig. 12 (Here, the rate of each timed transition in the SRN model is
considered 0.033) [1]. The top curve shows the mean response time for serving a client request when there
is 1 taxi available in the system, and it also focuses on how the mean response time for individual client
requests increases gradually with an increasing number of clients in the system. This curve shows the mean
response time of around 520 sec for serving a client request for over 20-25 customers and 1 taxi available
in the system. The response time for serving a client request depends not only on the available taxis but
also on the number of client requests arrived in the system. For fixed number of taxis available in the
system, if the number of client requests increases in the system the response time for serving a client
request will be higher. Again for fixed number of client requests, the response time will be lower with the
increasing number of taxis in the system. The middle and bottom curves show the mean response time for
serving a client request when there are 5 and 20 taxis available in the system, respectively. It is clearly
shown that the response time increases with the higher number of customers in the system. But all 3
graphs show the cutoff point when the number of clients equals 20, as in our example, we assume that the
control centre capacity for handling concurrent client’s request at particular time instant is 20. It is not
logical that the control centre would be able to handle unlimited number of clients at particular time instant.
However, it is possible to solve the SRN model for a large number of client and taxi combinations.
Cut off point at number of
client equals 20
600
mean response time (sec)
500
400
1 Taxi
5 Taxis
300 20 Taxis
200
100
0
1 25 50 75 100 125 150 175 200
No of Custom er
Fig. 12. Numerical results of the analytical model (SRN) of the taxi control system.
6. Conclusion
The examples we considered as case studies and presented in this paper were chosen to cover real
scenario and also included the well-known problem of assigning clusters to nodes as an artificial case study.
The examples were compact enough in some respects to be completely presented within the space
constraints of the article. We claim, however, that the modeling approach scales well and can also handle
specimens of real system specifications. Moreover, we might expect more complex forms of collaborations
than those demonstrated in the paper, which can be solved with additional levels of simplification. In
addition, our provided deployment logic can handle any properties of the service as long as a cost function
for the specific property can be produced. The defined cost function can react in accordance with the
changing size of the search space of an available hosts presented in the execution environment to assure an
efficient deployment mapping. For the model transformation, we have described generalized rules to
handle complexity and scalability. Model transformation rules have been defined based on the
encapsulated self-contained reusable UML building blocks that can describe complex behavior and
interaction of the system participants. The novelty of the model transformation process is that the
encapsulated building blocks have been utilized as the input in the model transformation process to
generate SRN models instead of considering single component of the UML diagram as input, which solves
the state explosion problem [1].
While performing the model transformation, the UML diagrams such as collaboration, activity, and
deployment are formalized using cTLA that captures the behavior of the collaborative system specification.
We apply cTLA as a foremost background technique to understand the formalism of collaborative
specifications expressed in other languages, such as UML. The provision of a formal semantics does not end
in itself but, is a vital part for the automated model transformation. It is also basis for meaningful semantic
checks as, for instance, to be done with the model checking approach introduced in [30].
The extensibility of our modeling approach can be defined in several directions, such as developing
missing plug-ins for Arctis to define UML deployment diagram and to generate annotated UML model,
permitting the deployment logic to dynamically provide new configurations of the deployment mapping
when changes in the execution environment or workload configuration are encountered, considering more
comprehensive scenarios for large networks including more physical nodes and clusters, developing an
automated feedback method to find UML anti-patterns and then change the functional design accordingly,
comparing numerous execution environments, and to find the optimal deployment mapping of service
components over a physical environment.
The value of E(N) is calculated by solving the SRN model using SHARPE [3]. Cost of the network, Cnet is
defined below. At first, the cost of a subnet ( Csn ) will be calculated as follows:
C
snx
| m|
i 1
f
ci
max f
Bj
I ( q0 (M, k j ,1 ) q0 (M, k j , 2 )) f
kj
| m|
i 1
f
ci
max fB j
(5)
where
C sn = cost of the xth subnet (where x = 1….n; n is the total number of subnet that comprises the
X
network)
f = execution cost of the ith process of the xth subnet
ci
subnet)
f k = communication cost of collaboration j (where j =1….n; n is the total number of collaboration in
j
C
snp y
max(C
sna
, Csn ) ( fB I (q (M, k q (M, k ) fk )
b j
0 j ,1 0 j ,2
j
max(Csn , Csn ) ( fB fk )
a b j j
(6)
where
Csnp = cost of the yth subnet pair (y = 1….n; n is the total number of subnet pairs in the network,
y
f B = overhead cost of collaboration j (where j =1….n; n is the total number of collaboration between
j
I (q0 (M, k j ,1 ) q0 (M, k j ,2 )) = 1 (according to Section 2.5); as in this case, processes connected by the
collaboration deploy on the different physical nodes.
References
[1] Khan, R. H. (2014). Performance and performability modeling framework considering management of
service components deployment. PhD thesis, Norwegian University of Science and Technology.
[2] Kraemer, F. A. (2013). ARCTIS, Retrieved May, 2013, from http://arctis.item.ntnu.no.
[3] Trivedi, K. S., & Sahner, R. (2012). Symbolic hierarchical automated reliability / performance evaluator
(sharpe), Duke University.
[4] Lopez, G., Merseguer, J., & Campos, J. (2004). From UML activity diagrams to SPN: application to
software performance engineering. Proceedings of the 4th International Conference on Software and
Performance.
[5] Cooper, K., Dai, L., & Deng, Y. (2003). Modeling performance as an aspect: A UML based approach.
Proceedings of the 4th Workshop on AOSD Modeling with UML.
[6] Moura, P., Borges, R., & Mota, A. (2003). Experimenting formal methods through UML. Proceedings of
the Brazilian Workshop on Formal Methods.
[7] Warmer, J., & Kleppe, A. (1999). The Object Constraint Language: Precise Modeling with UML. Addison-
Wesley.
[8] Theelen, B. (2004). Using the SHE method for UML-based performance modeling. System specification
and design languages.
[9] Yin, Y. et al. (2010). The integrated application based on real-time extended UML and improved formal
method in real-time embedded software testing. Journal of Networks, 5(12), 1410-1416.
[10] Merayo, M. G., Nu′n˜ez, J., & Rodrı′Guez, I. (2008). Formal Testing from timed finite state machines.
Computer Networks, 52, 432–460.
[11] Andolfi, F. et al. (2000). Deriving performance models of software architecture for message sequence
charts. Proceeding of the 2nd International Conference on Software and Performance (pp. 45-57).
[12] Cardoso, J. & Blanc, C. (2001). Ordering actions in sequence diagram of UML. Proceedings of the
International Conference on Information Technology Interfaces (pp. 19-22).
[13] Eshuis, R., & Wieringa, R. (2001). A comparison of petri net & activity diagram variants. Proceedings of
the Collaboration on Petri Net Technologies for Modeling Communication Based Systems.
[14] Petriu, D. & Shen, H. (2001). Applying the UML performance profile: Graph grammar based deviation of
LQN models from UML specifications. Tools, pp. 14-17.
[15] Tigris. (2012). ArgoUML. Retrieved 19 November, 2012, from http://argouml.tigris.org.
[16] Marzolla, M. and Balsamo, S. (2004). UML-PSI: The UML performance simulator. Proceedings of the
International Conference on Quantitative Evaluation of Systems (pp. 340-341).
[17] Akehurst, D. et al. (1999). Predictive performance analysis for distributed systems–PERMABASE.
Proceedings of the Workshop on Software Performance Predication Extracted from Design.
[18] Wet, N. D., & Kritzinger, P. (2005). Using UML models for the performance analysis of network system.
Journal of Computer Networks, 49(5), 627-642.
[19] Petriu, C. et al. (2005). Performance by Unified Model Analysis (PUMA). Proceedings of the 5th
International Conference on Software and Performance (pp. 1-12).
[20] OMG. (2009). UML: Superstructure. Version-2.2.
[21] Kraemer, F. A. (2008). Engineering reactive systems: A compositional and model-driven method based
on collaborative building blocks. PhD thesis, Norwegian University of Science and Technology.
[22] Kraemer, F. A. & Herrmann, P. (2006). Service specification by composition of collaborations-an
example. Proceedings of the Web Intelligence – Intelligent Agent Technology Workshops (pp. 129-133).
[23] OMG. (2009). UML profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems.
Version – 1.0.
[24] Khan, R. H., Heegaard, P. E., & Ullah, K. W. (2012). Performance evaluation of distributed system using
SPN.
[25] CORBA M. J. (2012). Cost-efficient deployment of distributed software services. PhD thesis, Norwegian
University of Science and Technology.
[26] Csorba, M. J., Heegaard, P. E. & Herrmann, P. (2008). Cost-efficient deployment of collaborating
components. Proceedings of the 8th IFIP International Conference on Distributed Applications and