Cloud computing vs. mobile cloud computing

3.1. Cloud computing

“Cloud computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the data centers that provide those services” [6].
A cluster of computer hardware and software that offer the services to the general public (probably for a price) makes up a ‘public cloud’. Computing is therefore offered as a utility much like electricity, water, gas etc. where you only pay per use. For example, Amazon’s Elastic cloud, Microsoft’s Azure platform, Google’s App Engine and Sales force are some public clouds that are available today. However, cloud computing does not include ‘private clouds’ which refer to data centers internal to an organization. Therefore, cloud computing can be defined as the aggregation of computing as a utility and software as a service.
Virtualization of resources is a key requirement for a cloud provider—for it is needed by statistical multiplexing that is required for sociability of the cloud, and also to create the illusion of infinite resources to the cloud user. Ambrust et al. [5] holds the view that “different utility computing offerings will be distinguished based on the level of abstraction presented to the programmer and the level of management of the resources”. To take an example from the existing cloud providers, an instance of Amazon’s EC2 is very much like a physical machine and gives the cloud user almost full control of the software stack with a thin API. This gives the user a lot of flexibility in coding; however it also means that Amazon has little automatic scalability and failover features. In contrast, Google’s App Engine enforces an API on the user but offers impressive automatic scalability and failover options. Microsoft’s Azure platform is something in between the aforementioned providers by giving the user some choice in the language and offers somewhat automatic scaling and failover functions. Each of the aforementioned providers has different options for virtualizing computation, storage and communication.

3.2. Mobile cloud computing

There are several existing definitions of mobile cloud computing, and different research alludes to different concepts of the ‘mobile cloud’:
1.
Commonly, the term mobile cloud computing means to run an application such as Google’s Gmail for Mobile6 on a remote resource rich server (in this case, Google servers) as displayed in Fig. 1,7 while the mobile device acts like a thin client connecting over to the remote server through 3G. Some other examples of this type are Facebook’s location aware services, Twitter for mobile, mobile weather widgets etc.

2.
Another approach is to consider other mobile devices themselves too as resource providers of the cloud making up a mobile peer-to-peer network as in [14]. Thus, the collective resources of the various mobile devices in the local vicinity, and other stationary devices too if available, will be utilized as shown in Fig. 2. This approach supports user mobility, and recognizes the potential of mobile clouds to do collective sensing as well. Peer-to-peer systems such as SATIN [26] for mobile self-organizing exist, but these are based on component model systems representing systems made up of interoperable local components rather than offloading jobs to local mobile resources. This paper focuses primarily on this latter type of work.

3.
The cloudlet concept proposed by Satyanarayanan [23] is another approach to mobile cloud computing. Fig. 3 illustrates this approach where the mobile device offloads its workload to a local ‘cloudlet’ comprised of several multi-core computers with connectivity to the remote cloud servers. PlugComputers8 can be considered good candidates for cloudlet servers because of their form factor, diversity and low power consumption. They have the same general architecture as a normal computer, but are less powerful, smaller, and less expensive, making them ideal for role small scale servers installed in the public infrastructure. These cloudlets would be situated in common areas such as coffee shops so that mobile devices can connect and function as a thin client to the cloudlet as opposed to a remote cloud server which would present latency and bandwidth issues.

Mobile cloud computing would also be based under the basic cloud computing concepts. As discussed by Mei et al. in [10] there are certain requirements that need to be met in a cloud such as adaptability, scalability, availability and self-awareness. These are also valid requirements for mobile cloud computing. For example, a mobile computing cloud also needs to be aware of its availability and quality of service and enable diverse mobile computing entities to dynamically plug themselves in, depending on the requirements and workload. And in order for mobile users to efficiently take advantage of the cloud, a suitable method of self-assuming one’s own quality is needed—since the internal status and the external environment is subject to change. However, in addition to the similar requirements, a mobile cloud needs to consider other aspects such as mobility, low connectivity and finite source of power as well.

4. A taxonomy of mobile cloud computing

We present a taxonomy of current approaches in mobile cloud computing research based on issues related to Operational, End user and Service levels, and also in areas of Security, Context awareness and Data management as illustrated by Fig. 4. Our criteria for defining the taxonomy is based on the key issues in mobile cloud computing, and how they have been tackled in academia. We focus on:
Operational level issues
End user level issues
Service and application level issues
Privacy, security and trust
Context-awareness
Data management
as the main areas.

These issues at the top tier of the taxonomy are applicable to many areas, and not just mobile cloud computing. We believe these similarities would help give a comparison on how mobile cloud computing relates to other fields. Moreover, we expand each issue to highlight the unique set of challenges in mobile cloud computing, and how they have been tackled in existing work.