In this computer science and electronics report, we have discussed mobile cloud computing for computation offloading and the issues and challenges associated with it. Cloud computing has seen massive growth leading to immense data storage and computational power and other than this there is an increase in mobile devices around the world. So, with this increase mobile cloud computing (MCC) becomes an obligatory part of mobile devices, because MCC provides portability and reliability in the form of data storage and processing power. Today’s users are more demanding in the form of intensive mobile applications which require an excessive amount of computing power. Mobile Cloud Computing (MCC) offers offloading techniques to extend the capabilities of Smart Mobile Devices (SMDs) in the form of data storage and processing power which helps in the form of a longer battery life span and better end-user satisfaction. This report presents the computational offloading techniques, basic MCC models, and critical issues.
Do you need any type of computer science assignment help? Contact us now!
Introduction:
Have you ever thought about how your phone can store so much data when it has limited storage capabilities? When you like a song on apps like Spotify, Wnyk Music they automatically recommend you the playlist that matches your preferences. So, how they are sorting the songs, and making a playlist that matches your interest they are doing it on their cloud servers that’s why their processing power is so fast. They cannot process so much amount of data on your smart mobile devices because they have a limited amount of processing power (K. Kumar, 2010). Whenever one is using Google Maps, unknowingly, he is using intelligent vehicle monitoring access global positioning systems, and cloud computing. Using GPS, vehicle location and speed can be gathered which is processed at Google’s cloud servers to display different information on maps to give a user an idea about the traffic conditions in real-time and provide him with a shorter and faster path to reach his entered destination.
Also Read Final Project Ideas for Computer Science and Engineering Students
On the other hand, is it fine with you when you are sharing your images and videos or any other form of data on the cloud? Shouldn’t you be serious, when it comes to your confidential data’s privacy or security? Cloud Computing and offloading services are there to provide you a better and faster computational resources. It is an on-demand pay-as-you-go service. Cloud Computing mainly consists of three areas, PaaS (Platform as a service), SaaS (Software as a service), and IaaS (infrastructure as a service). The reign of the cloud’s popularity can be proved through the reports of the global compounded annual growth rate (CAGR). According to CAGR IaaS has a growth rate of 41%, 26.6% of PaaS, and 17.4% of Saas as of 2016.
Nowadays as we have already stated there has come extensive growth in mobile users but still it is not enough to carry out or help us out in the case of intensive computing tasks such as natural language processing, decision-making based on machine or deep learning, and image recognition. We need to understand that mobile devices provide us with less computational power as compared to server computers or desktops. But still, mobility is the major factor contributing to the popularity or exhaustive work being done in mobile cloud computing.
- Several researches are going on to enhance the computing capabilities of SMDs which are suffering from the issue of resource constraint. For instance, the computation offloading framework showed that computation offloading helped to reduce the energy consumption cost of mobile devices. The main two points that are covered and explained in this report are:
- Defining the available computational offloading frameworks that are used to enhance the computational power and storage capacity of SMDs. 2. And issues related to Mobile cloud computing and computational offloading. Challenges that require more attention and research.
BODY:
Cloud Computing –
Cloud computing tends to provide computing resources as well as new on-demand services. Multiple types of clouds are there that process users’ requests and they work on pay as you go model. Some of the examples are Amazon Web Services (AWS), Redhat Openshift, Redhat OpenStack, and Microsoft Azure. Cloud Computing offers storage services, Infrastructures, computational resources, and software services. These service providers allow users to use virtualized resources via the Internet. CC implements multiple service models to use them in different computing visions (A. Huth, 2011).
Mobile Cloud Computing –
Local Execution is a problematic situation for Smart Mobile Users because they have small battery life along with limited resource and processor capabilities. More users are moving towards Cloud Computing because of the increasing demand for storage and intensive mobile applications. So, MCC is filling up that gap between smart mobile devices and cloud computing (cloud servers). Three major parts of mobile cloud computing:
- Smart Mobile Devices
- Wireless communication means
- Infrastructure (Cloud Servers)
The Mobile Cloud Computing Forum defines MCC as follows ‘‘Mobile Cloud Computing at its simplest form refers to an infrastructure where both the data storage and the data processing happen outside of the mobile device. Mobile cloud applications move the computing power and data storage away from mobile phones and into the cloud, bringing applications and mobile computing to not just smartphone users but a much broader range of mobile subscribers”(Khadija Akherfi, 2016).
Computation Offloading –
Multiple offloading frameworks are used for transferring intensive application parts of a program to a cloud server/grid server/cluster of servers. The current mobile devices have a limited amount of battery life and computational power. So, to overcome this problem main components of the application are first divided and then they are offloaded to remote servers for execution purposes to enhance the capabilities of mobile devices.
In this case, method B is transferred to dedicated servers, the cloud server here provides computational resources for computing. We cannot use offloading in every scenario because offloading is useful only when the local execution of the application is quite costly in terms of battery and time consumption. There are many factors that we look out for before offloading. Mobile computational offloading mainly depends upon whether you are using WIFI or a cellular network. WIFI provides higher bandwidth and better data transmission speeds but in the case of data transmission using cellular, it requires more energy consumption than a WIFI network (Khadija Akherfi, 2016).
Offloading Approaches –
It contains three basic steps-
1. Application Partitioning: Basically, this step consists of the steps when the programmer divides the program or application into offloadable and nonoffloadable components. It is all about defining which part to send over to the cloud server and which part will be locally executed. Source code analysis is done before profiling the application and based upon that the decision is taken. Two types of application partitioning are done.
a. Partitioning at design time: The programmer pre-defined which part of the source code will be executed on the server side but this technique has limited accuracy since the programmer does not have any idea how the application is going to behave at run time.
b. Partitioning at run time: In this partitioning technique programmer makes the decision based on the availability of resources at the run time of that particular application.
2. Preparation: This step mainly focuses on performing all tasks required for computational offloading, which consists of the selection of servers, transfer, and migration of code to the server, and installing the mirror image of your SMDs to the server. Along with the code we also send data in the preparation step for the remote execution.
3. Offloading Decision: This is the final step for the computational offloading process. In this, we decide whether a particular remote component can be used for the execution of the application. At run time, we look at the constraints like energy and power consumption or available network and bandwidth for data transfer.
Offloading Framework Classes:
There are two types of framework classes and they are defined based on when the decision is taken to differentiate between offloadable and nonoffloadable components.
1. Static Framework Classes: All offloading approaches are defined at the design time.
2. Dynamic Framework Classes: All decisions are taken at the run time.
Offloading Frameworks:
In this section, we will be explaining the different offloading frameworks and will define the approaches used in defining three steps or approaches used to decide by these frameworks.
- CloneCloud Offloading Framework: The main aim of this framework is to enhance the battery life and performance of particular applications on SMDs.
- Partitioning step: It works upon the static analysis. Like at run time the data gathered by sensors will be processed locally and discover the migration point along with building a cost-effective model for offloading and execution.
- Preparation step: In this step, we tend to choose the server and migrate an image of your SMD to the cloud server, so that can be used for the execution of remote components in the future.
- Offloading decision: It works upon the dynamic framework class, so it defines whether to migrate a particular thread to the remote server or not. When you transfer the thread to that particular remote machine then all the states of that thread must be suspended.
Once the partitioned application’s process reaches the migration point, the thread in SMD is suspended and its state is wrapped and shipped to the clone in a remote server. In this clone, the thread is instantiated again. On the cloud server when the thread reaches the re-integration point it is suspended, then packaged and shipped back to the process of SMD which will merge into the state of that original process.
- MAUI Framework: It is a highly dynamic offloading framework because of continuous profiling and analyzing of processes or particular applications. It hides the complexity of the process execution through remote execution of that particular partitioned process and it also works on the principle of energy saving. It gives the impression as if the entire process is being executed on the mobile device.
- Partitioning: The developer specifies which components can be executed remotely and which can be executed locally.
- Preparation: In this step, two requirements must be met:
- Application dependencies must be present on both sides (SMD as well as server)
- Slover, proxies, and profilers must be installed on both sides.
- Offloading Decision: The offloading decision of whether to transfer a particular thread is taken at run time based on the availability of the resources. MAUI profiler characterizes the device, program as well as network because these things can change at run time. Based upon the input from the MAUI profiler, Solver decides whether to execute the component on a remote server or not. The MAUI proxy is responsible for the control and data transfer between the SMD and server. Also, this works upon code offloading where a part of the code is executed through an RPC call.
- Cloudlet Offloading Framework: It uses a VM as the offloading mechanism. Sometimes due to high WAN latencies, offloading to the remote cloud server is not a good option. So, we can use a VM-based hosting environment that is discoverable and located in single-hop proximity of the SMDs. However mobility is a big issue for SMDs while they are connected to the cloudlets. Actual application processing is done by the VM hosted by Cloudlet. In the preparation step cloning of mobile devices is done at the remote host. In the discovery service, the cloudlet host publishes the metadata (IP address and port to connect to the cloudlet). Once the mobile devices determine the offload, the mobile client connects to the cloudlet based on their metadata. At run time, the offloading components of intensive mobile applications is transferred to the nearby cloudlet.
- Jade: It also works on the same kind of concern to increase the battery life but the approach of this framework is a little bit different and it focuses on minimizing the burden from developers because it provides such kind of framework that automatically partitions the code.
- Partitioning: Applications are partitioned automatically at the class level in jade on the basis of the collected information.
- Preparation: It checks and monitors the device status by checking the load, network, energy status, and cost structure. The jade framework provides a model with a set of APIs, and developers have full control over how the remote code will work and how the code is partitioned. (H. Qian)
- Offloading Decision: It is taken at run time to decide where the code will be executed whether on the local machine or the remote machine.
Jade can dynamically change its offloading decision according to the device’s status thus efficiently reducing the energy consumption of mobile devices.
Client: the mobile device is called as client which offloads the computation. Server: The device which executes the offloaded code is called the server. Where the system is going to execute the remote task and initiate distributed execution is done by jade run time execution.
- Mirror Server: It is a powerful server that leverages VM for different mobile device platforms. The Entire application is offloaded in this framework so partitioning is not required. In the preparation step, a VM instance is created and it is called a mobile mirror. This Mobile mirror is responsible for managing and deploying the mobile mirrors on the computing infrastructure. All the applications are executed in the mirror VM instance and the results are returned to the SMDs.
A client synchronization module (Syn-client) is deployed within the SMD operating system to collect input data and transmit it to the mirror server for synchronization. The synchronization module (Syn-Server) updates mirrors according to the data provided by Syn-Client to keep mirrors and smartphones synchronized. The traffic monitor module which monitors network traffic between smartphones and the IP network. The mirror servers are only limited to services like file caching, file scanning, etc. - Cuckoo: The main aim of this framework is to enhance battery life and to increase battery performance by offloading applications using Java stub model. Cuckoo leverages the existing activity model in Android which makes the separation between the intensive and non-intensive components. Intensive components can be offloaded by any resource running Java Virtual Machine. (R. Kemp, 2010) In Preparation mode, there are two offloadable methods, one for local computation and one for remote computation. Cuckoo employs a dynamic offloading framework as the decision is taken at runtime. Whenever a connection is available and is strong then execution is done at the remote server and whenever a network connection is not available the application is executed at local resources.
Issues and Challenges of Mobile Offloading:
- Platform Diversity: One of the issues is the heterogeneity and diversity of SMD’s architecture and operating structure. Like in the case of the Mirror server offloading framework, it is applicable with Android while MAUI is compatible with the .net framework. A common offloading platform for all kinds of smartphones irrespective of their operating system is what the researchers are currently working on.
- Security and privacy in mobile cloud applications: Security and privacy are the major areas of concern while offloading data. There are three different scenarios where security and privacy are applicable:
- Mobile Devices
- Cloud server
- At the time of data transmission from mobile devices to cloud servers
In current frameworks, the binary transfer of the application code from mobile devices to cloud servers is one of the biggest threats. So, to overcome this challenge researchers offered a solution in which we can use two clouds, one is a commodity cloud and the other one is a trusted cloud. The partition is done in such a way that all critical operations take place in a trusted cloud, where on the other hand offloaded data is kept and processed through a faster but untrusted commodity cloud.
- Fault-tolerance and continuous connectivity: In the case of MCC, the most important attribute is to provide the freedom of mobility to the mobile users, so that they can roam easily. But some constraints are there like changes in data transmission rate, and network bandwidth, data may be lost while sending or receiving. So offloading frameworks must provide the strategy of fault tolerance, so you can easily resend the desired components in case of fault.
- Automation Mechanism: Automation of the current offloading techniques must be done to perform the computational offloading while profiling the recent environment. But this task has so many constraints.
- Offloading economy/cost: While making offloading decision the economic side must be taken into consideration. Because the cloud offers you, pay-as-you-go services which are a little bit costly, and other than this data transmission from SMD to the cloud server also has an extra cost-demanding factor from mobile phone users.
- Partition offloading and external data input: The major task in offloading is to make the decision whether the components need to be offloaded or not. And discovering that it also requires intensive resources.
Conclusion:
This report mainly consists of three main parts, cloud computing, Mobile Cloud Computing, Computational offloading, and its frameworks. So, we discussed the need for MCC and how computational offloading is helping us by providing different offloading frameworks. On the one hand where offloading has many advantages like offers you a better way of storing data, less power consumption, less execution cost, faster response time, and help us in running intensive mobile applications by providing us the computational resources at the other hand some challenges need to solved like issued related to privacy and security, lack of standard offloading architectures. In the end it is required to come up with a lightweight framework that will help us overcome these challenges and also minimize the efforts while developing, managing, and deploying an offloading framework.
References
- A. Huth, J. C. (2011). The Basics of Cloud Computing. United States computer.
- H. Qian, D. A. (n.d.). Reducing energy consumption of Android apps. Int J. Network.
- K. Kumar, Y.-H. L. (2010). Cloud Computing for mobile users: can offloading computation save energy. Computer 43(4).
- Khadija Akherfi, M. G. (2016). Mobile cloud computing for computation offloading: Issues and challenges. 16.
- R. Kemp, N. P. (2010). Cuckoo: a computation offloading framework for smartphones. Springer
Also Read The Challenges and Gaps in Agile Project Management: A Study in I.T. Project Consultant Companies