Article Preview
TopIntroduction
Ubiquitous computing, which is considered as the third era of computing (Abowd, 2016; Krumm, 2016; Weiser & Brown, 1997), seeks ubiquitous provisioning of services to users (Satyanarayanan, 2001). Context is an essential concept in ubiquitous computing, which is defined as “any information that can be used to characterize the situation of an entity” (Dey, Abowd, & Salber, 2001). Context-aware applications, which are usually resided on smart mobile phones, are considered as the building blocks of the ubiquitous computing paradigm (Vahdat–Nejad, Zamanifar, & Nematbakhsh, 2013). These kinds of applications make use of relevant contextual information to provide personalized services to users. Generally, a context-aware application supports several functionalities including context acquisition, modeling, reasoning, and service management (Vahdat-Nejad, 2014), which result in generating massive programs. In spite of recent improvements in hardware technology of smart phones, they suffer from energy, computational and memory limitations comparing with high speed multiple-core laptops and personal computers. However, a major part of context-aware applications that are resided on mobile phones should provide real-time services according to the current situation of the user and environment (Bertolli, Buono, Mencagli, & Vanneschi, 2009). These remarks introduce a paradox that should be resolved before realizing the perspective of ubiquitous computing. In other words, the limited-resource mobile applications have limitations in gathering the contextual information, processing them, and acting in real-time.
Cloud computing has emerged as a new computing model, in which resources can be provided as general services to users, anywhere and on any device (Q. Zhang, Cheng, & Boutaba, 2010). As a result, ubiquitous and on-demand provisioning of services have become an important characteristic of cloud computing. Companies, universities and research centers use cloud computing to acquire virtual resources and improve scalability of applications (Da Cunha Rodrigues et al., 2016; Saurez, Gupta, Mayer, & Ramachandran, 2017). Cloud has previously helped the users and organizations to utilize various resources by a low operational cost (Poorejbari, Vahdat-Nejad, & Mansoor, 2017); Therefore, it can play the role of a supporter for ubiquitous applications. In fact, it seems that cloud computing technology can be exploited to resolve deficiencies of current approaches to realize ubiquitous computing (Shirvani & Vahdat-Nejad, 2016). However, the major part of ubiquitous computing research has been performed independently and separately from cloud computing.
The main contributions of this paper are twofold: