Article Preview
Top1. Introduction
Cloud computing deals with the distribution of computing resources over the internet. Cloud computing offers a bulk of resources like networks, computer processing power, data storage space, specialized corporate as well as the user application. Cloud computing is a technique which provide convenient and on demand network access (Satyanarayanan, 2010). It also provide bulk of computing resources in addition to minimum management services used for interaction.
Cloud Computing (CC) supports suitable, network access on-demand to a collective pool of configurable computing resources (such as services, applications, servers, storage and networks) that can be easily used with minimal effort or interaction required by the management and service providers. Mainly Three basic fundamental structure of cloud computing namely cloud service Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and Software as a Service (SaaS) (http://www.mobilecloudcomputingforum.com/).
Figure 1 illustrates the four tiers of the cloud architecture. In the layered architecture, top tier is the cloud applications (User Layer) that provides all the cloud applications to the end users. These applications are provided by the bottom SaaS layer on pay-per-use basis. The next tier is the cloud programming (SaaS layer) that includes the software frameworks and creates user interfaces that are cost-effective. The next tier is the cloud middleware (PaaS Layer) that implements all the platform services. It provides run-time environments for executing user applications. The bottom tier is the cloud resources (IaaS Layer) that provide the physical resources to power the data-centers.
Figure 1. Cloud computing stack [2]
Mobile cloud computing is defined as a combination of Mobile internet, mobile computing and cloud computing technologies. Mobile Computing Technology (MCT) (Hunt and Scott et al., 1998) can be used to transfer data and to share resources of computer and cellphones. It gives an accurate and real time information to a client at any time, at any place. Mobile Internet Technology (MIT) is the mixture of internet and mobile communication. It plays an important role to provide network services and real time network resources to a client. Mobile Cloud Computing (MCC) includes mobile computing, cloud computing, virtualizations and networking. MCC gives us challenges and new possibilities in energy saving by supply of computing resources, mobile resources and network resources to increase resource utilization, virtualization and sharing so that reduction in cost can be achieved.
Data offloading is a technique used to offload the data from the network to the cloud. This helps in reducing the traffic on the communication channels in the network. The data being sent onto the network from the smart mobile device is offloaded to the cloud. It enhances the performance of the smart mobile devices. Data offloading allows the mobile users to execute smart mobile applications that require strong processors, long battery lifetime and memory by offloading the data for storage and data for processing on the cloud. Resource intensive data from the mobile application is offloaded to the cloud; it uses the cloud resources. Thus the mobile resources are not exhausted.
Two techniques of computation offloading (i.e. Mobile Code Offloading). These techniques are Coarse Grained offloading and Fine grained offloading (Kovachev et al., 2012). Coarse Grained offloading: in this approach full application or program is offloaded into the cloud for execution rather than offloading some of the partitioned code. This approach declines the load of a programmer.one constraint of this approach is that the full application migration may result in additional communication overhead. Fine grained offloading: in this approach programmers modify the code so that it can handle partitioning and state migration. In this approach, only the power hungry part of the application is offloaded into the cloud. By doing this large amount of energy can be saved. Decoder acts as demanding part. Hence we can offload only the CPU demanding part and there is no need to offload monitor intensive part.