A CONTEXT-AWARE PLATFORM TO SUPPORT MOBILE
USERS WITH PERSONALIZED SERVICES
Y. Bouzid, H. Harroud, A. Berrado, M. Boulmalf
School of Science & Engineering, University Al Akhawayn in Ifrane
PO Box 104 Hassan II Avenue, 53000 IFRANE, Morocco
A. Karmouch
School of Information Techonology & Engineering (SITE), University of Ottawa, Canada
Keywords: Context-awareness, Mobility, Personalised Services, Ubiquitous Computing, Context-based Platform,
e-Tourism Services.
Abstract: The emergence of ubiquitous computing, enabled by the availability of portable devices and advances in
(wireless) networking technologies, has increased the need for personalized and adaptive services in mobile
environments. Users are not anymore only using computing facilities on their desktop machines in a
relatively predefined office environment, but they require having access to various services as they move
from one location to another, from one device to another and from one network to another. This paper
presents a context-aware platform for supporting mobile users with personalized services. The platform is
capable of handling different types of context sources (e.g. sensors, readers, agents), offers sophisticated
mechanisms in matching the mobile user’s preferences with services that are available at the visited
location, and provides these services in personalized and adaptive manner to the user conditions. As a proof
of concept, we deployed an e-tourism prototype on top of the platform that assists tourists during their
travels by providing them with context sensitive services about nearby points of interests.
1 INTRODUCTION
Mobile and Ubiquitous computing have increased
the need for mobile users to expect accessing
preferred services, whenever they want and
wherever they are. Users do not have to explicitly
specify and configure their working environment
each time they move from one location to another,
from one device to another and from one network to
another. The necessary adaptation to cope with the
changing environment should be initiated by
services rather than by users.
Making use of contextual information is essential
to cope with and timely react to changes in such
environments and hence achieve adaptability,
reliability, and seamless service provisioning.
Context information may include any
information that characterizes the user operating-
environment. Baldauf in (Baldauf, 2007) presented a
survey on context-aware systems that contains
various definitions for the term. Most of these
definitions are based on concrete examples and
categories, and it is still difficult to determine,
whether a particular kind of information can be
regarded as context. In practice, four types are
commonly introduced: the location which includes
people and entities that are in or nearby (where the
user is), the identity which determines the user’s
profile, the role and preferences (who is the user),
the activity that is occurring or may occur around
(what), and the time (when).
The development of context sensitive services
and their deployment remain challenging as they
require appropriate paradigms in interacting with
different sensing entities, in gathering, interpreting
and disseminating different types of contextual
information, and in self-adapting to changing
environments.
Users, device and session mobility are also
challenging as services need to dynamically adapt to
network changes and heterogeneity, occasional
disconnections, resources availability (i.e.
bandwidth), and device capabilities (Keeney, 2003).
The necessary adaptation to cope with the changing
153
Harroud H., Bouzid Y., Berrado A., Boulmalf M. and Karmouch A. (2009).
A CONTEXT-AWARE PLATFORM TO SUPPORT MOBILE USERS WITH PERSONALIZED SERVICES.
In Proceedings of the International Conference on Wireless Information Networks and Systems, pages 153-158
DOI: 10.5220/0002236101530158
Copyright
c
SciTePress
environment should be initiated by services rather
than by users.
This paper describes the approach we have
adopted for supporting mobility and context
awareness, so that mobile users could be provided
with personalized services while moving from one
location to another. This approach focuses on the
development of a platform that allows developers to
spend less effort on the characteristics that are
common across various applications for mobile
users and focus on the specific objectives of these
applications. Managing context and mobility at the
platform level clearly facilitates context aware
programming by providing tools for discovering
relevant context, for processing it, and for
disseminating appropriate information to services in
various domains such as e-Tourism and e-Transport
applications.
Figure 1: Generic view of the framework components.
A generic view of our context aware platform is
shown in figure 1. The user repository holds user’s
personal information, services to which she/he has
subscribed, and her/his preferences regarding service
provisioning. For instance, the user might specify a
time of the day where she/he wants to receive a
specific service.
The service repository carries information about
the available services. The platform operates by
evaluating changes in the different context attributes
(e.g. weather, user location, time, end-user
device…), and uses the user preferences to find
matching services. As a result, the user is provided
with personalized services that fit her/his current
context and meet her/his preferences. When
activated, a service continuously receives
appropriate context information from the platform
and therefore adapts itself accordingly.
The paper is organized as follows. Section 2
relates our work to existing approaches. Section 3
presents our overall architecture for providing
personalized services in mobile environments.
Section 4 describes the algorithms we adopted for
the segmentation and the prediction models in
provisioning a visiting user with personalized
services. Section 5 describes an e-tourism prototype
scenario that illustrates our approach. In section 6
we summarize and point to future work.
2 RELATED WORK
Several approaches have been proposed for building
prototypes of context aware platforms (Dey, 2001,
Setten, 2004, Chen, 2004, Kuck, 2007). Dey, et al.
(Dey, 2001) proposed the Context Toolkit
framework to support collecting and transforming
contextual information using widgets, interpreters
and aggregators. Each widget is responsible for
acquiring a certain type of context information. The
aggregators collect context from widgets and
interpreters and act as proxies to applications.
COMPASS (Setten, 2004) is a context aware
mobile personal assistant which provides users (e.g.
tourists) with context-aware recommendations and
services. It retrieves and provides information about
the user’s context by contacting appropriate context
services (i.e. location, user and time contexts) and
uses a registry that contains information about the
third party services providing the content such as
museums and restaurants information.
Chen et al. (Chen, 2004) used OWL in their
Context Broker Architecture (CoBrA), where a
broker agent is responsible for maintaining and
aggregating a shared model for context information.
The broker agent facilitates the distributed reasoning
capabilities for service agents that make use of
CoBrA by including a knowledge model and
therefore removes the need to deal with the
reasoning part for each service and application.
Kuck et al. (Kuck, 2007) presented an approach
for the context-sensitive discovery of web services
based on the matching of the user’s context and
enhanced service descriptions, stored in UDDI
repository. Service descriptions contain inferred
information about textual contents of a WSDL
description as well as feedback information (e.g. the
time of service recommendation).
Our work to supporting mobility and context
aware computing complements these research
projects by integrating the implications of mobility
and the context to the platform middleware.
Applications and services developed upon the
platform can easily be deployed in various scenarios
including e-Tourism and e-Transport.
The platform can also be used with third party
services which need to register to the platform.
These services are then advertised to users
depending on the time and their location and the
WINSYS 2009 - International Conference on Wireless Information Networks and Systems
154
current devices. At the registration phase to the
platform, each service subscribes to specific context
information so that it can adapt itself accordingly.
3 THE OVERALL PLATFORM
ARCHITECTURE
The development of the platform is based on a
generic architecture that supports context aware
service discovery. The architecture is represented by
a generic layered stack that describes the main
functionalities of our context aware system. Figure 2
shows a five layer model that separates the concern
of each layer among acquiring, processing context
information, and providing users with services that
best fit their current context. The architecture
handles a variety of sensing devices, uses a context
model that can be extended with new context data
types, makes use of a generic description of services
and user profiles, and provides services to a wide
range of mobile users.
Figure 2: The overall Platform Architecture.
3.1 Context Data Acquisition
The data acquisition layer is in charge of collecting
context attributes from various ubiquitous front end
data acquisition hardware (e.g. RFID readers,
sensors, and other automation devices). This layer
listens for signals that hold information describing
the context.
In our platform we have built a network of
sensors that deliver different kind of information to
the base station such as temperature, noise, etc... The
sensor network is also used to roughly determine the
position of a mobile user by fixing some nodes at
specific locations (i.e. buildings) and exploiting
links that mobile nodes, carried by mobile users,
form with fixed nodes while nearby.
Figure 3 provides an example of sensor network
nodes distribution. In this configuration, nodes 1, 2,
5 are stationary nodes, while node 4 is mobile.
Figure 3: Mobile and Stationary Nodes Distribution.
Because the data is received in raw format that
may not be understood by the service discovery
module, it is first forwarded to a data processing
layer that transforms it into meaningful information.
An example of incoming sensor network packets is
shown in figure 4.
Figure 4: Incoming Sensor Network Packets Log File.
3.2 Context Data Processing
The basic goal of context processing layer is to
generate concise and accurate information about the
context that would be used in the context-sensitive
service discovery (Ridhawi, 2008). Mechanisms
used by the data processing layer include filtering
and transforming the received raw data.
3.2.1 Data Filtering
Different filtering methods could be applied to raw
data depending on the types of used sensing sources
and on the nature of the data required at the
application level. The filtering layer holds a filtering
A CONTEXT-AWARE PLATFORM TO SUPPORT MOBILE USERS WITH PERSONALIZED SERVICES
155
policy repository to offer the flexibility to handle
different filtering format. In our platform, the
filtering has three main functions:
Duplicate Removal: Since the data is sensed
continuously, the sensors may re-send the
same data read multiple times. The duplicate
removal limits the amount of data to be
processed by reporting the data read once.
Irrelevant data Removal: Some of the data
received by the sensors is of no use to the
service applications. For instance, the data
received that reports about links formed
between two stationary nodes does not
provide any additional information. We are
more interested in knowing about links
between stationary and mobile nodes.
Lost links removal: while a mobile user is in
proximity to a building, the base station
receives data describing the link between the
mobile user node and the stationary node in
that building. If the base station stops
receiving data about the existence of that link
within a time frame window, the link is
reported as lost. This means that the user has
moved to another location.
3.2.2 Data Transformation
Raw data presents little information until they are
transformed into a form suitable for application-
level interactions. So, from an application
perspective, it is desirable to provide a mechanism
that turns the low-level captured data into
meaningful input. The transformation layer contains
pre-defined rules for transformation depending on
the type of the raw data. For instance, the geographic
x-y coordinates obtained from a GPS are translated
into physical locations (street, city…).
This layer presents flexibility with regards to
transformation rule definition, since they can be
added, changed and deleted in an easy manner.
Transformation rules are represented using policies.
In our implemented prototype, we used
transformation rules that translate stationary node’s
tag ID into a building name (i.e. location) and a
mobile node’s tag ID into a mobile user (i.e.
identity).
3.3 Context Service Provisioning
In this layer, the context manager component has the
role of matching the user context (e.g. location) with
the appropriate services. The context manager also
takes into consideration the user preferences to offer
personalized services to each user.
Upon receiving the context information, the
context manager sends a request to the appropriate
third party services (i.e. web services) to find
services that better match the user current context.
The web service return a list of services that best fits
the user current context. The context manager then
selects the services that best meet user preferences
according to her/his profile. The result of this
process is that the user is provided with a list of
services that match her/his current context and that
are tailored to her/his preferences.
4 PERSONALISED SERVICE
PROVISIONING
In the service provisioning process, a user is
provided with all the services she/he has subscribed
to and that are available in her/his current location.
Because the user may not be aware of other services
that may be of interest to her/him in that location,
there is a need for a mechanism to advertise the
appropriate services to the user.
This paper presents two approaches to suggest to
the user personalized services adapted to her/his
profile and preferences.
4.1 Using Services Segmentation
This approach consists of segmenting the services
available in the user’s location using historical
records. Each resulting segment is a set of services
used by people who have similar profiles and
preferences. Services in each segment are similar
between themselves and dissimilar with services of
other segments. A user who was provided a service
that belongs to a segment might be interested in the
other services in the same segment. These services
will be suggested to the user to increase his
awareness about the services available in his current
location. It should be noted that this does not
excludes the possibility that a user may be interested
by more than one segment.
The service segmentation can be achieved using
several data mining techniques including decision
trees and cluster analysis. In this work we use an
algorithm for clustering massive categorical data
with class association rules namely SCAR (Berrado,
2008); it has been shown that SCAR outperforms
other clustering algorithms when dealing with high
dimensional categorical data. It adopts a supervised
approach to clustering: first SCAR transforms the
WINSYS 2009 - International Conference on Wireless Information Networks and Systems
156
unsupervised clustering problem into a supervised
learning problem by adding artificial contrasts, then
identifies the candidate clusters using class
association rules, Metarules are then used to merge
the clusters to form the final segments. It should be
noted that SCAR can be used to segment mixed data
after the continuous attributes are discretized
(Berrado, 2009).
4.2 Using Service Prediction
Prediction is another approach to suggest services
that are adapted to the user profile and preferences.
Random Forests is one of the most accurate
supervised learning algorithms developed by
Breiman (Breiman, 2001). Random Forests for
classification is a classifier consisting of a collection
of single trees grown each from a bootstrap sample
of the same training data set.
To classify a new data instance, it is put down
each of the trees in the forest and the class that most
trees agree on is assigned to the new data instance.
The prediction requires the presence of historical
data that describes a set of users’ profiles,
preferences, and the services they have used. A
random forest can then be built for each service
taking as predictors the users’ profiles and
preferences.
If a service was not provided to the user, we
proceed to prediction using the random forest of that
service to determine whether it should be suggested
to the user or not.
5 CASE STUDY: PROTOTYPE
APPLICATION IN E-TOURISM
A prototype application for e-tourism was deployed
on the platform that will assist tourists during their
travels by providing them with context sensitive
services. We integrated user preferences and
profiles, their current location, and the current time
in the proactive formulation of suggestions on the
user’s mobile devices about nearby points of
interests (e.g. museums, restaurants….).
The sensors were installed in three different
buildings in the campus of the University
representing three regions in France: « Le
Lac », « Les Alpes », and « La Cote d’Azure ».
A mobile user “Bob” was detected in building 1
which, in our prototype, represents the touristic
region “Le Lac”.
Six services are available in that location which
are: 1) Hotel - 2) Hiking - 4) Camping - 5)
Swimming - 6) Fishing.
Each service is described by a set of attributes
and the time of the day where the service can be
provided. Each service can also be either enabled or
disabled. Figure 5 shows an example of a service
description.
Figure 5: Service Description.
Based on his user profile described in Figure 6,
Bob will be offered some services in “Le Lac”
Region.
According to his profile, “Bob” is interested in
camping and hunting services. Since camping is
available in his visited location “Le Lac”, the service
will be provided to the user.
Figure 6: User Profile.
To suggest additional personalized services to
Bob, we made use of a dataset that describes the
profiles, preferences, and the services used by a set
of 500 tourists that have visited ‘Le Lac’ region.
Services in the dataset were segmented using SCAR
algorithm. The Camping service that is provided to
Bob belongs to a segment which also includes
Hiking and Fishing services. Hence, these two
services were also suggested to Bob.
The prediction model was then applied on the
remaining services in that location to determine
whether they should be suggested to the user. For
each of these services we applied the prediction
function using their corresponding random forest
model and by taking Bob’s profile and preferences
A CONTEXT-AWARE PLATFORM TO SUPPORT MOBILE USERS WITH PERSONALIZED SERVICES
157
as predictors. The prediction process revealed that
the Swimming service could also be suggested to
Bob.
Finally, the service provisioning algorithm
checked if the current time falls into the time where
the services can be provided as specified in the
service description. Figure 7 is a snapshot describing
the services that Bob received.
Figure 7: User Personalized Service Provisioning.
6 CONCLUSIONS
In this paper we presented a generic platform for
providing users with personalized context aware
services in mobile environments. The platform
offers mechanisms (i) to register a set of mobile
users, their roles and their preferences, (ii) to register
a set of available services at different locations, (iii)
and to evaluate different context information to
provide each user with appropriate services. The
platform also provides activated services with
appropriate context attributes, so that they can adapt
accordingly. As a result, the user is provided with
personalized services that fit her/his current context
and meet her/his preferences.
We showed the feasibility of the proposed
platform architecture using a prototype scenario that
illustrated the platform’s basic concepts. A user
visiting a new location is provided by a set of
services she/he subscribed to. In addition, other
services are suggested to her/him based on
segmentation and prediction mechanisms.
We are currently in the process of implementing
basic services related to e-Tourism and integrating
mobile RFID readers as sources of context, so that
we can deploy our platform in a working
environment (i.e. city of Ifrane) to illustrate how it
can be helpful in providing support to tourism, a
vital sector in the Moroccan economy.
ACKNOWLEDGEMENTS
This research work is partly supported by a grant
from the Academics Affairs at Al Akhawayn
University in Ifrane (Grant n° 92780, 2008).
REFERENCES
Baldauf M., Dustdar S.and Rosenberg F., 2007. A survey
on context-aware systems. In Int. Journal of Ad Hoc
and Ubiquitous Computing, Vol. 2, No. 4.
Chen H.L., Finin T., Joshi A., 2004. A context broker for
building smart meeting rooms. In Proceedings of the
Knowledge Representation and Ontology for
Autonomous Systems Symposium, LNCS 3137,
Springer-Verlag.
Dey K., Salber D., Abowd D., 2001. Conceptual
Framework and a Toolkit for Supporting the Rapid
Prototyping of Context-Aware Applications. In
Human-Computer Interaction Journal, Vol. 16 (2-4).
Group Terminals, 2004. Generation Partnership Project:
Data Description Method (DDM) -3GPP Generic User
Profile (GUP). In Technical Specification, Version
6.1.0.
Keeney J., Cahill V., 2003. Chisel: A Policy-Driven,
Context-Aware, Dynamic Adaptation Framework, In
Proceedings of the Fourth IEEE International
Workshop on Policies for Distributed Systems and
Networks.
Kuck J., Reichartz F., 2007. A collaborative and feature
based approach to Context-Sensitive Service
Discovery. In Proceedings of 5th WWW Workshop on
Emerging Applications for Wireless and Mobile
Access (MobEA'07), Banff, Alberta, Canada.
Ridhawi Y., Harroud H., Karmouch A., Agoulmine N.,
2008. Policy Driven Context-Aware Services in
Mobile Environments. In Proceedings of 5th
International Conference on Innovations in
Information Technology (Innovations’08), Dubai,
UAE.
Setten V., M., Pokraev, S., Koolwaaij J., 2004. Context-
Aware Recommendations in the Mobile Tourist
Application COMPASS. In Nejdl, W. & De Bra, P.
(Eds.).
Berrado A., Runger G., 2008. Clustering massive
categorical data with class association rules. In
Proceeding of the International Conference on
Innovations in Information Technology, AlAin, UAE,
pp 223-227
Berrado, A., Runger, G., 2009. Supervised Multivariate
Discretization in Mixed Data with Random Forests. In
Proceeding of the 7th ACS/IEEE International
Conference on Computer Systems and Applications
(AICCSA’09), Rabat, Morocco.
Breiman, L., 2001. Random Forests, Machine Learning,
Vol.45.
WINSYS 2009 - International Conference on Wireless Information Networks and Systems
158