<!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>Aspect-Oriented Reconfigurable Middleware for Pervasive Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gustavo G. Pascual</string-name>
          <email>gustavo@lcc.uma.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Departamento de Lenguajes y Ciencias de la Computacio ́n University of Ma ́laga, Ma ́laga (SPAIN) CAOSD group</institution>
          ,
          <addr-line>http:/caosd.lcc.uma.es</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>One of the main features of pervasive computing systems is their need to be dynamically reconfigured in order to properly adapt to the continuous changes in their environment conditions (context). An appropriate solution to provide reconfigurability is Aspect-Oriented Software Development, which allows that optional functionalities can be enabled/disabled and services can be replaced with lighter implementations which are less resource consuming. The primary aim of this work is the definition and implementation of an aspect-oriented middleware architecture to dynamically reconfigure pervasive computing systems. Our middleware will provide support for the context-aware, efficient, consistent and homogeneous reconfiguration of middleware and application services. Other requirements of pervasive computing systems such as mobility, fault tolerance and service distribution will also be addressed.</p>
      </abstract>
      <kwd-group>
        <kwd>Middleware</kwd>
        <kwd>AOSD</kwd>
        <kwd>Dynamic Reconfiguration</kwd>
        <kwd>Evaluation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Nowadays pervasive systems have acquired special relevance due to the popularity of
smartphones and embedded systems. In these kinds of systems, the context and,
consequently, the requirements that services have to satisfy, change continuously. Therefore,
context-aware adaptation is needed, which involves enabling, disabling and modifying
services. Moreover, adaptation should be as transparent as possible to the services and
the applications that use them. Since performing adaptation is a complex task, it should
be addressed by a middleware architecture that provides the monitoring and
reconfiguration services needed to achieve context-aware adaptation at both the infrastructure
and the application services.</p>
      <p>Finding solutions to this problem is not easy since we need to face some
significant difficulties. For instance, in these kinds of systems we can find devices with very
different capabilities with respect to processing, memory and connectivity resources,
so applications and middleware should be reconfigured deploying lighter or more
complete versions of their services without affecting the global functionality of the system.
Furthermore, whenever reconfiguration is performed it is possible that the new deployed
configuration is not consistent. However, controlling consistency introduces a
significant overhead, so it is necessary to find a balance between reconfiguration flexibility
and performance. Finally, the services can be distributed, so many non-functional
requirements like security, privacy, fault tolerance or mobility need to be addressed. The
main motivation of our work is that although the importance of these requirements in
the development of pervasive systems has been identified in the literature, no single
existing proposal satisfies them all.</p>
      <p>
        Aspect-Oriented Software Development (AOSD) is an appropriate technology for
this purpose. With AOSD, optional functionalities can be modelled as aspects, which are
dynamically enabled/disabled or even woven/unwoven if the underlying AO platform
supports it [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Furthermore, services components can also be replaced by alternative
implementations that better suit the current context conditions. The final goal of our
research is to define an Aspect-Oriented (AO) reconfigurable middleware architecture
that perform context monitoring and reconfigure itself in order to adapt to the changes
in the environment at both the middleware infrastructure and the application level, while
addressing all the requirements previously mentioned.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        As has been previously mentioned, reconfiguration is necessary because the
environment and the available resources are continuously changing. Reconfiguration can
be provided for applications, middleware services or both of them. Some work [
        <xref ref-type="bibr" rid="ref2 ref5 ref6 ref9">2, 5,
6, 9</xref>
        ] provide only reconfiguration of application layer. In these proposals, the amount
of resources that the middleware takes is always the same, so these approaches are not
suitable for pervasive computing systems. Other work such as RCSM [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], SOCAM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
the work by Janik and Zielinski [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and the architecture in the PhD thesis of
Paspallis [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] provide reconfiguration of middleware layer. However, as reconfiguration is
mainly provided for context monitoring service, this requirement is only partially
addressed. RCSM, SOCAM, and the work presented in the thesis of Paspallis are able to
enable and disable sensing units (i.e. context providers) at runtime. The work of Janik
and Zielinski integrates with AAOP, an AO model which provides support for
specifying adaptability strategies through a graph. With AAOP, sampling devices can be
enabled/disabled and applications can be reconfigured in order to satisfy non-functional
requirements. However, this approach lacks flexibility because the number of states of
the graph is multiplied with every non-functional requirement taken into account.
      </p>
      <p>
        In these work, only small changes are performed during reconfiguration, so there
is no need to provide mechanisms to ensure consistency. In some proposals that
provide dynamic reconfiguration (e.g. [
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14">11–14</xref>
        ]) consistency is not addressed, or it is only
partially addressed.
      </p>
      <p>Reconfiguration is a mechanism that provides support for adaptation to changes
in the context of the system. Therefore, one of the most relevant services is context
monitoring. Most approaches acquire context data in a similar way, and the only
significant difference is introduced by aspect-oriented approaches. Concretely, in Janik and
Zielinski, context information is provided by sampling devices that are implemented
as aspects and can be woven/unwoven as needed. Some kind of context abstraction,
like data aggregation or filtering, should be provided. RCSM provides support for past
data aggregation introducing the concept of situation, and the proposal by Janik and
Zielinski follows a similar approach. On the other hand, SOCAM uses an Ontology
Web Language (OWL) and in the work by Paspallis an XML-based language called
CQL is used to access context information. None of them is adaptable enough in order
to satisfy the necessities of all context-aware applications.</p>
      <p>Frequently, the context data sources are remotely instantiated, so the middleware
should provide support for accessing remote context. Furthermore, since some kinds
of context information (e.g. location) are especially sensitive, the middleware should
provide mechanisms to ensure that only authorised entities can access that information.
Therefore, two new requirements (privacy and security) arise. All proposals provide
support for accessing remote context but none of them address privacy or security.</p>
      <p>Access to remote context data could be provided through a distributed context
monitoring service. However, it would be desirable that not only context monitoring but
every service could benefit from this feature. Distributed services can be remotely
instantiated, enabling middleware to run services in devices with more available resources
(i.e. computing resources, battery, etc.). In the related work presented in this section,
distribution of middleware layer is only provided for context monitoring service.</p>
      <p>Although reconfiguration is an important requirement in pervasive computing
systems, more requirements have been identified. One common feature in pervasive
computing systems is mobility. In mobility situations, the reachability of devices and
services changes frequently, and some mechanisms are needed in order to handle these
cases. In RCSM, the protocol R-CDP provides support for looking for new sensors
dynamically, and SOCAM provides a Service Location service in which context providers
are registered. On the other hand, mobile devices are prone to failures, so fault-tolerance
mechanisms should be provided too. However, these proposals do not address this
requirement.</p>
      <p>
        In this section we have focused on research that provides support for
reconfiguration. It is worth noting that we can find other work such as The Context Toolkit [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
and PACE [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] in which reconfiguration support is not provided but some of the
mentioned requirements are addressed. The Context Toolkit provides support for privacy
since context providers can be assigned an owner and a set of rules for context sharing.
Mobility is also addressed through a component discovery mechanism. PACE
middleware provides support for privacy, mobility and fault tolerance. Privacy is performed
with access control in context repositories, mobility support is provided through a
publish/subscribe mechanism, but fault tolerance is only partially addressed since it is only
provided for sensing errors or failed sensors, but not failed components.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Proposed Solution</title>
      <p>With our proposal we provide two main contributions. The first one is a middleware
architecture that provides support for a homogeneous reconfiguration of middleware
and application services. Second, we propose a service model that covers all the stages
of the software development lifecycle, providing support for specifying and developing
services that can take advantage of the reconfiguration service.</p>
      <p>Context-Monitoring Service</p>
      <p>Context Processing
IAcquisitionManagement</p>
      <p>IContextAcquired
Context
Acquisition</p>
      <p>Application</p>
      <p>Service
IContextRequest</p>
      <p>IReconfigManagement</p>
      <p>Dynamic</p>
      <p>Reconfiguration Service
IContextNotification</p>
      <p>IReconfigEvent
Aspect Management</p>
      <p>Service</p>
      <p>Figure 1 shows our high level middleware architecture. In this Figure, the Dynamic
Reconfiguration Service (DRS), the Aspect Management Service (AMS) and the
Context Monitoring Service (CMS) are explicitly shown because these services are critical
parts of our middleware architecture. DRS provides support for services
reconfiguration, and takes into account the context information provided by CMS. DRS and CMS
provide a well known interface and do not depend on services internal architecture, so
every application and middleware service can take advantage of the dynamic
reconfiguration and the context monitoring services in a homogeneous way. In our architecture,
aspects will be woven and unwoven dynamically by AMS. In this way, new
functionalities can be added or removed from services according to previously defined
reconfiguration policies.</p>
      <p>Figure 2 describes the process of services development and reconfiguration.
Development of a service begins with the specification of a features model. This model
includes mandatory and optional features of the service, that will be dynamically
enabled and disabled based on context data. From the features model and context data a
repository of configurations will be defined, which consists of a set of valid and
consistent architectures, each one addressing a valid combination of features of the model.
At runtime, the DRS will dynamically select the appropriate configuration according to
the current context.</p>
      <p>Features Model</p>
      <p>Config
Generation</p>
      <p>Context
data
Configuration Repository
Config 1</p>
      <p>Config 2</p>
      <p>Config N
Selected
config</p>
      <p>Dynamic
Reconfiguration</p>
      <p>Service
Our objective is to define a middleware architecture in which every infrastructure and
application service can be reconfigured in a homogeneous way while fulfilling typical
requirements of pervasive systems, and we will achieve this objective ensuring that low
overhead is introduced.</p>
      <p>
        In the process of services specification, all the steps of software development life
cycle will be followed. We adopt the same principles of the Software Product Lines
(SPL) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] approach. However, instead of defining a family of products we will define
a familiy of valid architectures for every service. In the process of specifying a service,
the first step is to define its features model. This model will include both mandatory
and optional features of the service and the dependences between these features. Every
valid choice of features of the model will be maped to a specific architecture of the
service, which will include both base and aspectual components. In order to improve
this process, technologies like Model Driven Development [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] could be applied.
      </p>
      <p>One of our main objectives is that our middleware can be deployed in resource
constrained devices. For this reason, we will design and evaluate the most critical parts
(in terms of resources consumption) of the system first. Once we are sure that the critical
parts of the system are designed in an efficient way, we will define the rest of the services
of the architecture. One of these parts is the Aspect Management Service. Since this
service provides mechanisms to instrument the communication between components,
the design and implementation of other services of the middleware will depend on the
design of AMS. Another critical part of the architecture is the Dynamic Reconfiguration
Service, so it is necessary to provide mechanims to perform reconfiguration (enabling
and disabling features from the service model) from context monitoring data in a very
efficient way. Additionally, this service should provide support for defining bindings
between context information and reconfiguration triggering.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Expected Contribution and Current Status</title>
      <p>
        Through the proposed middleware architecture and methodology four contributions are
expected.
1. Homogeneous services reconfiguration. We propose an architecture in which both
application and infrastructure services can be reconfigured in a homogeneous way.
In related work, reconfiguration is frequently limited to application layer and, if
middleware is reconfigurable, it is restricted specifically to some services.
2. Extensible architecture. Since services can be developed independently, the
middleware architecture can be extended with new services as needed. This way, both
functional and non-functional requirements can be fulfilled for any use case.
3. Consistent and efficient reconfiguration mechanism. All the valid configurations of
a service are defined at design time in its features model and associated service
architectures. This way, consistency is guaranteed without introducing additional
overhead. An initial efficiency evaluation of the weaving mechanism has been
performed in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], and reconfiguration performance is being evaluated in ongoing
work.
4. Addressing pervasive computing requirements. Our work, unlike the related
proposals, will address pervasive computing requirements like privacy, security,
service distribution, mobility and fault tolerance.
      </p>
      <p>
        Currently, we have specified the context monitoring service and have implemented
and evaluated a prototype of the Aspect Management Service, which is one the critical
parts of the system. A first evaluation was presented in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], although these results have
been significantly improved in ongoing work.
      </p>
      <p>The next service to be defined in detail is Dynamic Reconfiguration Service, another
key part of our middleware architecture.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Evaluation Plan</title>
      <p>Each time a newservice is introduced into the middleware infrastructure or modified, an
evaluation has to be performed in order to ensure that the service works properly and,
since we target resource-constrained devices, that it works in an efficient way. To this
end, appropriate scenarios will be defined. The results obtained will be compared, when
possible, with the results obtained from related work.</p>
      <p>
        First, critical parts of the system will be evaluated, since they affect directly to
the rest of the system. In this way, the first service that has been evaluated is Aspect
Management Service. To this end, we have evaluated AO general-purpose languages
that provide dynamic reconfiguration, such as JBoss AOP; other AO languages (e.g.
Spring AOP) will also be evaluated as part of our future work. However, since these
languages need to address the requirements of every kind of application, our initial
results show that they introduce a high overhead and, consequently, they seem not
suitable for resource-constrained devices. Therefore, we have implemented and evaluated
a prototype of this service that meets the needs of our architecture. In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
performance in the composition process was evaluated, which is very important since one of
the main drawbacks of AOSD is the overhead that dynamic composition introduces.
Furthermore, since according to an AO approach, reconfiguration would normally
involve not only changing parameters but also adding and removing components, it is
also highly important to evaluate the reconfiguration performance of our approach. As
part of our ongoing work, reconfiguration performance is being evaluated too, and other
requirements such as consistency will also be addressed.
      </p>
      <p>Once we have developed the main services of the middleware architecture, some
application scenarios will be defined and implemented. In these scenarios, different
kinds of devices such as smartphones, laptops and desktop computers will be used,
and both application and middleware services will be reconfigured according to context
information provided by sensors (e.g. location, temperature), the operating system (e.g.
CPU and memory consumption) or the user (e.g. user preferences). These applications
will involve requirements such as mobility, distribution and fault tolerance while taking
into account the resource-constraints of these kinds of devices.</p>
      <p>Acknowledgements This research has been conducted in collaboration with Mo´nica
Pinto and Lidia Fuentes from the Languages and Computer Science Department at the
University of Ma´laga, which are the PhD Supervisors of the thesis discussed in this
paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>JBoss-AOP:</surname>
          </string-name>
          (http://www.jboss.org/jbossaop) Last visited: February,
          <year>2011</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>
          (
          <year>2003</year>
          )
          <fpage>1072</fpage>
          -
          <lpage>1085</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Yau</surname>
            ,
            <given-names>S.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gong</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seth</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Development and runtime support for situationaware application software in ubiquitous computing environments</article-title>
          . In: In COMPSAC, IEEE (
          <year>2004</year>
          )
          <fpage>452</fpage>
          -
          <lpage>457</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Gu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pung</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Zhang, D.:
          <article-title>A service-oriented middleware for building context-aware services</article-title>
          .
          <source>Journal of Network and Computer Applications</source>
          <volume>28</volume>
          (
          <year>2005</year>
          )
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cuervo</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , et. al: Maui:
          <article-title>Making smartphones last longer with code offload</article-title>
          .
          <source>In: Proceedings of the 8th international conference on Mobile systems</source>
          , applications, and services,
          <source>ACM</source>
          (
          <year>2010</year>
          )
          <fpage>49</fpage>
          -
          <lpage>62</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Giurgiu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          , et. al.:
          <article-title>Calling the cloud: enabling mobile phones as interfaces to cloud applications</article-title>
          .
          <source>In: Proceedings of the 10th International Conference on Middleware</source>
          , Springer-Verlag (
          <year>2009</year>
          )
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Verbelen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hens</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Turck</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dhoedt</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Adaptive online deployment for resource constrained mobile smart clients</article-title>
          . In: MOBILe Wireless MiddleWARE,
          <source>Operating Systems, and Applications</source>
          , 3rd International ICST conference, Proceedings. (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Janik</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zielinski</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>AAOP-based dynamically reconfigurable monitoring system</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>52</volume>
          (
          <year>2010</year>
          )
          <fpage>380</fpage>
          -
          <lpage>396</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Team</surname>
          </string-name>
          , C.D.: Codamos:
          <article-title>Context-driven adaptation of mobile services</article-title>
          . (http:// distrinet.cs.kuleuven.be/projects/CoDAMoS/)
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Paspallis</surname>
          </string-name>
          , N.:
          <article-title>Middleware-based development of context-aware applications with reusable components</article-title>
          . University of Cyprus (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Grace</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , et. al.:
          <article-title>Deep middleware for the divergent grid</article-title>
          .
          <source>In: Proceedings of the International Conference on Middleware</source>
          , Springer-Verlag (
          <year>2005</year>
          )
          <fpage>334</fpage>
          -
          <lpage>353</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hillman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Warren</surname>
            ,
            <given-names>I.:</given-names>
          </string-name>
          <article-title>An open framework for dynamic reconfiguration</article-title>
          .
          <source>In: Proceedings of the 26th ICSE, IEEE Computer Society</source>
          (
          <year>2004</year>
          )
          <fpage>594</fpage>
          -
          <lpage>603</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Rasche</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polze</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Configuration and dynamic reconfiguration of component-based applications with microsoft</article-title>
          .
          <source>net.</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Vandewoude</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Dynamically updating component-oriented systems</article-title>
          . status: published (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Dey</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abowd</surname>
            ,
            <given-names>G.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salber</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications</article-title>
          .
          <source>Hum.-Comput. Interact</source>
          .
          <volume>16</volume>
          (
          <year>2001</year>
          )
          <fpage>97</fpage>
          -
          <lpage>166</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Henricksen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Indulska</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McFadden</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balasubramaniam</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Middleware for distributed context-aware systems</article-title>
          .
          <source>On the Move to Meaningful Internet Systems</source>
          <year>2005</year>
          :
          <article-title>CoopIS, DOA, and ODBASE (</article-title>
          <year>2005</year>
          )
          <fpage>846</fpage>
          -
          <lpage>863</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Pohl</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Bo¨ ckle, G., der
          <string-name>
            <surname>Linden</surname>
            ,
            <given-names>F.J.V.</given-names>
          </string-name>
          : Software Product Line Engineering: Foundations, Principles and Techniques. Springer (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Beydeda</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Book</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Volker</surname>
          </string-name>
          , G.:
          <article-title>Model-driven software development</article-title>
          . Springer, City (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. G. Pascual,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Fuentes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Pinto</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Towards a Reconfigurable Middleware Architecture for Pervasive Computing Systems</article-title>
          . In: 9th International Workshop on System/Software Architectures. (
          <year>2011</year>
          )
          <article-title>Accepted for publication</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>