<!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>On the Need for Extended Transactional Models@Run.Time</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mahdi Derakhshanmanesh</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marvin Grieger</string-name>
          <email>marvin.grieger@uni-paderborn.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jurgen Ebert</string-name>
          <email>ebertg@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Koblenz-Landau, Institute for Software Technology</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Paderborn, Department of Computer Science</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Models at runtime that are causally connected to the base software play a central role in the software architecture of exible and self-adaptive software systems. Decisions based on them may be wrong if the models are accessed or modi ed in a state di erent than assumed. Although transaction concepts for model repositories have been presented in analogy to well-established transaction concepts for databases, they do not su ciently address the speci c needs for models at runtime. In this paper, we describe some of the extended features expected from a runtime environment for Transactional Models@Run.Time (TMRT). These features are derived from issues identi ed in the context of the Graph-based Runtime Adaptation Framework (GRAF).</p>
      </abstract>
      <kwd-group>
        <kwd>Transactions</kwd>
        <kwd>models at runtime</kwd>
        <kwd>self-adaptive software</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Software models have traditionally been used during design, implementation and
veri cation phases of software development. However, models can be also used at
runtime to realize exible and adaptive software systems. These models can be
either abstractions of an underlying system programmed in code, e.g., as proposed
under the term models@run.time [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], or they represent stand-alone information,
e.g., executable UML activity diagrams [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In both cases, the software models
are connected to the rest of the software application.
      </p>
      <p>
        From a high-level perspective, the resulting architectures usually follow a
layered approach as depicted in Figure 1. This structure is taken from previous
research on the Graph-based Runtime Adaptation Framework (GRAF) which
uses models at runtime to achieve adaptivity [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        The rst two layers, i.e., L1 and L2, actually conform to the design pattern
of architectural re ection [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] if the models are models@run.time representing
the software's architecture. In this setup, the models at runtime are causally
connected [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] to the adaptable software's architecture and state. Any changes
in the adaptable software are propagated to the models (rei cation) and changes
in the models are propagated back to the adaptable software (re ection).
      </p>
      <p>
        The second and the third layer, i.e., L2 and
L3, are also connected to each other but in a
slightly di erent way. Changes in the models at
runtime are monitored by the adaptation manager
(sensing ) which then analyzes and plans for
potential changes (controlling ) and nally executes
the plan (e ecting ) that modi es the models. In
Self-Adaptive Software (SAS), these steps are also
known as the MAPE-K loop [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. While
concurrently executing feedback loops are possible, we
start with the easier case of a single feedback loop.
L2
L1
      </p>
      <p>Controlling
Sensing</p>
      <p>Effecting</p>
      <p>Models at Runtime
Reification</p>
      <p>Reflection</p>
      <p>
        Adaptable Software
Fig. 1. Architecture of
Software Using Models at
RunResearch Problem. Given the central role of time (See [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ])
models at runtime in a software architecture like
GRAF, decisions based on them in the associated layers L1 and L3 may be wrong
if the models are used in a state di erent than assumed. Various issues can arise
depending on when, where and how the models at runtime are accessed.
      </p>
      <p>
        Traditional transaction concepts [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for databases tackle these problems and
have become key to modern software applications. A transaction is an activity,
which can only fail or succeed as a complete unit. It usually consists of a
sequence of operations. The term is used in database management systems which
provide support for executing a transaction as an atomic, consistency-preserving,
and isolated activity with a persistent (durable) e ect. Among others, a
transaction concept (i) provides reliable units of actions that can be rolled back in
case of failure and (ii) provides isolation between concurrently executing actions
accessing a central database.
      </p>
      <p>
        For models, transaction concepts have been developed in analogy to
wellestablished transaction concepts for databases, and implementations such as
the Connected Data Objects (CDO) Model Repository [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are available. Yet,
these infrastructures do not address the particular needs of models at runtime.
We observe that software engineers consider related issues on a case-by-case
basis when constructing adaptive software systems that use models@run.time.
A standardized approach is needed.
      </p>
      <p>This paper tackles the following research problems and their challenges:
(Q1) What are transaction-related issues to be aware of when using models at
runtime (e.g., to build SAS)?
(Q2) What are the speci c needs for a transaction concept for models at runtime
in the broader sense?
Contributions. In answering Q1, we describe concrete examples for common
transaction-related issues with querying, transforming and interpreting models
at runtime from the context of GRAF. Furthermore, in an initial attempt to
answering Q2, we elicit desired features of a transaction concept speci c to
models@run.time. All in all, we aim to raise awareness for this topic in the research
community and hope to initiate a fruitful discussion.</p>
    </sec>
    <sec id="sec-2">
      <title>Running Example: Adaptive OpenJSIP</title>
      <p>
        One of the case studies carried out to show the feasibility of evolving existing
software to self-adaptive software using GRAF is the OpenJSIP study [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
OpenJSIP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is an open-source stand-alone Java Session Initiation Protocol (SIP)
server for voice-over-IP (VoIP) calls. The evolved OpenJSIP shall adapt its
behavior to maintain its reliability under extreme system loads. Using adaptation
rules, new registrations are automatically rejected if the system load is high.
      </p>
      <p>System load is measured in the number of current server transactions from
within OpenJSIP and is stored in an integer variable named currentSrvTrans.
Moreover, there is a Boolean variable blockRequests that is checked at certain
points in OpenJSIP depending on which calls are serviced or not. The runtime
model contains rei cations of these two variables. While currentSrvTrans is
only updated from within OpenJSIP (rei cation), blockRequests can be also
modi ed by the Adaptation Manager (AM) (e ecting) and is used in OpenJSIP
(re ection). There is also a behavioral part in the runtime model represented
by activity diagrams, which { on startup of OpenJSIP { represent the phone
call processing behavior as programmed in the adaptable software. Hence, a
defaultBehavior ag is set to true. A rule engine in the AM loaded with
adaptation rules for servicing and rejecting calls observes this runtime model.</p>
      <p>GRAF provided the conceptual framework and an implementation for
designing and developing this adaptive OpenJSIP variant. Subsequently, we relate
to this example in order to motivate the need for a transaction concept that is
speci cally suited for models@run.time.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Issues</title>
      <p>The following issues are derived from (i) transactions in databases and (ii) the
application domain of SAS. We especially discuss the case of SAS with
models@run.time, since this assumption allows to identify even more relevant issues.
Please note that we do not claim completeness of the issue list. We addressed
each of the identi ed issues in the GRAF case study. The goal is to point at
common issues to be aware of when using models at runtime and to motivate
the need for a generic and uni ed approach in contrast to ad-hoc solutions.
Lost Model Update. The runtime model, as sketched in the high-level
architecture in Figure 1, abstracts from the adaptable software that rei es its state
into the runtime model. This, in return, is observed by the adaptation manager
which runs in a separate thread. The runtime model and the adaptable software
read and write to the runtime model concurrently.</p>
      <p>Without transactions, manipulations of the runtime model by the adaptation
manager or the adaptable software may be overwritten (lost model update).</p>
      <p>For example, in the context of the OpenJSIP case study, the adaptation
manager reads the Boolean synchronized state variable3 blockRequests in its
3 In GRAF, a synchronized state variable (or SyncStateVar) is a value in the runtime
model that is target of rei cation and source of re ection.
sensing step. Assuming that it was false before and the controlling step dictates
to set it to true in order to block new incoming call requests to the SIP server,
blockRequests is set to true during the e ecting step. Now, the adaptable
software might run into the issue that it rei es the old value (false) again to
the runtime model and, hence, overwrites the adaptation.</p>
      <p>This issue can be tackled by introducing locking mechanisms on the runtime
model. While the runtime model is locked and transformed, it may be allowed
to still query it (shared lock) or not (exclusive lock).</p>
      <p>Unrepeatable Model Read. Even though single values or coherent structures
in the runtime model may be often su cient, aggregated values and structures
also occur. Examples are sums of integers or associated behavioral models such
as one activity diagram invoking another (sub) activity diagram.</p>
      <p>In this setup, it is possible to read values or query structures from the runtime
model that are only partially correct (unrepeatable model read).</p>
      <p>For example, in the context of the OpenJSIP case study, the model interpreter
for executing the activity diagrams can run into the issue that it starts executing
a behavioral model which is being transformed concurrently by the adaptation
manager. Possibly, the action to register calls is still part of the behavior and is
exchanged with an action to block calls right after the interpreter executed it.</p>
      <p>This issue can be tackled by isolating the di erent activities on the runtime
model such that they are processed in a certain order (serialization).
Dirty Model Read. Given that the runtime model is an appropriate
abstraction, not all technically possible changes to the runtime model are allowed. In
other words, the runtime model must always conform to a metamodel and its
optional constraints.</p>
      <p>In an architectural setup in which di erent parties access the runtime model
concurrently, a transformed but not yet validated runtime model might be
accessed. Therefore, even if the changes to the runtime model are reverted after
validation, there is a time frame in which it is possible to query invalid { or
\dirty" { values or structures (dirty model read ).</p>
      <p>For example, in the context of the OpenJSIP case study, an administrator
may have provided a new and faulty adaptation rule that transforms a part of
the behavioral model and adds an action to block calls but does not remove
the action that registers calls. Even though a constraint in the runtime model's
metamodel captures this case, the issue that can occur is that the transformed
runtime model is used by the adaptable software before model validation detects
this aw and reverts the runtime model to its old state.</p>
      <p>This issue can be tackled by isolating the di erent activities on a runtime
model such that they are processed in a certain order (serialization).
Con icting Model Update. In the context of building SAS with models
at runtime, the adaptation manager manipulates the model (e ecting) and the
adaptable software manipulates it as well (rei cation).</p>
      <p>In this context, independent modi cations can con ict with each other such
that the second action fails (con icting model update).</p>
      <p>For example, in the context of the OpenJSIP case study, an adaptation
manager may detect that a rei ed state variable currentSrvCpuLoad is never used
by its available adaptation rules and, thus, decides to delete it from the
runtime model. Thereafter, whenever the adaptable software attempts to update
the runtime model, it can run into the issue that there is no target element in
the runtime model anymore. Sensing fails, at least partially.</p>
      <p>This issue can be tackled by introducing an application-speci c con ict
resolution strategy. In the example, the deleted state variable can be (re-)created
dynamically when it is accessed.</p>
      <p>Unrepeatable Adaptation. SAS is often built using a rule-based adaptation
manager. In GRAF, adaptation rules are expressed in terms of
Event-ConditionAction (ECA) rules. The event is a (typed) noti cation, the condition is a query
on the runtime model and the action is a transformation of the runtime model.</p>
      <p>Assuming that the runtime model is also updated by the adaptable software
during the rei cation step, the data used in the event, condition and action parts
of an adaptation rule can change during execution such that the e ecting step is
not necessarily directly related to the state of the runtime model as the change
event was received (unrepeatable adaptation).</p>
      <p>For example, in the context of the OpenJSIP case study, the adaptable
software rei es a new low value for currentSrvTrans that measures the system
load. In reaction to this sensed change, the adaptation manager selects a speci c
ECA-Rule with the matching event type. While this adaptation rule is being
processed with the goal to allow calls, the issue can occur that the currentSrvTrans
is updated by the adaptable software with a high value for currentSrvTrans,
resulting in the selection of another ECA rule for blocking calls. The condition
that is now evaluated for the rst ECA rule queries the new high value. Hence,
the runtime model is transformed such that incoming calls are blocked. The same
adaptation is then redundantly performed by the second adaptation rule.</p>
      <p>This issue can be tackled by executing the whole rule as an atomic action
(hierarchy/scope) during which no manipulation of the runtime model is allowed.
Outdated Adaptation. Using models at runtime is a common way to build
software systems that adapt themselves to changing environments. Thereby, a
purpose of the model at runtime can be to represent the environment itself.</p>
      <p>If the environment changes fast, the adaptation manager might perform the
MAPE loop based on outdated knowledge (outdated adaptation).</p>
      <p>For example, in the context of the OpenJSIP case study, the system load
is permanently rei ed from the adaptable software to a state variable named
currentSrvTrans in the runtime model. The adaptation manager checks for an
update of speci c parts of the runtime model according to a xed or variable
strategy. If changes are sensed, the MAPE loop gets executed. Here, the
adaptation manager can run into the issue that the model is updated during the
execution of the MAPE loop. Depending on the change of the model, i.e., the
change of the environment, the e ecting that results from the MAPE loop can
be disadvantageous.</p>
      <p>This issue can be tackled by providing a capability to cancel an ongoing
MAPE loop if the part of the model based on which the loop has been triggered,
changes. This encompasses reverting all changes made by the MAPE loop.
Overeager Adaptation. Assuming the same scenario as in the previous
section, i.e., a fast changing environment, it may occur that the adaptation manager
starts over and over again without e ecting (overeager adaptation).</p>
      <p>For example, in the context of the OpenJSIP case study, the system load
as indicated by the currentSrvTrans variable changes frequently. In result, the
adaptation manager might run into the issue that it cancels and restarts the
MAPE loop over and over again. In an extreme case, the e ecting step would
be rarely, or even never, executed.</p>
      <p>This issue can be tackled by de ning tolerable derivations in changes of the
runtime model, e.g., using bounds for the sensed values and a change frequency,
that still allows a proper adaptation.</p>
      <p>Missed Adaptation. The re ection step in SAS can be realized in di erent
ways, e.g., (i) by manipulating code in the adaptable software depending on the
runtime model or (ii) by executing a part of the runtime model that represents
an alternative behavior, thereby skipping the default behavior programmed in
the adaptable software.</p>
      <p>In either case, the decision to modify the adaptable software during the
re ection step may be based on not yet validated data in the runtime model.
In result, at the time of re ection, the state of the runtime model may suggest
that the adaptable software is (still) in the conforming state whereas in reality
it needs to be changed (missed adaptation).</p>
      <p>For example, in the context of the OpenJSIP case study, a behavior
description (e.g., for receiving calls) in the runtime model may be already transformed.
Thus, the defaultBehavior ag in the runtime model is set to false and the
runtime model is interpreted at certain points in the control ow of the
adaptable software. Assume that the adaptation manager resets the behavior, i.e., the
defaultBehavior ag in the runtime model is set to true. While the runtime
model is being validated, the issue can occur that it is concurrently interpreted.
The programmed default behavior is executed, even though validation of the
model at runtime fails and, in consequence, the runtime model is reverted to its
previous non-default state.</p>
      <p>This issue can be tackled by restricting operations to only veri ed parts of
the model at runtime which, in addition, must always conform to its metamodel,
including additional constraints.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>We can only hint at an excerpt of related work here, namely from the research
areas of (i) models@run.time, (ii) programming languages and (iii) databases.</p>
      <p>
        Blair et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposed the term models@run.time to describe a category
of re ective models used at runtime that abstract from the base system and
are causally connected to it. One popular application area for models@run.time
is self-adaptive software. A mann et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] describe a reference architecture
for models@run.time systems and hint at the synchronization problem, i.e., to
propagate data from the managed system to the interfaced models@run.time
system. Vogel and Giese [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] discuss language and framework requirements for
adaptation models as used in feedback loops. Bennaceur et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] point out that
maintaining the consistency of models@run.time in a dynamic environment {
potentially across di erent levels of abstractions { is a challenge. Cazzola et al.
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] describe a way for realizing the causal connection between Java code and
class/sequence diagrams based on a xed set of operators on the models as well
as by a formalized mapping between code and models.
      </p>
      <p>
        Smith [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] describes the ability of a running program to access and
manipulate its own state as re ection. The program state may also be represented on
a higher level of abstraction, too. In this regard, models@run.time are strongly
related to more traditional research on re ection. Kiczales et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] describe the
vocabulary for accessing and manipulating the structure and behavior of objects
under the term Meta Object Protocol (MOP).
      </p>
      <p>
        Andrews [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] describes general techniques for dealing with concurrency from
a programmer's perspective, like the use of semaphores for mutual exclusion.
Weikum and Vossen [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] intensively describe the theory, algorithms and
practice of concurrency control and recovery for transactional information systems
that rely on databases. Zhang et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] comprehensively describe the state of
the art and core technologies for in-memory systems which, similar to
models@run.time, primarily live in main memory for fast processing and real-time
analysis of mission-critical data. The Connected Data Objects Model Repository
(CDO) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a database-like repository developed to transfer techniques from
traditional databases to the modeling domain. The EMF Transaction [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] project
provides transaction management for the Eclipse Modeling Framework (EMF).
      </p>
      <p>While related work on relevant subproblems exists in research and practice,
to the best of our knowledge the transaction problem in the broader sense has
not been discussed for the speci c context of models@run.time and SAS.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Desired Features</title>
      <p>
        Based on the described issues, we structured an initial model of desired features
related to transactions for models@run.time. This feature model is depicted in
Figure 2. It is structured into three groups, namely (i) causal connection
features, (ii) transactions-based features and (iii) model-based features.
Causal Connection Features. By de nition [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and in analogy to traditional
e orts in re ection, a model@run.time is an appropriate self-representation of a
system to which it is causally connected, i.e., the model is always updated with
the most recent and relevant data (synchronization). In the context of GRAF,
CausalConnection
ModelBased
Synchronization
      </p>
      <sec id="sec-5-1">
        <title>Coupling Atomicity Durability Isolation PCroensseirsvtaetniocyn</title>
      </sec>
      <sec id="sec-5-2">
        <title>Modularity Versioning ORpeveerartsiiobnles Logging</title>
      </sec>
      <sec id="sec-5-3">
        <title>Immediate BEavseendt Strong Weak Filtered</title>
      </sec>
      <sec id="sec-5-4">
        <title>Serializability Conformance CIonntecriMstoednecly</title>
        <p>Enforcement
TransactionBased</p>
        <p>Optimistic Pessimistic</p>
        <p>TimeStamps Locking
Abort ConflictResolution
Mandatory
Optional</p>
        <p>OR
XOR
Prioritized Discipline</p>
        <p>Pulled Pushed Timed
we observe that { in the broader sense { each step between the layers can be
seen as a causal connection.</p>
        <p>One can distinguish between immediate synchronization, i.e., data is
propagated immediately (synchronous execution), and event-based synchronization,
i.e., data is propagated at unforeseen points in time (asynchronous execution).
Further desired features are related to the chosen event handling discipline.
Events may be pulled (e.g., the adaptation manager requests updates of the
runtime model), pushed (e.g. from the adaptable software to the runtime model)
and timed (e.g., data is propagated according to a de ned frequency). Optionally,
these events may be prioritized, as well.</p>
        <p>
          The chosen coupling character of the causal connection has a critical impact
on what assumptions a user can make about the state of the model@run.time.
While the state of the rei ed data can be assumed to be accurate with strong
coupling, weak coupling means that data provided via a causal connection is
less accurate or lack behind in time. Additionally, data between two causally
connected entities can be ltered, e.g., aggregated, split or even ignored.
Transaction-Based Features. The transaction-based features are concerned
with the properties needed to ensure the reliable processing of transactions on a
model@run.time. These are namely (i) atomicity, (ii) consistency, (iii) isolation
and (iv) durability (ACID) [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>Each transaction shall be atomic, e.g., a series of query or transformation
operations, on the model@run.time is \all or nothing": if a failure occurs, the
state of the model is left unchanged. In contrast to databases, the ability to
guarantee atomicity under all circumstances, e.g., power failure and hardware
crashes, can be seen as more relaxed.</p>
        <p>Consistency preservation is another essential feature, i.e., each operation on
the model@run.time shall bring it from one consistent state to another. In other
terms: conformance between a model@run.time and its metamodel, including
constraints, shall be guaranteed. In case that di erent abstractions or stacks of
abstractions are built with models@run.time, it is crucial to ensure inter-model
consistency, i.e., changes in one part of the model@run.time are consistent with
the representation of associated data in another part.</p>
        <p>The typical architecture of SAS asks for concurrency because at least one
adaptation manager permanently observes and controls the rest of the software.
The main goal for handling concurrency in this scenario is to ensure isolation of
di erent activities on the model@run.time. The state of the runtime model must
be the same when executing activities one after another or concurrently. In
analogy to established techniques in concurrency control, serializability enforcement
can be achieved in di erent ways. Optimistic approaches use time stamps in one
or the other way, either to abort a transaction or to trigger con ict resolution.
Pessimistic approaches do not allow con icts to happen by blocking access to
used parts of the model@run.time.</p>
        <p>In contrast to traditional databases, durability is usually not a primary issue
for models@run.time that are stored in primary memory and may be even
generated during start-up of software. Optionally, the state of a model@run.time {
including its history { may be persisted using non-volatile memory, as well.
Model-Based Features. The model-based features are concerned with
additional capabilities that support transactional models@run.time.</p>
        <p>The modularity of models can support locking of only parts of a complex
model@run.time. Then again, the modularization of models may require that the
individual parts are kept consistent with each other. If modularization is also
used to combine multiple models@run.time at di erent levels of abstractions
or from di erent perspectives, then maintaining inter-model consistency is an
associated needed property. Modularity of the runtime model can support partial
locking to achieve isolation of transactions.</p>
        <p>The versioning of a model@run.time means to store its past states in an
accessible way. This can support predicting future adaptations and recovering
from errors that may, for example, occur during rei cation or due to a wrong
adaptation. Reversible operations refers to the ability of a model@run.time to
undo operations on it and logging operations on a model@run.time can support
recovery and durability if needed.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>Today, developing case-speci c, ad-hoc solutions is the state of the art to tackle
issues related to establishing a causal connection between a managed system and
its models@run.time. Given the associated e ort, this is unacceptable.</p>
      <p>Based on an issue analysis from previous research on models@run.time for
self-adaptive software, we identi ed desired features, covering (i) causal
connection features, (ii) transaction-based features and (iii) model-based features.</p>
      <p>In future work, we plan to propose a full concept for Transactional
Models@Run.Time (TMRT). This concept shall go beyond low-level transaction
issues and provide a pattern-based approach to tackle transaction-related issues
in the broader sense when developing software using models at runtime.</p>
      <p>Acknowledgements. This work is supported by the Deutsche
Forschungsgemeinschaft (DFG) under grants EB 119/11-1 and EN 184/6-1.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Eclipse</surname>
            <given-names>CDO</given-names>
          </string-name>
          , https://eclipse.org/cdo/ (accessed July 18th,
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>EMF</given-names>
            <surname>Transaction</surname>
          </string-name>
          , https://projects.eclipse.org/projects/modeling.emf.
          <source>transaction/ (accessed September 10th</source>
          ,
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. OpenJSIP, https://code.google.com/p/openjsip/ (accessed:
          <year>July 24th</year>
          ,
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Amoui</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Derakhshanmanesh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ebert</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tahvildari</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Achieving Dynamic Adaptation via Management and Interpretation of Runtime Models</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>85</volume>
          (
          <issue>12</issue>
          ),
          <volume>2720</volume>
          {
          <fpage>2737</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Andrews</surname>
            ,
            <given-names>G.R.</given-names>
          </string-name>
          :
          <article-title>Concurrent Programming: Principles and Practice</article-title>
          . BenjaminCummings Publishing Co., Inc., Redwood City, CA, USA (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. A mann, U., Gotz,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Jezequel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Morin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Trapp</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A Reference Architecture and Roadmap for Models@run.time Systems</article-title>
          . In: Bencomo,
          <string-name>
            <surname>N.</surname>
          </string-name>
          , France, R., Cheng,
          <string-name>
            <surname>B.H.</surname>
          </string-name>
          , A mann, U. (eds.)
          <source>Models@run.time, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8378</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>18</fpage>
          . Springer International Publishing (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bennaceur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Tamburrelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Vogel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Mosterman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.J.</given-names>
            ,
            <surname>Cazzola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Costa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.M.</given-names>
            ,
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Tichy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Akit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Emmanuelson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Gang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Georgantas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Redlich</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Mechanisms for Leveraging Models at Runtime in Self-adaptive Software</article-title>
          . In: Bencomo,
          <string-name>
            <surname>N.</surname>
          </string-name>
          , France, R., Cheng,
          <string-name>
            <surname>B.H.</surname>
          </string-name>
          , A mann, U. (eds.)
          <source>Models@run.time, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8378</volume>
          , pp.
          <volume>19</volume>
          {
          <fpage>46</fpage>
          . Springer International Publishing (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Blair</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , France, R.B.:
          <article-title>Models@run.time</article-title>
          .
          <source>Computer</source>
          <volume>42</volume>
          (
          <issue>10</issue>
          ),
          <volume>22</volume>
          {
          <fpage>27</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Cazzola</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Savigni</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sosio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisato</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Architectural Re ection: Bridging the Gap Between a System and its Architectural Speci cation</article-title>
          .
          <source>In: In REF98: 6th Reengineering Forum</source>
          . pp.
          <volume>8</volume>
          {
          <fpage>11</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cazzola</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossini</surname>
            ,
            <given-names>N.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bennett</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mandalaparty</surname>
            ,
            <given-names>S.P.</given-names>
          </string-name>
          , France, R.:
          <source>FineGrained Semi-automated Runtime Evolution</source>
          . In: Bencomo,
          <string-name>
            <surname>N.</surname>
          </string-name>
          , France, R., Cheng,
          <string-name>
            <surname>B.</surname>
          </string-name>
          , A mann, U. (eds.)
          <source>Models@run.time, Lecture Notes in Computer Science</source>
          , vol.
          <volume>8378</volume>
          , pp.
          <volume>237</volume>
          {
          <fpage>258</fpage>
          . Springer International Publishing (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kephart</surname>
            ,
            <given-names>J.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chess</surname>
            ,
            <given-names>D.M.:</given-names>
          </string-name>
          <article-title>The Vision of Autonomic Computing</article-title>
          .
          <source>Computer</source>
          <volume>36</volume>
          (
          <issue>1</issue>
          ),
          <volume>41</volume>
          {
          <fpage>50</fpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Des</surname>
            <given-names>Rivieres</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Bobrow</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.G.</surname>
          </string-name>
          :
          <article-title>The Art of the Metaobject Protocol</article-title>
          . MIT press (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Maes</surname>
          </string-name>
          , P.:
          <article-title>Concepts and Experiments in Computational Re ection</article-title>
          .
          <source>In: Conference Proceedings on Object-oriented Programming Systems, Languages and Applications</source>
          . pp.
          <volume>147</volume>
          {
          <fpage>155</fpage>
          . OOPSLA '87,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          :
          <article-title>Procedural Re ection in Programming Languages</article-title>
          .
          <source>Ph.D. thesis</source>
          , Massachusetts Institute of Technology (
          <year>1982</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Vogel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
          </string-name>
          , H.:
          <article-title>Requirements and Assessment of Languages and Frameworks for Adaptation Models</article-title>
          . In: Kienzle,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (ed.)
          <source>Models in Software Engineering, Lecture Notes in Computer Science</source>
          , vol.
          <volume>7167</volume>
          , pp.
          <volume>167</volume>
          {
          <fpage>182</fpage>
          . Springer Berlin Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Weikum</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vossen</surname>
          </string-name>
          , G.:
          <article-title>Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery</article-title>
          . Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , H.,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ooi</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tan</surname>
            ,
            <given-names>K.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>In-Memory Big Data Management and Processing: A Survey. Knowledge and Data Engineering</article-title>
          , IEEE Transactions on
          <volume>27</volume>
          (
          <issue>7</issue>
          ),
          <year>1920</year>
          {1948
          <issue>(</issue>
          <year>July 2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>