<!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>Pervasive Services Engineering for SOAs</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Clayton School of Information Technology, Monash University</institution>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>With the proliferation of ubiquitous computing devices and mobile internet, it is envisaged that future pervasive services will be increasingly large-scale and operate at an inter-organizational level. Designing and implementing pervasive services will therefore become a more complex and challenging task. Signi cant interest exists within the pervasive computing community for representing pervasive services at di erent stages of the software life cycle. While most of these e orts have focused on the detailed design or implementation of pervasive services little work has been done at the software architectural level. In this research, we propose a novel approach based on behavioral modeling and analysis techniques for representing pervasive software services and their compositions and verifying the process behavior of these models against speci ed system properties. This systematic, architecture-centric approach combines the bene ts of principles such as UML, model transformation of Model Driven Architecture, and formal behavioral modeling and analysis techniques through model-checking, for engineering pervasive software services. In order to illustrate the validity and practical feasibility of the proposed approach we use an existing case study in transport and logistics. The approach will be evaluated to demonstrate the e ectiveness of model-checking as a technique for verifying pervasive software services.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Mark Weiser's vision of ubiquitous computing has been the impetus behind the
introduction of a new service-oriented computing paradigm known as pervasive
services or context-aware services. Ubiquitous environments facilitate the
collection of information from various data sources in order to aggregate the context
of entities, such as users, places or objects. The context obtained from these
sources can be used to automatically adapt a service's behavior or the content
it processes to the context of one or several parameters of a target entity in
a transparent way, resulting in pervasive services [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. With the advancement
of ubiquitous computing devices and mobile internet, it is envisaged that future
pervasive services will be large-scale and operate at an inter-organizational level,
with an increasing number of actors and constraints involved [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The real-time
requirements, highly dynamic nature, quality of context information and
automation further contribute to making pervasive services complex and
challenging compared to conventional services. Thus, the design and implementation of
pervasive services will be a more complex task. Signi cant interest exists within
the pervasive computing community for representing pervasive services at di
erent stages of the software life cycle. However, so far most of the research work
has been focused on the detailed design or implementation stages [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] of the
software life cycle such as Web services while little attention has been given to
the initial phase of design such as architecture design, providing the motivation
for this research.
      </p>
      <p>
        The use of models has been a popular approach for engineers when
constructing complex systems. Behavior modeling and analysis have been successfully used
by software engineers to uncover errors of concurrent and distributed systems at
design time. In this research, we propose a novel approach based on behavioral
modeling and analysis techniques for modeling pervasive software services and
their compositions and verifying the process behavior of these models against
speci ed system properties. This systematic, architecture-centric approach
combines the bene ts of principles such as UML, model transformation techniques of
Model Driven Architecture (MDA), and formal behavioral modeling and
analysis techniques using model-checking, for engineering pervasive services (research
objectives: Fig. 1a). Context-handling information is considered to be tightly
coupling or crosscutting the core functionality of a service at service interface
level [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In this research, the crosscutting context-dependent functionality of
the interacting pervasive services is modeled as aspect-oriented models in UML.
In order to facilitate formal behavioral analysis, these UML models are
automatically translated to state machine based behavioral representations using
transformation authoring of MDA. The behavioral modeling and analysis
approach used in this research is particularly based on formal veri cation,
validation and simulation techniques provided by the model-checker, the Labeled
Transition System Analyzer (LTSA) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and its process calculus Finite State
Processes (FSP). Model-checking is a formal veri cation approach for verifying
nite state concurrent systems. We use an existing case study in transport and
logistics to explore the approach and to illustrate its practical feasibility. The
approach will be evaluated to demonstrate the e ectiveness of model-checking
as a technique for detecting design defects in pervasive service speci cations.
      </p>
      <p>
        Preliminary results of this research have been published in [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ]. While this
paper discusses the overall research in general it particularly reports on the model
transformation tool created using IBM Rational Software Architect 7.0 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and
further research directions established on formal veri cation and validation of
the research. Section 2 provides a brief analysis of the related work. In Sect. 3,
the overall research methodology of the study is discussed, and Sect. 3.1 and
3.2 present the model transformation tool created, and model veri cation steps
proposed as future work, respectively. Finally, Sect. 4 concludes the paper.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Previous approaches to the development of pervasive services have largely been
at the detailed design or implementation stages [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] of the software life cycle.
Luo et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] establish a framework that enables context-aware composition of
Web services taking into account both the user's and the service's context when
composing services. In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the authors propose an approach to include context
in the composition of Web services. However, the approach taken in this research
is clearly distinctive from the above approaches as it is based at the software
architectural level which is higher level and abstract design. A similar approach
to this, where concurrent behavior between base programs and aspects has been
modeled using FSP semantics is provided in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. However, our work di ers
signi cantly as it is based on pervasive services. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the authors present an
approach on model driven development of pervasive services using UML and
models crosscutting pervasive concerns as aspects. However, they have taken no
account of concurrency and distributed notions in their design or any formal
veri cation aspects through techniques such as model-checking as proposed in
this research.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>A Methodology for Pervasive Services Engineering</title>
      <p>
        In this section, we provide an overview of the research methodology applied
for engineering pervasive software services. Next we present the model
transformation tool implemented using IBM Rational Software Architect, and further
research directions established on model veri cation and validation, as part of
the research methodology. The research approach is explored using a real-world
case study in intelligent tagging for transport and logistics called the ParcelCall
project [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which is a European Union project within the Information Society
Technologies program. The case study describes a scalable, real-time, intelligent,
end-to-end tracking and tracing system using radio frequency identi cation,
sensor networks, and services for transport and logistics. A signi cant subset of the
ParcelCall case study is exception handling that needs to be enforced when a
transport item's context information violates acceptable threshold values. This
research is focussed on this subset.
      </p>
      <p>
        The overall pervasive service-oriented development process is divided into
three main stages (Fig. 1b). First, using the case study subset, a service
speci cation for the system under consideration is de ned. For this purpose, the
relevant use cases for the case study subset are determined and the services
that realize the identi ed use cases are speci ed. The identi ed use cases and
their relationships are expressed using an UML use case diagram. As de ned
by Kruger et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], we identify a software service as the interaction pattern
or the interplay of several components collaborating to complete a desired task.
Furthermore, we identify services as rst-class modeling elements as opposed
to rst-class implementation elements, such as Web services. Message sequence
charts (MSCs) provided by the LTSA-MSC tool, which is an extension to the
LTSA tool, are used to describe the interaction patterns de ning the services for
the case study subset.
      </p>
      <p>
        Second, the architecture for the system under consideration is de ned. To
this end, rst a component con guration that implements the extracted services
is de ned using an UML deployment diagram. The component con guration of
the approach is based on a distributed version of the Observer pattern called
the Event-Control-Action architecture pattern [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Second, a behavioral
representation of the service speci cation in the form of FSPs (architecture model)
is generated automatically using the LTSA-MSC tool's FSP synthesis feature.
The architecture model provides the basis for modeling and reasoning about the
system design where the components are modeled as labeled transition systems.
      </p>
      <p>
        Third, the architecture model synthesized in the previous step is modularized
by applying separation of concerns. Context-handling information is considered
to be crosscutting the core functionality of a service at service interface level,
which results in a complex design that is hard to implement and maintain.
Therefore, a custom UML pro le is proposed from which a UML model template
and aspect-oriented models in UML (contextual-FSP or c-FSP aspects) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are
derived for the case study subset. A custom prototype tool has been implemented
to automate the translation of the c-FSP aspects to formal FSP to facilitate
rigorous veri cation by the LTSA. Details of this tool implementation and the
proposed model veri cation process using the LTSA are discussed next.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Model Transformation</title>
        <p>
          The custom prototype tool has been built using the Java Emitter Templates
(JET) transformation authoring feature of IBM Rational Software Architect
(7.0) [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. JET is an open source technology developed by IBM and is part of
several IBM Rational modeling platform 7.0 products. The transformation is
used to automate the application of design patterns and generate infrastructure
code for the c-FSP aspects using FSP semantics (aspectual FSP generation). An
added bene t of applying JET transformation is that it allows the end-user
modi cation of the code generator using templates. The application of model driven
development in pervasive services engineering at state machine level is novel. The
main bene ts of this approach are improving the quality and productivity of
service development, easing system maintenance and evolution, and increasing the
portability of the service design. Two variations of the model transformation tool
have been built. Initially, a model-to-text transformation was implemented with
XPath expressions to navigate the UML models for c-FSP aspects and extract
model information dynamically to the transformation. However, JET's support
for UML models has two main limitations. First, using JET it is not possible
to access stereotype information of the UML models although custom XPath
functions can be written to perform this, and second JET authoring nds the
complexity of the UML meta-model hard to manage. Therefore, a more e ective
solution was implemented by rst creating a model-to-model mapping
transformation which extracts relevant stereotype information from the UML models,
and builds a code-generator speci c intermediate Eclipse Modeling Framework
model which can then be consumed by the JET transformation. Thus, a
multistage transformation (Fig. 2a) has been used to transform the UML models to
formal FSP semantics.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Model Veri cation and Validation</title>
        <p>This section presents a discussion on the proposed future work of this research.
For model veri cation (Fig. 2b), rst the generated FSP for the c-FSP aspects
need to be woven with their base state machines using an explicit weaving
mechanism. This can be modeled as the parallel composition of the aspectual and base
state machines in FSP. Synchronization events can be introduced to control the
coordination and weaving order between the base program and aspects.
Concurrency and distributed notions will be added to the interacting pervasive software
services and their compositions, such as shared objects, message passing and
concurrent architectures. In addition, proper abstraction mechanisms need to be
enforced on the models as part of preparation for veri cation. Formal
modelchecking techniques provided by the LTSA, such as safety, progress and absence
of deadlocks, will be used to verify the process behavior of the services against
system properties speci ed to extensively cover the system requirements. The
LTSA checks for property violations and if any violations are found it produces a
trace to the violation known as a counterexample, which can be used to improve
the state models or the system properties for the pervasive services. Validation
of the models will be performed using the simulation and animation features of
the LTSA. The research approach will be evaluated to demonstrate the e
ectiveness of model-checking as a technique for verifying pervasive software service
speci cations. Potential defects can be injected to the service speci cation and
results can be compared with the defect free service speci cation.
To summarize, the primary objective of this research is a systematic,
architecturecentric approach for engineering pervasive services based on the principles of
UML, model transformation techniques and formal model-checking. Building
software architectural models of pervasive services provide engineers a better
understanding of how these complex services inter-operate. Also, it helps to uncover
any errors during the early stages of the software life cycle before the services are
actually implemented, thus contributing to the Web services community. Future
work involves model veri cation and validation as discussed previously.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Hegering</surname>
            ,
            <given-names>H. G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kupper</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Linnho -Popien,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Reiser</surname>
          </string-name>
          , H.:
          <article-title>Management Challenges of Context-Aware Services in Ubiquitous Environments</article-title>
          . In: Goos,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Hartmanis</surname>
          </string-name>
          , J., van Leeuwen,
          <string-name>
            <surname>J. (eds.) DSOM</surname>
          </string-name>
          <year>2003</year>
          .
          <article-title>LNCS</article-title>
          , vol.
          <volume>2867</volume>
          , pp.
          <volume>246</volume>
          {
          <fpage>259</fpage>
          . Springer, Heidelberg (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Buchholz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kupper</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schi</surname>
            <given-names>ers</given-names>
          </string-name>
          , M.:
          <article-title>Quality of Context: What It Is And Why We Need It</article-title>
          . In: 10th Workshop of the HP OpenView University Association (HPOVUA'03). (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Luo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Liu,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Towards Context-Aware Composition of Web Services</article-title>
          .
          <source>In: Fifth International Conference on Grid and Cooperative Computing</source>
          . pp.
          <volume>494</volume>
          {
          <fpage>499</fpage>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Mostefaoui</surname>
            ,
            <given-names>S. K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirsbrunner</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Context-Aware Service Provisioning</article-title>
          . In: IEEE/ACS International Conference on Pervasive Services. pp.
          <volume>71</volume>
          {
          <fpage>80</fpage>
          . (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Sheng</surname>
            ,
            <given-names>Q. Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>ContextUML: a UML-based Modeling Language for Model-Driven Development of Context-Aware Web Services</article-title>
          .
          <source>In: International Conference on Mobile Business (ICMB'05)</source>
          . pp.
          <volume>206</volume>
          {
          <fpage>212</fpage>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Magee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramer</surname>
          </string-name>
          , J.:
          <source>Concurrency: State Models and Java Programs, 2nd Edition</source>
          . John Wiley and Sons, Worldwide Series in Computer Science (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Abeywickrama</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A Model-Based Approach for Engineering Pervasive Services in SOAs</article-title>
          .
          <source>In: 5th ACM International Conference on Pervasive Services (ICPS'08)</source>
          . pp.
          <volume>57</volume>
          {
          <fpage>60</fpage>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Abeywickrama</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Towards Engineering Models of Aspectual Pervasive Software Services</article-title>
          .
          <source>In: 3rd ACM Workshop on Software Engineering for Pervasive Services (SEPS'08)</source>
          . pp.
          <volume>3</volume>
          {
          <fpage>8</fpage>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>IBM</given-names>
            <surname>Rational Software Architect Transformation Authoring</surname>
          </string-name>
          , http://publib. boulder.ibm.com/infocenter/rsdhelp/v7r0m0
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Douence</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Le</given-names>
            <surname>Botlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Noye</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Sudholt</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Concurrent Aspects</article-title>
          .
          <source>In: 5th International Conference on Generative Programming and Component Engineering (GPCE'06)</source>
          . pp.
          <volume>79</volume>
          {
          <fpage>88</fpage>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Davie</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Intelligent Tagging for Transport and Logistics: The ParcelCall Approach</article-title>
          .
          <source>Electronics and Communication Engineering Journal</source>
          <volume>14</volume>
          (
          <issue>3</issue>
          ),
          <volume>122</volume>
          {
          <fpage>128</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kruger</surname>
            ,
            <given-names>I. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mathew</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meisinger</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>E cient Exploration of Service-Oriented Architectures using Aspects</article-title>
          .
          <source>In: 28th International Conference on Software Engineering</source>
          . pp.
          <volume>62</volume>
          {
          <fpage>71</fpage>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>P. D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pires</surname>
          </string-name>
          , L. F.,
          <string-name>
            <surname>van Sinderen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Architectural Patterns for ContextAware Services Platforms</article-title>
          .
          <source>In: 2nd International Workshop on Ubiquitous Computing</source>
          . pp.
          <volume>3</volume>
          {
          <fpage>19</fpage>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>