Keywords

1 Introduction

According to Morgan Stanley’s Internet Trends Report, as shown in Fig. 1, smartphone is forecasted to be a dominant computing platform [2].

Fig. 1
figure 1

Global unit shipments of desktop PCs, notebooks, and smartphones, 2005–2013E (estimation) [2]

Smartphones have emerged as a type of mobile device providing “all-in-one” convenience by integrating traditional mobile phone functionality and the functionality of handheld computers. Now mobile users look up songs by audio samples; analyze, index, and aggregate their mobile photo collections; play games; capture, edit, and upload video; manage their personal health and wellness and also analyze their finances. Smartphones have every capability of a computer as smartphones are capable of producing great computing and processing output.

However, power consumption by these devices is a prime factor when usage of these features comes into play. Power consumption increases dramatically while we are using different features like surfing Internet, watching videos, antivirus scanning, etc. Also the hardware capabilities of smartphones can be compared with or are similar to those of desktop PC’s of the mid-1990, many generations of hardware and software behind (see Table 1 vs. Table 2)

Table 1 Specifications of a few high-end smartphones
Table 2 Specification of a commodity laptop and a desktop

Furthermore, there are many APIs installed in smartphones that tend to consume limited battery resources, which in turn results in short battery life time for smartphones. Cloud computing is a rapidly accelerating revolution within IT and will become the default method of IT delivery moving into the future—organizations would be advised to consider their approach toward beginning a move to the clouds sooner, rather than later [810].

Cloud services could provide great means to save this type of power consumption. Much research has been done while considering this vision like Clone including [36]. All of the aforesaid papers lay emphasis on the basic idea of maintaining a replica or a mirror image of the smartphone on a Cloud computing infrastructure. With the help of a mirror, we can greatly reduce the workload and virtually expand the resources of the smartphones.

This paper has been organized as follows: The above section has introduced the general background of smartphones and Cloud computing. Also, limitations of smartphones have been pointed out. Next section provides an overlay of the various offloading techniques proposed in the past research studies. In Sect. “Paranoid Android Architecture”, the major concerns and issues related to the offloading in smartphones have been laid down. In Sect. “Augmented Smartphone”, the methodology to be used by in this particular research work has been discussed and finally a framework for migrating a compute-intensive Smartphone Application to the Cloud Computing Environment has been presented as the Proposed Architecture. Section “Clone Cloud Architecture” concludes as well as points out the future scope. Section “Mirroring Smartphone” presents the acknowledgements.

2 Related Work

2.1 Paranoid Android Architecture

Portokalidis et al. proposed Paranoid Android in [3]. This architecture aims at providing security as just another service to a smartphone by offloading security services on to the Cloud. The basic idea is to run a synchronized replica of the smartphone on a security server in a Cloud. As the server does not have the tight resource constraints of a phone, security checks can be performed on the Cloud that otherwise are too expensive to run on the phone itself. To achieve this, a minimal trace of the phone’s execution (enough to permit replaying only) is recorded, which is then transmit to the Cloud-server, where a replica of the phone is running on an emulator. Thus on the Cloud, a replayer receives the trace and faithfully replays its execution within the emulator.

This architecture focuses more on attack detection. The prototype implementation works on the Android platform and is specific to the Android architecture. This architecture can be used to provide offloading by implementing suitable security functions in the Cloud; but always requires an extra overhead of synchronization. This architecture assumes loose synchronization, as it is assumed that the smartphones cannot always be connected to the Internet. Therefore availability is affected, as the security functions in the Cloud are not always available to the smartphones.

2.2 Augmented Smartphone

Distribution of computation between the smartphones and the Cloud resources in the form of clone Cloud architecture has been suggested by Chun et al. [4]. The concept behind this architecture is to seamlessly offload execution from the smartphone to a cloud infrastructure. Resource intensive processes or portions of processes are performed by the smartphone clone in the Cloud and the results are then merged with the state of the smartphone which resumes execution. This process of splitting the computation between the smartphone and its clone is referred to as “augmentation”. This augmentation of computation is being done in four steps:

  1. 1.

    Creation of a clone of the smartphone in the Cloud;

  2. 2.

    Periodic or on-demand synchronisation of the smartphone and the clone;

  3. 3.

    Applications can be augmented (whole applications or augmented pieces of an application) automatically or upon request; and

  4. 4.

    Results obtained from the augmented segment of computation from the clone are synchronized with the smartphone.

Clone execution architecture for the smartphone aims at transforming a single machine’s execution into a distributed execution. The smartphone and the clone have a replicator which is responsible for synchronizing the clone state with the smartphone (on-demand or periodic) and a controller component on the smartphone that invokes augmented execution in the clone and integrates the results of the computation by the clone with the smartphone.

2.3 Clone Cloud Architecture

The Clone Cloud architecture presents an effective method for computation offloading from the mobile devices. A prototype implementation of the Clone Cloud is demonstrated in [5]. In the Clone Cloud prototype, an application is partitioned by the use of a static analyzer, dynamic profiler, and an optimization solver. The execution (migration and re-integration) points are defined where the application migrates part of its execution to the Cloud. This takes place at a thread level and when the compute intensive thread completes execution in the Cloud; its results are merged into the state of the smartphone. The other threads can still continue to run on the smartphone. Migration decisions are made based on criteria such as current network characteristics, CPU speed, and energy consumption at the smartphone.

The prototype implementation evaluation proves up to 20x speedup and 20x energy reduction. Again in this technique an extra overhead of synchronization comes into play and the phone has to be always kept synchronized with the clone. Furthermore, the details of how a smartphone and its clone are kept synchronized have not been discussed. Therefore, analysis of how a clone would be created and managed needs to be considered if this architecture is to be adopted.

2.4 Mirroring Smartphone

Zhao et al. [6] propose a framework to keep the mirrors of smartphones on a computing infrastructure in a telecommunications network thereby offloading heavy computations to the mirror. The mirror server in the telecommunications network is capable of hosting a large number of virtual machines. Synchronization between the smartphone and the mirror is achieved by replaying all the inputs to the smartphone in the same order at the mirror. Their framework is different from the others in the following two major aspects:

  • The Cloud is located in the telecommunication service provider’s infrastructure

  • A smartphone is connected to its mirror through a 3G network

Modifications to the existing telecommunications network are necessary to enable the forwarding of all the incoming traffic of the smartphone to the mirror server. In this system design, it is considered that the changes in the state of the smartphone are triggered by user or network inputs which produce deterministic outputs. Thus they suggest that synchronisation can be achieved by replaying these inputs in the mirror in the order of their occurrence. Data caching applications and anti-virus scanning are the two services for smartphones that have been identified to benefit from this framework. However, this framework has not been implemented yet. Furthermore, this approach does not consider Wi-Fi and Bluetooth connections and caters only to the Internet connections through 3G.

3 Issues

The major problem identified in the above discussed techniques is that, to make a clone of the phone on the Cloud, the entire phone’s data is required to be uploaded on to the Cloud which consumes a lot of bandwidth and time.

Second, whenever the phone’s data is updated the same changes are required to be made in the clone and thus an extra overhead due to continuous monitoring and synchronization between the smartphone and the Smartphone’s image/clone on the Cloud is leveraged on the phone. Also, for this constant synchronization, a smart phone always has to be connected to the Internet service.

In some of the previous researches, the detail of how a Smartphone and its clone are kept synchronized has not been discussed.

Fig. 2
figure 2

Framework for migrating compute intensive smartphone application to the cloud computing environment

4 Proposed Architecture

In this research, all together a new approach has been proposed which focuses on optimizing the battery utilization and reducing the time consumption by the heavy applications in the smartphones, exploiting the power of Cloud computing. This can be done by completely offloading the compute intensive applications on to the Cloud and thus unleashing the smartphone from doing heavy computational work. Also, there is no need to synchronize the smartphone and the Cloud continuously, which is a major drawback in all the other previously proposed offloading architectures.

CPU and battery consumption measurements will be performed by gadgets available for android in android market. Due to availability of resources, android will be chosen [7]. A compute intensive application in android will be developed. Further, analysis of the time taken and battery utilized by the application on the actual device will be made. These results will be further compared with the results when the application will be uploaded on the Cloud. This off-loading mechanism will benefit in saving battery and demonstrate the concept of API-as-a-service.

Figure 2 illustrates a high-level overview of the proposed system. On the smartphone’s side, a small instance module of the actual compute intensive application is deployed within the smartphone’s operating system (OS). This small instance collects the smartphone input data, including user keyboard inputs, and transmits them to the mirror server located on the Cloud. The compute intensive application and its workings are designed according to the specification provided by the Service Provider and the manufacturer.

On the Cloud environment’s side, the mirror server is a powerful application server maintaining one or more VMs. Each VM is a mirror to one of the smartphone. The Mirror Server on the Cloud receives the data from the Smartphone’s application instance. The communication can be done using any of the communication techniques; here the communication is shown via Internet. The detailed designs and implementations of the other modules are out of the scope of this paper.

5 Conclusion and Future Scope

A detailed analysis of battery and time consumption in a smartphone on running a compute intensive application will be performed, based on measurements of a software tool. It will be shown how the battery drainage varies with increasing computational work. Focus will be on delivering all together a new method in which the whole application has been kept on the Cloud rather than on the phone.

Also the detailed measurements of the same application has been done for the VM running on Cloud, which has depicted lesser execution time and no issues of battery, as the Cloud is always connected to the mains directly. The ultimate aim of this work is to enable a systematic approach for improving power management of mobile devices. Presenting these analysis, future research can be done regarding how the offloading techniques can be made more intelligent and adaptive.