2 BACKGROUND
This section will focus on the definition of the basic
concepts that are related to our approach.
2.1 Context and Context-awareness
The concepts of context and context-awareness are
defined and used in several approaches (Dey, 2001;
Han et al., 2013; Kim et al., 2012).
According to (Dey, 2001), the context is all
information that can be used to characterize an
entity. An entity can be a person, a place, or a
relevant object for the interaction between a user and
an application, including the user and the application
itself. (Chihani et al., 2011) consider that the
context-awareness is a particular type of formal
logic on which theories and artificial intelligence
algorithms (e.g. inference rules) can be applied in
order to automate the deduction of new contextual
knowledge and reasoning about the facts that
represent the situation of the user.
Context-aware service oriented systems refer to
applications that use context information to provide
appropriate services to the user (Guermaha et al.,
2014).
2.2 Dynamic Adaptation
According to (Chaari, 2007), the adaptation consists of
making changes to a software or a computer system in
order to perform its features and, if possible, to improve
its performance in an environment of use.
Software adaptation can be seen as the ability for
humans to reconfigure the software and then to
restart it (static adaptation), or the ability of the
software to reconfigure itself during execution
(dynamic adaptation) (Akkawi et al., 2007).
According to (Keeney, 2004), the dynamic adaptation
of software behavior can be defined as the act of
changing the behavior of some part of a software
system as it executes, without stopping or restarting it.
3 ILLUSTRATIVE EXAMPLE
In order to illustrate our work, we use the example
of a hotel booking process (Figure1). The business
rules are described as follows: the customers can
make booking according to their preferences (e.g.
Arrival and departure dates, room type, service
type). They can check the availability of rooms
according to their arrival and departure dates. The
booking is made and the payment is done on the
basis of room’s availability.
We distinct four different payment methods:
credit card payment, cash payment, bank transfer
payment and check payment.
Check the Room Availability: it aims at checking
the room availability overlooked the arrival and the
departure dates set by the customer.
Make Booking: it corresponds to the assignment of
a room to the customer according to his preferences.
This task is a composite task (sub-process) that is
composed of the following tasks:
• Provide the Personal Information: It consists at
giving the information related of the customer i.e.
name, address, etc.).
• Specify the Arrival and the Departure Dates.
• Specify the room type. The room type can be
single, double, etc.
• Specify the Service Type. The customer has to
precise the service type: full board, half board, etc.
Pay Booking: it corresponds to the payment of the
booking fees. The payment can be done by credit
card, by bank transfer, by check or cash.
We have chosen to model a given BPEL process
through the BPMN diagram (Business Process
Modeling Notation) (BPMN, 2011) for the following
reasons: BPMN tasks can express Web service
operations while BPMN sub-processes can express
composite service operations. Moreover, several
approaches (Ayora et al., 2012; Alférez et al., 2013;
Angles, 2014) have adopted BPMN model to represent
the elements in a service composition since BPMN is
suitable to express sequences and dependencies among
Web services, on the one hand, and BPMN diagram
can be transformed to an executable BPEL process
through several dedicated tools, on the other hand.
In this example, we will focus on the payment
service. We assume that the customer has chosen to
pay the reservation by credit card. At runtime, a
number of unexpected contextual changes can occur
such as the lack of money needed to cover the
booking fees, the expiration of the credit card, the
network failure, the service unavailability due to
fluctuations in available bandwidth and throughput
rates, etc. These facts make impossible the
achievement of the booking payment with the given
mean (i.e. by credit card). As consequence, the
payment process may not finish correctly.
Nevertheless, the booking process has not to be
stopped until the customer does not wish to finishes
it. For this, we need to propose a solution in order to
adapt the hotel booking process to the unexpected
changes that can occur at runtime in order to satisfy
the customer without shutting down the system.