<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Model-Driven Performance Evaluation for Service Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Claus Pahl</string-name>
          <email>cpahl@computing.dcu.ie</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marko Boˇskovi´c</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wilhelm Hasselbring</string-name>
          <email>hasselbring@informatik.uni-oldenburg.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dublin City University, School of Computing</institution>
          ,
          <addr-line>Dublin 9</addr-line>
          ,
          <country country="IE">Ireland</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Oldenburg, Software Engineering</institution>
          ,
          <addr-line>D-26111 Oldenburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Service engineering and service-oriented architecture as an integration and platform technology is a recent approach to software systems integration. Software quality aspects such as performance are of central importance for the integration of heterogeneous, distributed service-based systems. Empirical performance evaluation is a process of measuring and calculating performance metrics of the implemented software. We present an approach for the empirical, model-based performance evaluation of services and service compositions in the context of model-driven service engineering. Temporal databases theory is utilised for the empirical performance evaluation of model-driven developed service systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The complexity of software makes its development costly and error-prone.
Modeldriven engineering (MDE) is an approach to deal with complexity by making
software models primary artefacts of the development process. A model is closer
to the problem domain than to the underlying implementation. Therefore, it
moves the focus of software engineering from technology-specific implementation
to the problem domain. MDE utilises two aspects of models. Firstly, complete
implementations can be generated from models, but more importantly here,
predictions about a software system can be made based on a model. A fully
model-based approach hide code-level details and allows a software architect to
concentrate on design-stage artefacts.</p>
      <p>
        To provide trustworthy software, quality attributes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] have to be satisfied.
Quality aspects have not been addressed in sufficient depth in the context of
heterogeneous, distributed, service-based systems. Service engineering and
serviceoriented architecture as an integration and platform technology is a recent
approach to service-based software system integration. Performance as one of
quality attributes, defined as a degree to which a software system meet its objectives
for timeliness [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], is of central importance in this context.
      </p>
      <p>
        At present, research in model-driven performance engineering is mostly
dedicated to simulation and performance prediction with mathematical analysis
methods [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]. Nevertheless, predictions have to be validated when a software
system is implemented and deployed. Validation should be based on modelling
constructs as predictions are made according to them. Currently, timing
behaviour is analyzed based on source code constructs (e.g., method execution
time). In MDE, the level of abstraction is raised. Consequently, observations
should be based on modelling constructs, such as components and their states,
activities, interactions or methods.
      </p>
      <p>
        In software engineering, instrumentation is the process of adding software
probes to the program [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Software probes are additional pieces of code for
collecting data about the software execution. A model-based language for
instrumentation needs to be derived. Instrumentation languages can enforce data
collection in relational manner.
      </p>
      <p>
        We investigate the empirical performance evaluation of model-driven
servicebased systems. We focus on composed (or orchestrated) services processes and
address their performance behaviour. We present work-in-progress that
comprises:
– an instrumentation notation for service models that allows specific service
model elements such as services or composition and flow operators to be
annotated and marked as providing performance-relevant time information
at execution time. We use UML activity diagrams to express service
compositions and base our instrumentation language on this UML diagram format.
Our work follows others in using UML beyond classical software design. The
Erickson-Penker Business Extensions for UML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] for instance permits UML
to document an entire business enterprise.
– model-driven transformation techniques that generate executable code
including the monitoring instructions necessary to record time information.
– a trace analysis query language. This language provides the ability to
calculate performance metrics such as response time and throughput. The
evaluation is based on temporal databases theory [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The temporal databases
theory relates facts stored in a relational manner with time information. A
relational trace is a dynamic list of events and timing information generated
by the program as it executes [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. A query language allows the evaluation
based on the traces in terms of service model elements.
      </p>
      <p>Empirical code-level instrumentation and analysis has been investigated in depth.
Simulation and analytical models have been used to provide support at design
stages of the development process. Our contribution represents a novel approach
for the empirical, model-level evaluation of performance for service-based
software systems that
– firstly, an empirical and, thus, ultimately more accurate and reliable
technique than simulation and analysis,
– secondly, a fully model-based evaluation technique for the architect that
hides code-level details.</p>
      <p>The paper is structured as follows. The next section gives an overview of
model-driven engineering and service engineering. Motivation and foundations
of performance engineering are presented in Section 3. Section 4 introduces the
instrumentation language. Performance monitoring through code generation and
instrumented execution is described in Section 5. The analysis of evaluation data
is discussed in Section 6. Related work is discussed in Section 7 and Section 8
concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Model-Driven Development and Service Engineering</title>
      <p>
        The general idea of model-driven engineering (MDE) is to introduce a model as
a first-class entity. With models, the development focus is moved to the problem
domain. Models often enable the exploitation of formal methods. With
abstraction, the understanding of the problem and its realization can be improved.
Often, a complete implementation can be generated [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Model Driven
Architecture (MDA) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is one approach for MDE initiated by the Object
Management Group (OMG), a consortium of software vendors and users. MDA is based
on three ideas: direct representation to shift the focus of software development
away from technology toward the problem domain, automation to mechanize
the relation of semantic concepts of problem domain and implementation
domain, and open standards to enable interoperability to close the semantic gap
between domain problems and implementation technologies. Our aim is to
enable the evaluation of service performance when the primary artefact is a service
(or service process) model.
      </p>
      <p>
        A service is defined as a piece of software, whose public interfaces are defined
and described using an interoperable format. Other systems can interact with the
service in a manner prescribed by its definition. The composition of services to
orchestrated processes is a major concern in current Web service research [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ].
These recent developments have strengthened the importance of architectural
questions such as service composition.
      </p>
      <p>Modelling can support these architectural questions. Behaviour and
interaction processes are central modelling concerns for service-based software
architectures. Fig. 1 illustrates how a UML activity diagram can be used to express a
service orchestration – at an abstract level without addressing individual service
providers. Four services that provide an online bank account facility login,
balance, transfer, and logout are orchestrated into a process starting with a login,
then allowing a user to iteratively choose between balance enquiries and money
transfers, before logging out.</p>
      <p>Explicit models enable developers and clients of services to create reliable
service architectures using tool support. A model-driven development approach
can even support automated code generation and performance analysis.
Assuming that concrete, provided services are already attached to each service element,
then an executable WS-BPEL process for the Web service platform can be
generated. As we are going to demonstrate, the service composition model can be
transfer
{void}
instrumented for empirical performance analysis and executable processes
including performance monitoring functionality can be generated.</p>
    </sec>
    <sec id="sec-3">
      <title>Performance Evaluation 3</title>
      <p>3.1</p>
      <sec id="sec-3-1">
        <title>Software Performance, Evaluation and Motivation</title>
        <p>
          Performance is considered as the degree to which a software system or
component meets its objectives for timeliness [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. It can be evaluated with simulation,
analytical modelling or empirically [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]:
– Simulation is an imitation of a program execution focusing on specific
aspects. It is less expensive than building a real system for empirical evaluation.
It is flexible as changes can be dealt with easily if the simulation is derived
automatically. However, simulation can suffer from a lack of accuracy.
– Analytical modelling is a technique where a system is mathematically
described. Results of an analytical model can be less accurate than real-system
measurements. However, analytical models are often easy to construct.
– Empirical evaluation is performed by measurements and metrics calculation.
        </p>
        <p>They provide the most accurate results as no abstractions are made.
The downside of performance evaluation by implementation, however, includes
hardware dependency, extra cost of creating a prototype and deploying it,
implementation deficiencies, and challenges in representative workload creation.
Two observations led us to consider model-based empirical evaluations. Firstly,
an approach for empirical evaluations of software performance for service-based
software systems is still lacking despite its accuracy benefits. Secondly,
empirical measurements and evaluations are currently performed only at the code level
and mostly based on code constructs.</p>
        <p>In model-driven engineering, observations of behaviour should be in terms
of modelling constructs. Instrumentation for observing software should also be
expressed in terms of these constructs in order to prevent the software
architecture from having to represent transformation details and having to deal with
code-level details. A necessary part of empirical performance evaluation is the
execution data collection through instrumentation.</p>
        <p>Model with Instrumentation</p>
        <p>Execution with Probes
Query</p>
        <p>&amp;</p>
        <p>Evaluate
Event &amp; Interval</p>
        <p>
          Traces
Instruments and instrumentation are commonly used for observing system
behaviour and evaluating system properties in a range of disciplines. In software
engineering, instrumentation is the process of adding software probes to a
program [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Software probes are pieces of code for collecting data about the software
execution. Two techniques for data collection exist:
– Sampling is a technique where parts of a program are sampled during its
execution in some time interval - an example is sampling the program stack
to follow program execution. It is a statistical technique in which a
representative sample of data about the execution is taken. An advantage is that the
impact on the performance of the program does not depend on the execution
of the program. However, collected samples are different from run to run.
        </p>
        <p>
          The possibility that infrequent events are missed is another drawback.
– Event tracing is a process of generating traces of events in the software
execution. A program trace is a dynamic list of events generated as the
program executes [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. A trace contains time-ordered events and can be used to
characterize the overall program behaviour. Problems can be caused due to
measurements. Each probe that is added causes execution overhead
(performance) and event traces require resources (memory).
        </p>
        <p>Due to its greater reliability, event tracing is used here. Event tracing is also more
suitable for service-based software where the focus is on services as black-box
entities that interaction in compositions. Traces are presented in our approach
in relational manner using the concepts of temporal database theory to support
the performance evaluation of traces.
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Temporal Databases</title>
        <p>
          Temporal databases support a notion of time [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. In contrast to conventional
databases, in which only facts are stored, each fact stored in a temporal database
is associated with some time information. These facts can be related to a valid
time dimension and to a transaction time dimension. The valid time dimension
is related to the time when the fact was true in reality. The transaction time
dimension is related to the presence of the fact in the database.
        </p>
        <p>
          Temporal databases which store only facts about the past are called
historical databases [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Historical databases define two kinds of relations, event and
interval relations [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Interval relations are used for storing facts which were
true for some time interval. Event relations are used for storing facts which were
true at some particular time point.
        </p>
        <p>We utilise concepts from historical databases, such as both interval and event
relations, to instrument service composition models.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Instrumentation</title>
      <p>The execution of a program, such as execution and interactions of a
composite service, can be characterized in terms of event and interval relations. For
instance, if an element of a modelling language models a part of the program
execution which lasts for some time interval, it can be instrumented by a
specialization of the interval trace. Our instrumentation technique is developed around
an instrumentation language, which is integrated with the service modelling
language, i.e. is an extension of the UML activity diagrams that we use to model
service orchestrations. Both service orchestration language and instrumentation
language are presented at the meta-model layer. We present an overview of the
approach in Fig. 2 that relates modelling and execution.
4.1</p>
      <sec id="sec-4-1">
        <title>Service Process Meta-model</title>
        <p>The banking example based on the orchestration of services to a service process
from Fig. 1 is formulated in terms of a UML activity diagram. A (simplified)
definition of UML activity diagrams as a process language is based on activity
nodes and edges to represent services and their connectivity, respectively. We
have given preference to UML activity diagrams over other process notations
such as BPMN, because of UML’s elaborate language extension mechanisms.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Instrumentation Meta-model</title>
        <p>Our instrumentation notation comprises of two parts. Firstly, a basic trace
package (Fig. 3) to capture the notion of traces, i.e. event and interval traces, and
operations to capture these traces. Secondly, the instrumentation of activity
diagrams using the MOF profile extension mechanism (Fig. 4).</p>
        <p>The basic trace package reflects the required time dimensions and the
recording concepts. The activity diagram instrumentation utilises these. This
separation allows the basic instrumentation principles to be reused in a range of
problem-specific or even model-specific circumstances – which is important as
domain-specific languages are increasingly important. In the given
instrumentation, actions as the central elements of activity diagrams and all control nodes
Trace</p>
        <p>Operation</p>
        <p>IdentOp
EventTrace</p>
        <p>IntervalTrace</p>
        <p>IntervalOp</p>
        <p>EventOp
Interval</p>
        <p>Period</p>
        <p>StartPeriod EndPeriod</p>
        <p>EventTime
are annotated. The execution of actions, which represent services at the model
level, takes some time, i.e. an interval trace should be recorded at performance
evaluation or execution time. We assume control flow decisions such as start
and end of the overall process or choices and mergers as instantaneous events,
i.e. modelled as event traces. This is a decision that can be modified at the
Instrumentation Diagram level, without affecting the basic trace package. This
provides for easy adaptability of the instrumentation to different interpretations
and modelling languages.
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Instrumentation Application</title>
        <p>The application of the instrumented activity diagram is illustrated in Fig. 5. Two
types of model elements - actions such as login or transfer and control nodes such
as the start or the first decision point - are instrumented. An interval consisting
of begin and end time of the service executions that implement the actions are
recorded as a consequence of this instrumentation. Events, i.e. individual time
stamps, are recorded for the control nodes.</p>
        <p>For the service architect, it is import to find an adequate instrumentation
that provides answers to the relevant performance questions. For instance, in a
particular situation only the response times (average, maximum) of particular
services, such as the account management services balance and transfer, are of
interest. Then, the instrumentation needs to reflect these requirements.</p>
        <p>While we consider this instrumentation of actions and control nodes to be
the standard, the approach is flexible enough to accommodate context-specific
customisations. Some control nodes could be excluded or other modelling
elements could be added. This is only limited by the extent to which transformation
and code generation support the different model element instrumentations. The
instrumentation of elements could be disabled that are difficult to implement or
whose analysis would not provide useful performance information.
Activity Node
target
source
in
out</p>
        <p>Activity Edge
Object Node</p>
        <p>Action</p>
        <p>Control Node Control Flow Object Flow
ActionTrace</p>
        <p>ControlNode</p>
        <p>Trace</p>
        <p>
          IntervalTrace EventTrace
The implementation of the instrumentation should be, firstly, easy to realise and,
secondly, implemented without significant overhead. Aspects and interception
techniques can be utilised to implement the instrumentation and data
collection. Although an important aspect of performance evaluation, the focus of this
paper is on the model-related issues of instrumentation specification (such as
instrumentation meta-models) and data query and assessment activities (which
are discussed later on). We only discuss principles of monitoring here.
In the services context, often the problem arises that the addition of probes into
the service implementation is not possible due to the nature of services as true
black box software components. We therefore distinguish two scenarios:
– controlled environments that allow access to code. Aspect Oriented
Programming (AOP) [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] is a programming approach, suitable for the controlled
approach, which can be used for transparent software instrumentation. AOP
is a technique that enables the separation of instrumentation from the
development of the core software functionality [
          <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
          ]. Marenholz et al. [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
use AspectC++ for the instrumentation of operating systems for debugging,
profiling/measurement, and runtime surveillance/monitoring.
– open environments in which services are black-box components. For a
transparent instrumentation of component systems, interceptors can be used.
Interceptors are similar to AOP and can intercept method invocations to
transparently instrument a program [
          <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
          ]. Software probes can be predefined
and placed in stubs and skeletons during an interface description compilation
[
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. The probes can be turned on and off at runtime.
        </p>
        <p>&lt;&lt;ActionTrace&gt;&gt;</p>
        <p>LoginTrace</p>
        <p>ServiceTime: IntervalTime
The JBoss Application Server, for instance, enables the transparent
aspectoriented addition of functionality. Its AOP features allow the interception of
events and addition of trigger functionality based on those events.
5.2</p>
      </sec>
      <sec id="sec-4-4">
        <title>Generation of Instrumented Code</title>
        <p>Aspect Oriented Programming, interceptors, and bytecode and platform
instrumentation are approaches that enable the collection of data without affecting the
functionality. We utilize these ideas to collect data about the software execution
at the model level as a separate concern.</p>
        <p>The first step, however, is the generation of executable and instrumented
code. Activity diagrams that model service orchestrations can be converted into
executable Web services processes, if invocation information such as the service
location is added to the abstract service process description:
– AOP concepts are used to generate the instrumented executable service code.
– Interception mechanisms add instrumentation and data collection.
We propose ATL transformations – the ATLAS Transformation Language ATL is
a tool-supported hyrbid model transformation language for the ecplise platform
– to transform activity diagrams into AOP-based code.
5.3</p>
      </sec>
      <sec id="sec-4-5">
        <title>Performance Data Recording</title>
        <p>The instrumentation includes monitoring and data collection functionality. Data
is stored in a historical database such as TimeDB or temporal features in Oracle
database servers. Fig. 6 shows a sample recording for the composite process for
online banking based on the instrumentation defined in Fig. 5. Here, only data
for the decision node and the transfer service are provided as samples.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Performance Evaluation</title>
      <sec id="sec-5-1">
        <title>Analysis Language</title>
        <p>Temporal and historical databases – which provide the conceptual background
for the analysis part of our evaluation technique – are usually extensions of
traditional relational databases. SQL is therefore available as a query language
to retrieve information in relation to the recorded event and interval times and
to use the language for common statistical operations.</p>
        <p>The objective is to extract performance-relevant information from the basic
times stored in a historical database that allows a software architect to assess the
overall performance of individual services and also orchestrated processes. SQL
is sufficient as a query language to formulate the relevant performance
assessment queries. More advanced solutions like data warehouses with their extended
evaluation support are not required. We can classify performance assessments as
follows:
– Response time assessment: response times of activities are usually recorded
as intervals. The SQL aggregate functions, such as average AVG or maximum
MAX, provide the relevant answers.
– Frequency and distribution of invocations: the distribution of invocations
(workload) between the individual services can be determined based on the
calculation of ratios between total numbers of invocations.</p>
        <p>The database representation directly reflects the modelling layer, as the
representation is generated from the model instrumentation. The central goal of
fully model-based performance evaluation is therefore achieved. The queries can
consequently be formulated in terms of relevant model elements - which is one
of the central objectives of model-driven quality engineering.
6.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Performance Analysis</title>
        <p>We have already classified the different types of performance assessments in the
previous section. We now illustrate these types.</p>
        <p>The average response time for service ’transfer’ can be determined as follows:</p>
        <sec id="sec-5-2-1">
          <title>SELECT AVG(ServiceTime) FROM TransferTrace</title>
          <p>The determination of the maximum time can be formulated analogously. In
the SOA context, where individual services are often provided by external
organisations, this information is usually part of contracts and service-level agreements.</p>
          <p>The proportion of ’transfer’ invocations based in relation to all user selections
(decisions) can also be formulated:</p>
        </sec>
        <sec id="sec-5-2-2">
          <title>SELECT COUNT(ServiceTime) / COUNT(DecisionTime) FROM TransferTrace, DecisionTrace</title>
          <p>This would allow a software architect to judge the frequency of individual
service activations in typical application scenarios.
7</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Related Work</title>
      <p>
        There are several approaches for analytical evaluations of software performance
from annotated models [
        <xref ref-type="bibr" rid="ref20 ref7">7, 20</xref>
        ] and simulation [
        <xref ref-type="bibr" rid="ref21 ref26">21, 26</xref>
        ]. A detailed survey related
to performance prediction can be found in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. There are also several approaches
for measurement and instrumentation in the context of code-centric
development. Our contribution is an empirical instead of analytic technique for
modellevel evaluation.
      </p>
      <p>
        – Snodgrass [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] introduces a relational approach for monitoring systems. His
work shows that a relational data structure can be an appropriate formalism
for monitoring dynamic behaviour of a system. The programmer manually
defines the instrumentation according to concepts of an existing system. Our
approach provides a schema for the definition of instrumentation languages
according to the modelling formalism used for the specification of programs.
– Liao et al. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] introduce a high-level language for program instrumentation
and monitoring. A programmer specifies monitoring and measuring
information, based on which a static analysis of code is done and instrumentation
is added. However, their language is suited only for procedural languages.
– Another language for program instrumentation is the Metric Description
Language (MDL) [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. MDL has the ability to define instrumentation as a
separate concern, independent of the program functionality, define points at
which measurement actions should take place and weave these into a program
at runtime. However, it is limited to functionally decomposed systems.
      </p>
      <p>
        The idea on integrating software models and instrumentation is introduced in
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. The authors develop a set of tools for a model-driven instrumentation. They
define different program models such as a functional program model, a functional
implementation model, a performance model and a monitoring model. Based on
the monitoring model, the source code is instrumented and trace descriptions
are generated. In our approach, the primary artefact of software development is
a model. Therefore, instrumentation is done at the model level. The functional
implementation model is actually a product of software development.
Furthermore, instrumentation defines what to measure and where to measure, and from
these two models, automatically source code is produced.
      </p>
      <p>
        In the specific context of service-based modelling, a lack of performance
analysis is even more evident, although the need to address performance is recognised
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and some solutions exist. The Application Response Measurement (ARM)
standard [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] enables the collection of performance data. It is a conceptual library
suited for usage with programming constructs. We relate our data collection
with modeling constructs on a higher level of instrumentation. The standard
only enables the collection of data, but not a systematic way of analyzing. ARM
is only an interface for measurement. We introduce a systematic approach for
data analysis as well as for instrumentation. A different architectural approach
is taken in workflow management contexts [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Techniques in available workflow
management languages and systems exist that provide timers, which allow to
measure the invocation times out-of-the box by the workflow engine itself. Our
solution adds a summarization component that performs arithmetic functions
over a configurable period of time in a different architectural setting.
8
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>Empirical performance evaluation enables the validation of timeliness of a
software system. In particular in service-oriented architecture, where software
quality is paramount, the empirical approach that evaluates concrete application
platforms is promising. However, currently an approach for empirical
performance evaluation in the service development process where a model is the
primary software artefact, is lacking. In order to provide software architects with
tools for the reliable evaluation of performance, which goes beyond the predictive
approaches of simulation and abstract analysis, a fully model-based
instrumentation and analysis technique is necessary. The benefit of an empirical technique
over predictive approaches is increased accuracy and therefore reliability of the
evaluation results.</p>
      <p>We have presented a service-specific approach for the empirical performance
evaluation of model-driven developed services. Instrumentation and empirical
performance evaluation is at the moment done based on programming language
constructs at the source code level. Instrumentation at source code level for data
collection about program executions in terms of modelling elements can be
errorprone and can require significant effort. Therefore, the instrumentation needs to
be done at the model level. The models for software functionality definition and
instrumentation definition are separated to reduce the complexity of models.</p>
      <p>Our contribution is based on a basic package for the definition of
instrumentation languages for UML-based activity diagrams to model service orchestrations,
a methodology for deriving instrumentation languages, and a query language for
performance metrics calculation. The instrumentation languages enable
automatically generated data collection in terms of modelling language constructs,
and are stored in the format of relational traces. Temporal database theory
provides the background for the monitoring and analysis elements of the evaluation
technique.</p>
      <p>The instrumentation language is designed to be generic. The basic
instrumentation package is application-independent and is, since it is separated from
the application-specific instrumentation of specific model elements, transferable
to other modelling notations and modelling domains. In order to demonstrate
the flexibility of this approach, applications of our framework to class and state
models are being investigated.</p>
      <p>Currently, our generation and execution platform is not fully implemented.
We plan to critically evaluate the feasibility of the approach by integrating
software performance evaluation based on relational traces in some commercial tools
for model-driven development. Furthermore, experiments on an extensive case
study will be performed in order to show what the impact of instrumentation
code and execution of the instrumented application is.</p>
      <p>Another aspect specific to services shall be investigated in more detail. Our
current work neglects specific issues arising from heterogeneous and fully
distributed systems. The models we have considered here are activity diagrams that
focus on the functional composition of services. The models used do not include
the concept of distribution. Activity diagrams, however, allow modelling of
distribution through activity partitions (so-called swimlanes). Since especially
performance aspects apply to distributed service invocations, corresponding edges that
cross partitions could be instrumented and the system could be monitored with
respect to these inter-location invocations. We expect spatial-temporal databases
to provide the foundations for this aspect.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Open Group.
          <source>Application Response Measurement - ARM</source>
          .
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Penker</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.E.</given-names>
            <surname>Eriksson</surname>
          </string-name>
          .
          <article-title>Business Modeling With UML: Business Patterns at Work</article-title>
          . Wiley,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.M.P. Van Der Aalst</surname>
            , and
            <given-names>E.M.W.</given-names>
          </string-name>
          <string-name>
            <surname>Verbeek</surname>
          </string-name>
          .
          <article-title>Dynamic Work Distribution in Workflow Management Systems: How to Balance Quality and Performance</article-title>
          ,
          <source>Journal of Management Information Systems</source>
          ,
          <volume>18</volume>
          (
          <issue>3</issue>
          ):
          <fpage>157</fpage>
          -
          <lpage>193</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>W.</given-names>
            <surname>Hasselbring</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          .
          <article-title>Toward trustworthy software systems</article-title>
          .
          <source>Computer</source>
          ,
          <volume>39</volume>
          (
          <issue>4</issue>
          ):
          <fpage>91</fpage>
          -
          <lpage>92</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>C.U.</given-names>
            <surname>Smith</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.G.</given-names>
            <surname>Williams</surname>
          </string-name>
          .
          <article-title>Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S.</given-names>
            <surname>Balsamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Marco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Simeoni</surname>
          </string-name>
          .
          <article-title>Model-Based Performance Prediction in Software Development: A Survey</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>30</volume>
          (
          <issue>5</issue>
          ):
          <fpage>295</fpage>
          -
          <lpage>310</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Object Management Group.
          <article-title>UML Profile for Schedulability, Performance, and Time Specification</article-title>
          , OMG document formal/05-01-02. web: http://www.omg.org/cgi-bin/apps/doc?formal/05-01-02.pdf,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>C.</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Faloutsos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Subrahmanian</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Zicari</surname>
          </string-name>
          .
          <article-title>Advanced Database Systems</article-title>
          . Morgan Kaufmann Pubishers,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.J.</given-names>
            <surname>Lilja</surname>
          </string-name>
          .
          <article-title>Measuring Computer Performance: A Practitioner's Guide</article-title>
          . Cambridge University Press,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          .
          <article-title>The Pragmatics of Model-Driven Development</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Object Management Group. MDA Guide. web: http://www.omg.org/cgibin/doc?ormsc/06-06-02.pdf,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>G.</given-names>
            <surname>Alonso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Casati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kuno</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Machiraju</surname>
          </string-name>
          .
          <source>Web Services - Concepts</source>
          ,
          <source>Architectures and Applications</source>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. L.
          <string-name>
            <surname>Bass</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Clements</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kazman</surname>
          </string-name>
          .
          <article-title>Software Architecture in Practice (2nd Edition)</article-title>
          .
          <source>SEI Series in Software Engineering. Addison-Wesley</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>N.L.</given-names>
            <surname>Sarda</surname>
          </string-name>
          .
          <article-title>Extensions to SQL for Historical Databases</article-title>
          .
          <source>IEEE Transactions on Knowledge and Data Engineering</source>
          ,
          <volume>02</volume>
          (
          <issue>2</issue>
          ):
          <fpage>220</fpage>
          -
          <lpage>230</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. G. Kiczales,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lamping</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Menhdhekar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Maeda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Loingtier</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Irwin</surname>
          </string-name>
          .
          <article-title>Aspect-Oriented Programming</article-title>
          .
          <source>In Proc. of European Conf. on ObjectOriented Programming</source>
          , volume
          <volume>1241</volume>
          , pages
          <fpage>220</fpage>
          -
          <lpage>242</lpage>
          . Springer-Verlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>M.</given-names>
            <surname>Debusmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Geihs</surname>
          </string-name>
          .
          <article-title>Efficient and Transparent Instrumentation of Application Components using an Aspect-oriented Approach</article-title>
          .
          <source>In 14th IFIP/IEEE Workshop on Distributed Systems: Operations and Management (DSOM</source>
          <year>2003</year>
          ), volume
          <volume>2867</volume>
          <source>of LNCS</source>
          , pages
          <fpage>209</fpage>
          -
          <lpage>220</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>D.</given-names>
            <surname>Mahrenholz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Spinczyk</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Schroeder-Preikschat</surname>
          </string-name>
          .
          <article-title>Program Instrumentation for Debugging and Monitoring with AspectC++</article-title>
          .
          <source>In Proc. 5th Int. Symp. on Object-Oriented Real-Time Distributed Computing ISORC '02</source>
          , pages
          <fpage>249</fpage>
          -
          <lpage>256</lpage>
          . IEEE Computer Society,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Debusmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Schmid</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kroeger</surname>
          </string-name>
          .
          <article-title>Measuring End-to-End Performance of CORBA Applications using a Generic Instrumentation Approach</article-title>
          .
          <source>In ISCC '02: Proc. 7th Int. Symp. on Computers and Communications</source>
          , pages
          <fpage>181</fpage>
          -
          <lpage>186</lpage>
          . IEEE Computer Society,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <source>Monitoring of Component-Based Systems. Technical Report HPL-2002-25</source>
          , Imaging Systems Laboratory, HP Laboratories Palo Alto,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>D.B. Petriu</surname>
            and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Woodside</surname>
          </string-name>
          .
          <article-title>A metamodel for generating performance models from UML designs</article-title>
          .
          <source>In Proc. Int. Conf. The Unified Modelling Language: Modelling Languages and Applications</source>
          , LCNS
          <volume>3273</volume>
          , pages
          <fpage>41</fpage>
          -
          <lpage>53</lpage>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>D.</given-names>
            <surname>Park</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kang</surname>
          </string-name>
          .
          <article-title>Design phase analysis of software performance using aspectoriented programming</article-title>
          . In O. Aldawud, G. Booch,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kienzle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Stein</surname>
          </string-name>
          , M. Kand´e,
          <string-name>
            <given-names>F.</given-names>
            <surname>Akkawi</surname>
          </string-name>
          , and T. Elrad, editors,
          <source>The 5th Aspect-Oriented Modeling Workshop In Conjunction with UML</source>
          <year>2004</year>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>R.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          .
          <article-title>A Relational Approach to Monitoring Complex Systems</article-title>
          .
          <source>ACM Transactions on Computer Systems</source>
          ,
          <volume>6</volume>
          (
          <issue>2</issue>
          ):
          <fpage>157</fpage>
          -
          <lpage>196</lpage>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liao</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Cohen</surname>
          </string-name>
          .
          <article-title>A Specificational Approach to High Level Program Monitoring and Measuring</article-title>
          .
          <source>IEEE Trans. on Software Eng.</source>
          ,
          <volume>18</volume>
          (
          <issue>11</issue>
          ):
          <fpage>969</fpage>
          -
          <lpage>978</lpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>J. K. Hollingsworth</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Niam</surname>
            ,
            <given-names>B. P.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>M.J.R.</given-names>
          </string-name>
          <string-name>
            <surname>Goncalves</surname>
            , and
            <given-names>L. Zheng.</given-names>
          </string-name>
          <article-title>MDL: A Language And a Compiler For Dynamic Program Instrumentation</article-title>
          .
          <source>In PACT '97: Proc. 1997 Int. Conf. on Parallel Archit. and Compil</source>
          . Techniq., pages
          <fpage>201</fpage>
          -
          <lpage>213</lpage>
          . IEEE Comp. Society,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>R.</given-names>
            <surname>Klar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Quick</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Soetz</surname>
          </string-name>
          .
          <article-title>Tools for a Model-driven Instrumentation for Monitoring</article-title>
          .
          <source>In Proc. 5th Int. Conf. on Modelling Techniques and Tools for Computer Performance Evaluation</source>
          , pages
          <fpage>165</fpage>
          -
          <lpage>180</lpage>
          . Elsevier,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>M.B. Blake</surname>
          </string-name>
          .
          <article-title>A Lightweight Software Design Process for Web Services Workflows</article-title>
          .
          <source>Proceedings International Conference on Web Services ICWS</source>
          <year>2006</year>
          , pages
          <fpage>411</fpage>
          -
          <lpage>418</lpage>
          , IEEE Computer Society,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>