PMC2O: Mobile cloudlet networking and performance analysis based on computation offloading

PMC2O: Mobile cloudlet networking and performance analysis based on computation offloading

ARTICLE IN PRESS JID: ADHOC [m5G;November 24, 2016;8:47] Ad Hoc Networks 0 0 0 (2016) 1–13 Contents lists available at ScienceDirect Ad Hoc Netwo...

2MB Sizes 0 Downloads 20 Views

ARTICLE IN PRESS

JID: ADHOC

[m5G;November 24, 2016;8:47]

Ad Hoc Networks 0 0 0 (2016) 1–13

Contents lists available at ScienceDirect

Ad Hoc Networks journal homepage: www.elsevier.com/locate/adhoc

PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading Hao Jin, Shidong Yan∗, Chenglin Zhao, Dong Liang The Key Laboratory of Universal Wireless Communications for Ministry of Education, Beijing University of Posts and Telecommunications, Beijing 100876, China

a r t i c l e

i n f o

Article history: Received 29 April 2016 Revised 12 November 2016 Accepted 12 November 2016 Available online xxx Keywords: Hybrid ad hoc network Networking Cloudlet Computation offloading

a b s t r a c t The increase of smart mobile device (SMD) results in explosive growth in mobile traffic and provokes mobile users to leverage more and more compute-intensive applications through SMD. Framework of seamless mobile application execution and networking based on edge computing resources is proved to be one of the promising trends in future mobile Internet. Focusing on networking of Ad hoc cloudlet, this paper proposed a dynamic cloudlet self-networking framework based on component offloading (PMC2 O). Taking node mobility into account, dynamic cloudlet behaviour is investigated, and an optimized allocation algorithm called SA-UM is presented to reduce the complexity of resolution space on component allocation algorithm. Proactive Remove decision algorithm based on Node Resource Cooperative Sharing Degree (PRDA-NRCSD) is put forward to improve user experience and optimize the load balancing of a mobile cloudlet. © 2016 Published by Elsevier B.V.

1. Introduction In recent years, the number of smart mobile device (SMD) increases substantially and results in explosive growth in mobile traffic, capability of mobile devices such as CPU processing, networking and senoring are also enhanced as well, which provokes mobile users to leverage more and more mobile applications through SMD. Since mobile cloud computing integrates mobile computing, cloud computing, and the wireless technologies to unleash the potentials of these technologies, it has become the main trend for mobile application execution [1]. However, processing capability and battery consumption still remain to be the main intrinsic limitations for compute-intensive applications. Application offloading is proposed, which allow SMDs to migrate entire or part of the application to remote data centers, proximate resource-rich computers, group of nearby mobile computing devices and other heterogeneous computing resources in various locations, and the results are sent back to the mobile device for integration with the rest of the application inside the mobile device after successful application execution [2–5]. The state-of-the-art mobile application execution frameworks and computation offloading have been surveyed in [6,7]. From the view point of framework, solutions can be classified by cloudbased frameworks, cloudlet-based frameworks and hybrid based ∗

Corresponding author. E-mail address: [email protected] (S. Yan).

frameworks. For cloud-based frameworks, since smart mobile devices are usually far from remote data centers, it is difficult for SMDs to get the computing results in time due to latencies of wide area network; meanwhile frequent offloading of computing application brings about great traffic burden to backbone networks. Cloudlet based framework presented by Satyanarayanan [2] is a feasible solution to improve real-time computing efficiency and reduce traffic burden of backbone network. Cloudlet is a local cloud platform that is deployed on a resource-rich device, such as a WLAN server, or a group of mobile devices. The cloudlet-based solutions can be classified into two types according to the deployment location, namely server-based cloudlet and mobile adhoc cloudlet. Along with the standardization of 5G, networking methods based on edge computing resources [11] will become the important paradigm for mobile networks. Framework of seamless mobile application execution and networking provided by hybrid wireless Ad hoc networks, such as cellular networks converged with D2D, Wi-Fi is proved to be one of the promising trends in future mobile Internet. This provides more convenience and meets compute-intensive application demand of mobile users especially in those mobile application scenarios such as opportunistic sensing and information integration [8,9], speech recognition, natural language processing, computer vision and graphics, machine learning, augmented reality, planning [1,2,6,7] and rescue. Since Satyanarayanan et al. introduced the concept of cloudlet and a VM-based cloudlet architecture, the open challenges in cloudlet based computation offloading mainly include the follow-

http://dx.doi.org/10.1016/j.adhoc.2016.11.006 1570-8705/© 2016 Published by Elsevier B.V.

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC 2

ARTICLE IN PRESS

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

ing aspects: firstly, the investigation on cloudlet behavior is indispensable, including cloudlet sizing, networking capacity depending on the specific applications supported and the effect of user mobility to natural clustering of users in cloudlets. Secondly, selfmanaging of the cloudlet including networking and resource management policies is required, which meet the demand for real-time interactive response by low-latency and high bandwidth wireless access to the cloudlet [2]. Thirdly, cloudlet optimization is necessary considering intermittent connectivity of mobile users and handoff of cloudlets in order to improve user experience [18,19,20]. Some research issues on Ad hoc based cloudlet have been published recently, which mainly focus on mobile framework of computation offloading including mobile device opportunistic sensing [8], discovery and networking, application partition optimization, offloading decision, optimization on computation offloading allocation among offloading nodes and offloaded nodes, reliability and security of cloudlet. In the respect of research on cloudlet based framework, some cloudlet based architectures have been presented. A general mobile Ad Hoc cloudlet architecture was proposed by Huerta-Canepa and Lee [3], which monitors the status of the devices in the surroundings by P2P functional module and implements node discovery and distribution of contents by Ad hoc discovery mechanism. A finegrained dynamic cloudlet approach was proposed in [4] that deploys a component based cloudlet on any device in local area network with suffcient available resources, and a discrete system emulation model analysis of the system was given [13]. Koukoumidis et al. proposed a pocket cloudlet architecture [12], which makes use of the large memory capacity of mobile devices to alleviate the latency and energy consumption in accessing the remote cloud by migrating an application focusing on storage service based on a dynamic VM approach. A programming model and framework called CloudAware is presented as a holistic approach to bond computation offloading and context adaptation in [21]. In [23], an Offloading Framework for Internet of Things is provided by providing implementation details for key capabilities and qualitative evaluation of the framework’s capabilities. In [24], a decentralized architecture called Drap is designed which enables handheld devices to communicate with each other and also serve as a middleware between the application level and the OS, including modules of Device Manager, Neighbour Discovery and Heterogeneity. In [25], a component based cyber foraging framework is developed to optimize application-specific metrics by not only offloading but also configuring application components at runtime, and it also enables collaborative scenarios by sharing components between multiple devices. In the respect of application partition optimization, since partitioning is a technique for composing a mobile application into components [22], application partition optimization is indispensable. Partition algorithm is classfied into static partition and dymanic partition which rely on application developers and strong synchronization between a mobile device and cloud Servers [16,22]. The static partition algorithm is usually adopted. Application partition influences the computation offloading decision. In the scenario of cloudlet based computation offloading, because of mobility of application, offloading granularity ranges from VM, application component,code, application key value data and session etc., and the bandwidth required for each granularity ranges from Gigabytes, Megabytes to Kilobytes. The coarser the granularity is, the more bandwidth is required for offloading. The finer the granularity is, the more overhead and complexity for offloading control becomes.Therefore, offloading granularity is one of the essential factors to affect the optimization strategies of computation offloading decision and performance in cloudlet based framework [12], and it also becomes a challenge to the programming of mobile ap-

plication. In [22], the application partition and offloading granularity is analyzed from the view point of programming model. In the view point of optimization on computation offloading allocation and offloading decision, since face recognition and AR are selected as the typical applications in most research issues, From the respect of performance evaluation, performance criteria on Ad hoc cloudlet is similar to that compared to the cloud based framework including latency, bandwidth, response time [22] and computation resource usage. Most of the research papers published focus on the optimization of cloudlet considering network resources and computation offloading, energy consumption of mobile devices and application response time. In [26], both an analytical approach and an experimental approach are adopted to highlight the gain given by mobile-to-mobile opportunistic offloading compared to local execution. Multiple offloading strategies with regards to both computation time and energy consumption are investigated. Energy cost of three modes of computation offloading based on subtask for Ad hoc cloudlet was investigated in [10]. The computation offloading of mobile users is based on greedy mechanism. Marinelli et al. designed a Hyrax-based platform, which employs a mechanism for tolerating node departure to provide cloud computing services on a group of mobile devices and servers [14]. A decentralized computation offloading game is designed to model the offloading decision making problem among mobile users considering both computation and communication cost in homogeneous and heterogeneous wireless access scenarios [15]. In [27], a model and comprehensive analysis are presented for computation offloading between wearable devices and clouds in Wi-Fi and LTE scenarios by NS3 simulator. The performance evaluation criteria are the offloading delay and energy consumption without considering node mobility. In [28], a novel offloading system to design robust offloading decisions for mobile services is presented in cellular network scenarios considering the dependency relations among component services, and it aims to optimize execution time and energy consumption of executing mobile services. A trade-off fault-tolerance mechanism for the offloading system, and an improved genetic algorithm is provided for offloading optimization, and the mobility model is RWP. In [29], Energy Efficient Cooperative Computing is investigated in mobile wireless sensor networks by proposing energy efficient cooperation node selection strategies to offer a tradeoff between fairness and energy consumption, the problem was formulated as a joint optimization of computing and networking resources. In [30], a system model to capture the response time of offloaded tasks is introduced, the optimization objective is formulated to minimize the maximum average response time of tasks in cloudlets, and a fast, scalable algorithm is presented and evaluated by experimental simulations. In [31], the cloud-assisted collaborative execution of tasks in general topology to conserve the energy on the mobile device under a delay deadline is considered. Each task can be executed either on the mobile device or on the cloud clone. A directed acyclic graph is used to model the tasks within the application. The collaborative execution is formulated as a delay-constrained workflow scheduling problem on the graph in order to minimize the energy consumption on the mobile device. From the above investigation on cloudlet based computation offloading, the research issues on cloudlet behavior are limited, especially considering node mobiity. In this paper, we propose a dynamic self-networking cloudlet framework, and based on the above framework, present a novel networking mechanism and an optimized allocation algorithm based on component to improve the performance of the cloudlet. To our knowledge, it is the first attempt to investigate the dynamic self-networking cloudlet considering node mobility.The main contribution of this paper is as follows: (1) a dynamic self-networking cloudlet framework called Penetration based Mobile Cloudlet based on Computation Offloading (PMC2 O) is proposed, which consists of discovery of mobile

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

ARTICLE IN PRESS

JID: ADHOC

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

Fig. 1. Networking scenario of PMC2 O.

nodes, joining cloudlet and removed from cloudlet of mobile nodes and merging of two cloudlets. (2) based on the above networking mechanisms, and by taking node mobility into account, dynamic cloudlet behavior is investigated, and an optimized allocation algorithm called SA-UM is proposed to reduce the complexity of solution on component based allocation algorithm. (3) Proactive Remove Decision Algorithm based on Node Resource Cooperative Sharing Degree (PRDA-NRCSD) is presented to improve user experience and optimize the load balancing of a cloudlet. The remainder of this paper is organized as follows. In Section 2, PMC2 O is proposed, including its functional modules and main functions of each entity. In Section 3, based on the resource modelling of PMC2 O, SA-UM and PRDA-NRCSD are analyzed. In Section 4, performance evaluation of PMC2 O is presented, and Section 5 concludes the paper.

3

Fig. 2. Functional modules of CSFM.

ing node, and the node which is offloaded components by other mobile nodes is called target offloaded node. 2.3. Main functional modules of PMC2 O Two kinds of node are included in PMC2 O, one is called the cloudlet cluster header, and the other is called the normal node. Two functional modules called Cloudlet Service Function Module (CSFM) and Normal Node Function Module (NNFM) are resided in each node. These two functional modules would be activated or deactivated depending on the status of the node. When the node is selected as the cluster header, both of CSFM and NNFM would be activated. When the node is a normal node, the CSFM would be deactivated, and only the NNFM is activated. As the hosts providing compute-intensive service, the cloudlet cluster nodes can either be resource-rich devices such as PC or tablets.

2. System model 2.1. Cluster networking scenario of the framework The system model investigated in this paper is in Fig. 1. PMC2 O is composed of several mobile devices. Every device can communicate with each other. Since bandwidth resulting from component based offloading usually ranges within several hundred Kbytes, it is a reasonable choice for mobile computation offloading from the point of view of complexity and feasibility on application granularity [12]. 2.2. Main functions of PMC2 O In PMC2 O, each mobile device is called a mobile node. At first, an opportunistic cluster consisting of one or more mobile nodes is constructed through mobile node discovery. A cluster header is selected after interaction between mobile nodes. The cluster header takes in charge of management and control of the cluster. Computing resources within the cluster is shared among mobile nodes by component offloading. The component offloading is controlled by the cluster header, which is responsible not only for managing the joining and leaving of other nodes in the cluster, but also for optimizing the offloading strategy and component offloading. When a mobile node joins or leaves the cluster because of its mobility, the cluster header would control the cluster networking procedure for that node and related computing resource management in the cluster. Each mobile node is allowed to offload components to other nodes in the cluster or to be offloaded components by other nodes based on the proposed allocation algorithm called SA-UM. PRDA-NRCSD is presented as the optimized algorithm to remove mobile nodes for load balancing of the cluster. The node which offloads components to other mobile nodes is defined as the offload-

2.3.1. Main functions of CSFM The CSFM is composed of Node Management, Component Registry, Schemer and Allocator in Fig. 2. The function of each module is introduced as follows. The NNFMs of normal nodes are managed and controlled by the CSFM in the cluster header. Node Management (NM): As one of the key parts of the cloudlet cluster, it is responsible for managing the networking procedure of cluster, such as mobile node joining a cluster, merging of the two cloudlet clusters, removing mobile nodes from the cluster, etc.. It also stores the device information and monitors the resource status information of all the member nodes in the cluster. Component Registry (CR): CR stores all the component status information of applications of all nodes in the cluster. The status information is the aggregation of the component registry information on all of the normal nodes in the cluster. Through CR, the cluster provides component service listed in the CR to normal nodes in the cluster. Schemer (SM): SM optimizes the computation offloading strategies based on specific optimization objectives and algorithms, by using resource status information provided by the node manager gathered from all the normal nodes in the cluster, component information in the CR and component deployment status information. The optimized offloading and allocation results are sent to the Allocator. Allocator: The allocator notifies all the normal nodes in the cluster the detailed allocation strategies for component offloading. When the number of member nodes in the cluster is more than one, the Allocator is responsible for execution of optimized component offloading strategy. When the component manager requires executing a method call, Allocator would deploy cases of the components on the target offloaded node according to the optimized strategy provided by Schemer, and at the same time, return the

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC

ARTICLE IN PRESS

4

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

3. Dynamic networking of PMC2 O 3.1. Dynamic networking

Fig. 3. Functional modules of NNFM.

IDs and addresses of the target offloaded nodes to the offloading nodes which request the computing resources. The offloading node establishes association with the target offloaded node and executes method calls.

2.3.2. Main functions of NNFM The functional modules in the NNFM consist of Node Proxy, Device Monitor, Component Manager, Component Registry and applications. The detailed functions of each module are described below. Node Proxy (NP): Node Proxy communicates with cloudlet cluster header by control messages, and with other normal nodes within the cluster by data messages. The control messages mainly contain device state and component information. The data messages mainly include the offloading data, such as function arguments and results which create method calls. Meanwhile, after NP completes collecting the method call information from Component Manager and device resource status information from Device Monitor, it sends the information to the cloudlet cluster header. Device Monitor (DM): Device Monitor collects device running state information of each node periodically. It also takes in charge of monitoring the residual hardware resources, such as the ratio of computing resource, storage resource and network bandwidth resource. With this information, a heuristic algorithm is executed to optimize the deployment of components by Schemer in CSFM. Component Manager (CM): It manages all the components of an application, and deals with the method calls among the components. When an application is started, a CM is created for the application. The application registers all of its components at component manager, stores the method call information and related parameters information such as return values and estimated execution time in CR. The information in CR is synchronized to the component registry in the cluster header’s CSFM. When a component has been offloaded to the target offloaded node in the cluster, the component manager will redirect the calling from local component to the offloaded component on the target offloaded node. Component Registry (CR): CR stores the component status information of applications of the normal node. Application: It refers to an application that can be partitioned into components. The functional module of NNFM is shown in Fig. 3.

Each mobile node completes its initiation procedures for CSFM and NNFM, and then starts the procedures of cloudlet networking. At the beginning, each node constructs a cloudlet cluster by itself. The NNFM in every normal node collects the device status information and component information of running applications, and sends the information to the CSFM of cloudlet cluster header. The device information is sent to the NM, and component information is sent to the CR. NM completes the registration and management of device resource information. The CR completes the creation of information for component service which the cloudlet can provide to the nodes within the cluster. The CSFM obtains the optimized offloading allocation strategy according to the above information from Schemer. Then the strategy would be executed by each node in the cloudlet cluster. When the number of the member nodes in the cloudlet changes, The CSFM would updates the offloading allocation strategy on the basis of the latest CR state, and the updated CR is distributed to all the normal nodes in the cloudlet cluster. Due to node mobility, the dynamic networking method consists of several procedures, including node discovery, node joining cloudlet cluster, node removed from cloudlet cluster and merging of two cloudlet clusters. By the above networking method, the cluster size is self-managed and changes with the decision algorithms embedded into the procedures. 3.2. Networking procedures In order to self-control the cluster size and optimize the cluster resource shared by mobile nodes within the cluster, the procedures are divided into four various procedures according to the behaviors of the mobile nodes. 3.2.1. Procedure of node discovery After the initialization of mobile nodes, the CSFM keeps broadcasting the broadcast discovery message periodically to nearby cloudlet clusters, and keeps receiving and monitoring the broadcast discovery messages from other nearby cloudlet clusters. The broadcast discovery message consists of source address of the cloudlet cluster, destination address of the cloudlet cluster, the identifier of the cloudlet cluster and its resource status information. The mobile node selects the best cloudlet cluster and joins in it according to the resource status in the messages if it wants to join in a cloudlet. 3.2.2. Procedure of mobile node joining cloudlet cluster According to the procedure of node discovery, when the mobile node receives a broadcast discovery message, it indicates that the node has found a candidate cloudlet cluster to join. The mobile node inquires the capacity and status of the cloudlet cluster. The cloudlet cluster header responds with a capacity message which includes resource state and component services the cluster can provide. On the one hand, the mobile node decides if it would join the cluster, on the other hand, the cloudlet cluster header decides if it allows the mobile node to join the cluster based on the decision criteria and different optimization objectives. Procedure of mobile node joining cloudlet can be divided into proactive joining process and passive joining process. Proactive joining process is defined as the process which the mobile node sends a joining request and joins in the target cloudlet cluster after it receives the periodic broadcast messages from other clusters, and passive joining process is defined as the process which the

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC

ARTICLE IN PRESS

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

mobile node has to join in the nearby cloudlet cluster temporarily due to its mobility. 3.2.3. Procedure of node removed from cloudlet cluster Two processes are provided for the cluster header to remove a normal node from a cloudlet cluster, namely proactive remove process and passive remove process. For the proactive remove process, the normal node is removed by the cloudlet cluster header based on Node Resource Cooperative Sharing Degree (NRCSD). In passive remove process, a normal node notifies the cluster and departs from the cloudlet cluster due to its mobility and cannot support computation offloading service in the cloudlet cluster anymore. In the proactive remove process, cloudlet cluster header monitors its average resource usage (usage-A) periodically, and as soon as usage-A is higher than a Threshold-R, it would choose a node that has the lowest NRCSD. The definition of NRCSD is explained in detail in 4.4.2. The mobile node that is selected to be removed is called a discarded node. In the passive remove process, the mobile node notifies the cluster header to remove itself when it is leaving the cluster based on the wireless signal strength communicating with the cluster. Once a node has been selected as a discarded node, it would be removed within a time duration T-RD(we call it Time-Removed Deadline, which relates to the node capacity, the offloaded component and mobility of node). This means that after a time interval T-RD, neither nodes in the cluster offload components to the discarded node and receive executing results from the discarded node, nor the discarded node offloads components to other nodes or receives executing results from other nodes in the cluster. So if the discarded node still has a running component offloaded on other nodes, and the estimated executing time of this component is less than T-RD, the discarded node would be removed after the component execution result is received. If the estimated executing time of this component is greater than T-RD, the cloudlet cluster header indicates the discarded node to run this uncompleted component by itself and indicates the offloaded node stopping running the component. If there is not any component running on the discarded node at that time, the cloudlet cluster header removes the discarded node directly. Similarly, if the discarded node is just running a component offloaded from another node, it also needs to evaluate the executing time of this component. If the estimated executing time is less than T-RD, the discarded node continues running the component offloaded from the node, and returns the result to the node after completing the component. Then the cloudlet cluster header removes it from the cluster; if the estimated executing time is greater than T-RD, the cloudlet cluster header indicates the offloading node to run the component again by itself and remove the discarded node directly. 3.2.4. Procedure of merging two cloudlet clusters The procedure of merging two cloudlet clusters constructs a new cloudlet cluster. The cloudlet cluster header monitors the resource usage of the cloudlet periodically. If the usage-A of the cloudlet is higher than the Threshold-M of the cluster, it tries to find another cloudlet cluster to merge in order to get more computing resources. The merging procedure of two cloudlet clusters is composed of three steps, namely cluster discovery step, capacity comparison step and cluster merging step. In cluster discovery step, the NM of CSFM broadcasts a discovery message to request computing resources periodically. If a nearby cloudlet cluster header receives the message, it would know it is one of the invited candidate cluster to join the cluster, and then it responds with a capacity message to the requesting node. The capacity message contains the information of its total

5

CPU usage, computation capacity, etc. After the request cluster receives the capacity message, capacity comparison step begins. During the capacity comparison step, the request cluster header evaluates the resource usage-A of the new cluster after merging of these two cloudlets based on the capacity information of itself and the responder. The evaluating algorithm is explained in 4.2. If the new usage-A is less than its current usage-A and a ThresholdM, the request cluster header chooses the responding cloudlet to complete the merging of two clusters, otherwise not. Then the requester compares the capacity of the responder with itself in order to decide who will be the new cluster header. The header with higher capacity will be the new cluster header after merging. In cluster merging step, the header with low resource capacity sends a merging message to the header with high resource capacity. The message contains the data of the cluster information of node manager and component registry. The data are aggregated at the new cluster header, and the header with low resource capacity shuts down its CSFM and becomes a normal node. The normal nodes in the two clusters become the normal nodes of the new cluster. The dynamic networking procedures of PMC2 O are described in the following flowchart in Fig. 4. 4. Mathematical modelling In this section, the resource modelling of mobile cloudlet clusters is presented and the proposed algorithms including SA–UM and PRDA–NRCSD are introduced in detail. 4.1. Behaviors of component based offloading Three levels are included in the behavior modelling of component based offloading of the cloudlet, namely node level, application level and component level. On node level, the node-related behaviors mainly include arrival and departure of nodes and the resource sharing of each node. On application level, the behavior of the applications is defined as the events of the applications which are running in the cloudlet cluster. On component level, the behavior of the relations of component execution that may occur in a real cloudlet system is modelled with method calls. The behavior of three levels based on component offloading is shown in Fig. 5. 4.1.1. Modelling on node level On node level, Evi , vj  is used to denote the offloading relation among nodes. Assume that vertex vi denotes a node in the cloudlet, and the value of an edge Evi , vj  represents the load of a component calling when methods of offloaded components run on the offloaded node, and m is a method in a component. We suppose that node vi offloads a component cj to vj , and a method of component ci running on vi calls a method m ∈ M of cj with a frequency f reqc j (M denotes method set of a component). The executing of method m generates a CPU load loadm and a memory load memm , and the method m is called callm times in this component calling. If i = j, then this component calling causes a load of bandwidth between vi and vj . We suppose that the method m has arguments with size argm and results with size resm . Therefore, the value of the edge Evi , vj  has three parts as following [13],

C LE vi ,v j  = l oadm · cal lm

(1)

MLE vi ,v j  = memm

(2)

BLE vi ,v j  = (ar gm + resm ) · cal lm

(3)

m

m

m

Where CL, ML and BL denotes the CPU load, memory load and bandwidth load respectively.

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC 6

ARTICLE IN PRESS

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

Fig. 4. Dynamic networking procedure of PMC2 O.

Fig. 5. Three levels of behaviors based on component offloading.

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

ARTICLE IN PRESS

JID: ADHOC

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

7

cluster, suppose that cpuvi · spdvi represents the computation capacity of a node vi , and each node vi has cpuvi cores with processing speed spdvi (instructions per second) of a single core, memory with Mvi , and bandwidth with Bvi . The capacity of this node Pvi can be modelled as

Pvi = cpuvi · spdvi + Mvi + Bvi , i = 1 . . . N

(5)

The resource usage of node vi is obtained as,









E v j ,vi ∈E X,vi  m∈M

usagevi =

+



m

cpuv j · spdv j   M L E v j , v i 



E v j ,vi ∈E X,vi  m∈M

 +

C LE v j ,vi 



Mv j 



E v j ,vi ∈E X,vi  m∈M

m

B L E v j , v i 

m

Bv j

Where X denotes all nodes that have component offloading to node vi , including vi itself, M denotes all methods of the offloaded components.

Fig. 6. Component relation of an application.

4.1.2. Modelling on application level On application level, a weighted directed graph G(C,A) is defined to represent the relations among components of an application [16]. The vertex set C represents all components the application has, where any vertex ci ∈ C represents a component. The edge set A represents the calling relation among components, namely edge Aci , cj  of G(C,A) represents that component ci can call methods of cj , which means that cj is one of the next components of component ci . Since a component has not only one next component to execute when the current component is completed, it selects the next component when it has completed or when one of its method calls another method of the next component based on the user behavior. We assume that in G(C,A), the weight of an edge Aci , cj  is pij , which represents the probability of selecting cj after ci completed execution. So the sum of weights of all outgoing edges of a vertex is 1, namely, S 

pi j = 1, j = 1 . . . S

(4)

j=1

Where S denotes the number of components of an application. Therefore, when the user starts an application, the first component of this application will start running, and then the application will randomly select one of the next components to execute. When the component execution completes and no component is waiting to execute, this means that the application has completed. Then the user can start this application again on application level. An example of component relation of an application is described in Fig. 6. 4.2. Modelling of resource offloading 4.2.1. Resource modelling of each node In order to model the resources including computation capacity, processing speed, memory and bandwidth of the node in the

4.2.2. Analytical model of offloading behavior The offloading relation among nodes in a cloudlet can be represented by a weighted directed graph G(V,E). The vertex set V represents all nodes in the cloudlet, where any vertex v ∈ V represents a node, and N denotes the number of this cloudlet. The edge set E represents the offloading relation among nodes, where edge Evi , vj  represents node vi has offloaded a component to node vj . Specially, a self-loop Evi , vi  represents node vi runs a component locally by itself. Once the Schemer in the cloudlet cluster header updates its registry service data and obtains the optimal component allocation strategy, the graph G(V,E) would be updated. According to 3.2.1, the average resource usage of the cluster is

 usage-A =

vi ∈V usagevi

N

,i = 1...N

(7)

Where, N is the number of the nodes in the cluster. 4.3. Mobility model To evaluate the performance of the mobile nodes in the cloudlet, mobility model is indispensable. Two common mobility models are used, namely Random Waypoint Mobility Model (RWPModel) and Community based Mobility Model (SCB-Model) [17]. 4.3.1. Random waypoint model In Random Waypoint Mobility Model (RWP-model), at the beginning, a node chooses a new destination and a speed randomly, and then it moves towards the chosen destination at the selected speed. Upon arrival at the destination, the node pauses for a random time, and then it selects a random destination, a random speed and continues to go to the new destination again. 4.3.2. Social Community based Mobility Model In Community based Mobility Model (SCB-model), an interaction matrix M is used to model social relationship among nodes in the cloudlet. Each element mij of the matrix M represents the strength of interaction between any two node vi and vj . The attraction to a node vi of a sub-area in the scene is calculated as following

Aki =



mi j , k = 1 . . . K, i = j

(8)

j∈Nk

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

ARTICLE IN PRESS

JID: ADHOC 8

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

Here, Aki denotes the attraction of sub-area k to node vi , Nk denotes the node in sub-area k, and K denotes the number of subarea. Based on the SCB-model, node vi chooses the most attractive sub-area as its destination sub-area, and then it chooses a new destination position randomly in this sub-area. In addition, the attraction Aki needs to be updated because the node movement causes change of Nk in the model. 4.4. Optimal algorithms In order to evaluate the dynamic networking bahaviours and performance of PMC2 O, cloudlet sizing, networking capacity depending on the component based application and the effect of user mobility to natural clustering of users in cloudlets are necessary to be investigated. Besides, self-managing of the cloudlet including networking and computing resource management is also needed to evaluate. For the networking behaviour and self-managing on usuage of computing resource, which relates to node joing and leaving the cloudlet cluster, PRDA–NRCSD is proposed based on node resource cooperative sharing degree of each node and computing resource usuage. In order to improve the performance of SA algorithm on offloading allocation of components in PMC2 O, taking node mobility and communication range into account, the SA-UM algorithm is presented to improve the efficiency of the SA algorithm.

4.4.1. SA–UM In component-based cloudlets, components can be redeployed on other nodes at runtime according to a given optimization criterion, such as execution time, energy consumption and bandwidth throughput. As a well-studied stochastic search heuristic algorithm, Simulated Annealing (SA) has been used successfully for runtime optimization of various cloud systems [13]. By considering mobility and communication ranges of nodes, SA–UM (Simulated Annealing based on user mobility) is presented as the allocation algorithm to allocate components among offloaded nodes and offloading nodes in PMC2 O. Although it is possible for all components of a node to be offloaded to any nodes in the cloudlet, a node should offload its components to the nodes in its communication range. Considering the restraint of communication range, the number of candidates that a node can select as target offloaded nodes can be optimized, therefore, the size of resolution space is reduced and the performance of the algorithm is greatly improved. Suppose that the number of nodes k in a region D follows Poisson Point Process (PPP), |D| denotes the area of the region, λ denotes the average number of nodes in unit area, and the average distance of two nodes is λ1 . The probability of the number of nodes k in a region D is

P (N (D ) = k ) =

(λ|D| )k e−λ|D| k!

(9)

A coordinate system is constructed in Fig. 7. The bigger circle with the center O is the communication range of the header, and the smaller one with the center A is the communication range of the normal node. Assuming that the communication radius of the header is R, then the size of resolution space of traditional SA is (λπ R2 )M , where M is the number of components. Suppose that the communication radius of a normal node is r, and the area of the coincidence region of this normal node communication and the headers is S(R, r, λ), so the size of reduced resolution space is (λ · S(R, r, λ))M . The two circles intersect at X with the x = x0 . The length of OA denotes the average distance of two nodes, which is λ1 . So S(R, r,

Fig. 7. Communication ranges of the two nodes.

λ) can be written as S (R, r, λ ) = 2



R

x0



 R2



x2 dx

+2

x0 1

λ −r





r2 − x −

1

λ

2 dx

(10)

When the whole smaller circle is contained by the big circle, the area of coincidence region is maximized, which means the number of candidates is maximized, and S (R, r, λ ) = π r 2 . That is to say, the lower bound of the reduction of resolution space is (λπ r2 )M . When the total number of components M is large, by using SA-UM, the performance of the allocation algorithm can be significantly improved compared with traditional SA. The following is the algorithm of SA-UM. (Algorithm 1) Algorithm 1 UM). 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:

Simulated Annealing based on user mobility (SA–

s ← current o f f loading strategy T ← init ial temperat ure for i = 1 to kmax do T ← temperature(k/kmax ); snew ← neighbor (s ) delta ← usage-A(snew ) − usage-A(s ) if exp(delta/T ) ≥ random(0, 1 ) then s ← snew end if end for return the final state s

Where the neighbor is the function of random solution in the resolution space, and the T is a user-defined value that controls the iterations. 4.4.2. PRDA–NRCSD PRDA–NRCSD is presented as an algorithm to evaluate computation offloading cooperation among the nodes in PMC2 O. The cluster header would decide whether the node in the cluster would stay or leave the cloudlet according to its computation offloading execution provided to other nodes in the cloudlet and the usage threshold of computation resource of the cloudlet for computing resource load management. When a cloudlet cluster header finds that the resource usage-A of the cluster is higher than Threshold-R, it starts PRDA–NRCSD. The definition of NRCSD is as follows. Suppose node vi has a value NRCSDvi representing its nodes node resource cooperative sharing degree. For a new member node vi , its NRCSDvi is initialized as zero. η(m, c, vi ) is defined as the

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

ARTICLE IN PRESS

JID: ADHOC

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

resource usage for method executing load on node vi . If node vi executes a method m of a component c, the η(m, c, vi ) is,



loadm · f reqc memm (argm + resm ) · f reqc η m, c, v j = + + (11) cpuv j · spdv j

Mv j

Bv j

If vi offloads a component c to vj , then method calls would execute on vj , and NRCSDvi needs to be subtracted η(m, c, vj ) for that offloading. On the contrary, if a method m of a component c on the node vi offloaded from another node is executed, NRCSDvi needs to be increased by η(m , c , vi ) for that offloading. The PRDA–NRCSD is shown as Algorithm 2.

9

Table 1 Parameters of random waypoint mobility model. Description

Value/Distribution

Pause time(s) High speed (km/h) Low speed (km/h) Scenario border (km)

U(0, 60) U(10, 15) U(5, 10) 1

Table 2 Parameters of community based mobility model. Description

Value/Distribution

Attraction Subarea number Scenario border (km)

U(0, 1) 50 1

Table 3 Parameters of node capacity.

Algorithm 2 PRDA–NRCSD. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:

function NRCSD() NRCSD ← new array Nodes ← all nodes in cluster for all node in Nodes do nrcsd ← 0 Coms ← all components o f node for all com in Coms do if com is offloaded to another node then for all m in methos o f com do if m is running on node then nrcsd -= η (m, com, node ) end if end for end if end for Coms ← all components running on node for all com in Coms do if com is offloaded from another node then for all m in methos o f com do if m is running on node then nrcsd += η (m, com, node ) end if end for end if end for NRCSD[node] = nrcsd end for return all node’s NRCSD NRCSD end function

30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:

function FindDiscarded() N ← current cluster size U ← current cluster average resource usage Nset ← NRCSD() V ← all nodes id d ← V [0] nmin ← Nset[0] for i = 1 to N do if Nset[i] < nmin then d ← V [i] nmin ← Nset[i] end if end for return the discarded node d end function

Node capacity

Symbol

Distribution

Node capacity (instruction/s) Core number of super node Core number of normal node Core number of normal node

speedvi coresvi coresvi coresvi

N + ( 1, 0.4 ) U(4, 8) U(1, 2) U(1, 2)

Table 4 Parameters of application arrival. Application arrival

Symbol

Distribution

Application arrival rate (s)

aai

P(10)/P(30 0)/P(30 0 0)

5. Performance evaluation 5.1. Simulation parameters The performance of dynamic networking mechanism and related algorithms in PMC2 O are evaluated by mathematical modelling and discrete event simulator OPNET. All the random values and their distributions for the simulation are listed in following tables. 5.1.1. Node level (1) Node mobility The shape of the moving area for mobile nodes in the simulation is a square with the size length of 1 km. Random Waypoint Mobility Model and Community based Mobility Model are selected, the detailed parameters of the two models is shown in Table 1 and Table 2. (2) Parameters of node capacity The mobile nodes are divided into two classes, those SMDs which have rich computing resources are called super nodes, such as PADs; and those devices which have less computing resources are called normal nodes, such as smart phones. The detailed parameters of super nodes and normal nodes are set in Table 3. 5.1.2. Parameters of application arrival The application arrival rate means that when an application has shut down, the user starts it again after a random time interval. This arrival time follows a Poisson distribution, which is denoted as P(λ). The parameters are listed in Table 4. 5.1.3. Parameters of component behavior Table 5 is the parameters of component behavior [13]. Where, U(a, b) denotes the discrete uniform distribution within [a, b]; Exp(λ) denotes the exponential distribution with exception of 1/λ; G(p) denotes the geometric distribution with excep-

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

ARTICLE IN PRESS

JID: ADHOC 10

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13 Table 5 Parameters of component behavior. Component behaviour

Symbol

Distribution

Method Method Method Method Method

loadm memm argm resm callm

N + (E xp(0.025 ), E xp(0.167 )) N + (E xp (0.025 ), E xp(0 .167 ) )

N + E xp 0.125 × 10−5 , E xp 0.083 × 10−4



−4 −3 + , E xp 0.083 × 10 N E xp 0.125 × 10 G(0.25)

load (instructions) memory (Kbits) argument size (bits) result size (bits) call number (bits)

Fig. 9. Relation of cluster size and mobility model.

Fig. 8. Dynamic behavior of a cluster.





tion of 1/p; N + n, σ 2 denotes the normal distribution restricted to strictly-positive values. 5.2. Performance evaluation 5.2.1. Dynamic networking behavior of a cluster In order to evaluate the performance of PMC2 O and the algorithms proposed in Section 3, cluster size, cluster computation capacity and cluster resource usage are selected as the metrics to describe the behaviors of a cluster. The dynamic behavior of a cluster is obtained in Fig. 8, the application arrival rate is P(300), and the number of nodes is 30. From Fig. 8, the computation capacity of the cluster is proportional to the cluster size, and the average resource usage reaches 7% when the cluster size grows to 30. 5.2.2. Effect of mobility model on cluster sizing In order to investigate cluster size changing with different mobility models, 30 normal nodes and a super node are chosen, and the simulation is done with Random Waypoint Mobility Model and Community based Mobility Model respectively. As shown in Fig. 9, the nodes following the Community based Mobility Model merged into a large cluster more easily than the nodes following the Random Waypoint Model, because nodes are converged together due to the attraction among nodes in Community based Mobility Model. Large cluster size means that more resources can

Fig. 10. Relation of cluster size and merging Threshold-M.

be shared among nodes, which indicates that PMC2 O is suitable for the scenarios that users have social community based relationships like classmates, colleagues and neighbors.

5.2.3. Effect of merge threshold on cluster sizing According to the proactive merging procedure, the header needs to evaluate the new cluster resource usage before it decides to merge with another cluster. If the resource usage of the cluster is smaller than Threshold-M, the two clusters would merge. We put 1 super node and 29 normal nodes in the simulation scenario with Threshold-M=0.8 and Threshold-M=0.1. Fig. 10 is the comparison of cluster size varying with ThresholdM. In Fig. 10, low Threshold-M can also make a large cluster (the probability of the cluster size reaching 30 is not zero). Neverthe-

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC

ARTICLE IN PRESS

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

11

Table 6 Parameters of node in the PRDA-NRCSD . Node type

Core number

Application arrival rate(s)

Super node Normal node Selfish node

U(4, 8) U(1, 2) U(1, 2)

P(30 0 0) P(30 0 0) P(10)

Fig. 11. Relation of cluster size and mobility model.

Fig. 13. The behavior of NRCSD of three types of nodes.

Fig. 12. Relation of cluster size and merging Threshold-M.

less, low threshold makes the cluster keep small size at most of the time. 5.2.4. Effect of application arrival rate to cluster resource usage The application arrival rate and super node number are two important factors affecting the cluster resource usage. Because of user mobility and the dynamic networking mechanisms, the cluster size would vary and it then affects the resource usage of a cluster. One super node and 29 normal nodes are set in the simulation scenario. The evaluation results are shown in Fig. 11. The cluster resource usage increases with the cluster size, because when the number of normal nodes is more in the cluster, they usually request more resources from the cluster, and the resources offered by normal nodes are usually less than they request. Fig. 11 also reveals that high application arrival rate causes high resource usage. 5.2.5. Effect of super node number to cluster resource usage In order to evaluate the effect of the super node to the cluster, 5 super nodes and 25 normal nodes are selected in the simulation scenario. The relation of resource usage and different super node number is shown in Fig. 12. Compared with Fig. 11, it indicates that more number of super nodes offer more resources for component offloading, so the resource usage is lower than that in Fig. 11.

5.2.6. Performance evaluation of PRDA–NRCSD In order to evaluate the performance of PRDA–NRCSD, three types of node are classified; the first type is super nodes, the second type is those normal nodes that have offloads components and have been offloaded components by other nodes in the cluster, and third type is those normal nodes that often offload components to other nodes but seldom be offloaded components by other nodes in the cluster, which are called selfish nodes. The parameters are listed in Table 6. The behavior of three types of nodes is shown in Fig. 13. It reveals that when NRCSD of the super nodes increases, NRCSD of the normal nodes of the second type is balanced, and NRCSD of those normal nodes of the third type decreases. When the NRCSD of nodes are ranked, and the most selfish node ranks as the last one in the cluster, it would be removed by the cluster header. From the evaluation of the behaviors of cluster by using PRDANRCSD, the advantages of PRDA–NRCSD includes: (1) For a node with low capacity, the effect of removing the node is small; Although a low-capacity node offloads components most of the time, it can maintain a balanced NRCSD because its NRCSD decrement is small and NRCSD increment is big once its NRCSD changes. Therefore, the cloudlet cluster header cannot remove a normal node with low-capacity node easily. (2) Although the NRCSD decrement of the node with high-capacity is big, a high-capacity node seldom offloads components to other nodes with low capacity, so its node NRCSD usually increases and maintains at a high value, that is to say, it cannot be removed easily by the header. (3) If there is a selfish node which requests resources frequently, its NRCSD keeps on decreasing, and it would be removed by the cluster header as the most selfish node in the cluster soon. 6. Conclusion Focusing on the dynamic networking of Ad hoc cloudlet, a dynamic cloudlet self-networking framework based on component called PMC2 O is proposed. Considering node mobility, dynamic

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC 12

ARTICLE IN PRESS

[m5G;November 24, 2016;8:47]

H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

behavior of cloudlet cluster is investigated; an optimized allocation algorithm SA–UM is presented to reduce the complexity of resolution space on component allocation algorithm. Proactive Remove decision algorithm based on Node Resource Cooperative Sharing Degree (PRDA–NRCSD) is put forward to improve user experience and optimize the load balancing of a mobile cloudlet. Simulation results reveal the effects of node mobility to cloudlet dynamic networking, cloudlet sizing and resource usage, and the efficiency of PMC2 O and PRDA–NRCSD are evaluated. In future research, we may investigate the control efficiency of PMC2 O and the energy consumption performance of hybrid mobile cloudlet considering computation offloading. Acknowledgment This work is supported by the National Natural Science Foundation of China (No.61471062, 61431008). References [1] N. Fernando, S.W. Loke, W. Rahayu, Mob. Cloud Comput. 29 (1) (2013) 84–106. [2] M. Satyanarayanan, P. Bahl, R. Caceres, N. Davies, The case for VM-based cloudlets in mobile computing, pervasive computing, IEEE 8 (4) (2009) 14–23. [3] G. Huerta-Canepa, D. Lee, A virtual cloud computing provider for mobile devices, in: Proceedings of the 1st ACM Workshop on Mobile Cloud Computing & Services: Social Networks and Beyond, ACM, 2010, pp. 6:1–6:5. [4] T. Verbelen, P. Simoens, F. De Turck, B. Dhoedt, AIOLOS: Middleware for improving mobile application performance through cyber foraging, J. Syst. Softw. 85 (11) (2012) 2629–2639. [5] E. Cuervo, A. Balasubramanian, D.-k. Cho, A. Wolman, S. Saroiu, R. Chandra, P. Bahl, MAUI: making smartphones last longer with code offload, in: Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services, ACM, 2010, pp. 49–62. [6] E. Ahmed, A. Gani, M.K. Khan, R. Buyya, S.U. Khan, Seamless application execution in mobile cloud computing: motivation, taxonomy, and open challenges, J. Netw. Comput. Appl. 52 (2015) 154–172. [7] K. Kumar, J. Liu, Y.H. Lu, B. Bhargava, A survey of computation offloading for mobile systems, Mob. Netw. Appl. 18 (1) (2013) 129–140. [8] Q. Liang, X. Cheng, S. Huang, D. Chen, Opportunistic sensing in wireless sensor networks: theory and application, IEEE Trans. Comput. 63 (8) (2014) 2002–2010. [9] Q. Liang, Situation understanding based on heterogeneous sensor networks and human-inspired favor weak fuzzy logic system, IEEE Syst. J. 5 (2) (2011) 156–163. [10] M. Chen, Y. Hao, Y. Li, C.-F. Lai, D. Wu, On the computation offloading at ad hoc cloudlet: architecture and service modes, IEEE Commun. Mag. 53 (6) (2015) 18–24. [11] G. Lewis, S. Echeverría, S. Simanta, B. Bradshaw, J. Root, Tactical cloudlets: moving cloud computing to the edge, in: IEEE Military Communications Conference, (MILCOM), 2014, pp. 1440–1446.

[12] P. Yu, X. Ma, J. Cao, J. Lu, Application mobility in pervasive computing: a survey, Pervasive Mob. Comput. 9 (1) (2013) 2–17. [13] S. Bohez, T. Verbelen, P. Simoens, B. Dhoedt, Discrete-event simulation for efficient and stable resource allocation in collaborative mobile cloudlets, Simul. Modell. Pract. Theory 50 (2015) 109–129. [14] E.E. Marinelli, Hyrax: cloud computing on mobile devices using mapreduce, Tech. rep., DTIC Document (2009). [15] X. Chen, Decentralized computation offloading game for mobile cloud computing, IEEE Trans. Parallel Distrib. Syst. 26 (4) (2015) 974–983. [16] E. Abebe, C. Ryan, Adaptive application offloading using distributed abstract class graphs in mobile environments, J. Syst. Softw. 85 (12) (2012) 2755–2769. [17] J. Härri, F. Filali, C. Bonnet, Mobility models for vehicular ad hoc networks: a survey and taxonomy, IEEE Commun. Surv. Tut. 11 (4) (2009) 19–41. [18] C. Shi, M.H. Ammar, E.W. Zegura, M. Naik, Computing in cirrus clouds: the challenge of intermittent connectivity, in: Proceedings of the First Edition of the MCC Workshop on Mobile Cloud Computing, ACM, 2012, pp. 23–28. [19] Y. Li, W. Wang, The unheralded power of cloudlet computing in the vicinity of mobile devices, in: IEEE Global Communications Conference, (GLOBECOM), 2013, pp. 4994–4999. [20] Y. Li, W. Wang, Can mobile cloudlets support mobile applications? in: Proceedings of the IEEE INFOCOM, 2014, pp. 1060–1068. [21] G. Orsini, D. Bade, W. Lamersdorf, Computing at the mobile edge: designing elastic android applications for computation offloading, in: 2015 8th IFIP Wireless and Mobile Networking Conference (WMNC), 2015, pp. 112–119. [22] M. Rawashdeh, A. Alnusair, N. Mustafa, M. Migdadi, Multimedia mobile cloud computing: application models for performance enhancement, in: Multimedia & Expo Workshops (ICMEW), 2016, IEEE International Conference on, 2016, pp. 1–6. [23] P. Patil, A. Hakiri, A. Gokhale, Cyber foraging and offloading framework for internet of things, in: computer software and applications conference (COMPSAC), in: 2016 IEEE 40th Annual, 1, 2016, pp. 359–368. [24] R. Agarwal, A. Nayak, Drap: a decentralized public resourced cloudlet for ad-hoc networks, in: cloud networking (cloudnet), in: 2015 IEEE 4th International Conference on, 2015, pp. 309–314. [25] T. Verbelen, P. Simoens, F. De Turck, B. Dhoedt, Leveraging cloudlets for immersive collaborative applications, IEEE Pervasive Comput. 12 (4) (2013) 30–38. [26] G. Calice, A. Mtibaa, R. Beraldi, H. Alnuweiri, Mobile-to-mobile opportunistic task splitting and offloading, in: Wireless and Mobile Computing, Networking and Communications (WiMob), 2015 IEEE 11th International Conference on, 2015, pp. 565–572. [27] C. Ragona, F. Granelli, C. Fiandrino, D. Kliazovich, P. Bouvry, Energy-efficient computation offloading for wearable devices and smartphones in mobile cloud computing, in: 2015 IEEE Global Communications Conference (GLOBECOM), 2015, pp. 1–6. [28] S. Deng, L. Huang, J. Taheri, A.Y. Zomaya, Computation offloading for service workflow in mobile cloud computing, IEEE Trans. Parallel Distrib. Syst. 26 (12) (2015) 3317–3329. [29] Z. Sheng, C. Mahapatra, V. Leung, M. Chen, P. Sahu, Energy efficient cooperative computing in mobile wireless sensor networks, IEEE Transactions on Cloud Computing (12) (2015). 1–1 [30] M. Jia, W. Liang, Z. Xu, M. Huang, Cloudlet load balancing in wireless metropolitan area networks, in: IEEE INFOCOM 2016-The 35th Annual IEEE International Conference on, 2016, pp. 1–9. [31] G. Fortino, G.D. Fatta, M. Pathan, A.V. Vasilakos, Cloud-assisted body area networks: state-of-the-art and future challenges, ICC 2015, Wireless Networks 20 (7) (2014) 1925–1938.

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006

JID: ADHOC

ARTICLE IN PRESS H. Jin et al. / Ad Hoc Networks 000 (2016) 1–13

[m5G;November 24, 2016;8:47] 13

Hao Jin received the PhD degree from Beijing University of Posts and Telecommunications in 1996. She is currently an associate professor in the Key Laboratory of Universal Wireless Communications for Ministry of Education, Beijing University of Posts and Telecommunications, China. Her research interests include optimization of mobile wireless communication and mobile cloud computing.

Shidong Yan received the BEng degree from Shanghai University in 2014. He is a graduate student for master degree in the Key Laboratory of Universal Wireless Communications for Ministry of Education, Beijing University of Posts and Telecommunications, China. His current research interests include computing resource allocation, networking in wireless network and mobile cloud computing systems.

Chenglin Zhao received the PhD degree from Beijing University of Posts and Telecommunications in 1997. He is currently a professor in the Key Laboratory of Universal Wireless Communications for Ministry of Education, Beijing University of Posts and Telecommunications, China. His research interests include wireless resource management, cognitive radio network and wireless sensor network.

Dong Liang received the PhD degree from Beijing University of Posts and Telecommunications in 2005. He is currently a lecturer in the Key Laboratory of Universal Wireless Communications for Ministry of Education, Beijing University of Posts and Telecommunications, China. His research interests include wireless resource management, cognitive radio network and location techniques in mobile wireless network.

Please cite this article as: H. Jin et al., PMC2 O: Mobile cloudlet networking and performance analysis based on computation offloading, Ad Hoc Networks (2016), http://dx.doi.org/10.1016/j.adhoc.2016.11.006