=Paper= {{Paper |id=Vol-1294/paper20 |storemode=property |title=Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform |pdfUrl=https://ceur-ws.org/Vol-1294/paper20.pdf |volume=Vol-1294 |dblpUrl=https://dblp.org/rec/conf/icaase/BouguessaBM14 }} ==Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform== https://ceur-ws.org/Vol-1294/paper20.pdf
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




   Adaptation of Service-Based Context-
 Aware Applications with FraSCAti Platform

        Abdelkader Bouguessa                        Boudjemaa Boudaa                         Leila Amel Mebarki
  Department of Computer Science Ibn         Department of Computer Science          Department of Computer Science
        Ibn Khaldoun University                   Ibn Khaldoun University                  Ibn Khaldoun University
             Tiaret, Algeria                           Tiaret, Algeria                          Tiaret, Algeria
   abdelkader.bouguessa@gmail.com            boudjemaa.boudaa@univ-tiaret.dz           leilamel.mebarki@gmail.com




Abstract – The dynamic adaptation of running service-based applications without stopping has long been
shown to be more than a dream for designers and developers. Recently, several works have been proposed
in the literature, where most of them do not have a clear and complete process of adaptation or count on a
specific plat-form that decreases the use of these adaptable large-scale applications. This paper aims to
present a context-aware dynamic adaptation that covers techniques for handling the impact of context
changes onto the execution of context-aware applications. We propose a comprehensive solution with
software architecture that enables the dynamic adaptation of services built by assembling components,
depending on context execution. This architecture is based on SCA (Service Component Architecture)
specification, and implemented with the FraSCAti platform. The SCA specification guarantees pure
component assembly and the FraSCAti platform guarantees the automatic reconfiguration. A case study of
a modern tourism agency is treated by the proposed adaptation solution in order to exhibit its feasibility.

Keywords – Dynamic Adaptation, Context-awareness, Service-based applications, FraSCAti, MAPE.


                                                                   SCA [3] is principally elaborated to realize large-
1. INTRODUCTION                                                    scale systems and distributed applications.
                                                                   Regardless to communication protocols or
Advances in technology allow us to design                          programming languages, SCA standard aims to
efficient applications, where their contextual                     define a set of services in one architecture that
conditions are different. In order to meet specific                stands on four specifications: assembly
needs, components or services of these                             language, component implementations, bindings,
applications can act synergistically and                           and policies [4]. This paper describes a support
communicate with each other within one or                          to the execution of service-based applications
different operating systems and across two or                      that may require adaptation to tackle changing
more connected computers. The agility,                             user context, or even altering environment. Due
reliability, flexibility and reusability that the                  to the situation where the services may become
service-based architecture (SOA) [1] promises                      available or not during the execution of the
are the main raisons of building service-based                     application, this concept helps constructing
applications (SBAs) on such an architecture. This                  service-based applications that are capable to
development, if properly designed and                              autonomously adapting, and consequently
implemented, will make these SBAs (such as                         involve the evaluation of novel changes to its
healthcare, travel, aerospace and defense                          current design. The goal is to propose a
applications) able to discover and compose                         complete process of adaptation that does not
services at runtime, thus fulfilling ever-changing                 count on a specific platform in order to increase
requirements. Based on the combination of                          the use of these adapt-able large-scale
Service-Oriented        Architecture (SOA)    and                  applications within open, dynamic, and
Component-Based            Software    Engineering                 distributed environments.
(CBSE) [2] principles, the evolving paradigm


International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       171
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




A general definition of context provided by Dey et                 the creation of self-adaptive applications, and
al. [5] is stated as “any in-formation used to                     Dynaco offers an adaptation framework,
characterize the situation of entities (i.e., whether              originally designed for applications on grids.
a person, place, or object) that are considered                    According to these two generic frameworks, the
relevant to the interaction between a user and an                  adaptation is separated into phases in order to
application, including the user and the application                perform several types of adaptations. The MAPE
themselves. Context is typically the location,                     model [11] becomes now a standard reference
identity, and state of people, groups,                             for specifying a way to divide the different
computational and physical objects”. The                           adaptation phases. The limit of these two works
Context-awareness concept that our solution                        is that they are intended to the reconfiguration of
depends on, determines an application’s                            component-based         applications.   Concerning
behavior, it can be also defined as a response                     dynamic       adaptation       of     service-based
component used to manage environmental                             applications, we will consider the generic
awareness issues as well as unforeseen                             framework presented by Andrés et al. in [12] to
changes by providing better information to                         specify different kinds of adaptation in various
designers, and hence they would dynamically                        environments. The authors tackled in detail the
adjust their applications.                                         four functionalities of the MAPE model [11] (see
The particularity of our proposal is to consider                   section C). Nevertheless, the main difference
the work of Dey et al. [5] that introduced the idea                between their proposition and ours is the
of adaptation by defining context-awareness as a                   technologies, techniques and infrastructure. Our
leading concept to the automation of a software                    selection of FraSCAti platform is motivated by its
system, and to use the FraSCAti plat-form as a                     ability of customization depending on the
run-time support for SCA, which offers                             designer needs; also, it carries runtime
management features that allow us to easily                        reconfiguration capabilities       into a      SCA
perform dynamic adaptation. Intended to                            environment.
implement context-aware applications that can
dynamically change or adapt their behavior
based on their context, our proposed solution is                   3. A DYNAMIC ADAPTATION OF CONTEXT-
presented through an interesting Tourism                               AWARE APPLICATIONS
Agency System case study, where it seeks
mainly to help travelers finding their suitable                    In this section, we will introduce and define the
destinations in the appropriate time based on                      elements of our solution, by mentioning the
monitored information provided by various                          adaptation fields. We will mention then existing
services. The rest of the paper is organized as                    adaptation types, and discuss in detail the ones
follows. Section 2 discusses related work.                         that we focus on in our work. At the end of this
Section 3 proposes a strategy of dynamic                           section, we will present our proposed solution,
adaptation for service-based applications in                       which target dynamic adaptation for context-
which a functional architecture based on                           aware application, and describe each phase of
adaptation module is detailed. Finally, section 4                  the MAPE model. Cloud Computing, mobile
reports our Tourism Agency System case study                       computing, and others are among the research
while section 5 concludes this paper, and                          areas that introduce the challenge of applications
indicates our future work.                                         adaptation, and the ability to reconfigure them so
                                                                   that they will be able to adapt themselves to their
                                                                   executions environment. Adaptation can be
2. RELATED WORK                                                    considered as the process of modifying an
                                                                   application in order to fit new situations and
Various researches found in the literature with                    satisfy specific requirements. An application
the objective to support the dynamic adaptation,                   should be adjusted if its execution context has
notably Context Toolkit [2], SECAS [6],                            been changed. Context-aware applications
COSMOS [7] and WildCAT [8], have tried to                          should adapt themselves at run-time, for many
realize frameworks that make applications                          different purposes, in particular, to deal with the
adaptable. However, most of them proposed                          amount of available resources, and by using
incomplete adaptation approaches; where some                       more efficient program, the user needs will be
works performed dynamic adaptation depending                       better satisfied. Note that introducing facilities for
on a given infrastructure, and others are limited                  context-aware adaptation in exiting code is a
to an application domain [12]. To the best of our                  very difficult task.
knowledge, SAFRAN [9] and Dynaco [10] are
two important works, which present clear
dynamic adaptation strategies. SAFRAN enables



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       172
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




3.1. Adaptation types                                              observation process is done at each layer of the
                                                                   architecture, and equally the adaptation
Adaptation types can be defined as mechanisms,                     schedules may also be performed at different
which enable the application to react in order to                  layers as needed.
fulfill specific adaptation needs, regarding the
evolutions of the context. These are the five                      3.2.1.   OS & hardware layer
possible types of adaptation strategies [9]:
parametric adaptation, functional adaptation,                      This level is the infrastructure that constitutes
structural adaptation, behavioral adaptation, and                  the context source. For example, in case new
the environmental adaptation. For the purpose of                   OS policies become available, this level may
better control the parametric adaptation [13], our                 require dynamic adaptation.
solution will touch only input and output service
parameters. The process of modifying those                         3.2.2.   FraSCAti Platform layer
parameters will be not only to ensure the proper
functioning but also to leverage new possibilities,                At this level, explorer can detect that a service
which can appear dynamically.                                      appears or disappears; that means keeping
       Input      parameter.     This parameter                   under observation various services’ progresses.
          comprises the population of operation                    FraSCAti [14], which is a reflective platform for
          parameters based on context. One or                      deploying, hosting, and managing SCA
          more parameters values of the request                    applications, its different subsystems are
          message are replaced with values                         implemented as SCA components. FraSCAti
          related to contextual information.                       provides a homogeneous view of a middleware
       Output          parameter.        Response                 software stack where the platform, the non-
          manipulation is also a context-based;                    functional services, and the applications are
          where the service responses can be                       uniformly designed and implemented with the
          manipulated      and     modified.   The                 same component-based and service-oriented
          adaptation is done after the service has                 paradigm. This platform has the particularity of
          executed and constructed a response.                     facilitating the process of dynamic adaptation of
          This can have sorting or filtering                       SCA components. Our work is motivated by the
          operations, for instance.                                fact that FraSCAti is a general model, i.e. it is not
                                                                   specific to an application domain [15]. Moreover,
3.2. Solution overview                                             it is an extension of the Fractal model, in other
                                                                   words, it contains the various basic concepts
This paper presents a novel approach that                          shared by most other models. Technically, the
aims at dynamically adapting the execution of                      FraSCAti model is very flexible, allowing for
the service-based applications at runtime in                       many dynamic reconfigurations and especially is
case of context changes. As shown in Fig. 1,                       designed primarily to be easily extended, and it
our proposal relies on four main layers;                           allows the addition of new features. Likewise, an
where, it is important to emphasize that the                       application built using FraSCAti is seen as a set




                            Figure 1: Architecture of the proposed Dynamic Adaptation.



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       173
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




of components and services, these components                       possibilities that may appear during its
communicate with each other through referrals.                     execution. According to the MAPE model [11],
The extension of the FraSCAti model provides                       the adaptation module is divided into four main
better support for synchronization of different                    phases: Monitoring or observation, Analysis or
application entities during the adaptation                         Decision, Planning, and Execution.
process. This dynamic model offers also all the                    In the next section, we will describe in more
basic functionalities we need without making it                    detail the MAPE module as well as techniques
more complex than necessary, allowing us to                        and technologies related to each phase of it.
easily integrate our work into the framework of
the model itself.                                                  3.3. Adaptation module

3.2.3.   Service-based applications layer                          This section will give some details about our
                                                                   implementation that relies on the adaptation
The end user interacts directly with this layer,                   module. This last is responsible for managing
which represents the application he is using; an                   the dynamic adaptation of context-aware
adaptation may be triggered via an adaptor, in                     service-based application. The MAPE model
case the user changes his requirements, which                      [11] divides this module into four phases (Fig. 1):
can be detected via an explorer. As obvious in
Fig. 1, the present layer contains service-based                   3.3.1.   The observation phase
applications (SBA) with Service Component
Architecture (SCA), which defines a general                        The first phase of the MAPE model corresponds
approach that can exploit components, and                          to the observation. It consists of monitoring the
describe how they work together. In particular,                    context of the application in order to detect
SCA specification defines how to create                            changes that need adaptation. This context can
components and how to combine them into                            change from available system resources
complete applications [16]. Regardless of the                      (bandwidth, CPU, etc.) to the user preferences
language used to build the components of an                        and environmental properties (weather, time,
SCA application and beyond the component                           etc.) [15]. Monitoring the environment (execution
technology used, SCA defines a common                              context) of the application and/or the application
assembly mechanism for specifying how these                        itself is the detection of the occurrence of certain
elements are gathered within applications. The                     circumstances requiring adaptation. This step
SCA platform is a framework designed for the                       can be implemented using context-aware
development of service-based applications. The                     adaptive application. The technology we used in
main characteristic of this platform is that it                    this phase is WildCAT, a Generic Framework for
supports a wide variety of programming                             Context-Awareness [9]. This Framework’s
languages for implementing and defining                            objective is to offer a pragmatic approach to
interfaces as well as components. SCA does not                     ease the creation of Context-Aware applications.
offer a new programming language, or a new                         Fig. 2 depicts the main function of the WildCAT
technology for accessed services, but it can                       programming interface [8], which allows
assemble all these existing technologies [17].                     discovering the characteristics of the context,
Beyond the advantages inherent to this                             reason on it and automatically be notified when
approach, SCA allows easy integration of                           specific events occur. The main reasons behind
existing non-SCA development. One more                             our choice of this system is the simplicity of its
feature of the present platform is the policies                    use by application programmers, and it’s
that are defined outside the code performing the                   considered generic, i.e. it’s not tied to a specific
service may be changed without impact on the                       application domain, moreover this system
application code, which will save time and                         enables and allows an efficient and custom
money by allowing the developer to focus on                        implementations for particular domains. The
business logic.                                                    Adaptation module is connected with each layer
                                                                   through two elements; an Explorer that
3.2.4.   Adaptation module layer                                   measures the level’s state and extracts new
                                                                   information appearing in that layer, for example
WSensors in this level can listen multiple                         at the OS & Hardware layer. The Explorer can
explorers and push various events directly given                   determine this level’s properties, such as the
to the adaptation module, whose function is not                    number of available processors as well as RAM
only to keep the application running, but also to                  capacity.
make the best reconfiguration based on the new


International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       174
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




                                                                   various parts that compose a Drools rule may be
                                                                   extended to lend any domain- specific sense to
                                                                   the rule. As depicted in Fig. 3, a Drools rule has
                                                                   the following structure: A set of Events, which is
                                                                   the conditional parts of the rule, and a set of
                                                                   Actions, which is a block that allows specific
                                                                   actions to be done. The decision phase is the
                                                                   start point of our solution to perform adaptation;
                                                                   it relies on gathered contextual information to
                                                                   decide whether the current situation requires
                                                                   adaptation or not. Once this phase has decided
                                                                   that an adaptation should be done, it transmits
              Figure 2: WildCAT overview.                          reaction to the planning phase. The reaction
                                                                   describes what kind of adaptation should be
Second element is an Adaptor that is charged of
                                                                   performed.
performing adaptation within layers if necessary.
In our case every Explorer is linked by a                          3.3.3.   The planning phase
"WSensor". In order to monitor the execution
context and detect its changing over time,                         This third phase consists on establishing a plan
WildCAT gives a special implementation to the                      to apply reactions given from the Decision
used monitors and after a certain period, the                      phase, this plan is a set of actions of various
system collects the new contextual information                     types (environmental, structural, functional,
so it will be notified by the occurred events,                     behavioral, or even parametric) able to change
hence the application adapts to those changes                      the current state of the application into its new
taking into account the new contexts.                              state.     Before      applying    reconfiguration
                                                                   operations, we must associate those operations
3.3.2.   The decision phase
                                                                   to their components, this step is called weaving
                                                                   of adaptation policies. To do so, our approach is
Considering the current state of the application
                                                                   based on the aspect paradigm. Aspect-Oriented
and depending on the new contextual
                                                                   Programming (AOP) [19] gives us mechanisms
circumstances detected in the first phase, the
                                                                   to achieve an adaptation as a Cross-Cutting
application    must     decide   reconfiguration                   Concern, which means to separate the
operations to perform so it adapts to new                          adaptation code from the functional code of the
situations. To do this, the second phase of the                    application. The aspect includes a code that can
MAPE model consists on reactivating an                             be grafted (or weaved) in a source code through
adaptation policy, detecting events occurring in                   a program called Weaver and cut-off points or
the context and according to these events as                       actions. The FraSCAti platform considers the
well as the current state of the system, an                        Aspect as a component named FraSCAti Aspect
adaptation has to be done for this application.                    Component (FAC for short). FAC is the mapping
How decision is made and which actions must                        of the general model [20] (aspect component
be performed to execute the reaction are closely                   (AC), aspect domain, and aspect binding) on the
related to the information received from the                       FraSCAti components model. Fig. 3 illustrates
previous phase and to the goal given to dynamic                    how to implement an AC by a sample source
adaptation. Adaptation policies can be realized                    code. ACs apply the component methods shown
by a rules-based inference engine, in our case                     by the client and server interfaces. An
they are implemented using the Drools system.                      implementation of the IntentHandler interface is
Drools [18] is a Business Rule Management                          required when declaring an AC. The invoke
System with a rule-based engine, more correctly                    method describes the behavior of the aspect.
known as a Production Rule System, which                           The parameter of the Invoke method is a
execute actions based on conditions. Drools has                    reification of a FraSCAti interface invocation. It
an enhanced and optimized implementation of                        provides a set of methods for a joint point
                                                                   introspection. The argument of the invocation
the Rete algorithm. One of the main reasons of
                                                                   can be changed. The code written in this method
using Drools in our case, is that it is flexible
                                                                   will be executed around the join point. The
enough [18] to match the semantics of the
                                                                   “proceed” call is the original method call.
dynamic adaptation problem. Moreover, the



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       175
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




                                 Figure 3: Overview of the implementation process.

The main advantage of considering our solution                     have control structures. An FPath expression
as an Aspect system is that after the observation                  evaluates without side effects and always
of changes that are significant enough, and the                    returns a value, which can be one of the
decision to react to those changes, the Aspect                     following types: general classic types (numbers,
Component model in particular, FraSCAti                            string and Boolean) and specific types for FPath
component will be able to make a plan given to                     (homogeneous set of components of interfaces
the execution phase, which addresses the                           or attributes). A path is a specific expression
dynamicity of the execution environment.                           FPath. This type of expression allows browsing
                                                                   and      selecting   items     inside   FraSCAti
3.3.4.   The execution phase                                       architectures, with another word FPath is a way
                                                                   to select a set of node that meets certain criteria
Once the system knows to what state it has to                      by navigating along the arcs. To do this, a path
evolve, we must define how it should do it                         consists of a set of successive steps, separated
(execution plan) and run the adaptation. The                       by a slash. Each of these steps is itself divided
implementation plan will define the list of                        into three parts: an axis, a test and a collection
operations to be performed by the component to                     of predicate possibly empty. The concrete
achieve its new state. Thus the order of                           syntax of a path is:
executing these operations. This plan can be                            axe1::test1[pred1]/axe2::test2[pred2]/...
managed by a set of rules for an initial state and                 The axis is an indenting from a finite set, which
a final state given a list of actions to perform.                  corresponds to the possible labels for arcs. The
The implementation of the adaptation is the                        test is either a name (identifier) or a star *.
most sensitive part. At this level, the component                  Predicates are complete FPath expressions
knows the order of execution of adaptation                         evaluated for their Boolean values. We now
operations. Although it supports all the features                  describe the FScript language. Compared to
we need, the FraSCAti platform specified as a                      FPath, FScript adds the ability to define new
set of application programming interfaces                          functions (used in FPath expressions) and
(APIs). This form does not fit the way we use: it                  especially reconfiguration actions, which unlike
is impossible to guarantee the consistency of                      functions are able to modify the architecture of
reconfigurations performed, the corresponding                      FraSCAti components. For this, FScript supports
code is very complex and incomprehensible and                      a number of control structures and especially
specific concepts of FraSCAti does not exist                       enriches the FPath "standard library" with a set
directly in Java. These limitations have led us to                 of primitive actions that act on FraSCAti
choose FScript [21] a language dedicated for the                   components. An FScript program consists of a
specification and the execution of application                     set of functions and actions. The difference
and FraSCAti components reconfiguration,                           between the two is that the functions are strictly
FScript includes FPath [21] another language                       no side effect on the architecture FraSCAti: Only
used to navigate inside FraSCAti architecture.                     actions can invoke other actions. The only
FPath can only write expressions and does not


International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       176
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




syntactic difference between functions and                         the calculated total price using the currency of
actions appear in their definitions. Functions are                 the visitor in accordance with the exchange rate.
introduced by the keyword function while actions                   To more clarify the implementation of this
use the keyword action. The body defining a                        runtime adaptation, Fig. 4 illustrates the tourism
process consists of a sequence of instructions.                    agency services composite, which covers four
                                                                   components representing the following services:
                                                                   The "Tourism Agency Component" encapsulates
4. Tourism agency case study                                       all calls to other services; it also contains two
                                                                   properties that describe the expected user input:
Aimed at improving our proposed architecture
                                                                   Twitter or Facebook account, plus the date of
and its implementation, we have chosen
                                                                   the visit. The second service "Visiting Service
“Tourism agency System” as an illustrative case
                                                                   Component" displays the list of the touristic
study, which is one of the most important and
                                                                   areas according to the user preferences and his
required services in the market at the global
                                                                   current detected location from his IP address. It
scale. This web application shown in Fig. 4,
                                                                   also suggests indoors and outdoors places in a
allows the visitor to find a destination among
                                                                   specific order referring to the user favorites, and
different touristic regions or events belong to the
                                                                   time conditions; for example if the condition time
visited country, which is located by the system
                                                                   is good it proposes both of places, while only
based on the visitor IP address. It also provides
                                                                   indoors places will be recommended if the
a chronological classification for each touristic
                                                                   condition time is bad. The "Travel Service
site so the visitor can easily move to the
                                                                   Component" displays the list of available means
selected destination. To get there, he can
                                                                   of transport leading to the selected site and a
choose a conveyance from a given list with the
                                                                   map between his current location and the
price of each one, after that the total of the tour
                                                                   selected destination. The last service "Banking
is calculated automatically by the system. In
                                                                   Service Component" converts the calculated
order to strengthen and develop a context-aware
                                                                   total, which consists of two prices: the visit price,
Web application (reconfigurable), we have
                                                                   and the transport price.
added other functions to the previous features
                                                                   Fig. 5 demonstrates two possible scenarios
by using the power of social networking tools
                                                                   seamlessly supported by our new architectural
(Twitter or Facebook in our case) to gather the
                                                                   solution. In the first scenario (Fig. 5.Case1), the
user’s contextual information based on his
                                                                   application starts by the observation phase and
account preferences. At the end of the whole
                                                                   shows (Fig. 5.A) in the home page. When the
process, the application offers a conversion of
                                                                   user introduces no input information, i.e. no




                           Figure 4: General Architecture of Tourism Agency Composite.



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       177
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




contextual changes are applied; the system                         be displayed as well (Fig. 5.F). The total prices
displays his current location detected from his IP                 will be shown (Fig. 5.G) only after the selection
address, as well as a brief description of that                    of a mean traveling. This scenario depends
area and its corresponding weather information.                    always on the user interaction.
After selecting the suitable site (Fig. 5.D); which                In the second scenario (Fig. 5.Case2), the user
represents a contextual change for the                             introduces his Facebook or Twitter username as
application, this last reacts by showing some                      an input, which allows detecting contextual
information about the located area and a table of                  changes during the first phase of the MAPE
the current conditions and forecasts including                     model (the observation phase) as long as the
seven day outlook (Fig. 5.E). When the user                        user updates his account settings and
chooses a day from this showing table, which                       preferences and attempt to use our web
means that the application has detected another                    application. Liked pages, visited areas, tweets,
contextual change and needs to be adapted                          and others factors can permit the application to
again, the process of adaptation is applied for                    decide (at the decision phase) automatically and
the second time. The application shows a list of                   then plans a new action (at the planning phase)
means transports with their prices, a map that                     to propose when using the application. In the
helps the user to reach the visiting location will                 end those plans will be executed (Fig. 5.B) at
                                                                   the execution phase. The second one that
                                                                   covers     more     dynamicity    explains     our
                                                                   implemented solution (Fig. 5.C) which consists
                                                                   of auto-charging different displayed information
                                                                   such as the selected touristic area, the preferred
                                                                   visiting day, and the mean of transport. All these
                                                                   features will help the visitor to make suitable
                                                                   decisions, save time and money.
                                                                   The strength of the services offered by the
                                                                   “Tourism Agency” resides on the fact that
                                                                   defining at design time all possible contexts and
                                                                   their evolutions is not obligatory needed. That
                                                                   means that the agency system will be drastically
                                                                   able to plan and react even with the unexpected
                                                                   context changes, hence specific user’s
                                                                   requirements will be satisfied according to the
                                                                   adaptation strategy.
                                                                   The main contribution of this proposal is the
                                                                   strength architecture that has been illustrated
                                                                   with the above-described case study, in which
                                                                   we applied the MAPE Model for developing
                                                                   adaptive service-based applications. We also
                                                                   demonstrated how the specific features of the
                                                                   FraSCAti platform could be exploited during the
                                                                   application’s adaptation process, and then how
                                                                   the defined dynamic adaptation strategy can be
                                                                   used to develop high quality, flexible, and
                                                                   scalable service-based applications.


                                                                   5. Conclusion

                                                                   The present work stands on the FraSCAti
                                                                   Platform used to develop and adapt dynamically
                                                                   the SCA-based context-aware applications. SCA
                                                                   is a standard for the distribution of Service-
                                                                   Oriented Architectures (SOA). The novelty of
      Figure 5: Demonstration of the running                       FraSCAti is to bring the adaptation of
                   application.                                    applications during their execution according to



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       178
ICAASE'2014                                     Adaptation of Service-Based Context-Aware Applications with FraSCAti Platform




changes in their context. The solution provided                         Computer Science, vol. 4089. Springer
in this work is performed by a case study on                            Berlin / Heidelberg, 2006, pp. 82–97.
tourism services by presenting a variety of                        [10] J. Buisson, F. André, and J.L. Pazat,
                                                                        “Supporting adaptable applications in grid
choices in order to satisfy customer’s needs.                           resource management systems,” in 8th
Aiming at making the application benefit from                           IEEE/ACM International Conference on
appearing contexts. In addition, other examples                         Grid Computing, Austin, USA, pp. 19-21,
                                                                        September. 2007.
can also verify the feasibility of the proposed
                                                                   [11] J. O. Kephart and D. M. Chess, “The
solution and demonstrate the effectiveness of                           vision of autonomic computing,” Computer,
the dynamic adaptation using FraSCAti. Our                              vol. 36, no. 1. 2003, pp. 41–50.
future work is to strengthen the flexibility, and                  [12] F. André, E. Daubert, and G. Gauvrit,
the semantic of the decision phase by utilizing                         “Towards a Generic Context Aware
other rule-based engines as SWRL rules                                  Framework for Self-Adaptation of Service-
                                                                        Oriented Architectures,” in 5th International
combining OWL, and RuleML scripts [20].                                 Conference         on     Internet     and    Web
Moreover, we want to fully achieve other                                Applications and Services, Barcelona,
aspects of contextual adaptation by addressing                          Spain, 2010, pp. 309–314.
the behavioral aspect (changes of SCA                              [13] M. Kapitsaki, A. Kateros, N. Prezerakos, S.
                                                                        Venieris, “Model-driven development              of
component’s behavior), and the structural                               composite          context-        aware      web
aspect of a SCA composite (changes in the                               applications,” Information and Software
structure of the components).                                           Technology 51, 2009, pp. 1244–1260.
                                                                   [14] R. M´elisson, P. Merle,D. Romero,R
                                                                        Rouvoy, and L Seinturier. “Reconfigurable
6. REFERENCES                                                           run-time support for distributed service
                                                                        component architectures,”               Automated
[1] N. Bieberstein, S. Bose, M. Fiammante,                              Software Engineering, Tool Demonstration,
    K. Jones, and R. Shah, “Service-Oriented                            Antwerp          Belgique,        2010.       URL
    Architecture Compass : Business Value,                              http://hal.inria.fr/inria-00499477/en/.
    Plan-ning, and Enterprise Roadmap,”                            [15] L. Seinturier, P. Merle, “A Component-
    Prentice Hall PTR, Upper Saddle River, NJ,                          Based       Middleware              Platform    for
    USA, 2005.                                                          Reconfigurable                  Service-Oriented
                                                                        Architectures,” April. 2012.
[2] J.Q. Ning, “Component-Based Software                           [16] C. David, “Introducing SCA,” white paper,
    Engineering (CBSE),” In 5th International                           Chappell & Associates, July. 2007.
    Symposium on Assessment of Software
    Tool (SAST’97), 1997, pp. 34-43.                               [17] L. Seinturier, P. Merle, D. Fournier, N. Dolet,
                                                                        V.      Schiavoni,        and     J.B.     Stefani,
[3] M. Beisiegel, D. Booz, A. Colyer and K.                             “Reconfigurable SCA Applications with
    Team, “Service Component Architecture,”                             the FraSCAti Platform,” In Proceedings of
    Novomber. 2007.                                                     the 6th IEEE International Conference on
[4] D. Fournier, P. Merle, and al., “ANR                                Service Computing (SCC’09), pp. 268–275,
    SCOrWare Project: WP1 – SCA Platform                                September. 2009.
    Specification,”        April.        2009,                     [18] Drools                                       docs.
    www.scorware.org/.                                                  http://docs.jboss.org/drools/release/5.2.0.Fin
[5] A. Dey, G Abowd and D Salber, “A                                    al/droolsexpert-docs/html/ch05.html.
    Conceptual framework and toolkit for                           [19] G. Kiczales, J. Lamping, A. Mendhekar,
    supporting the rapid prototyping of                                 C. Maeda, C. Lopes, J.M. Loingtier, and
    context-aware applications,” 2001, pp. 97-                          J. Irwin, “Aspect-Oriented Programming,”
    166.                                                                In Proceedings of the 11th European
[6] T. Chaari, “adapt applications to new                               Conference              on        Object-Oriented
    contexts of use”. SECAS Project: INSA                               Programming (ECOOP’97), volume 1241
    Lyon, 2006.                                                         of LNCS, pp. 220–242. Springer, June.
                                                                        1997.
[7] C. Sophie, C Denis, and T Cahantal,
    “Service Management Context COSMOS,”                           [20] N. Pessemier, L. Seinturier, L. Duchien, and
    ADAPT09, September. 2009.                                           T. Coupaye, “A Model for Developing
                                                                        Component-Based and Aspect-Oriented
[8] P.C. David and T. Ledoux, “Wildcat: a                               Systems” In Proceedings of the 5th
    generic     framework    for context-aware                          International Symposium on Software
    applications,” in MPAC ’05: Proceedings                             Composition (SC’06), volume 4089 of
    of the 3rd international workshop on                                LNCS, pp. 259–274. Springer, March. 2006.
    Middleware for pervasive and ad-hoc
    computing. New York, NY, USA: ACM,                             [21] P.C.       David,        “Développement         de
    2005, pp. 1–7.                                                      composants Fractal adaptatifs : un
                                                                        langage dédié à l’aspect d’adaptation,”
[9] P.C. David and T. Ledoux, “An aspect-                               PhD thesis, University of Nantes / Ecole
    orienteach for developing selfadaptive                              des Mines de Nantes, 2005.
    fractal    components,”     in   Soft-ware
    Composition, ser. Lecture Notes in



International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria.                                                                       179