<!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>An Engineering Approach to Adaptation and Calibration</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Fahrmair</string-name>
          <email>fahrmair@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wassiou Sitou</string-name>
          <email>sitou@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technische Universit ̈at Mu ̈nchen, Department of Informatics</institution>
          ,
          <addr-line>Boltzmannstr.3, D-85748 Garching (Munich)</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>133</fpage>
      <lpage>137</lpage>
      <abstract>
        <p>A new computing era after Mainframes, PC's and mobiles is becoming more and more anticipated since the beginning of the 21st century. This new era is often described with several confusing terms such as pervasive, ubiquitous, ambient or context-aware computing. However, there is a common characteristic behind all these projections: They are all based on a substantially more flexible system understanding, whereby the thought of the system as a tool moves into the background and the needs and wishes of the user step into the foreground. Such concepts for software applications being aware of their context are in fact not new, but become more and more important nowadays for productive fields of software and systems engineering and particularly in ubiquitous and wearable computing.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Adaptation in a common sense is defined as an act of changing (structure, form,
or habits) to fit different environmental conditions [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. For technical systems,
such environmental conditions are usually referred to as context ([
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]).
      </p>
      <p>
        Nowadays, adaptation needs to be considered as a key requirement for
future mobile and ubiquitous systems that envision heterogeneous environments
where system and application functionality needs to be dynamically adapted to
constantly changing situations. There are existing architectures and frameworks
such as [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] that support developing context aware software. However, the
important aspect of designing context and adaptation logic is typically overlooked. The
context model and adaptation decision logic are usually static and hardcoded
in the adaptable entities. In view of ubiquitous systems, this approach seems
inadequate, since the circumstances in which a system’s functionality may be
executed and the context parameters that may influence it, will not always be
predictable a priori at the time the function is being developed.
      </p>
      <p>In this paper we first describe what should be understood by adaptation
and why this concept needs a particular consideration in software engineering
research. After this, we introduce a generic, reusable mechanism that offers
runtime customizable context criteria and adaptation algorithms.</p>
    </sec>
    <sec id="sec-2">
      <title>The Scope of Adaptation</title>
      <p>The main goal of adaptation is to achieve ubiquity. Ubiquity means
enhancing usability of functionality in as many situations as possible. To be
ubiquitous, functionality must meet three essential conditions. The necessary HW/SW
infrastructure can be made available in the given situation (availability ), the
current user requirements (applicability ) can be fulfilled and the necessary
interactions should not be conflicting with the user’s situation, i.e. his current free
interaction possibilities (operability ). It is obvious that a maximum ubiquity
cannot be achieved by stacking up implementations for predefined requirements
into a system limited by available resources. Moreover these limitations can
vary from situation to situation. The resource limit is therefore usually given
by tradeoffs between the least common denominator of providable functionality
and a restriction of situations resulting in reduced ubiquity (availability
problem). Besides that, additional interactions are necessary to communicate the
current user’s dynamic requirements selection, so that they can be mapped onto
the superposition of static requirements fulfilled by the system. The amount and
complexity of interactions between a user and a system is, however, also often
limited by the current situation. Without adaptation, there are obvious tradeoffs
between type, amount and complexity of user interactions and the number of
functionalities a system can provide (usability problem).</p>
      <p>Introducing reconfiguration solves the availability problem due to the fact
that static requirements can be clustered into groups of not conflicting dynamic
requirements (configurations) that are usually required by the user only in a
certain situation. A system is reconfigurable if it supports changing between different
sets of such configurations according to its situation. While it is possible to have
reconfiguration directly controlled by the users, this kind of solution does not
necessarily add to ubiquity because it adds additional user interactions in
deciding about and choosing the proper configuration. To solve the usability problem
of ubiquity therefore all or part of the manual reconfiguration management can
be replaced with further functionalities fulfilling additional requirements of
automatically reconfiguring between dynamic requirement implementations. For
this issue, the system needs to decide on behalf of the user entity about its
current valid requirements. This can be done by monitoring the system’s
environment using context. A context is the sufficiently exact characterization of a
system’s situation by means of perceivable information that is relevant for the
adaptation of the system. It is a model of a situation containing all necessary
and available information to reason about the user’s or any other involved
stakeholder’s requirements. The overall process of adaptation therefore can be viewed
as a three-level process: monitoring the context of a system, choosing the best
appropriate configuration and deploying a new configuration at runtime. The
deployment can involve changing behavior, implementations, modifying structure,
adding or removing functionality or even downloading new code.</p>
      <p>
        A simple context can be modeled using an entity relationship data model
that holds the contextual information. The model proposed here is more
detailed and differentiates in sensors, context data and interpreters as suggested in
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Enriching context with its dynamic processing information (e.g. sources) has
the advantage that new sensors and interpreters can be discovered and bound at
runtime. The context model in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is however directly consumed by the
contextaware system. Thus the adaptation logic and some context dependencies are
hardcoded into the adaptive system. Hence the logic and results can not be
shared among several subsystems and moreover the adaptation can not be
reconfigured to meet varying resources. The model proposed here therefore adds
not only sources and computational nodes, but also sinks for contextual
information. Actuators represent parts of the system that access or observe parts of the
context [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. With this extension, adaptation can be defined as special interpreters
that take information from initial or intermediate context and compute a
specification of how the new system should look after the adaptation (reconfiguration
context ).
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>The Approach of Calibration</title>
      <p>
        Realizing adaptation of a system using context information handling and
decision logic that were designed at development time works quite well for small
and specialized adaptive applications within relatively stable and predictable
environments. Some context aware applications are also especially tolerant
towards wrong adaptation by nature, because their results can be easily ignored, if
wrong, while still deemed helpful by the user, if right[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Own experiments with
adaptive systems confirmed that complex adaptive systems are usually supposed
to fall into the trap of the frame problem [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This is a well known problem
from AI about the difficulties describing an infinite complex and dynamically
changing world using static assumptions (i.e. models). Over time some of these
assumptions and therefore abstractions used in a model can get wrong, even if
they were valid while constructing the model. This leads to false (compared to
reality) decisions [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Even if this problem is not generally solvable, it can be
avoided or circumvented by changing the model that reasons about reality (i.e.
our context adaptation) from time to time to meet the reality. This process is
called calibration and can be seen as an adaptation of the adaptation. With state
of the art adaptation and context-awareness concepts, there is however always
an unchangeable part of a model like the logical service architecture, decision
logic and context management.
      </p>
      <p>
        Our approach therefore is mainly focused on reconfiguration of the
adaptation logic; which can then be target of context dependent adaptation decisions.
To achieve such a total reconfigurability we regard a description of the
adaptation model as contextual information that can be modified by sensors and
interpreters and then used by actuators to reconfigure the adaptation and
context of a system (e.g. by adding a new context or decision logic at runtime).
This is possible, because our model of the adaptation process was completed
by introducing actuators (see previous section). Adaptation this way, like any
other usage of context information, becomes visible, detectable and replaceable
at runtime. A model of context adaptation that can describe its self
reconfiguration is called calibrateable model (k-model ). Any specific implementation of
a k-model with an actuator that can read and reconfigure context adaptation
models can serve as a generic framework, because it can be fed with any other
specific specification of a context adaptation and still will reconfigure itself
accordingly due to its total reconfiguration ability (for an example framework see
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). However, a common formal founded semantic of the k-model is necessary to
ensure that every refinement of the k-model remains consistent. A
mathematical founded base model which consists of components and channels describing
functions processing sets of infinite message streams [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is used. Their behavior
is specified as a relation between communication histories of input and output
channels. Adaptation in this basic formal model is interpreted as a change of
network components representing the adapted system. In the case of the formal
base model, this can be defined as schematics mathematically describing the
relation between communication histories of a set of typed input and output
channels that can filter the output of certain components or channels that are
not active in a certain adaptation state. Looking at the formalization presented
in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] it becomes clear that context adaptation is a purely engineering construct.
Structuring certain behavior changes in a system the way it is expressed within
the k-model and its formal foundation has clear advantages from a systems
engineering point of view dealing with system flexibility as described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Seeing adaptation as an engineering construct only makes sense in
conjunction with a technical possibility to automatically implement a specified system.
In software engineering there are several concepts for dynamically implementing
a software system such as late binding, DLLs and services. The most flexible
concept to date however, are services that even allow for changing an active
implementation at runtime (Design@Runtime [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). Services are an sufficient
technical concept to implement our mathematical model of adaptation since services
usually are realized using a proxy access component that can act as a switch
between several component implementations and therefore acts like the
adaptation filter component (actuator) of our abstract model. However changing the
system by switching component implementations has some invariants in form of
the logical architecture (services), i.e. the fulfilled function, task or requirements
of the given system or subsystem. To achieve the total reconfigurability
necessary for adaptation calibration, a second switching/filtering layer needs to be
introduced that can control the service proxies. Further details about this can be
found in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. A short summary of the technical realization of the framework, the
mathematical model and its formal description method was presented in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Works</title>
      <p>
        So far, context models for adaptability were incomplete and neither flexible nor
modular enough. Incomplete because they mainly emphasize deriving context
data from a system situation and disregard the opposite direction of adapting
the system situation based on the context data. Not flexible enough, because
context is defined regarding a system situation but the exact relation between
situations and context remains unclear [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Our concept of an adaptation
context therefore can hold a description of changes in the specification of
context dependent adaptation behavior of the system itself. The process of changing
context or adaptive behavior depending on the current context is not necessarily
self-contained since the information can be produced by sensors and interpreters
outside of the system [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. This way the system’s context and adaptation
behavior can also be modified by means outside the scope and knowledge of the
system architect during design time of the system, thus providing enough
flexibility to integrate further modular techniques (including human customization)
to address the frame problem.
      </p>
      <p>Further research effort needs to be put into applying and integrating
various concrete approaches from AI research for changing adaptive behavior and
relevance. What is also still missing is a semantically well defined process to
design adaptive systems, while concentrating on the adaptive behavior rather
than discussing implementation details.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stølen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Specification and Development of Interactive Systems - Focus on Streams, Interfaces and Refinement</article-title>
          . Monographs in Computer Science, Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Chan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chuang</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>29</volume>
          (
          <issue>12</issue>
          ),
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dennett</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Cognitive Wheels: The Frame Problem of AI</article-title>
          . In C. Hookway, editor, Minds, machines, and evolution, pages
          <fpage>129</fpage>
          -
          <lpage>151</lpage>
          . Cambridge University Press, Cambridge,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Dey</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Providing Architectural Support for Building Context-Aware Applications</article-title>
          .
          <source>PhD thesis</source>
          , College of Computing, Georgia Institute of Technology,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Fahrmair</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Kalibrierbare Kontextadaption fu¨r Ubiquitous Computing. Dissertation</source>
          , Technische Universit¨at Mu¨nchen,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Fahrmair</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salzmann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Schoenmakers</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Reflection Based Tool for Observing JINI Services</article-title>
          .
          <source>In Reflection and Software Engineering</source>
          , number 1826 in LNCS. Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Houssos</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonistioti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merkakos</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mohyeldin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dillinger</surname>
          </string-name>
          . M.,
          <string-name>
            <surname>Fahrmair</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schoenmakers</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Advanced Adaptability and Profile Management Framework for the Support of Flexible Mobile Service Provision</article-title>
          .
          <source>IEEE Wireless Communications Mag</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Lieberman</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Selker</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Out of Context: Computer Systems that Adapt to, and Learn from</article-title>
          ,
          <source>Context. IBM Systems Journal</source>
          ,
          <volume>39</volume>
          (
          <issue>3-4</issue>
          ):
          <fpage>617</fpage>
          -
          <lpage>632</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lueg</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Operationalizing Context in Context-Aware Artifacts: Benefits and Pitfalls</article-title>
          .
          <source>Informing Science</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Merriam-Webster</surname>
          </string-name>
          :
          <article-title>Collegiate Dictionary</article-title>
          . Merriam-Webster, Inc.,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Mohyeldin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dillinger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fahrmair</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sitou</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dornbusch</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>A Generic Framework for Negotiations and Trading in Context Aware Radio</article-title>
          .
          <source>In Software Defined Radio Technical Conference</source>
          , Phoenix Arizona USA,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Pfeifer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rademakers</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Situated Adaptive Design:
          <article-title>Toward a Methodology for Knowledge Systems Development</article-title>
          . In W. Brauer, D. Hernandez, editors,
          <source>Proceedings of the Conference on Distributed Artificial Intelligence and Cooperative Work</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>64</lpage>
          . Springer Verlag,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>