A novel analysis approach for the design and the development of context-aware applications
Introduction
Computing devices and applications are now used beyond the desktop, in diverse environments and this trend toward ubiquitous computing is accelerating. This paradigm protects users from the complexity of technology and provides them with computing devices that can be used intuitively and subconsciously (Lupiana et al., 2009). The ubiquitous computing paradigm will surround users with a comfortable and convenient information environment and a smart space that merges physical and computational infrastructures into an integrated habitat (Sen, 2012).
A first interesting part in the vision of ubiquitous computing that must be taken into account is the design and the development of context-aware applications.
Indeed, The term context is widely used with very different meaning. Dey defined context as “Any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves” (Dey, 2001). Furthermore, in our previous work (Khabou and Bouassida Rodriguez, 2013), we have discussed different definitions of the term context.
On the one hand, the term context-aware was first introduced in 1994 by Schilit and Theimer to refer a system that can provide context relevant information and services to users and applications (Poslad, 2009). Many other similar definitions of context-aware systems can be found in Schilit et al. (1994); Dey et al. (2001). On the other hand, a context-aware application is defined by Schilit as “The ability of a mobile user’s applications to discover and react to changes in the environment they are situated in.’’ (Schilit and Theimer, 1994).
In ubiquitous environments, the design and the implementation of context-aware applications is a challenging task since these environments are dynamic and characterized by a frequent context change. A review in the literature has allowed us to study different researches interested in the design of context-aware applications. In these research area, studies have defined different context lifecycles used to manage context. An overview of the proposed context lifecycles is found in Perera et al. (2014). In our work, we focus on the context lifecycle proposed by Dobson et al. (2006). They proposed a control loop formed by four phases namely Collect, Analysis, Decide and Act to deal with context.
In the Collect phase, context information are collected via different sources such as sensors. The collected context information must be analyzed. In the analysis phase, it is useful to evaluate, detect the context changes and trigger notifications to assess the application state. In the Decide phase, appropriate adaptation actions are planned to respond to a context change. These actions are finally executed in the Act phase.
In this paper, we focus on the analysis phase. We define the term analysis as “the evaluation of context information received from the collect phase, the detection of context change and the generation of a notification that may be used by the decide phase to find the correct actions”.
In this area (context analysis), our bibliographical study has allowed us to reveal many gaps dealing with this phase and related to a conceptual viewpoint and an implementation viewpoint.
- •
Conceptual viewpoint: the design of the analysis phase is a challenging task since it affects the application accuracy. That is, an application is not able to detect properly context changes if the analysis phase is not designed correctly. However, no work proposed a design approach to conceive the analysis phase allowing to develop context-aware applications.
- •
Implementation viewpoint: in the studies that have dealt with the analysis phase, the implementations of the analysis phase did not provide an efficient solution to the problem of context analysis since the studied analysis approaches always used only fixed threshold to detect context changes.
Faced with these problems, in this paper, we propose first a design procedure of an analysis approach that facilitates the design of context-aware applications able to deal efficiently with context changes and to predict context. Our design approach is presented by two analysis procedures, (a) an analysis procedure for detection and (b) an analysis procedure for prediction. The procedures are described as steps that assist the application designers to conceive context-aware applications easily. Then, we present some implementation details of our analysis approach. The main idea in the analysis approach implementation is to use adaptive thresholds to detect context changes and to use both the Extreme Value Theory and prediction models to predict context.
The rest of this paper is structured as follows. In Section 2, we discuss studies that have dealt with the analysis phase. We present and we provide a detailed description of the analysis approach in Section 3. We present some implementation details of our analysis approach in Section 4. To illustrate our approach, we present a case study named Smart Building in Section 5 that we have designed and implemented in order to produce energy savings. In Section 6, we illustrate the effectiveness of our analysis approach through experiments related to the processing time of our analysis approach, the CPU and the memory overhead introduced by the approach. The last section concludes the paper and gives some directions for future work.
Section snippets
Related work
The concept of context analysis is addressed by many researchers in many fields in the literature. Context analysis is used to detect context changes and raise notifications related to the detected changes. Based on a literature survey, we have divided the studies that have dealt with context analysis into four categories according to the technique used to detect context changes. Consequently, we distinguish threshold-based approaches, statistical approaches, entropy-based approaches and
The proposed approach
In this paper, we propose an analysis approach called ANALOG (ANalysis Approach for the deveLOping context-aware applications). It aims at facilitating both the design and the development of context-aware applications. We present the architecture of our analysis approach in Fig. 1. In Fig. 1, we distinguish three phases, namely the Design phase (1), the Implementation phase (2) and the Execution phase (3). In the Design phase, the analysis assistant (in our work, it refers to “us”) provides
Implementation
As we have discussed in Section 3, in the implementation phase of our ANALOG approach, we have provided an analysis module as an API (Application Programming Interface) to the application developer. Our analysis module aims to assist the application developers to implement easily context-aware applications.
It includes all the functionalities of the analysis procedures that we have presented previously (in Section 3). In the analysis module, we implemented all the functionalities of the analysis
Case study: smart building
Smart spaces are environments such as apartments, offices, museums, hospitals, schools, malls, university campuses, buildings and outdoor areas that are enabled for the cooperation of objects (e.g. sensors, devices appliances) and systems that have the capability to self-organize themselves, based on given policies (Sciuto and Nacci, 2014). Diane Cook and Sajal Das (Gilman et al., 2013) give a generic definition of smart spaces as follows: a “Smart space is able to acquire and apply knowledge
Experimentation and validation
We choose to evaluate the effectiveness of our approach first by calculating the processing time of our analysis module, second, by calculating the analysis module overhead in terms of memory consumption as well as CPU usage. In all the experiments conducted in this section, the physical machine which we have used has the characteristics illustrated in Table 4.
Conclusion and future work
In this paper, we presented a novel analysis approach for the development of context-aware applications. The analysis approach described by two analysis procedures (an analysis procedure for detection and an analysis procedure for prediction), allows to guide the application designers to design context-aware applications. First, we have given an overview of the existing approaches of context analysis. Then, a detailed study of our analysis approach for the development of context-aware
References (38)
- et al.
Designing energy efficient smart buildings in ubiquitous environments
Proceedings of the Fifteenth International Conference on Intelligent Systems Design and Applications (ISDA)
(2015) The Performance Test Standard PTC 19.1-2005 Test Uncertainty
Technical Report
(2005)- et al.
Automatic room light intensity detection and control using a microprocessor and light sensors
IEEE Trans. Consum. Electron.
(2008) Steps in Applying Extreme Value Theory to Finance: A Review
Working Papers
(2000)- et al.
Multiagent model for device state control in the wireless grid
Proceedings of the Third International Conference on Electronics Computer Technology (ICECT)
(2011) - et al.
A cooperative and fully-distributed congestion control approach within vanets
Proceedings of the Ninth International Conference on Intelligent Transport Systems Telecommunications,(ITST)
(2009) - et al.
A model-driven adaptive approach for collaborative ubiquitous systems
Proceedings of the Third Workshop on Agent-oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing
(2009) - et al.
A self-adapting algorithm for context aware systems
Proceedings of the Ninth Roedunet International Conference (RoEduNet)
(2010) Understanding and using context
Pers. Ubiquitous Comput.
(2001)- et al.
A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications
Hum. Comput. Interact.
(2001)