Resource Management in Mobile Cloud Computing

ed hardware


International Telecommunication Union (ITU)
predicts a mobile-broadband penetration rate at worldwide-level of 32% by the end of 2014.It is double the rate of the previous year and almost four times as much as five years ago.There is a huge gap between developed countries and developing countries, with a penetration rate of 84% for the former and 21% for the latter.Mobilebroadband is the highest growing market segment with an estimated 2.3 billion subscriptions by the end of 2014.At the same time, mobile-cellular subscriptions approach market saturation, at a level 7 billion subscriptions [1].Of much more importance for mobile cloud computing, as both consumers and providers of cloud resources, are the 1 billion smartphones in use (2nd quarter, 2012), with a globally penetration rate of 16.7% [2].It is estimated that in just three years (by 2015/2016) their number will reach 2 billion.The estimation for 2018 is for a 3.3 billion level.Another potentially mobile computing clients are the tablets, with sales 270 million units just in 2014.In a short period of time, the Internet and mobile devices have become an integral part of the daily life, in developed world as well as in the developing countries [3].A Nielsen study shows that in the United States of America, monthly usage of the Internet by adult people splits in 34 hours from mobile devices opposed with 27 hours from desktop computers.Moreover, from the associated network traffic, only 14% is owed to web usage, the rest of 86% being generated by mobile applications [4].One of the hottest research topics is Internet of Things (IoT).Smartphones, tablets and mobile terminals make a large part of the interconnected devices, but mobility comes with restrictions on physical dimensions, computing power, battery autonomy and power use.As the world goes mobile, the existence of these hard limits gets in direct conflict with the users' expectations and needs of a constant and predictable performance increase for all computing devices.On the mobile end, users requires more processing power and more autonomy.On the other hand, the infrastructure required to support the mobile services keeps expanding and its energy use develops with it.The small increases in energy efficiency did little to alleviate the constant grow in global power usage.The shift to mobile was shown to be accompanied by problems such as insufficient resources, limited battery capacity and limits in network connectivity [5].Decreasing applications' response time, efficient batter use of battery power and available network bandwidth are the main challenges for the future of mobile applications.

1
Mobile cloud computing is a solution for overcoming the barriers encountered by the rapid expanse of mobile use.Mobile cloud computing resides at the intersection of mobile computing and cloud computing.It is a major research topic for Information Technology and Communications (IT&C), shifting the point of use of computing resource from the end consumer to the resource reach data centers.

Cloud Computing
Cloud computing is defined by National Institute of Standards and Technologies (NIST) as a model which allows remote ondemand access to shared pool of computing resources (networks, servers, storage, application and services).The allocation and deallocation of these highly available resources are done with minimum management effort and without user interaction [6].The main characteristics of the cloud computing model are, according to [7] [8] Software-as-a-service (SaaS).SaaS refers to complete applications provided over the network.Recent developments in web technologies as well as AJAX (Asynchronous JavaScript + XML) and permanent Internet access have allowed porting to web browsers of both functions and user interface of classical desktop applications.These applications and the infrastructure on which they are running are not directly administered by their users, though they might be able to change their behavior through changing internal settings.Platform-as-a-service (PaaS).It is an intermediate tier providing environments, tools and programming language allowing users to build their own applications.As it is the case for SaaS, the client are not controlling the infrastructure in any way.They do have control over how the applications they're developing are to be implemented and, in some cases, they can specify the configuration of the host virtual machines.Infrastructure-as-a-service (IaaS).In this model, cloud computing service clients are allowed to provision processing power, storage space, network resources.They then can use them to execute any kind of software, including operating systems and applications.The clients don't administer nor control the cloud's infrastructure.They do control the virtual machines running on the physical infrastructure and the software stack installed on them (operating system and applications).The clients can manage their own storage space and they might even control parts of the physical network infrastructure such as firewalls.Mobile cloud computing can be understood as regular cloud computing with the only difference the fact that the final users of the provided services are mobile devices (Figure 2).Under this perspective usually falls Software-as-a-service: mobile consumers for cloud resources.The ongoing process of migrating client from desktop to mobile terminals, such as Bring your own device enterprise policy (BOD), greatly support this perspective.

Fig. 2. Mobile cloud computing
From another perspective, mobile terminals can be viewed as both consumers and providers of computational resources.In this case the cloud's infrastructure is dynamic, built ad-hoc from the participating devices, as opposed from the static infrastructure of classical clouds.Every node might belong to a different user being also mobile in most of the cases.There are advantages in using this model.Smartphone and tables have access to a large array of sensors such as cameras, microphones, GPS receivers, barometers, etc., that are not found in classical architecture.Transferring big volumes of data through the network might also be avoided by only having to communicate to nearby mobile neighbors.
The last perspective involves an architectural change, as it introduces a new intermediate tier between the server (cloud) and the clients (mobile devices) in form of cloudlets [11]. resource fragmentation: the resources are isolated.Even when there are enough resources, their potential consumers cannot gain access to them. over-provisioning: resources are reserved for a client's exclusive use in quantities exceeding its needs. under-provisioning: opposed to overprovisioning, not enough resources are reserved for exclusive use of a client.When discussing resources, a difference should be made between data-center resources such as available servers, storage space and network bandwidth and computing resources directly available to mobile devices.At data-center level there are multiple tiers for resource allocation and optimization: at cluster or supercomputer, virtual machine and operation system disk image levels.Moreover, for any of those levels different objectives can be pursued: increasing power usage efficiency, increasing or insuring a predefined level of availability for provided services, increasing performance, lowering the data-center air conditioning costs or a combination of them.

Energy efficiency
Techniques of lowering the power usage developed for mobile clients (laptops, smartphones, etc.) are adapted to be used in the data-center for clusters and supercomputers.One of those techniques is Dynamic Voltage and Frequency Scaling (DVFS) [14].Through DVFS, frequency and voltage are lowered when processing resources are not demanded.The main used technologies are Intel's SpeedStep and AMD's PowerNow!.Another techniques involves shutting down processor cores, processors and even physical machines when processing demand is low.The objective is to either lower the energy used by the datacenter or lower the heat generated by operating the physical machines (and the energy spent keeping the temperature constant).The next target for energy efficiency optimizations is the virtual machine (Figure 3).The same objectives as for the datacenters are used.Special algorithms are used to launch virtual machines and to allocate them on physical machines [15].The virtual machines can be reconfigured at runtime, based on current load levels [16].The reconfiguration is not a trivial task.There can be delays measured in minutes between the moment the new configuration is activated and the moment the virtual machine's performance is stabilized [17].Even identifying unused resources at virtual machines' level is a costly operation and it spend CPU cycles by itself.While it is easily enough to determine the level of a virtual processor load, identifying unused memory pages and calculating total used memory for virtual machine is more complex.Execution of those virtual machines not running any applications can be suspended or their configuration can be dynamically altered (by changing the number of virtual CPU cores, available memory, and allocated network bandwidth).By borrowing techniques mainly used for insuring a predefined level of services or for isolating hardware defects, virtual machines can be migrated between physical servers or datacenters.Physical machines are loaded up to an optimum level from an energy efficiency point of view while still assuring a certain performance level.Those servers left unoccupied after this consolidation process can be shut down completely or put in a suspended low-powered mode.Increasing the number of jobs at the hardware level comes with gains in energy efficiency by itself.It is more efficient to have a higher load level on a single physical machine than to use multiple servers for the same workload.Power usage doesn't increase as fast as the number of active cores.Fig. 4 presents the link between power usage and number of active cores for an Intel Core i7 920 processor [15].It shows the non-linear relation between the number of powered processor cores and energy consumption.

Fig. 4. Power use of an Intel Core i7 920
Cores of the same processor shares various components such as level 2 and 3 caches.This components need to be powered independently from the cores leading to the existences of a power consumption baseline.While saving on power usage, this techniques leaves the cloud more vulnerable to Denial of Service (DoS) cybernetic attacks.Servers loaded to a high level will hardly cope with a briskly increase in demands.Starting new physical machines and migrating running virtual machines is a costly process in both time and computing resources.Virtual machines are launched based on saved system images.Even these images can be optimized for optimum power usage before having running instance.

Job scheduling
Job scheduling is used for sharing computing resources between client demands.Algorithms developed for distributed system are used.There are two main categories of job scheduling algorithms: Batch Mode Heuristic Algorithms (BMHA) and online mode heuristic scheduling algorithms [18].Choosing one algorithm over another is made by taken into consideration the pursued objectives.Some of them try to minimize applications' execution time while others try to achieve a highest throughput.When using BHMAs, the jobs are put on a waiting queue when they arrive in the system.Their scheduling starts after a fixed period of time:  First-In-First-Out (FIFO) or First-Come-First-Serve (FCFS).It is a simple and fast algorithm.Jobs are queued as they arise.
Being non-preemptive is its biggest disadvantage.A small task queued after a bigger one will have to wait for the first to finish its execution before having a chance to be executed itself.

Resource Management in Mobile Clouds
Mobile cloud computing can be described as sharing computing resources within a mobile ecosystem.The mobile resources are insufficient and their availability is unpredictable.There are big efforts made for integrating mobile devices into cloud computing allowing the former access to bigger resources of the latter.While cloud storage is readily available, using processing power in the data center, or from an intermediate tier, for mobile needs is at its infancy.

Code offloading
One of the techniques used for code offloading is complete execution transfer.In the cloud are instantiated one or more virtual machines with identical software stacks as the targeted mobile device.Part or all of main processing is done in the cloud and the results are shown on the device.The users are given the illusion of using a more powerful terminal than in reality.The technique resembles cloudlets use, but these are not running replicas in VMs.The developing process of mobile applications is greatly eased.There are no explicit resource allocation and release in the cloud.Mobile applications can be also partitioned into loosely coupled modules.Part or all of these modules can be executed in the cloud.
Partition might be done both during the development process, by the application developer, or dynamic, at runtime.Dynamically partitioning requires implementation of a dedicated specialized middleware to decide where the execution will take place and to dispatch the execution and reintegrate the results (Fig. 5).On the mobile device, minimum to be executed is the user interface.There are many platforms trying to implement this model: AlfredO [20], based on R-OSGi, an OSGi extension allowing services migration between Java virtual machines.MAUI [21], another code offloading platform has as its main objective maximizing battery autonomy through code offloading in the cloud.Methods allowed to be remotely executed are annotated and it is decided at runtime whether the execution should take place on the device or in the cloud [10].Another technique developed for code offloading is using weblets.Applications are partitioned in modules called weblets, platform and programming language independent.They are locally executed or in the cloud as IaaS.The partitioning splits the user interface from the weblets.A weblet manager transparently decides at runtime weblet instantiation and/or migration.Migration of virtual machines at runtime can also be used as code offloading.Application execution status is migrated in the cloud and back, as needed.It is a more resource intensive process than selective tasks or modules migration.When mobile devices form the node of a cloud infrastructure by also providing processing, storage, and network bandwidth resources, they form an ad-hoc cloud.The model might be an alternative for more traditional approaches when there is no connectivity to Internet or to the cloud provider, due to network problems, DoS attacks or lack of available resources.Higher communications cost can be avoided using this technique by only using WiFi LAN traffic.Furthermore, it can be used for building communities where users execute collaboratively shared tasks.Using code offloading has other benefits also, such as increasing battery autonomy of mobile devices.CPU is big energy consumer; releasing it from part of its tasks allows lowering operating frequency, shutting down some of its cores or switching to low-power ones.Lowering 3G/4G network use by moving traffic to wireless LAN (for accessing cloudlets or an ad-hoc cloud) will also lower the overall power consumption.Code offloading already entered commercial usage.Silk web browser from Amazon uses it to split a web-page into subsystems (communication, HTML, rasterisation) and execute them on Amazon's own EC2 cloud.Other uses for code offloading: Apple's Siri and Google's Voice Search.

Pre-allocation and de-allocation
Cloud computing providers might be bound through Service Level Agreements (SLA) to certain levels and availability for their services.In order to achieve it, resources can be redundantly allocated, identical virtual machines (replicas) can execute the same tasks.High availability might conflict with performance: more replicas and bigger redundancy have a cost besides the directly involved resources.Processing power, network usage, and storage space are needed for assuring consistency between replicated data or tasks [22].One of the following strategies is used when pre-allocating resources: Deciding the amount of pre-allocated resources is done through the same process as resource allocation, using the same algorithms.There are disadvantages to this strategy: at high loads for the cloud it behaves just like ODS.Preallocated resources are unused resources in what involves the pay-per-use model while still consuming power and limiting the amount of free resources.Allocation strategies take into consideration the implementation model of the mobile cloud platform.Private clouds are usually based on lesser physical resources than the public ones.They cannot provide the user with the illusion of infinite processing power.[23] identifies three elements influencing allocation strategies for private clouds:  budget and physical equipment limits. ever increasing number of users. difficulties in de-allocating resources blocked by inactive users.While de-allocating difficulties are not specific to public cloud implementations, their providers should not ignore them.Cloud metering and taxation should reflect as precise as possible resources used by the clients.The basic pay-per-use model simply ignores those resources blocked by inactive users.Situations arise when resources are only intermittently used, skipping taxation for any intervals but those of peak usage.Thus, models have been proposed for taxing clients based on the time when the assigned resources were made unavailable for other uses [23].

Conclusions
Cloud computing as well as mobile computing are being a bigger and bigger part of today's information technology landscape.Efficient management of resources available in data-center has its role for both customer satisfaction and profit maximization.Energy usage has an ever increasing importance due to the increases in processing per unit of power not catching up with the increases in deployed processing power.All of these while, on the foreseeable future, energy cost will keep raising.Regarding the mobile computing aspect, there is no industry wide mature technology for managing resources.By their nature, mobile applications resides at the opposed ends of the network spectrum.There are native offline applications which require none or seldom access to cloud and there are online applications which need to always stay connected and exchange information.Any solution must cater to booth extremes.Mobile cloud is a heterogeneous environment where the place of code execution is decided dynamically.Magic solutions are not to be expected in the near future.The increased application developing effort needed to both take advantage and cope with the mobile computing particularities is requiring greater abstraction at programming level [24].

Future works
Fig. 6.Internet of Things [25] Developing a methodology allowing comparison of different cloud computing platforms is of great importance.This is especially true for private clouds, being more resources constrained than the other implementation types.In the age of Internet of Things (Fig. 6), porting resource management solutions initially developed for mobile clouds should be easy.Embedded devices share a great part of restrictions with their mobile counterparts: small battery autonomy, limited processing power, and low network bandwidth as well as being data sources in form of sensors unavailable to classic client/server or cloud implementations.As the whole Internet of Things concept gains traction, the need to integrate the new devices with cloud base applications and services already in place will lead to an unavoidable integration of mobile concepts with non-mobile aware existing deployments.
:  on-demand service.A service client with all the necessary permissions can have on-demand access to computing resources such as processor time or network storage space.The resources are allocated automatically, without intervention from the supplier side, in the requested quantities. remote access.Cloud computing services are served over the Internet.The access is made through standardized mechanisms by heterogeneous clients (mobile phones, laptops, etc.)  shared resources.Computing resources provided by the cloud computing suppliers form a pool shared by multiple clients using a multi-tenant model.The clients usually have no information on the geographical localization of the physical machines and equipment doing actual computations or providing storage space and other network services. scalable and elastic.Resources can be allocated to clients in a swiftly and elastic way, usually by an automated process. metered by use.Cloud computing providers automatically monitor and record resources provisioned and used by the clients.This allows a pay-per-use taxation model process, the model at the core of cloud computing.There are three basic service models, as defined by NIST: Software-as-a-service, Platform-as-a-service and Infrastructure-as-aservice (Figure1).