SlideShare a Scribd company logo
1 of 10
Download to read offline
Validation of Embedded Systems Behavioral Models on a Component-Based
Ericsson Nikola Tesla Demonstrator 1
Aneta Vulgarakis†, Cristina Seceleanu†, Paul Pettersson†, Ivan Skuliber‡, and Darko Huljeni´c‡
† M¨alardalen Real-Time Research Centre, V¨aster˚as, Sweden
‡ Ericsson Nikola Tesla, Zagreb, Croatia.
aneta.vulgarakis@mdh.se, cristina.seceleanu@mdh.se, paul.pettersson@mdh.se,
ivan.skuliber@ericsson.com, darko.huljenic@ericsson.com
Abstract—Embedded systems are challenging to design, due
to the implementation platform constraints that have to be con-
sidered, preferably from early stages of design, next-by system
functionality. Hence, embedded system models need to be tim-
ing and resource-aware, to make formal verification of extra-
functional properties applicable at high levels of abstraction.
In most cases, a frequent obstacle to the successful application
of such rigorous techniques is the lack of the proposed models’
validation against real-world application measurements. In this
paper, we show how to model extra-functional behavior, and
verify the resulted behavioral models of a component-based
Ericsson Nikola Tesla prototype telecommunications system.
The models are described in our recently introduced REMES
language, with Priced Timed Automata semantics that allows us
to apply UPPAAL -based tools for model-checking the system’s
response time and compute optimal resource usage traces. The
validation of our models is ensured by using actual values of
timing, CPU, and memory usage in our models, measured by
Ericsson researchers on the prototype’s source code.
I. INTRODUCTION
The usefulness, industrial applicability, and scalability of
embedded systems (ES) modeling languages and analysis
methods can be exercised by performing their validation
against measured, quantified behavioral properties. Valida-
tion loosely refers to the process of determining if a design
is correct with respect to implementation requirements [13].
The two most usual model validation procedures are simu-
lation, which traverses a subset of the system’s behaviors,
and formal verification, which is exhaustive but limited to
finite-state systems. Although usually restrictive, in the ES
case formal verification proves more applicable due to the
constrained way in which ES need to be designed. The latter
have to meet extra-functional, platform-driven constraints,
such as timing, energy, CPU, or/and memory constraints.
Motivated by the above, in this paper we describe the
modeling and formal analysis of a prototype industrial
telecommunications system, a demonstrator developed by
Ericsson Nikola Tesla, in Croatia [29]. The new system
is a proof-of-concept solution, developed by applying the
1This work was partially supported by the Swedish Foundation for
Strategic Research via the strategic research centre PROGRESS and by the
European Union, FP7, in the context of the Q-ImPrESS research project.
component-based design paradigm, by adding a newly devel-
oped authentication, authorization, and accounting service to
a complex basic service telecom system consisting of several
existing and reused components, such as a DIAMETER
standard protocol, an open-source Pen load balancer, and
a number of servers. More precisely, the ENT demonstrator
uses the basic service to issue call requests, to which the
extension service delivers the authentication functionality on
a request basis. The resulting system is a telecom system
that must adhere to the characteristics of existing telecom
legacy systems. Thus, two requirements are imposed on
the demonstrator: capacity and optimal resource usage. The
demonstrator is described in section III.
Our analysis effort of the above properties is driven by
both an academic, as well as an industrial interest. The for-
mer targets exercising the industrial applicability and valida-
tion of our favorite embedded systems behavioral modeling
and analysis framework, which is tailored to the recently
introduced ProCom component model [24] for real-time ES,
briefly recalled in section IV-A. The framework consists of
the resource-aware timed behavioral language REMES [23],
reviewed in section IV-B, and its underlying formal model
given in terms of Priced Timed Automata networks [1], [6]
(see section IV-C). The industrial interest is in being able
to use a virtual experimental “lab”, in which various types
of extra-functional analysis of the demonstrator could be
carried out, which could provide valuable feedback on the
demonstrator’s performance, and resource-usage, assuming
various settings, prior to an actual implementation of the
respective setting.
In section V, the demonstrator is modeled in a compo-
nent based fashion using the ProCom component modeling
language, whereas the functional, timing, and resource-wise
behavior of the key components of the system are modeled
in REMES, as shown in section VI-A. The salient point
of our model, which enables its validation, is the fact
that we build it by using the timing and resource values
extracted from the actual prototype implementation of the
demonstrator. We also show how the combined model is
semantically translated into a network of (priced) timed
automata to enable model-checking in the tools UPPAAL and
REMES
behavioral
model
designs
System
designer
Hardware
abstraction
M2M
verifies
behavior
Uppaal /
Uppaal Cora
tools
ProCom
architectural
model
Veification
expert
151413121110987654321
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25CM if (argc < 3) {
printf("Usage: %s server_ip server_port [my_ip]n", argv[0]);
exit(0);
}
if ((sk = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
printf("Problem creating socketn");
exit(1);
}
if (argc > 3) { /* set local address */
hp = gethostbyname(argv[3]);
if (hp == NULL) {
fprintf(stderr, "Bogus local address %sn", argv[3]);
exit(1);
}
memcpy(&client.sin_addr.s_addr, hp->h_addr, hp->h_length);
client.sin_port = 0;
if (bind(sk, (struct sockaddr *)&client, sizeof client) < 0) {
fprintf(stderr, "bind failuren");
exit(1);
}
}
interface
mapping
designs
Resource
requirements
Functional
Requirements
influence
influence
influence
System
property
yes
no
Notification
Counter
example
I step II step III step IV step
modeling framework analysis framework
PTA model
of the system
Figure 1. The system validation process.
UPPAAL CORA (see section VI-C).
Regarding the system analysis, we consider, next to
function and timing, a weighted sum of the resources CPU
and memory, in which CPU is considered a more critical
resource than memory (twice the relative weight of mem-
ory). Under this assumption, we derive an optimal system
trace, the minimum time, and the minimal total accumulated
weighted resource cost for processing a given number of
system requests. The results are described in section VI-C.
Similar industrial-driven endeavors include research work
within the framework of timed automata [7], [12], [15],
GIOTTO [14], or BIP [22]. However, such works either do
not consider formal verification of extra-functional system
behavior, or do not base it on real timing and resource values
measured on actual implementations.
II. OVERVIEW OF THE VALIDATION PROCESS
The validation process that we use in our case study is
iterative, allowing feedbacks between steps. It consists of
four steps (see Figure 1) as follows.
• I step. Based on the system functional requirements the
designer builds the ProCom architectural model of the
system. Similarly, the verification experts uses both the
functional- and resource requirements (such as timing,
memory, etc.) to develop the REMES behavioral model
of the system.
• II step. During this step an interface mapping between
the ProCom architectural- and the REMES behavioral
model is performed. For more information, we refer
the reader to [28].
• III step. The ProCom architectural- and the REMES
behavioral model are together transformed to priced
timed automata (PTA) model for formal analysis. The
architectural model gives information about the order of
execution of the REMES modes modeling the behavior
of the components.
Figure 2. The deployment architecture of the demonstrator.
• IV step. We assume that we have hardware abstraction
that provides us with global available resources (e.g.,
memory budget, cpu load, bandwidth of the commu-
nication network, etc.). To perform model-checking, a
PTA model of the system is fed into UPPAAL , together
with a hardware abstraction and a desired property
(requirement) expressed in a temporal logic. UPPAAL
then automatically traverses the system’s state space
in an exhaustive manner. If an invariant property is
satisfied, the tool notifies that the verification finished
successfully, or if the invariant property is violated,
it reports one of the traces that violates the property
as a counter-example to the model. For reachability
properties the opposite is true i.e., a trace is reported
when the property is satisfied.
III. DESCRIPTION OF THE DEMONSTRATOR
Ericsson Nikola Tesla’s (ENT) demonstrator is a prototype
of a telecommunications system. It is designed according
to current telecommunications industry’s trends of adapting
horizontal development (systems built from reusable compo-
nents) methodologies instead of traditionally used vertical
ones (systems built from ground-up in-house, now called
legacy systems). The organization of the demonstrator is
shown in Figure 2 from the perspective of deployment
architecture.
In the demonstrator, a new telecommunications service
is created with horizontal development. This new service is
added to existing, so called basic service that was created
over the years with vertical development. More precisely,
the basic service performs typical call control functionality:
decoding of addressing information and routing calls from
one end-point to another. When a special kind of processing
is needed, it generates events that result with requests (mes-
sages) that are being redirected into the extension service.
The extension service processes messages generated by the
basic service by performing an AAA (authentication, autho-
rization and accounting) functionality that conforms to the
widely accepted Internet standard called DIAMETER [20].
The result of the processing are also messages that are sent
back to the basic service.
The extension service is realized as clients- and servers
cluster, which communicate via DIAMETER protocol. They
should assure high levels of performance through round-
robin load balancing, and availability through redundancy.
Implementation of high availability and reliability is fa-
cilitated with the use of OpenSAF. Previous experiments
performed by Ericsson researchers show negligible impact
of OpenSAF to the overall performance of the demonstra-
tor [29]. Thus, we omit OpenSAF from experiments shown
in this paper.
Pen is a third-party open-source load balancer that was
customized for the purpose of load balancing stateful AAA
protocol between the basic service and the extension service.
Pen maintains the information (e.g., IP addresses and ports)
about which call control node is communicating with which
DIAMETER client and uses round-robin method for choosing
which client will serve a given request. DIAMETER client
receives AAA requests through the AAA protocol between
the basic service and the extension service, transforms
them into DIAMETER-based AAA requests and sends these
DIAMETER-based AAA requests to the DIAMETER servers
cluster.
DIAMETER relay is a DIAMETER protocol functionality
that is used for balancing the load among DIAMETER
servers. Similar to Pen, it uses round-robin method for
choosing which server will serve a given request. Since each
DIAMETER message contains full address information about
communicating peers, it just transmits the response received
from DIAMETER server to corresponding DIAMETER client
that originated the initial request. DIAMETER server receives
DIAMETER-based AAA requests originated on DIAMETER
clients. It processes these requests and returns the results to
the relay. Since the original request contained the informa-
tion about which client created it, the relay knows to which
client the response must be sent to.
IV. BACKGROUND
A. The ProCom component model
ProCom [24] is component model that aims at addressing
key design characteristics and development concerns of dis-
tributed embedded systems. ProCom comprises two-layered
component model, and differentiates a component model
used for modeling distributed, complex, active and concur-
rent subsystems (called ProSys) and a component model
used for modeling non-distributed, passive and smaller units
of control functionality (called ProSave). The two layers
relate to each other in the sense that a ProSys component
can be modeled out of ProSave components. In this paper,
Figure 3. Example of the ProSys notation: Subsystem A has two input
ports (A1 and A2) and one output port (A3), and communicates with
subsystem B by sending messages over the message channel M.
we only use the more large scale ProSys. The complete
specification of ProCom is available in [9].
In ProSys, the communication between subsystems is
based on asynchronous message passing. A subsystem re-
ceives and sends messages through input- and output mes-
sage ports, respectively. Message ports are connected though
message channels. A message channel captures a piece of
shared data that is of interest to one or more subsystems
before any producer or receiver of this data has been defined.
Figure 3 exemplifies the graphical notation of ProSys.
B. The REMES language for behavioral modeling
The REsource Model for Embedded Systems REMES [23]
is intended as a meaningful basis for modeling and analysis
of resource-constrained behavior of embedded systems.
To enable formal analysis, REMES models can be trans-
formed into timed automata (TA) [3], or priced timed
automata (PTA) [1] (see subsection IV-C), depending on the
analysis type.
The internal behavior of a component is depicted by a
REMES mode that can be atomic (see Atomic mode 1, Atomic
mode 2 in Figure 4) or composite (made of atomic modes).
The discrete control of a mode is captured by a control
interface that consists of entry- and exit points, whereas the
data transfer between modes is carried out through a well-
defined data interface that consists of typed global variables.
A composite mode may also have a special init entry point
where the global variables are initialized.
A composite mode executes by performing a sequence
of discrete steps, via actions that, once executed, pass the
control from the current submode to a different submode.
An action, A = (g, S) (e.g., (y == b, d := u) in the figure), is a
statement S (in our case d := u), preceded by a Boolean con-
dition, the guard (y == b), which must hold in order for the
action to be executed and the corresponding outgoing edge
taken. A REMES composite mode may contain conditional
connectors (decorated with letter C) that allow a possibly
nondeterministic selection of one discrete outgoing action
to execute, out of many possible ones. Below, via C, one of
the empty statement actions, x ≤ a ∧ d == v or d ≥ v can be
chosen for execution.
In REMES one may model timed behavior and resource
consumption. Timed behavior is modeled by global con-
tinuous variables of specialized type clock, that is, x, y in
our figure, evolving at rate 1. A Boolean condition called
invariant (e.g., y ≤ b) may be used to specify for how long
an atomic mode can be executed. Once the invariant stops
C
Entry
Composite mode
Atomic mode 1
Atomic mode 2
r1’ = n, r2’ = m,
y ≤ b
x ≤ a and
d == v Exit
d ≥ v U
Init
r3+=q y == b
d : = u
Figure 4. A REMES composite mode.
to hold, the current mode is exited. In case a mode is exited
instantaneously after its activation, the mode is called urgent
(decorated with letter U). In case a mode does not contain
any invariant to specify how long it is allowed to delay in
that mode, the mode is non-lazy; time is allowed to pass
in a non-lazy mode until at least one of the guards of the
outgoing discrete actions is true.
The composite mode in Figure 4 has two continuous
resources (r1 and r2) and one discrete resource r3. Consump-
tion of the continuous resources is expressed by their first
derivatives (r1’ and r2’), see Atomic mode 1, which give the
rates at which the mode consumes the resources, respectively
(r1 is consumed at rate n, whereas r2 at rate m, where m
and n are integers). Discrete resources are allocated through
usual updates, e.g., r3 += q. For a more thorough description
of REMES, we refer the reader to our recent work [23].
The REMES language benefits from a set of tools2
for
modeling, simulation and transformation into PTA, which
could assist the designer during system development [18].
C. Priced Timed Automata
In the following, we recall the model of priced (or
weighted) timed automata [1], [6], an extension of timed
automata [3] with prices/costs on both locations and transi-
tions, which acts as the semantics basis of REMES.
Let X be a finite set of clocks and B(X) the set of
formulas obtained as conjunctions of atomic constraints of
the form x ◃▹ n, where x ∈ X, n ∈ N, and ◃▹ ∈ {<, ≤, =
, ≥, >}. The elements of B(X) are called clock constraints
over X.
Definition 1: A linearly Priced Timed Automaton (PTA)
over clocks X and actions Act is a tuple (L, l0, E, I, P),
where L is a finite set of locations, l0 is the initial location,
E ⊆ L×B(X)×Act×P(X)×L is the set of edges, I : L →
B(X) assigns invariants to locations, and P : (L ∪ E) → N
assigns prices (or costs) to both locations and edges. In the
case of (l, g, a, r, l′
) ∈ E, we write l
g,a,r
→ l′
.
The semantics of a PTA is defined in terms of a timed
transition system over states of the form (l, u), where l is a
location, u ∈ RRX
, and the initial state is (l0, u0), where u0
assigned all clocks in X to 0. Intuitively, there are two kinds
2The REMES tool-chain is available at: http://www.fer.hr/dices/remes-ide.
of transitions: delay transitions and discrete transitions. In
delay transitions,
(l, u)
d,p
→ (l, u ⊕ d)
the assignment u ⊕ d is the result obtained by incrementing
all clocks of the automata with the delay amount d, and
p = P(l) ∗ d is the cost of performing the delay. Discrete
transitions
(l, u)
a,p
→ (l′
, u′
)
correspond to taking an edge l
g,a,r
→ l′
for which the guard g
is satisfied by u. The clock valuation u′
of the target state is
obtained by modifying u according to updates r. The cost
p = P((l, g, a, r, l′
)) is the price associated with the edge.
A timed trace σ of a PTA is a sequence of alternating
delays and action transitions
σ = (l0, u0)
a1,p1
→ (l1, u1)
a2,p2
→ . . .
an,pn
→ (ln, un)
and the cost of performing σ is
∑n
i=1 pi. For a given state
(l, u), the minimum cost of reaching (l, u) is the infimum
of the costs of the finite traces ending in (l, u).
A network of PTA A1|| . . . ||An over X and Act is
defined as the parallel composition of n PTA over X
and Act. Semantically, a network again describes a timed
transition system obtained from those components, by re-
quiring synchrony on delay transitions and requiring discrete
transitions to synchronize on complementary actions (i.e. a?
is complementary to a!).
In order to specify properties of PTA, the logic Weighted
CTL (WCTL) has been introduced [8]. WCTL extends
Timed CTL with resets and testing of cost variables. We
refer the reader to [8] for a thorough introduction of WCTL.
V. THE PROCOM ARCHITECTURE OF THE
DEMONSTRATOR
In this section, we describe a software architecture of
the ENT demonstrator that adheres to the ProCom compo-
nent model. The internal design of the ENT demonstrator
is modeled by two larger subsystems: Basic Service and
Extension Service, as depicted in Figure 5. The interfaces
of the subsystems are expressed in terms of message ports.
Basic Service
Diameter clients
cluster
Diameter servers
cluster
AAA
requests
AAA
responses
Extension Service DIAMETER
requests
DIAMETER
responses
Figure 5. The ProSys model of the ENT demonstrator.
Basic Service is an existing legacy ProSys component.
Extension Service is a subsystem composed of two smaller
ProSys components: Diameter clients cluster and Diameter
servers cluster. We consider that there are four clients (resp.
servers) in Diameter clients cluster (resp. Diameter servers
cluster). Each of these ProSys components may be further
decomposed into either smaller ProSys components, or into
ProSave components, depending on the level of complexity
of the functionality, and the possibility for distribution.
Accordingly, the Diameter clients cluster component is built
from Pen ProSave component and four Client ProSave com-
ponents. Similarly, the Diameter servers cluster component is
made of Relay ProSave component and four Server ProSave
components.
The component Basic Service sends AAA requests to
Extension Service. These requests are forwarded to Diam-
eter clients cluster component. Inside this cluster, the Pen
component is responsible with forwarding these messages
in a round-robin fashion to each of the four clients. The
Diameter clients cluster is the client side of the DIAMETER
protocol. Thus, inside Diameter clients cluster component
AAA requests are transformed into DIAMETER requests and
are forwarded to the Diameter servers cluster component.
Relay, similarly to Pen, forwards the DIAMETER requests
messages in a round-robin manner to each of the four
servers. The servers process these requests and return DI-
AMETER responses to Relay that forwards them to Diameter
clients cluster. In the end, Diameter clients cluster component
transforms DIAMETER responses into AAA responses and
sends them back to Basic Service.
VI. REMES MODELING AND FORMAL ANALYSIS OF THE
DEMONSTRATOR
A. The REMES model of the ENT demonstrator
We model the functional, timing and resource usage
behavior of the ENT components as models in REMES. Due
to space limitation, here we only present the REMES models
of the Pen component, one of the clients from Diameter
clients cluster and one of the servers from Diameter servers
cluster, depicted in Figure 6(a), 6(b), and 6(c), respectively.
Relay has similar behavior as the Pen component.
In the ENT demonstator, we make use of two resources:
memory and CPU. We assume CPU as a continuous re-
source, and we treat memory as a discrete resource. Note
that in the current version of the demonstrator the clients
and the servers are homogenous. From the measurements
performed on the source code, we have concluded that Relay
is the the slowest component in the ENT demonstrator and
the one that consumes the most resources. Moreover, since
the servers are homogenous, we have noticed that Relay’s
round-robin load balancing protocol always sends messages
coming from the first-, second-, third- and fourth- client to
the first-, second-, third- and fourth server, respectively.
The Pen mode is made up of two submodes: Pen Input
and Pen Output. Pen starts executing by entering Pen Input
mode and its submode Receive IP, where it reads instanta-
neously the addresses of the clients. Pen may be reentered
in case the Basic Service component sends a new request
(depicted with the Boolean variable req) or in case one of
the clients is ready to send a response (i.e., at least one
of the Boolean variables client1prio, client2prio, client3prio
or client4prio is evaluated to true). Basic Service may send
requests to Pen only when Pen is free (captured with the
Boolean variable penfree).
The Pen Input mode is responsible for sending requests
to the clients in a round-robin fashion. We use the variable
counter to ensure the round-robin principle. For example,
Pen is ready to send a message to Client1 when the guard
client1prio and (counter mod 4==0) is evaluated to true. The
Pen Output mode receives responses from the clients and
forwards them to Basic Service.
Client1 receives requests from Pen, processes them, and
forwards the processed requests to Relay. Later, Relay sends
responses to the requests back to Client1. Client1 sends on
the responses to Pen. Note that Client1 can process only
one request at a time. The fact that Client1 has to send back
response to Pen before receiving a new request is depicted
with the Boolean variable client1prio.
The Client1 component remains in the non-lazy mode
Waiting for Pen until receiving a send c1 message from
Pen. When this happens, the component goes via se-
quence of submodes: Client1 to Relay, Waiting for Relay
and Client1 to Pen. Client1 stays in modes Client1 to Relay
and Client1 to Pen as long as their invariants hold ( i.e.,
until t ≤ 25 and t ≤ 103, respectively). The submode
Waiting for Relay is exited when a relay to c1 message
arrives.
The Server1 component receives requests from Relay,
processes them, and sends them back to Relay. Server1 is
entered when send c1 becomes true. The Server1 mode is
exited after 68 time units.
B. Formal analysis goals
As previously mentioned, the demonstrator used as the
case-study in this paper addresses the telecommunications
industry’s trend of adopting the component-based system
design paradigm, that is, construct the system out of reusable
components, as a combination of in-house but also third
party components. The most important requirement imposed
on the demonstrator is to ensure an acceptable performance
of the extension service, that is, handling 100 calls per
second. For this to happen, and assuming a linear timing
behavior per bursts of requests, the end-to-end response time
of, say, 500 AAA requests should be less or at most 5
seconds.
To verify this, and, at the same time, validate the abstract
descriptions, we have considered in our behavioral models
(REMES and the corresponding PTA) the actual source
code measured values of the authorization request, and
authorization answer response times, respectively, as well
as their respective CPU load, and memory usage, for each
component of the demonstrator: Pen, DIAMETER client,
DIAMETER relay, and DIAMETER server.
Before embarking upon formal validation, we need to
check the absence of deadlocks, property specified in
C
Init
Entry
Pen
U
C
Pen_Input
Pen_to_Client1
Pen_to_Client2
Pen_to_Client3
Pen_to_Client4
cpu'=1
t<=5
cpu'=1
t<=5
cpu'=1
t<=5
cpu'=1
t<=5
Case1
Label1
Case2
Label2
Case3
Label3Case4
Label4
Case5
Case5
Case5
Case5
Label5
Label6
Label7
Label8
C
Pen_Output
Pen1_to_BasicService
t<=1
Case6
Label9
Case7
Label10
Case8
Label11Case9
Label12
Case10
Case10
Case10
Case10
Label13
Label14
Labe15
Label16
Pen2_to_BasicService
Pen3_to_BasicService
Pen4_to_BasicService
t<=1
t<=1
t<=1
CaseA
CaseB
Exit
Init: clock t;
resource cpu: Tc, mem: TA;
int ip, inp, outp, oc1, oc2, oc3, oc4, counter;
int in_pen[], out_pen[], in_queue[],
bool client1prio, client2prio, client3prio, client4prio, req;
bool c1_to_pen, c2_to_pen, c3_to_pen, c4_to_pen, penfree;
bool processed1, processed2, processed3, processed4;
CaseA: req
CaseB: c1_to_pen or c2_to_pen or c3_to_pen or c4_to_pen
Case1: client1prio and (counter mod 4==0)
Case2: client2prio and (counter mod 4==1)
Case3: client3prio and (counter mod 4==2)
Case4: client4prio and (counter mod 4==3)
Case5: t==5
Case6: c1_to_pen
Case7: c2_to_pen
Case8: c3_to_pen
Case9: c4_to_pen
Case10: t==1
Label1: in_pen[inp]=in_queue[ip], t=0, client1prio=false, penfree=false
Label2: in_pen[inp]=in_queue[ip], t=0, client2prio=false, penfree=false
Label3: in_pen[inp]=in_queue[ip], t=0, client3prio=false, penfree=false
Label4: in_pen[inp]=in_queue[ip], t=0, client4prio=false, penfree=false
Label5: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c1=true
Label6: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c2=true
Label7: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c2=true
Label8: mem+=2, ip++, penfree=true, req=false,
counter++, send_to_c2=true
Label9: out_pen[outp]=out_client1[oc1], oc1++, t=0
Label10: out_pen[outp]=out_client2[oc2], oc2++, t=0
Label11: out_pen[outp]=out_client3[oc3], oc3++, t=0
Label12: out_pen[outp]=out_client4[oc4], oc4++, t=0
Label13: mem+=2, processed1=true, c1_to_pen=false
Label14: mem+=2, processed2=true, c2_to_pen=false
Label15: mem+=2, processed3=true, c3_to_pen=false
Label16: mem+=2, processed4=true, c4_to_pen=false
i[0,3]ip_c[i]=i
Receive_IP
U
(a) The Pen component modeled in REMES.
Entry
Client1
Exit
Client1_to_Relay
Init: clock t;
resource cpu: Tc, mem: TA;
int ic1,inp, oc1, outr;
int in_client1[], in_pen[], out_relay[], out_client1[];
bool send_c1, relay_to_c1, client1prio, c1_to_pen
Case1
Label1
Label1: in_client1[ic1]=in_pen[inp], t=0, inp++
Label2: mem+=10, send_relay_c1=true
Label3: out_client1[oc1]=out_relay[outr], outr++, t=0
Label4: mem+=10, client1prio=true, c1_to_pen=true
send_c1=false, relay_to_c1=false
t<=25
cpu'=7
Case2 Case3
Waiting_for_Relay
Case1: send_c1
Case2: t==25
Case3: relay_to_c1
Case4: t==103
Label2 Label3
Client1_to_PenWaiting_for_Pen
t<=103
cpu'=10
Case4
Label4
Init
(b) The Client1 component modeled in REMES.
Entry
Server1
ExitCase2
Label2
Server1_to_RelayInit
t<=68
cpu'=14
Case1
Label1
Case1
Label1
Init: clock t;
resource cpu: Tc, mem: TA;
int is1, inr, sever1[], in_relay[];
bool send_relay_s1, send_s1
Case1: send_s1
Case2: t==68
Label1: server1[is1]=in_relay[inr], inr++, t=0
Label2: send_relay_s1=true, mem+=34, send_s1=false
(c) The Server1 component mod-
eled in REMES.
Figure 6. Pen, Client1 and Server1 modeled in REMES.
UPPAAL as follows:
A not deadlock
By using the measured values of the demonstrator’s extra-
functional attributes, we aim at:
• model-checking the REMES system model’s capacity
(number of handled requests per second), as well as
• computing an optimal execution trace for the overall
consumption of resources (CPU and memory).
Verifying the demonstrator’s capacity is a crucial perfor-
mance requirement of the system, and we will next show
that we actually deliver a performance guarantee, since
model-checking is an exhaustive verification technique. To
accomplish the response time verification, we define a global
clock variable that stores the elapsed time from the start time
of sending the authorization request to the Pen, until the
request is served and returns to the call controller in the basic
service. Computing optimal resource-aware traces relies on
a weighted sum representation of the resource function,
which accounts for both types of resources simultaneously,
allowing the designer to set the level of criticality for both
resources (identical weights meaning equal importance).
C. PTA model of the ENT demonstrator and analysis results
We have analyzed the REMES-based ENT demonstrator,
by semantically translating it into a network of PTA models,
in UPPAAL CORA3
. Here, we present only the PTA models
of the Pen Input submode and the Client1 mode, shown in
Figure 7 and 8, respectively.
The PTA of Pen Input has six locations: Start,
Receive IP, Waiting for BasicService, Pen to Client1,
3See the web page www.uppaal.org for more information about the UP-
PAAL CORA tool. UPPAAL CORA is a branch of the UPPAAL tool for cost
optimal reachability analysis.
Pen to Client2, Pen to Client3 and Pen to Client4. The
synchronization between Basic Service and Pen Input is
modeled with channel req. Similarly, the synchronization
between Pen Input and Client1 is modeled with channel
send c1. The selection of the clients is controlled by the
variables client1prio, . . . , client4prio and counter.
The PTA of Client1 consists of five locations: Start,
Waiting for Pen, Client1 to Relay, Waiting for Relay and
Pen to Client1. The synchronization between Client1 and
Relay is modeled by using two channels send relay c1
(models requests sent from Client1 to Relay), and
c1 to relay (models responses sent from Relay to Client1).
The synchronization between Client1 and Pen Output is
modeled by using channel c1 to pen.
In our analysis model, we consider CPU to be a more
critical resource than memory. The cost model that we use
is derived from the measurements carried out on the actual
source code. The resource-usage cost is influenced by the
weights of CPU and memory, and the consumed resources
of all transitions and locations. In the ENT demonstrator, we
consider the following total cost function
ctot = wcpu × ccpu + wmem × cmem
where wcpu = 2 and wmem = 1, and ccpu and cmem are
the accumulated consumed amounts of CPU and memory,
respectively.
After providing UPPAAL CORA with the PTA model of
the ENT demonstrator, we were able to study the minimum
cost reachability problem i.e., to find an execution trace
of the system that results in the minimum possible total
resource cost. For illustration, let’s check for an optimal trace
satisfying the reachability property: E<>(processed[3]==4),
that is, a trace in which four requests are eventually pro-
cessed by the ENT demonstrator. The execution trace that
was found by UPPAAL CORA is presented in Figure 9 and
the cost of this best trace is 173308. We use the value 781
ms (from code measurements) as time needed for the basic
service to process 500 requests.
From our analysis model we were also able to determine
the time needed for processing a certain number of requests.
For response time only, we have performed the analysis
in UPPAAL (in order to get a TA model we have removed the
costs from the PTA model). UPPAAL has calculated that
the time needed for handling 1 request is 3,42 time units
(ms). If we consider that the processing time grows linearly,
then for processing 500 requests our UPPAAL model of the
ENT demonstrator needs 1710 time units. This number is
just slightly higher than the source code measured value, that
is, 1690 ms. The verification result shows that the capacity
of the demonstrator (extension service alone) is actually
greater than the required 100 requests per second. Also,
this result concludes our behavioral model formal validation,
regarding the end-to-end response time, which has been a
central design issue of the demonstrator.
VII. RELATED WORK
Today there exist several languages and environments for
modeling, verification and validation of embedded systems,
such as CHARON [2], REMES and timed automata. Some
of these languages and environments have been applied to
real-sized industrial case studies.
CHARON is a modeling language for modular design of
interacting hybrid systems. CHARON has been applied for
modeling and analysis of a wide range of systems, such
as automotive power trains and vehicle-to-vehicle control
systems [17]. CHARON does not provide a mechanism for
adding information about systems resource consumption.
Accordingly, resource-wise properties can not be verified
with CHARON.
Timed automata is a general purpose modeling framework
that can be analyzed by using the UPPAAL tool-kit or
the KRONOS [12] model checker. UPPAAL has been used
for formal analysis of a number of industrial case-studies,
which can roughly be divided in two classes: realtime
controllers [19] and real-time communication protocols [7],
[11], [15], [25]. The modeled systems have been validated
and verified using the tool UPPAAL to satisfy the func-
tionality and safety requirements on the system. However,
resource-wise analysis have not been performed.
REMES has recently been used for behavioral modeling
and analysis of an abstracted versions of a temperature
control system [27], a car wash PLC controller [27]
and an intelligent shuttle system [10]. For analysis pur-
poses REMES models have been translated to (priced) timed
automata and they have been verified in the UPPAAL tool-
kit. The listed case studies have been checked for correctness
against functional, timing and resource-wise requirements.
In contrast to our case study, the resource-wise cost model
used in the listed case studies has not come from the actual
source code.
GIOTTO [14] is a time-triggered language and a tool-
supported methodology for the development of distributed
real-time embedded control systems. GIOTTO has been
used in [21] for developing an implementation model of
an elevator- and a hovercraft system. In order to perform
analysis, GIOTTO models are translated to timed automata
and verified in UPPAAL . The translation from GIOTTO
to UPPAAL is an effort to bridge the gap between con-
trol law design and real-time implementation, by offer-
ing formal analysis at an intermediate layer (the GIOTTO
model) that can check both platform independent (such
as functionality and timing) and platform dependent prop-
erties (e.g., synchronization and scheduling). In contrast
to REMES, GIOTTO does not consider resource-wise system
behavior.
HYTECH [16] is a symbolic model checker for formal
analysis of linear hybrid automata. It has been used for
verification of an audio control protocol [16] and abstracted
Figure 7. PTA model of the Pen Input component.
Figure 8. PTA model of the Client1 component.
automotive control system [26]. With HYTECH one can
perform reachability verification, and parametric analysis.
One drawback of HYTECH is that it is a text-only tool and
as such is not particularly “user-friendly”.
BIP [22], consists of a research-oriented component
model and associated execution/simulation and verification
tools. It focuses on verifying safety-, timing- (e.g., worst-
case execution time or end-to-end delay) and synchroniza-
tion properties. Several case studies have been carried out
with BIP, such as MPEG4 encoder [22], TinyOS [5], and a
robotic system called DALA [4].
VIII. CONCLUSIONS
In this paper, we have presented a case study where our
recently introduced framework REMES is applied to model
and analyze a new telecommunication system by Ericsson
Nikola Tesla. The new system is horizontally developed
by adding a newly developed authentication, authorization,
and accounting service to a complex basic service telecom
system consisting of several existing and reused components
such as a DIAMETER standard protocol, an open-source Pen
load balancer, and a number of servers.
As modeling result, we have shown how the system
has been modeled in a component based fashion using
the ProCom component modeling language, and how the
functional, timing, and resource-wise behavior of the key
components of the system have been modeled in REMES. We
have also shown how the combined model is semantically
translated into a network of (priced) timed automata to
enable model-checking in the tools UPPAAL and UPPAAL
CORA.
In the system analysis, we have, in addition to function
and timing, considered a weighted sum of the resources CPU
and memory, in which designers have chosen to consider
CPU the most critical resource (twice the relative weight of
memory). In this setting, we have derived an optimal system
trace, the minimum time, and the minimal total accumulated
weighted resource cost for processing a given number of
system requests (in our case 1 and 4). Allowing the system
designers to gain deeper understanding in the system’s
resource behavior might prove valuable to further optimize
the system design, and adjust the resources provided by the
underlying implementation platform, accordingly.
As future work on the ENT demonstrator formal analysis,
we plan to model and verify other protocols for serving
requests than round-robin. By checking possible perfor-
mance in such other cases (like the first-in-first-out protocol),
we could feed Ericsson researchers with important insights
on the system’s behavior, which might save unnecessary
implementation time. We also intend to consider the case of
heterogeneous servers, that is, processing the same request
takes different time on each server, respectively.
REFERENCES
[1] R. Alur. Optimal paths in weighted timed automata. In
HSCC01: Hybrid Systems: Computation and Control, pages
49–62. Springer, 2001.
[2] R. Alur, T. Dang, J. Esposito, Y. Hur, F. Ivanˇci´c, V. Kumar,
I. Lee, P. Mishra, G. Pappas, and O. Sokolsky. Hierarchical
Modeling and Analysis of Embedded Systems. Proc. of the
IEEE, 8(3):231–274, 1987.
[3] R. Alur and D. L. Dill. A theory of timed automata.
Theoretical Computer Science, 126(2):183–235, 1994.
Pen_Input Pen_Output Relay_Output Processed_MsgBasic_Service Client1 Relay_InputClient2 Client3 Client4 Server1 Server2 Server3 Server4
Waiting_for_BasicService
Client1_to_Relay
Waiting_for_ClientsResponses Waiting_for_ServersStart Start Start Start Start Start Waiting_for_Clients Idle Idle Idle Idle
Waiting_for_Clients
Idle
Idle
c_ip
Sending Receive_IP Waiting_for_Pen Waiting_for_Pen Waiting_for_Pen Waiting_for_Pen
Sending
req
Pen_to_Client1
send_c1
Waiting_for_BasicService
send_relay_c1
Waiting_for_Relay Relay_to_Server1
send_s1
Server1_to_Relay
req
Client2_to_Relay
Sending Pen_to_Client2
send_c2
Waiting_for_BasicService
send_relay_s1
Idle Relay_to_Client1
send_relay_c2
Waiting_for_Relay Relay_to_Server2
Client1_to_Pen Waiting_for_Servers
relay_to_c1
send_s2
Waiting_for_Clients Server2_to_Relay
req
Sending Pen_to_Client3
send_c3
Waiting_for_BasicService Client3_to_Relay
c1_to_pen
Waiting_for_Pen Pen1_to_BasicService
processed1
Waiting_for_ClientsResponses Idle
send_relay_s2
Idle Relay_to_Client2
send_relay_c3
Waiting_for_Relay Relay_to_Server3
relay_to_c2
Waiting_for_ServersClient2_to_Pen
send_s3
Waiting_for_Clients Server3_to_Relay
req
Sending Pen_to_Client4
send_c4
Waiting_for_BasicService Client4_to_Relay
c2_to_pen
Pen2_to_BasicServiceWaiting_for_Pen
processed2
Waiting_for_ClientsResponses Idle
send_relay_s3
Relay_to_Client3
send_relay_c4
Waiting_for_Relay Relay_to_Server4
relay_to_c3
Waiting_for_ServersClient3_to_Pen
send_s4
Waiting_for_Clients Server4_to_Relay
Client1_to_Relay
Sending
req
Pen_to_Client1
send_c1
Waiting_for_BasicService
c3_to_pen
Waiting_for_Pen Pen3_to_BasicService
processed3
Waiting_for_ClientsResponses Idle
send_relay_s4
Idle Relay_to_Client4
Waiting_for_Relay Relay_to_Server1
send_relay_c1
Client4_to_Pen
relay_to_c4
Waiting_for_Servers
Waiting_for_Clients
send_s1
Server1_to_Relay
Client2_to_Relay
Sending
req
Pen_to_Client2
send_c2
Waiting_for_BasicService
c4_to_pen
Waiting_for_Pen Pen4_to_BasicService
processed4
Waiting_for_ClientsResponses Idle
Figure 9. Optimal trace for processing four requests.
[4] A. Basu, M. Gallien, C.Lesire, T-H. Nguyen, S. Bensalem,
F. Ingrand, and J. Sifakis. Incremental Component-Based
Construction and Verification of a Robotic System. In Proc.
of the 18th European Conference on Artificial Intelligence
(ECAI 2008). IOS Press, 2008.
[5] A. Basu, L. Mounier, M. Poulhi`es, J. Pulou, and J. Sifakis.
Using BIP for Modeling and Verification of Networked Sys-
tems – A Case Study on TinyOS-based Networks. Proc. of the
6th IEEE International Symposium on Network Computing
and Applications, 0:257–260, 2007.
[6] G. Behrmann, A. Fehnker, T. Hune, K. G. Larsen, P. Petters-
son, J. Romijn, and F. Vaandrager. Minimum-Cost Reach-
ability for Priced Timed Automata. In Proc. of the 4th
International Workshop on Hybris Systems: Computation and
Control, LNCS 2034, pages 147–161. Springer–Verlag, 2001.
[7] O. Bengtsson, W. O. D. Griffioen, K. J. Kristoffersen, K. G.
Larsen, F. Larsson, P. Pettersson, and W. Yi. Automated
Analysis of an Audio Control Protocol Using UPPAAL. In
Journal of Logic and Algebraic Programming, 2002.
[8] T. Brihaye, V. Bruy`ere, and J-F. Raskin. Model-checking for
weighted timed automata. In Proc. of FORMATS-FTRTFT04,
number 3253 in LNCS, pages 277–292. Springer–Verlag,
2004.
[9] Tom´aˇs Bureˇs, Jan Carlson, Ivica Crnkovi´c, S´everine Sentilles,
and Aneta Vulgarakis. ProCom – the Progress Component
Model Reference Manual, version 1.0. Technical Report
MDH-MRTC-230/2008-1-SE, M¨alardalen University, June
2008.
[10] A. ˇCauˇsevi´c, C. Seceleanu, and P. Pettersson. Modeling and
Reasoning about Service Behaviors and their Compositions.
In Proc. of 4th International Symposium On Leveraging
Applications of Formal Methods, Verification and Validation
(ISOLA 2010). Springer LNCS, October 2010.
[11] A. David and W. Yi. Modelling and Analysis of a Commercial
Field Bus Protocol. In Proc. of 12th Euromicro Conference
on Real-Time Systems, pages 165–172. IEEE CS Press, 2000.
[12] C. Daws and S. Yovine. Two examples of verification of
multirate timed automata with Kronos. In Proc. 1995 IEEE
Real-Time Systems Symposium, RTSS’95, pages 66–75. IEEE
CS Press, 1995.
[13] S. Edwards, L. Lavagno, E. A. Lee, and A. Sangiovanni-
Vincentelli. Design of embedded systems: formal models,
validation, and synthesis. Proc. of the IEEE, 85(3):366–390,
1997.
[14] T. A. Henzinger, B. Horowitz, and C. M. Kirsch. Giotto: a
Time-triggered Language for Embedded Programming. Tech-
nical report, Berkeley, CA, USA, 2001.
[15] A. Hessel and P. Pettersson. Model-based Testing of a
WAP Gateway: an Industrial Case-Study. In International
Workshop on Formal Methods for Industrial Critical Systems
(FMICS’06), pages 116–131. Springer-Verlag, February 2006.
[16] P-H. Ho and H. Wong-Toi. Automated Analysis of an Audio
Control Protocol. In Proc. of Computer Aided Verification
(CAV’95), pages 381–394. Springer-Verlag, 1995.
[17] F. Ivanˇci´c. Report on Verification of the MoBIES Vehicle-
Vehicle Automotive OEP Problem, 2002.
[18] D. Ivanov, M. Orli´c, C. Seceleanu, and A. Vulgarakis.
REMES Tool-chain: A Set of Integrated Tools for Behavioral
Modeling and Analysis of Embedded Systems. In Proc. of
the 25th IEEE/ACM International Conference on Automated
Software Engineering (ASE), pages 361–362, 2010.
[19] M. Lindahl, P. Pettersson, and W. Yi. Formal Design and
Analysis of a Gear-Box Controller. In Proc. of the 4th
Workshop on Tools and Algorithms for the Construction and
Analysis of Systems, LNCS 1384, pages 281–297. Springer–
Verlag, 1998.
[20] D. Matijaˇsevi´c, I. Gizdi´c, and D. Huljeni´c. Mechanisms for
Diameter service performance enhancement. In Proc. of the
17th International Conference on Software, Telecommunica-
tions and Computer Networks - SoftCOM, 2009.
[21] R. K. Poddar and P. Bhaduri. Verification of Giotto based
embedded control systems. Nordic Journal of Computing,
13:266–293, December 2006.
[22] M. Poulhi`es, J. Pulou, C. Rippert, and J. Sifakis. A
Methodology and Supporting Tools for the Development of
Component-Based Embedded Systems. In Proc. of the 13th
Monterey conference on Composition of embedded systems:
scientific and industrial issues, pages 75–96, Berlin, Heidel-
berg, 2007. Springer-Verlag.
[23] C. Seceleanu, A. Vulgarakis, and P. Pettersson. REMES: A
Resource Model for Embedded Systems. In Proc. of the 14th
IEEE International Conference on Engineering of Complex
Computer Systems (ICECCS 2009). IEEE CS, June 2009.
[24] S. Sentilles, A. Vulgarakis, T. Bureˇs, J. Carlson, and
I. Crnkovi´c. A component model for control-intensive dis-
tributed embedded systems. In Proc. of the 11th Interna-
tional Symposium on Component Based Software Engineering
(CBSE2008), pages 310–317. Springer, Oct 2008.
[25] D. P. L. Simons and M. Stoelinga. Mechanical verification
of the IEEE 1394a root contention protocol using Uppaal2k.
STTT, 3(4):469–485, 2001.
[26] T. Stauner, O. M¨uller, and M. Fuchs. Using HyTech to
Verify an Automotive Control System. In Proc. Hybrid and
Real-Time Systems (HART’97), LNCS 1201, pages 139–153.
Springer-Verlag, 1997.
[27] A. Vulgarakis and A. ˇCauˇsevi´c. Applying REMES behavioral
modeling to PLC systems. In Proc. of 22nd International
Symposium on Information, Communication and Automation
Technologies - ICAT 2009. IEEE, October 2009.
[28] A. Vulgarakis, S. Sentilles, J. Carlson, and C. Seceleanu.
Integrating Behavioral Descriptions into a Component Model
for Embedded Systems. In Proc. of the 36th Euromicro Con-
ference on Software Engineering and Advanced Applications
(SEAA). IEEE, September 2010.
[29] M. Zemlji´c, I. Skuliber, and S. Deˇsi´c. Utilization of Open-
Source High Availability Middleware in Next Generation
Telecom Services. In Proc. of the 17th International Con-
ference on Software, Telecommunications and Computer Net-
works - SoftCOM, 2009.

More Related Content

What's hot

Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...
Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...
Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...SimulationX
 
Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...Florian Blum
 
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMA SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMVLSICS Design
 
Modeling distribution networks with neplan
Modeling distribution networks with neplanModeling distribution networks with neplan
Modeling distribution networks with neplanYusuf A. KHALIL
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for SpaceUlisses Costa
 
Software performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designSoftware performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designMr. Chanuwan
 
High-Performance Timing Simulation of Embedded Software
High-Performance Timing Simulation of Embedded SoftwareHigh-Performance Timing Simulation of Embedded Software
High-Performance Timing Simulation of Embedded SoftwareMr. Chanuwan
 
Study of model predictive control using ni lab view
Study of model predictive control using ni lab viewStudy of model predictive control using ni lab view
Study of model predictive control using ni lab viewIAEME Publication
 
ScriptRock Robotics Testing
ScriptRock Robotics TestingScriptRock Robotics Testing
ScriptRock Robotics TestingCloudCheckr
 
M3AT: Monitoring Agents Assignment Model for the Data-Intensive Applications
M3AT: Monitoring Agents Assignment Model for the Data-Intensive ApplicationsM3AT: Monitoring Agents Assignment Model for the Data-Intensive Applications
M3AT: Monitoring Agents Assignment Model for the Data-Intensive ApplicationsVladislavKashansky
 
Introduction to networks simulation
Introduction to networks simulationIntroduction to networks simulation
Introduction to networks simulationahmed L. Khalaf
 
An Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production SystemsAn Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production SystemsIJMER
 
IRJET- Automatic Object Sorting using Deep Learning
IRJET- Automatic Object Sorting using Deep LearningIRJET- Automatic Object Sorting using Deep Learning
IRJET- Automatic Object Sorting using Deep LearningIRJET Journal
 
2005 sauserramirezvermagovecser
2005 sauserramirezvermagovecser2005 sauserramirezvermagovecser
2005 sauserramirezvermagovecserNita Adiyati
 
Controller selection in software defined networks using best-worst multi-crit...
Controller selection in software defined networks using best-worst multi-crit...Controller selection in software defined networks using best-worst multi-crit...
Controller selection in software defined networks using best-worst multi-crit...journalBEEI
 

What's hot (17)

Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...
Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...
Embedding SimulationX Models into Virtual-Reality Training Simulators of Powe...
 
Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...
 
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHMA SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
A SYSTEMC/SIMULINK CO-SIMULATION ENVIRONMENT OF THE JPEG ALGORITHM
 
ct-acd32093-2
ct-acd32093-2ct-acd32093-2
ct-acd32093-2
 
Modeling distribution networks with neplan
Modeling distribution networks with neplanModeling distribution networks with neplan
Modeling distribution networks with neplan
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Software performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system designSoftware performance simulation strategies for high-level embedded system design
Software performance simulation strategies for high-level embedded system design
 
High-Performance Timing Simulation of Embedded Software
High-Performance Timing Simulation of Embedded SoftwareHigh-Performance Timing Simulation of Embedded Software
High-Performance Timing Simulation of Embedded Software
 
Study of model predictive control using ni lab view
Study of model predictive control using ni lab viewStudy of model predictive control using ni lab view
Study of model predictive control using ni lab view
 
ScriptRock Robotics Testing
ScriptRock Robotics TestingScriptRock Robotics Testing
ScriptRock Robotics Testing
 
M3AT: Monitoring Agents Assignment Model for the Data-Intensive Applications
M3AT: Monitoring Agents Assignment Model for the Data-Intensive ApplicationsM3AT: Monitoring Agents Assignment Model for the Data-Intensive Applications
M3AT: Monitoring Agents Assignment Model for the Data-Intensive Applications
 
Introduction to networks simulation
Introduction to networks simulationIntroduction to networks simulation
Introduction to networks simulation
 
defense_PPT
defense_PPTdefense_PPT
defense_PPT
 
An Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production SystemsAn Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production Systems
 
IRJET- Automatic Object Sorting using Deep Learning
IRJET- Automatic Object Sorting using Deep LearningIRJET- Automatic Object Sorting using Deep Learning
IRJET- Automatic Object Sorting using Deep Learning
 
2005 sauserramirezvermagovecser
2005 sauserramirezvermagovecser2005 sauserramirezvermagovecser
2005 sauserramirezvermagovecser
 
Controller selection in software defined networks using best-worst multi-crit...
Controller selection in software defined networks using best-worst multi-crit...Controller selection in software defined networks using best-worst multi-crit...
Controller selection in software defined networks using best-worst multi-crit...
 

Similar to 2453

COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...VLSICS Design
 
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...VLSICS Design
 
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...VLSICS Design
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsEditor IJCATR
 
Advanced Verification Methodology for Complex System on Chip Verification
Advanced Verification Methodology for Complex System on Chip VerificationAdvanced Verification Methodology for Complex System on Chip Verification
Advanced Verification Methodology for Complex System on Chip VerificationVLSICS Design
 
Ieeepro techno solutions 2013 ieee embedded project an integrated design fr...
Ieeepro techno solutions   2013 ieee embedded project an integrated design fr...Ieeepro techno solutions   2013 ieee embedded project an integrated design fr...
Ieeepro techno solutions 2013 ieee embedded project an integrated design fr...srinivasanece7
 
Automatized testing hil system for agile product-design environment
Automatized testing hil system for agile product-design environmentAutomatized testing hil system for agile product-design environment
Automatized testing hil system for agile product-design environmentTritem
 
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docx
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docxCS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docx
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docxfaithxdunce63732
 
Using OPC technology to support the study of advanced process control
Using OPC technology to support the study of advanced process controlUsing OPC technology to support the study of advanced process control
Using OPC technology to support the study of advanced process controlISA Interchange
 
Multicloud Deployment of Computing Clusters for Loosely Coupled Multi Task C...
Multicloud Deployment of Computing Clusters for Loosely  Coupled Multi Task C...Multicloud Deployment of Computing Clusters for Loosely  Coupled Multi Task C...
Multicloud Deployment of Computing Clusters for Loosely Coupled Multi Task C...IOSR Journals
 
Integration of a Predictive, Continuous Time Neural Network into Securities M...
Integration of a Predictive, Continuous Time Neural Network into Securities M...Integration of a Predictive, Continuous Time Neural Network into Securities M...
Integration of a Predictive, Continuous Time Neural Network into Securities M...Chris Kirk, PhD, FIAP
 
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...ijesajournal
 
Art%3 a10.1186%2f1687 6180-2011-29
Art%3 a10.1186%2f1687 6180-2011-29Art%3 a10.1186%2f1687 6180-2011-29
Art%3 a10.1186%2f1687 6180-2011-29Ishtiaq Ahmad
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONijaia
 
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU UtilizationUsing Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU Utilizationgerogepatton
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONgerogepatton
 
Automated LiveMigration of VMs
Automated LiveMigration of VMs Automated LiveMigration of VMs
Automated LiveMigration of VMs Akhila Chatlapalle
 
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersion
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersionPMAM_2014_Autonomic_Skeletons_using_Events-FinalVersion
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersionGustavo Pabon
 

Similar to 2453 (20)

COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
 
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
 
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
COVERAGE DRIVEN FUNCTIONAL TESTING ARCHITECTURE FOR PROTOTYPING SYSTEM USING ...
 
PID2143641
PID2143641PID2143641
PID2143641
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal Models
 
Advanced Verification Methodology for Complex System on Chip Verification
Advanced Verification Methodology for Complex System on Chip VerificationAdvanced Verification Methodology for Complex System on Chip Verification
Advanced Verification Methodology for Complex System on Chip Verification
 
Ieeepro techno solutions 2013 ieee embedded project an integrated design fr...
Ieeepro techno solutions   2013 ieee embedded project an integrated design fr...Ieeepro techno solutions   2013 ieee embedded project an integrated design fr...
Ieeepro techno solutions 2013 ieee embedded project an integrated design fr...
 
Automatized testing hil system for agile product-design environment
Automatized testing hil system for agile product-design environmentAutomatized testing hil system for agile product-design environment
Automatized testing hil system for agile product-design environment
 
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docx
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docxCS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docx
CS 301 Computer ArchitectureStudent # 1 EID 09Kingdom of .docx
 
Using OPC technology to support the study of advanced process control
Using OPC technology to support the study of advanced process controlUsing OPC technology to support the study of advanced process control
Using OPC technology to support the study of advanced process control
 
Multicloud Deployment of Computing Clusters for Loosely Coupled Multi Task C...
Multicloud Deployment of Computing Clusters for Loosely  Coupled Multi Task C...Multicloud Deployment of Computing Clusters for Loosely  Coupled Multi Task C...
Multicloud Deployment of Computing Clusters for Loosely Coupled Multi Task C...
 
Integration of a Predictive, Continuous Time Neural Network into Securities M...
Integration of a Predictive, Continuous Time Neural Network into Securities M...Integration of a Predictive, Continuous Time Neural Network into Securities M...
Integration of a Predictive, Continuous Time Neural Network into Securities M...
 
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...
DEVELOPING SCHEDULER TEST CASES TO VERIFY SCHEDULER IMPLEMENTATIONS IN TIMETR...
 
Art%3 a10.1186%2f1687 6180-2011-29
Art%3 a10.1186%2f1687 6180-2011-29Art%3 a10.1186%2f1687 6180-2011-29
Art%3 a10.1186%2f1687 6180-2011-29
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
 
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU UtilizationUsing Semi-supervised Classifier to Forecast Extreme CPU Utilization
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
 
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATIONUSING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
 
10 3
10 310 3
10 3
 
Automated LiveMigration of VMs
Automated LiveMigration of VMs Automated LiveMigration of VMs
Automated LiveMigration of VMs
 
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersion
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersionPMAM_2014_Autonomic_Skeletons_using_Events-FinalVersion
PMAM_2014_Autonomic_Skeletons_using_Events-FinalVersion
 

2453

  • 1. Validation of Embedded Systems Behavioral Models on a Component-Based Ericsson Nikola Tesla Demonstrator 1 Aneta Vulgarakis†, Cristina Seceleanu†, Paul Pettersson†, Ivan Skuliber‡, and Darko Huljeni´c‡ † M¨alardalen Real-Time Research Centre, V¨aster˚as, Sweden ‡ Ericsson Nikola Tesla, Zagreb, Croatia. aneta.vulgarakis@mdh.se, cristina.seceleanu@mdh.se, paul.pettersson@mdh.se, ivan.skuliber@ericsson.com, darko.huljenic@ericsson.com Abstract—Embedded systems are challenging to design, due to the implementation platform constraints that have to be con- sidered, preferably from early stages of design, next-by system functionality. Hence, embedded system models need to be tim- ing and resource-aware, to make formal verification of extra- functional properties applicable at high levels of abstraction. In most cases, a frequent obstacle to the successful application of such rigorous techniques is the lack of the proposed models’ validation against real-world application measurements. In this paper, we show how to model extra-functional behavior, and verify the resulted behavioral models of a component-based Ericsson Nikola Tesla prototype telecommunications system. The models are described in our recently introduced REMES language, with Priced Timed Automata semantics that allows us to apply UPPAAL -based tools for model-checking the system’s response time and compute optimal resource usage traces. The validation of our models is ensured by using actual values of timing, CPU, and memory usage in our models, measured by Ericsson researchers on the prototype’s source code. I. INTRODUCTION The usefulness, industrial applicability, and scalability of embedded systems (ES) modeling languages and analysis methods can be exercised by performing their validation against measured, quantified behavioral properties. Valida- tion loosely refers to the process of determining if a design is correct with respect to implementation requirements [13]. The two most usual model validation procedures are simu- lation, which traverses a subset of the system’s behaviors, and formal verification, which is exhaustive but limited to finite-state systems. Although usually restrictive, in the ES case formal verification proves more applicable due to the constrained way in which ES need to be designed. The latter have to meet extra-functional, platform-driven constraints, such as timing, energy, CPU, or/and memory constraints. Motivated by the above, in this paper we describe the modeling and formal analysis of a prototype industrial telecommunications system, a demonstrator developed by Ericsson Nikola Tesla, in Croatia [29]. The new system is a proof-of-concept solution, developed by applying the 1This work was partially supported by the Swedish Foundation for Strategic Research via the strategic research centre PROGRESS and by the European Union, FP7, in the context of the Q-ImPrESS research project. component-based design paradigm, by adding a newly devel- oped authentication, authorization, and accounting service to a complex basic service telecom system consisting of several existing and reused components, such as a DIAMETER standard protocol, an open-source Pen load balancer, and a number of servers. More precisely, the ENT demonstrator uses the basic service to issue call requests, to which the extension service delivers the authentication functionality on a request basis. The resulting system is a telecom system that must adhere to the characteristics of existing telecom legacy systems. Thus, two requirements are imposed on the demonstrator: capacity and optimal resource usage. The demonstrator is described in section III. Our analysis effort of the above properties is driven by both an academic, as well as an industrial interest. The for- mer targets exercising the industrial applicability and valida- tion of our favorite embedded systems behavioral modeling and analysis framework, which is tailored to the recently introduced ProCom component model [24] for real-time ES, briefly recalled in section IV-A. The framework consists of the resource-aware timed behavioral language REMES [23], reviewed in section IV-B, and its underlying formal model given in terms of Priced Timed Automata networks [1], [6] (see section IV-C). The industrial interest is in being able to use a virtual experimental “lab”, in which various types of extra-functional analysis of the demonstrator could be carried out, which could provide valuable feedback on the demonstrator’s performance, and resource-usage, assuming various settings, prior to an actual implementation of the respective setting. In section V, the demonstrator is modeled in a compo- nent based fashion using the ProCom component modeling language, whereas the functional, timing, and resource-wise behavior of the key components of the system are modeled in REMES, as shown in section VI-A. The salient point of our model, which enables its validation, is the fact that we build it by using the timing and resource values extracted from the actual prototype implementation of the demonstrator. We also show how the combined model is semantically translated into a network of (priced) timed automata to enable model-checking in the tools UPPAAL and
  • 2. REMES behavioral model designs System designer Hardware abstraction M2M verifies behavior Uppaal / Uppaal Cora tools ProCom architectural model Veification expert 151413121110987654321 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25CM if (argc < 3) { printf("Usage: %s server_ip server_port [my_ip]n", argv[0]); exit(0); } if ((sk = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { printf("Problem creating socketn"); exit(1); } if (argc > 3) { /* set local address */ hp = gethostbyname(argv[3]); if (hp == NULL) { fprintf(stderr, "Bogus local address %sn", argv[3]); exit(1); } memcpy(&client.sin_addr.s_addr, hp->h_addr, hp->h_length); client.sin_port = 0; if (bind(sk, (struct sockaddr *)&client, sizeof client) < 0) { fprintf(stderr, "bind failuren"); exit(1); } } interface mapping designs Resource requirements Functional Requirements influence influence influence System property yes no Notification Counter example I step II step III step IV step modeling framework analysis framework PTA model of the system Figure 1. The system validation process. UPPAAL CORA (see section VI-C). Regarding the system analysis, we consider, next to function and timing, a weighted sum of the resources CPU and memory, in which CPU is considered a more critical resource than memory (twice the relative weight of mem- ory). Under this assumption, we derive an optimal system trace, the minimum time, and the minimal total accumulated weighted resource cost for processing a given number of system requests. The results are described in section VI-C. Similar industrial-driven endeavors include research work within the framework of timed automata [7], [12], [15], GIOTTO [14], or BIP [22]. However, such works either do not consider formal verification of extra-functional system behavior, or do not base it on real timing and resource values measured on actual implementations. II. OVERVIEW OF THE VALIDATION PROCESS The validation process that we use in our case study is iterative, allowing feedbacks between steps. It consists of four steps (see Figure 1) as follows. • I step. Based on the system functional requirements the designer builds the ProCom architectural model of the system. Similarly, the verification experts uses both the functional- and resource requirements (such as timing, memory, etc.) to develop the REMES behavioral model of the system. • II step. During this step an interface mapping between the ProCom architectural- and the REMES behavioral model is performed. For more information, we refer the reader to [28]. • III step. The ProCom architectural- and the REMES behavioral model are together transformed to priced timed automata (PTA) model for formal analysis. The architectural model gives information about the order of execution of the REMES modes modeling the behavior of the components. Figure 2. The deployment architecture of the demonstrator. • IV step. We assume that we have hardware abstraction that provides us with global available resources (e.g., memory budget, cpu load, bandwidth of the commu- nication network, etc.). To perform model-checking, a PTA model of the system is fed into UPPAAL , together with a hardware abstraction and a desired property (requirement) expressed in a temporal logic. UPPAAL then automatically traverses the system’s state space in an exhaustive manner. If an invariant property is satisfied, the tool notifies that the verification finished successfully, or if the invariant property is violated, it reports one of the traces that violates the property as a counter-example to the model. For reachability properties the opposite is true i.e., a trace is reported when the property is satisfied. III. DESCRIPTION OF THE DEMONSTRATOR Ericsson Nikola Tesla’s (ENT) demonstrator is a prototype of a telecommunications system. It is designed according to current telecommunications industry’s trends of adapting horizontal development (systems built from reusable compo- nents) methodologies instead of traditionally used vertical ones (systems built from ground-up in-house, now called legacy systems). The organization of the demonstrator is shown in Figure 2 from the perspective of deployment architecture. In the demonstrator, a new telecommunications service is created with horizontal development. This new service is added to existing, so called basic service that was created over the years with vertical development. More precisely, the basic service performs typical call control functionality: decoding of addressing information and routing calls from one end-point to another. When a special kind of processing is needed, it generates events that result with requests (mes- sages) that are being redirected into the extension service. The extension service processes messages generated by the
  • 3. basic service by performing an AAA (authentication, autho- rization and accounting) functionality that conforms to the widely accepted Internet standard called DIAMETER [20]. The result of the processing are also messages that are sent back to the basic service. The extension service is realized as clients- and servers cluster, which communicate via DIAMETER protocol. They should assure high levels of performance through round- robin load balancing, and availability through redundancy. Implementation of high availability and reliability is fa- cilitated with the use of OpenSAF. Previous experiments performed by Ericsson researchers show negligible impact of OpenSAF to the overall performance of the demonstra- tor [29]. Thus, we omit OpenSAF from experiments shown in this paper. Pen is a third-party open-source load balancer that was customized for the purpose of load balancing stateful AAA protocol between the basic service and the extension service. Pen maintains the information (e.g., IP addresses and ports) about which call control node is communicating with which DIAMETER client and uses round-robin method for choosing which client will serve a given request. DIAMETER client receives AAA requests through the AAA protocol between the basic service and the extension service, transforms them into DIAMETER-based AAA requests and sends these DIAMETER-based AAA requests to the DIAMETER servers cluster. DIAMETER relay is a DIAMETER protocol functionality that is used for balancing the load among DIAMETER servers. Similar to Pen, it uses round-robin method for choosing which server will serve a given request. Since each DIAMETER message contains full address information about communicating peers, it just transmits the response received from DIAMETER server to corresponding DIAMETER client that originated the initial request. DIAMETER server receives DIAMETER-based AAA requests originated on DIAMETER clients. It processes these requests and returns the results to the relay. Since the original request contained the informa- tion about which client created it, the relay knows to which client the response must be sent to. IV. BACKGROUND A. The ProCom component model ProCom [24] is component model that aims at addressing key design characteristics and development concerns of dis- tributed embedded systems. ProCom comprises two-layered component model, and differentiates a component model used for modeling distributed, complex, active and concur- rent subsystems (called ProSys) and a component model used for modeling non-distributed, passive and smaller units of control functionality (called ProSave). The two layers relate to each other in the sense that a ProSys component can be modeled out of ProSave components. In this paper, Figure 3. Example of the ProSys notation: Subsystem A has two input ports (A1 and A2) and one output port (A3), and communicates with subsystem B by sending messages over the message channel M. we only use the more large scale ProSys. The complete specification of ProCom is available in [9]. In ProSys, the communication between subsystems is based on asynchronous message passing. A subsystem re- ceives and sends messages through input- and output mes- sage ports, respectively. Message ports are connected though message channels. A message channel captures a piece of shared data that is of interest to one or more subsystems before any producer or receiver of this data has been defined. Figure 3 exemplifies the graphical notation of ProSys. B. The REMES language for behavioral modeling The REsource Model for Embedded Systems REMES [23] is intended as a meaningful basis for modeling and analysis of resource-constrained behavior of embedded systems. To enable formal analysis, REMES models can be trans- formed into timed automata (TA) [3], or priced timed automata (PTA) [1] (see subsection IV-C), depending on the analysis type. The internal behavior of a component is depicted by a REMES mode that can be atomic (see Atomic mode 1, Atomic mode 2 in Figure 4) or composite (made of atomic modes). The discrete control of a mode is captured by a control interface that consists of entry- and exit points, whereas the data transfer between modes is carried out through a well- defined data interface that consists of typed global variables. A composite mode may also have a special init entry point where the global variables are initialized. A composite mode executes by performing a sequence of discrete steps, via actions that, once executed, pass the control from the current submode to a different submode. An action, A = (g, S) (e.g., (y == b, d := u) in the figure), is a statement S (in our case d := u), preceded by a Boolean con- dition, the guard (y == b), which must hold in order for the action to be executed and the corresponding outgoing edge taken. A REMES composite mode may contain conditional connectors (decorated with letter C) that allow a possibly nondeterministic selection of one discrete outgoing action to execute, out of many possible ones. Below, via C, one of the empty statement actions, x ≤ a ∧ d == v or d ≥ v can be chosen for execution. In REMES one may model timed behavior and resource consumption. Timed behavior is modeled by global con- tinuous variables of specialized type clock, that is, x, y in our figure, evolving at rate 1. A Boolean condition called invariant (e.g., y ≤ b) may be used to specify for how long an atomic mode can be executed. Once the invariant stops
  • 4. C Entry Composite mode Atomic mode 1 Atomic mode 2 r1’ = n, r2’ = m, y ≤ b x ≤ a and d == v Exit d ≥ v U Init r3+=q y == b d : = u Figure 4. A REMES composite mode. to hold, the current mode is exited. In case a mode is exited instantaneously after its activation, the mode is called urgent (decorated with letter U). In case a mode does not contain any invariant to specify how long it is allowed to delay in that mode, the mode is non-lazy; time is allowed to pass in a non-lazy mode until at least one of the guards of the outgoing discrete actions is true. The composite mode in Figure 4 has two continuous resources (r1 and r2) and one discrete resource r3. Consump- tion of the continuous resources is expressed by their first derivatives (r1’ and r2’), see Atomic mode 1, which give the rates at which the mode consumes the resources, respectively (r1 is consumed at rate n, whereas r2 at rate m, where m and n are integers). Discrete resources are allocated through usual updates, e.g., r3 += q. For a more thorough description of REMES, we refer the reader to our recent work [23]. The REMES language benefits from a set of tools2 for modeling, simulation and transformation into PTA, which could assist the designer during system development [18]. C. Priced Timed Automata In the following, we recall the model of priced (or weighted) timed automata [1], [6], an extension of timed automata [3] with prices/costs on both locations and transi- tions, which acts as the semantics basis of REMES. Let X be a finite set of clocks and B(X) the set of formulas obtained as conjunctions of atomic constraints of the form x ◃▹ n, where x ∈ X, n ∈ N, and ◃▹ ∈ {<, ≤, = , ≥, >}. The elements of B(X) are called clock constraints over X. Definition 1: A linearly Priced Timed Automaton (PTA) over clocks X and actions Act is a tuple (L, l0, E, I, P), where L is a finite set of locations, l0 is the initial location, E ⊆ L×B(X)×Act×P(X)×L is the set of edges, I : L → B(X) assigns invariants to locations, and P : (L ∪ E) → N assigns prices (or costs) to both locations and edges. In the case of (l, g, a, r, l′ ) ∈ E, we write l g,a,r → l′ . The semantics of a PTA is defined in terms of a timed transition system over states of the form (l, u), where l is a location, u ∈ RRX , and the initial state is (l0, u0), where u0 assigned all clocks in X to 0. Intuitively, there are two kinds 2The REMES tool-chain is available at: http://www.fer.hr/dices/remes-ide. of transitions: delay transitions and discrete transitions. In delay transitions, (l, u) d,p → (l, u ⊕ d) the assignment u ⊕ d is the result obtained by incrementing all clocks of the automata with the delay amount d, and p = P(l) ∗ d is the cost of performing the delay. Discrete transitions (l, u) a,p → (l′ , u′ ) correspond to taking an edge l g,a,r → l′ for which the guard g is satisfied by u. The clock valuation u′ of the target state is obtained by modifying u according to updates r. The cost p = P((l, g, a, r, l′ )) is the price associated with the edge. A timed trace σ of a PTA is a sequence of alternating delays and action transitions σ = (l0, u0) a1,p1 → (l1, u1) a2,p2 → . . . an,pn → (ln, un) and the cost of performing σ is ∑n i=1 pi. For a given state (l, u), the minimum cost of reaching (l, u) is the infimum of the costs of the finite traces ending in (l, u). A network of PTA A1|| . . . ||An over X and Act is defined as the parallel composition of n PTA over X and Act. Semantically, a network again describes a timed transition system obtained from those components, by re- quiring synchrony on delay transitions and requiring discrete transitions to synchronize on complementary actions (i.e. a? is complementary to a!). In order to specify properties of PTA, the logic Weighted CTL (WCTL) has been introduced [8]. WCTL extends Timed CTL with resets and testing of cost variables. We refer the reader to [8] for a thorough introduction of WCTL. V. THE PROCOM ARCHITECTURE OF THE DEMONSTRATOR In this section, we describe a software architecture of the ENT demonstrator that adheres to the ProCom compo- nent model. The internal design of the ENT demonstrator is modeled by two larger subsystems: Basic Service and Extension Service, as depicted in Figure 5. The interfaces of the subsystems are expressed in terms of message ports. Basic Service Diameter clients cluster Diameter servers cluster AAA requests AAA responses Extension Service DIAMETER requests DIAMETER responses Figure 5. The ProSys model of the ENT demonstrator. Basic Service is an existing legacy ProSys component. Extension Service is a subsystem composed of two smaller ProSys components: Diameter clients cluster and Diameter servers cluster. We consider that there are four clients (resp. servers) in Diameter clients cluster (resp. Diameter servers cluster). Each of these ProSys components may be further decomposed into either smaller ProSys components, or into
  • 5. ProSave components, depending on the level of complexity of the functionality, and the possibility for distribution. Accordingly, the Diameter clients cluster component is built from Pen ProSave component and four Client ProSave com- ponents. Similarly, the Diameter servers cluster component is made of Relay ProSave component and four Server ProSave components. The component Basic Service sends AAA requests to Extension Service. These requests are forwarded to Diam- eter clients cluster component. Inside this cluster, the Pen component is responsible with forwarding these messages in a round-robin fashion to each of the four clients. The Diameter clients cluster is the client side of the DIAMETER protocol. Thus, inside Diameter clients cluster component AAA requests are transformed into DIAMETER requests and are forwarded to the Diameter servers cluster component. Relay, similarly to Pen, forwards the DIAMETER requests messages in a round-robin manner to each of the four servers. The servers process these requests and return DI- AMETER responses to Relay that forwards them to Diameter clients cluster. In the end, Diameter clients cluster component transforms DIAMETER responses into AAA responses and sends them back to Basic Service. VI. REMES MODELING AND FORMAL ANALYSIS OF THE DEMONSTRATOR A. The REMES model of the ENT demonstrator We model the functional, timing and resource usage behavior of the ENT components as models in REMES. Due to space limitation, here we only present the REMES models of the Pen component, one of the clients from Diameter clients cluster and one of the servers from Diameter servers cluster, depicted in Figure 6(a), 6(b), and 6(c), respectively. Relay has similar behavior as the Pen component. In the ENT demonstator, we make use of two resources: memory and CPU. We assume CPU as a continuous re- source, and we treat memory as a discrete resource. Note that in the current version of the demonstrator the clients and the servers are homogenous. From the measurements performed on the source code, we have concluded that Relay is the the slowest component in the ENT demonstrator and the one that consumes the most resources. Moreover, since the servers are homogenous, we have noticed that Relay’s round-robin load balancing protocol always sends messages coming from the first-, second-, third- and fourth- client to the first-, second-, third- and fourth server, respectively. The Pen mode is made up of two submodes: Pen Input and Pen Output. Pen starts executing by entering Pen Input mode and its submode Receive IP, where it reads instanta- neously the addresses of the clients. Pen may be reentered in case the Basic Service component sends a new request (depicted with the Boolean variable req) or in case one of the clients is ready to send a response (i.e., at least one of the Boolean variables client1prio, client2prio, client3prio or client4prio is evaluated to true). Basic Service may send requests to Pen only when Pen is free (captured with the Boolean variable penfree). The Pen Input mode is responsible for sending requests to the clients in a round-robin fashion. We use the variable counter to ensure the round-robin principle. For example, Pen is ready to send a message to Client1 when the guard client1prio and (counter mod 4==0) is evaluated to true. The Pen Output mode receives responses from the clients and forwards them to Basic Service. Client1 receives requests from Pen, processes them, and forwards the processed requests to Relay. Later, Relay sends responses to the requests back to Client1. Client1 sends on the responses to Pen. Note that Client1 can process only one request at a time. The fact that Client1 has to send back response to Pen before receiving a new request is depicted with the Boolean variable client1prio. The Client1 component remains in the non-lazy mode Waiting for Pen until receiving a send c1 message from Pen. When this happens, the component goes via se- quence of submodes: Client1 to Relay, Waiting for Relay and Client1 to Pen. Client1 stays in modes Client1 to Relay and Client1 to Pen as long as their invariants hold ( i.e., until t ≤ 25 and t ≤ 103, respectively). The submode Waiting for Relay is exited when a relay to c1 message arrives. The Server1 component receives requests from Relay, processes them, and sends them back to Relay. Server1 is entered when send c1 becomes true. The Server1 mode is exited after 68 time units. B. Formal analysis goals As previously mentioned, the demonstrator used as the case-study in this paper addresses the telecommunications industry’s trend of adopting the component-based system design paradigm, that is, construct the system out of reusable components, as a combination of in-house but also third party components. The most important requirement imposed on the demonstrator is to ensure an acceptable performance of the extension service, that is, handling 100 calls per second. For this to happen, and assuming a linear timing behavior per bursts of requests, the end-to-end response time of, say, 500 AAA requests should be less or at most 5 seconds. To verify this, and, at the same time, validate the abstract descriptions, we have considered in our behavioral models (REMES and the corresponding PTA) the actual source code measured values of the authorization request, and authorization answer response times, respectively, as well as their respective CPU load, and memory usage, for each component of the demonstrator: Pen, DIAMETER client, DIAMETER relay, and DIAMETER server. Before embarking upon formal validation, we need to check the absence of deadlocks, property specified in
  • 6. C Init Entry Pen U C Pen_Input Pen_to_Client1 Pen_to_Client2 Pen_to_Client3 Pen_to_Client4 cpu'=1 t<=5 cpu'=1 t<=5 cpu'=1 t<=5 cpu'=1 t<=5 Case1 Label1 Case2 Label2 Case3 Label3Case4 Label4 Case5 Case5 Case5 Case5 Label5 Label6 Label7 Label8 C Pen_Output Pen1_to_BasicService t<=1 Case6 Label9 Case7 Label10 Case8 Label11Case9 Label12 Case10 Case10 Case10 Case10 Label13 Label14 Labe15 Label16 Pen2_to_BasicService Pen3_to_BasicService Pen4_to_BasicService t<=1 t<=1 t<=1 CaseA CaseB Exit Init: clock t; resource cpu: Tc, mem: TA; int ip, inp, outp, oc1, oc2, oc3, oc4, counter; int in_pen[], out_pen[], in_queue[], bool client1prio, client2prio, client3prio, client4prio, req; bool c1_to_pen, c2_to_pen, c3_to_pen, c4_to_pen, penfree; bool processed1, processed2, processed3, processed4; CaseA: req CaseB: c1_to_pen or c2_to_pen or c3_to_pen or c4_to_pen Case1: client1prio and (counter mod 4==0) Case2: client2prio and (counter mod 4==1) Case3: client3prio and (counter mod 4==2) Case4: client4prio and (counter mod 4==3) Case5: t==5 Case6: c1_to_pen Case7: c2_to_pen Case8: c3_to_pen Case9: c4_to_pen Case10: t==1 Label1: in_pen[inp]=in_queue[ip], t=0, client1prio=false, penfree=false Label2: in_pen[inp]=in_queue[ip], t=0, client2prio=false, penfree=false Label3: in_pen[inp]=in_queue[ip], t=0, client3prio=false, penfree=false Label4: in_pen[inp]=in_queue[ip], t=0, client4prio=false, penfree=false Label5: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c1=true Label6: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c2=true Label7: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c2=true Label8: mem+=2, ip++, penfree=true, req=false, counter++, send_to_c2=true Label9: out_pen[outp]=out_client1[oc1], oc1++, t=0 Label10: out_pen[outp]=out_client2[oc2], oc2++, t=0 Label11: out_pen[outp]=out_client3[oc3], oc3++, t=0 Label12: out_pen[outp]=out_client4[oc4], oc4++, t=0 Label13: mem+=2, processed1=true, c1_to_pen=false Label14: mem+=2, processed2=true, c2_to_pen=false Label15: mem+=2, processed3=true, c3_to_pen=false Label16: mem+=2, processed4=true, c4_to_pen=false i[0,3]ip_c[i]=i Receive_IP U (a) The Pen component modeled in REMES. Entry Client1 Exit Client1_to_Relay Init: clock t; resource cpu: Tc, mem: TA; int ic1,inp, oc1, outr; int in_client1[], in_pen[], out_relay[], out_client1[]; bool send_c1, relay_to_c1, client1prio, c1_to_pen Case1 Label1 Label1: in_client1[ic1]=in_pen[inp], t=0, inp++ Label2: mem+=10, send_relay_c1=true Label3: out_client1[oc1]=out_relay[outr], outr++, t=0 Label4: mem+=10, client1prio=true, c1_to_pen=true send_c1=false, relay_to_c1=false t<=25 cpu'=7 Case2 Case3 Waiting_for_Relay Case1: send_c1 Case2: t==25 Case3: relay_to_c1 Case4: t==103 Label2 Label3 Client1_to_PenWaiting_for_Pen t<=103 cpu'=10 Case4 Label4 Init (b) The Client1 component modeled in REMES. Entry Server1 ExitCase2 Label2 Server1_to_RelayInit t<=68 cpu'=14 Case1 Label1 Case1 Label1 Init: clock t; resource cpu: Tc, mem: TA; int is1, inr, sever1[], in_relay[]; bool send_relay_s1, send_s1 Case1: send_s1 Case2: t==68 Label1: server1[is1]=in_relay[inr], inr++, t=0 Label2: send_relay_s1=true, mem+=34, send_s1=false (c) The Server1 component mod- eled in REMES. Figure 6. Pen, Client1 and Server1 modeled in REMES. UPPAAL as follows: A not deadlock By using the measured values of the demonstrator’s extra- functional attributes, we aim at: • model-checking the REMES system model’s capacity (number of handled requests per second), as well as • computing an optimal execution trace for the overall consumption of resources (CPU and memory). Verifying the demonstrator’s capacity is a crucial perfor- mance requirement of the system, and we will next show that we actually deliver a performance guarantee, since model-checking is an exhaustive verification technique. To accomplish the response time verification, we define a global clock variable that stores the elapsed time from the start time of sending the authorization request to the Pen, until the request is served and returns to the call controller in the basic service. Computing optimal resource-aware traces relies on a weighted sum representation of the resource function, which accounts for both types of resources simultaneously, allowing the designer to set the level of criticality for both resources (identical weights meaning equal importance). C. PTA model of the ENT demonstrator and analysis results We have analyzed the REMES-based ENT demonstrator, by semantically translating it into a network of PTA models, in UPPAAL CORA3 . Here, we present only the PTA models of the Pen Input submode and the Client1 mode, shown in Figure 7 and 8, respectively. The PTA of Pen Input has six locations: Start, Receive IP, Waiting for BasicService, Pen to Client1, 3See the web page www.uppaal.org for more information about the UP- PAAL CORA tool. UPPAAL CORA is a branch of the UPPAAL tool for cost optimal reachability analysis.
  • 7. Pen to Client2, Pen to Client3 and Pen to Client4. The synchronization between Basic Service and Pen Input is modeled with channel req. Similarly, the synchronization between Pen Input and Client1 is modeled with channel send c1. The selection of the clients is controlled by the variables client1prio, . . . , client4prio and counter. The PTA of Client1 consists of five locations: Start, Waiting for Pen, Client1 to Relay, Waiting for Relay and Pen to Client1. The synchronization between Client1 and Relay is modeled by using two channels send relay c1 (models requests sent from Client1 to Relay), and c1 to relay (models responses sent from Relay to Client1). The synchronization between Client1 and Pen Output is modeled by using channel c1 to pen. In our analysis model, we consider CPU to be a more critical resource than memory. The cost model that we use is derived from the measurements carried out on the actual source code. The resource-usage cost is influenced by the weights of CPU and memory, and the consumed resources of all transitions and locations. In the ENT demonstrator, we consider the following total cost function ctot = wcpu × ccpu + wmem × cmem where wcpu = 2 and wmem = 1, and ccpu and cmem are the accumulated consumed amounts of CPU and memory, respectively. After providing UPPAAL CORA with the PTA model of the ENT demonstrator, we were able to study the minimum cost reachability problem i.e., to find an execution trace of the system that results in the minimum possible total resource cost. For illustration, let’s check for an optimal trace satisfying the reachability property: E<>(processed[3]==4), that is, a trace in which four requests are eventually pro- cessed by the ENT demonstrator. The execution trace that was found by UPPAAL CORA is presented in Figure 9 and the cost of this best trace is 173308. We use the value 781 ms (from code measurements) as time needed for the basic service to process 500 requests. From our analysis model we were also able to determine the time needed for processing a certain number of requests. For response time only, we have performed the analysis in UPPAAL (in order to get a TA model we have removed the costs from the PTA model). UPPAAL has calculated that the time needed for handling 1 request is 3,42 time units (ms). If we consider that the processing time grows linearly, then for processing 500 requests our UPPAAL model of the ENT demonstrator needs 1710 time units. This number is just slightly higher than the source code measured value, that is, 1690 ms. The verification result shows that the capacity of the demonstrator (extension service alone) is actually greater than the required 100 requests per second. Also, this result concludes our behavioral model formal validation, regarding the end-to-end response time, which has been a central design issue of the demonstrator. VII. RELATED WORK Today there exist several languages and environments for modeling, verification and validation of embedded systems, such as CHARON [2], REMES and timed automata. Some of these languages and environments have been applied to real-sized industrial case studies. CHARON is a modeling language for modular design of interacting hybrid systems. CHARON has been applied for modeling and analysis of a wide range of systems, such as automotive power trains and vehicle-to-vehicle control systems [17]. CHARON does not provide a mechanism for adding information about systems resource consumption. Accordingly, resource-wise properties can not be verified with CHARON. Timed automata is a general purpose modeling framework that can be analyzed by using the UPPAAL tool-kit or the KRONOS [12] model checker. UPPAAL has been used for formal analysis of a number of industrial case-studies, which can roughly be divided in two classes: realtime controllers [19] and real-time communication protocols [7], [11], [15], [25]. The modeled systems have been validated and verified using the tool UPPAAL to satisfy the func- tionality and safety requirements on the system. However, resource-wise analysis have not been performed. REMES has recently been used for behavioral modeling and analysis of an abstracted versions of a temperature control system [27], a car wash PLC controller [27] and an intelligent shuttle system [10]. For analysis pur- poses REMES models have been translated to (priced) timed automata and they have been verified in the UPPAAL tool- kit. The listed case studies have been checked for correctness against functional, timing and resource-wise requirements. In contrast to our case study, the resource-wise cost model used in the listed case studies has not come from the actual source code. GIOTTO [14] is a time-triggered language and a tool- supported methodology for the development of distributed real-time embedded control systems. GIOTTO has been used in [21] for developing an implementation model of an elevator- and a hovercraft system. In order to perform analysis, GIOTTO models are translated to timed automata and verified in UPPAAL . The translation from GIOTTO to UPPAAL is an effort to bridge the gap between con- trol law design and real-time implementation, by offer- ing formal analysis at an intermediate layer (the GIOTTO model) that can check both platform independent (such as functionality and timing) and platform dependent prop- erties (e.g., synchronization and scheduling). In contrast to REMES, GIOTTO does not consider resource-wise system behavior. HYTECH [16] is a symbolic model checker for formal analysis of linear hybrid automata. It has been used for verification of an audio control protocol [16] and abstracted
  • 8. Figure 7. PTA model of the Pen Input component. Figure 8. PTA model of the Client1 component. automotive control system [26]. With HYTECH one can perform reachability verification, and parametric analysis. One drawback of HYTECH is that it is a text-only tool and as such is not particularly “user-friendly”. BIP [22], consists of a research-oriented component model and associated execution/simulation and verification tools. It focuses on verifying safety-, timing- (e.g., worst- case execution time or end-to-end delay) and synchroniza- tion properties. Several case studies have been carried out with BIP, such as MPEG4 encoder [22], TinyOS [5], and a robotic system called DALA [4]. VIII. CONCLUSIONS In this paper, we have presented a case study where our recently introduced framework REMES is applied to model and analyze a new telecommunication system by Ericsson Nikola Tesla. The new system is horizontally developed by adding a newly developed authentication, authorization, and accounting service to a complex basic service telecom system consisting of several existing and reused components such as a DIAMETER standard protocol, an open-source Pen load balancer, and a number of servers. As modeling result, we have shown how the system has been modeled in a component based fashion using the ProCom component modeling language, and how the functional, timing, and resource-wise behavior of the key components of the system have been modeled in REMES. We have also shown how the combined model is semantically translated into a network of (priced) timed automata to enable model-checking in the tools UPPAAL and UPPAAL CORA. In the system analysis, we have, in addition to function and timing, considered a weighted sum of the resources CPU and memory, in which designers have chosen to consider CPU the most critical resource (twice the relative weight of memory). In this setting, we have derived an optimal system trace, the minimum time, and the minimal total accumulated weighted resource cost for processing a given number of system requests (in our case 1 and 4). Allowing the system designers to gain deeper understanding in the system’s resource behavior might prove valuable to further optimize the system design, and adjust the resources provided by the underlying implementation platform, accordingly. As future work on the ENT demonstrator formal analysis, we plan to model and verify other protocols for serving requests than round-robin. By checking possible perfor- mance in such other cases (like the first-in-first-out protocol), we could feed Ericsson researchers with important insights on the system’s behavior, which might save unnecessary implementation time. We also intend to consider the case of heterogeneous servers, that is, processing the same request takes different time on each server, respectively. REFERENCES [1] R. Alur. Optimal paths in weighted timed automata. In HSCC01: Hybrid Systems: Computation and Control, pages 49–62. Springer, 2001. [2] R. Alur, T. Dang, J. Esposito, Y. Hur, F. Ivanˇci´c, V. Kumar, I. Lee, P. Mishra, G. Pappas, and O. Sokolsky. Hierarchical Modeling and Analysis of Embedded Systems. Proc. of the IEEE, 8(3):231–274, 1987. [3] R. Alur and D. L. Dill. A theory of timed automata. Theoretical Computer Science, 126(2):183–235, 1994.
  • 9. Pen_Input Pen_Output Relay_Output Processed_MsgBasic_Service Client1 Relay_InputClient2 Client3 Client4 Server1 Server2 Server3 Server4 Waiting_for_BasicService Client1_to_Relay Waiting_for_ClientsResponses Waiting_for_ServersStart Start Start Start Start Start Waiting_for_Clients Idle Idle Idle Idle Waiting_for_Clients Idle Idle c_ip Sending Receive_IP Waiting_for_Pen Waiting_for_Pen Waiting_for_Pen Waiting_for_Pen Sending req Pen_to_Client1 send_c1 Waiting_for_BasicService send_relay_c1 Waiting_for_Relay Relay_to_Server1 send_s1 Server1_to_Relay req Client2_to_Relay Sending Pen_to_Client2 send_c2 Waiting_for_BasicService send_relay_s1 Idle Relay_to_Client1 send_relay_c2 Waiting_for_Relay Relay_to_Server2 Client1_to_Pen Waiting_for_Servers relay_to_c1 send_s2 Waiting_for_Clients Server2_to_Relay req Sending Pen_to_Client3 send_c3 Waiting_for_BasicService Client3_to_Relay c1_to_pen Waiting_for_Pen Pen1_to_BasicService processed1 Waiting_for_ClientsResponses Idle send_relay_s2 Idle Relay_to_Client2 send_relay_c3 Waiting_for_Relay Relay_to_Server3 relay_to_c2 Waiting_for_ServersClient2_to_Pen send_s3 Waiting_for_Clients Server3_to_Relay req Sending Pen_to_Client4 send_c4 Waiting_for_BasicService Client4_to_Relay c2_to_pen Pen2_to_BasicServiceWaiting_for_Pen processed2 Waiting_for_ClientsResponses Idle send_relay_s3 Relay_to_Client3 send_relay_c4 Waiting_for_Relay Relay_to_Server4 relay_to_c3 Waiting_for_ServersClient3_to_Pen send_s4 Waiting_for_Clients Server4_to_Relay Client1_to_Relay Sending req Pen_to_Client1 send_c1 Waiting_for_BasicService c3_to_pen Waiting_for_Pen Pen3_to_BasicService processed3 Waiting_for_ClientsResponses Idle send_relay_s4 Idle Relay_to_Client4 Waiting_for_Relay Relay_to_Server1 send_relay_c1 Client4_to_Pen relay_to_c4 Waiting_for_Servers Waiting_for_Clients send_s1 Server1_to_Relay Client2_to_Relay Sending req Pen_to_Client2 send_c2 Waiting_for_BasicService c4_to_pen Waiting_for_Pen Pen4_to_BasicService processed4 Waiting_for_ClientsResponses Idle Figure 9. Optimal trace for processing four requests.
  • 10. [4] A. Basu, M. Gallien, C.Lesire, T-H. Nguyen, S. Bensalem, F. Ingrand, and J. Sifakis. Incremental Component-Based Construction and Verification of a Robotic System. In Proc. of the 18th European Conference on Artificial Intelligence (ECAI 2008). IOS Press, 2008. [5] A. Basu, L. Mounier, M. Poulhi`es, J. Pulou, and J. Sifakis. Using BIP for Modeling and Verification of Networked Sys- tems – A Case Study on TinyOS-based Networks. Proc. of the 6th IEEE International Symposium on Network Computing and Applications, 0:257–260, 2007. [6] G. Behrmann, A. Fehnker, T. Hune, K. G. Larsen, P. Petters- son, J. Romijn, and F. Vaandrager. Minimum-Cost Reach- ability for Priced Timed Automata. In Proc. of the 4th International Workshop on Hybris Systems: Computation and Control, LNCS 2034, pages 147–161. Springer–Verlag, 2001. [7] O. Bengtsson, W. O. D. Griffioen, K. J. Kristoffersen, K. G. Larsen, F. Larsson, P. Pettersson, and W. Yi. Automated Analysis of an Audio Control Protocol Using UPPAAL. In Journal of Logic and Algebraic Programming, 2002. [8] T. Brihaye, V. Bruy`ere, and J-F. Raskin. Model-checking for weighted timed automata. In Proc. of FORMATS-FTRTFT04, number 3253 in LNCS, pages 277–292. Springer–Verlag, 2004. [9] Tom´aˇs Bureˇs, Jan Carlson, Ivica Crnkovi´c, S´everine Sentilles, and Aneta Vulgarakis. ProCom – the Progress Component Model Reference Manual, version 1.0. Technical Report MDH-MRTC-230/2008-1-SE, M¨alardalen University, June 2008. [10] A. ˇCauˇsevi´c, C. Seceleanu, and P. Pettersson. Modeling and Reasoning about Service Behaviors and their Compositions. In Proc. of 4th International Symposium On Leveraging Applications of Formal Methods, Verification and Validation (ISOLA 2010). Springer LNCS, October 2010. [11] A. David and W. Yi. Modelling and Analysis of a Commercial Field Bus Protocol. In Proc. of 12th Euromicro Conference on Real-Time Systems, pages 165–172. IEEE CS Press, 2000. [12] C. Daws and S. Yovine. Two examples of verification of multirate timed automata with Kronos. In Proc. 1995 IEEE Real-Time Systems Symposium, RTSS’95, pages 66–75. IEEE CS Press, 1995. [13] S. Edwards, L. Lavagno, E. A. Lee, and A. Sangiovanni- Vincentelli. Design of embedded systems: formal models, validation, and synthesis. Proc. of the IEEE, 85(3):366–390, 1997. [14] T. A. Henzinger, B. Horowitz, and C. M. Kirsch. Giotto: a Time-triggered Language for Embedded Programming. Tech- nical report, Berkeley, CA, USA, 2001. [15] A. Hessel and P. Pettersson. Model-based Testing of a WAP Gateway: an Industrial Case-Study. In International Workshop on Formal Methods for Industrial Critical Systems (FMICS’06), pages 116–131. Springer-Verlag, February 2006. [16] P-H. Ho and H. Wong-Toi. Automated Analysis of an Audio Control Protocol. In Proc. of Computer Aided Verification (CAV’95), pages 381–394. Springer-Verlag, 1995. [17] F. Ivanˇci´c. Report on Verification of the MoBIES Vehicle- Vehicle Automotive OEP Problem, 2002. [18] D. Ivanov, M. Orli´c, C. Seceleanu, and A. Vulgarakis. REMES Tool-chain: A Set of Integrated Tools for Behavioral Modeling and Analysis of Embedded Systems. In Proc. of the 25th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 361–362, 2010. [19] M. Lindahl, P. Pettersson, and W. Yi. Formal Design and Analysis of a Gear-Box Controller. In Proc. of the 4th Workshop on Tools and Algorithms for the Construction and Analysis of Systems, LNCS 1384, pages 281–297. Springer– Verlag, 1998. [20] D. Matijaˇsevi´c, I. Gizdi´c, and D. Huljeni´c. Mechanisms for Diameter service performance enhancement. In Proc. of the 17th International Conference on Software, Telecommunica- tions and Computer Networks - SoftCOM, 2009. [21] R. K. Poddar and P. Bhaduri. Verification of Giotto based embedded control systems. Nordic Journal of Computing, 13:266–293, December 2006. [22] M. Poulhi`es, J. Pulou, C. Rippert, and J. Sifakis. A Methodology and Supporting Tools for the Development of Component-Based Embedded Systems. In Proc. of the 13th Monterey conference on Composition of embedded systems: scientific and industrial issues, pages 75–96, Berlin, Heidel- berg, 2007. Springer-Verlag. [23] C. Seceleanu, A. Vulgarakis, and P. Pettersson. REMES: A Resource Model for Embedded Systems. In Proc. of the 14th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2009). IEEE CS, June 2009. [24] S. Sentilles, A. Vulgarakis, T. Bureˇs, J. Carlson, and I. Crnkovi´c. A component model for control-intensive dis- tributed embedded systems. In Proc. of the 11th Interna- tional Symposium on Component Based Software Engineering (CBSE2008), pages 310–317. Springer, Oct 2008. [25] D. P. L. Simons and M. Stoelinga. Mechanical verification of the IEEE 1394a root contention protocol using Uppaal2k. STTT, 3(4):469–485, 2001. [26] T. Stauner, O. M¨uller, and M. Fuchs. Using HyTech to Verify an Automotive Control System. In Proc. Hybrid and Real-Time Systems (HART’97), LNCS 1201, pages 139–153. Springer-Verlag, 1997. [27] A. Vulgarakis and A. ˇCauˇsevi´c. Applying REMES behavioral modeling to PLC systems. In Proc. of 22nd International Symposium on Information, Communication and Automation Technologies - ICAT 2009. IEEE, October 2009. [28] A. Vulgarakis, S. Sentilles, J. Carlson, and C. Seceleanu. Integrating Behavioral Descriptions into a Component Model for Embedded Systems. In Proc. of the 36th Euromicro Con- ference on Software Engineering and Advanced Applications (SEAA). IEEE, September 2010. [29] M. Zemlji´c, I. Skuliber, and S. Deˇsi´c. Utilization of Open- Source High Availability Middleware in Next Generation Telecom Services. In Proc. of the 17th International Con- ference on Software, Telecommunications and Computer Net- works - SoftCOM, 2009.