WO2015061976A1 - Methods and apparatus for task management in a mobile cloud computing environment - Google Patents

Methods and apparatus for task management in a mobile cloud computing environment Download PDF

Info

Publication number
WO2015061976A1
WO2015061976A1 PCT/CN2013/086201 CN2013086201W WO2015061976A1 WO 2015061976 A1 WO2015061976 A1 WO 2015061976A1 CN 2013086201 W CN2013086201 W CN 2013086201W WO 2015061976 A1 WO2015061976 A1 WO 2015061976A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
task
executing
tasks
assigned
Prior art date
Application number
PCT/CN2013/086201
Other languages
French (fr)
Inventor
Peng Zhang
Original Assignee
Nokia Technologies Oy
Nokia (China) Investment Co. Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy, Nokia (China) Investment Co. Ltd filed Critical Nokia Technologies Oy
Priority to PCT/CN2013/086201 priority Critical patent/WO2015061976A1/en
Publication of WO2015061976A1 publication Critical patent/WO2015061976A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Definitions

  • the present invention generally relates to a cloud computing technology. More specifically, the invention relates to managing and scheduling tasks in a cloud computing environment.
  • Mobile device is increasingly becoming an essential and important part of human life as a convenient and effective communication tool for daily life and work.
  • Mobile devices within physical proximity of one another can establish a mobile ad-hoc network (e.g. a MANET), in which mobile devices can form a mobile cloud based on a mobile cloud computing technology, as illustrated in Figure 1.
  • a MANET can support a number of services, e.g., mobile social networking, mobile gaming, etc.
  • Mobile cloud computing is an emerging technology that combines mobile devices and cloud computing.
  • the MCC technology involves two aspects: one aspect is that a mobile device accesses cloud services; the other aspect refers to mobile devices whose resources are virtualized and used as services.
  • a mobile cloud in a MANET comprises valuable resources (e.g., wireless access, memory storage, computational power, software, etc), which can be utilized by surrounding devices.
  • valuable resources e.g., wireless access, memory storage, computational power, software, etc
  • an advanced smart phone can share its computation power to other devices; a device can support image processing for other devices; a mobile communication device with extra bandwidth can work as a wireless bridge for other devices for accessing the Internet.
  • One of the basic ideas of the cloud computing technology is to automatically split a large scale data processing (e.g.
  • MapReduce is a programming model and an associated implementation for processing and generating large data sets. It is initiated by Google and has been widely used in cloud computing.
  • MapReduce scheduling algorithm a MapReduce application may be run on the MapReduce system, being called a "job”.
  • a job can be divided into a series of blocks which is called tasks, such as "Map tasks"(MT) and "Reduce tasks"(RT).
  • the task which executes a map function is called a "Map task”
  • the task which executes a reduce function is called a "Reduce task”.
  • nodes are classified into "NameNode” and "DataNode” from an aspect of data storage. There is only one NameNode in a cluster, which records all the information of where data is stored. There can be lots of DataNodes that store data in a cluster.
  • the nodes can be classified into "JobTracker"(JT) and “TaskTracker”(TT) from an aspect of task managment.
  • JobTracker is a process that manages jobs.
  • TaskTracker is a process that manages tasks on the corresponding nodes. There are only one node responsible for JT, and a series of nodes responsible for TT.
  • the disclosure provides an approach for efficiently managing tasks in a mobile cloud computing environment.
  • a method for managing task assignment to a node in a mobile cloud computing environment comprises monitoring a dynamic status of the node which is executing at least one assigned task; estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjusting the task assignment to the node according to the estimation.
  • said monitoring may comprise receiving a report of the dynamic status from the node.
  • said monitoring may comprise sending a heartbeat message to the node, and listening to a response of the heartbeat message.
  • said estimating may comprise determining whether or not the node is suitable for continuing to execute the at least one assigned task. If it is determined that the node is not suitable for continuing to execute the at least one assigned task, the task assignment may be adjusted by reassigning at least part of unfinished tasks of the at least one assigned task to other node for executing.
  • the method may further comprise updating a record of the node with the dynamic status.
  • the dynamic status of the node may comprise a set of information of the node dynamically changing along with a movement of the node.
  • the method further comprise collecting historical information about the node's execution of previous tasks, and the estimation may be further based on the collected historical information.
  • the node is a mobile communication device in a mobile ad-hoc network. In some exemplary embodiments, the node is a mobile device in an internet of things.
  • an apparatus for managing task assignment to a node in a mobile cloud computing environment comprises at least one processor, and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to monitor a dynamic status of the node which is executing at least one assigned task; estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjust the task assignment to the node according to the estimation.
  • a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus for managing task assignment to a node in a mobile cloud computing environment, to monitor a dynamic status of the node which is executing at least one assigned task; estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjust the task assignment to the node according to the estimation.
  • an apparatus for managing task assignment to a node in a mobile cloud computing environment comprises means for means for monitoring a dynamic status of the node which is executing at least one assigned task; means for estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and means for adjusting the task assignment to the node according to the estimation.
  • a method for handling tasks at a first node in a mobile cloud computing environment comprises receiving at least one task assigned by a second node; checking a dynamic status of the first node; determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
  • said determining can comprises determining at least one of the following criterions can be satisfied: a residual memory in the first node is enough for executing the at least one assigned task; a residual battery of the first node is enough for executing the at least one assigned task; and an estimated time for finishing the at least one assigned tasks is within a time limit.
  • the method may further comprise if it is determined that the first node is not suitable for executing the at least one assigned task, rejecting at least part of the assigned task.
  • the dynamic status of the first node may be checked periodically.
  • the method may further comprise if it is determined that the first node is not suitable for execute the at least one assigned task, searching for a nearby node which is suitable for executing unfinished tasks of the at least one assigned task; and reassigning at least part of the unfinished tasks by the first node to the nearby node for executing. Then, the method may further comprise informing the second node about the reassigning of the at least part of the unfinished tasks.
  • the dynamic status of the first node may comprise a set of information of the node dynamically changing along with a movement of the first node.
  • at least one of the first node and the second node is a mobile communication device in a mobile ad-hoc network.
  • at least one of the first node and the second node is a mobile device in an internet of things.
  • an apparatus for handling tasks at a first node in a mobile cloud computing environment comprises at least one processor, and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to receive at least one task assigned by a second node; check dynamic status of the first node; determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
  • a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus for handling tasks at a first node in a mobile cloud computing environment, to receive at least one task assigned by a second node; check dynamic status of the first node; determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
  • an apparatus for handling tasks at a first node in a mobile cloud computing environment comprising: means for receiving at least one task assigned by a second node; means for checking a dynamic status of the first node; means for determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and means for, if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
  • FIG. 1 shows a mobile cloud
  • FIG. 2 shows an exemplary configuration of the mobile cloud, consisting of a server node and a number of worker nodes, according to an embodiment of the present invention
  • FIG. 3 depicts a simplified block diagram illustrating functional components of a server node according to an embodiment of the present invention
  • FIG. 4 is a flowchart of a process for managing tasks in a server node based on dynamics of worker nodes, according to one embodiment
  • FIG. 5 depicts a simplified block diagram illustrating functional components of a worker node according to an embodiment of the present invention
  • FIG. 6 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to one embodiment
  • FIG. 7 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to another embodiment.
  • FIG. 8 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to yet another embodiment.
  • FIG. 2 shows an exemplary configuration of a mobile cloud consisting of a server node 102 (indicated as a node in black) and a number of worker nodes 104 (indicated as nodes in grey).
  • the nodes in white are normal nodes that do not participate in the cloud computing operations.
  • the server node is a master node in the mobile cloud, which may split a large scale data processing work (e.g. a user application) into a serious of tasks, assign the tasks to worker nodes, and keep track of the status of worker nodes.
  • the server node may also maintain the input, intermediary and result data associated with the user application, and keeps track of the progress of the user.
  • the server node can operate as a NameNode and a JobTracker in a MapReduce model.
  • a worker node may keep communication with the server node, processes individual tasks, and return the results to the server node.
  • the worker node can operate as a DataNode and a TaskTracker.
  • a worker node may execute map tasks, reduce tasks or both.
  • a mobile phone an 802.11 WLAN phone, a smart phone, a home appliance, a laptop computer, a desktop computer, a personal digital assistant, an audio/video device, a television, a set- top box, a personal video recorder, a personal digital recorder, a digital camera, a digital camcorder, a personal memory device, a home automation and/or control device, a sensor, a vehicle, and the like or any combination of them.
  • the mobile cloud of FIG. 2 may be applicable to a wide variety of wireless networks and technologies, such as WLAN networks (e.g., IEEE 802.11 type networks), Wi-Fi networks, cellular networks, radio networks, or other wireless networks.
  • WLAN networks e.g., IEEE 802.11 type networks
  • Wi-Fi networks e.g., Wi-Fi networks
  • cellular networks e.g., cellular networks
  • radio networks e.g., Bluetooth
  • the various embodiments described herein may be applied to wireless networks, both in an infrastructure mode where a server node and worker nodes may communicate with each other, as well as an ad-hoc mode in which a server node and worker nodes may communicate to each other directly via a peer-to-peer network, for example.
  • the mobile cloud of FIG. 2 and various embodiments describes herein may be applicable to an Internet of Things, in which the server node and worker nodes communicate with each other via wireless links.
  • a number of vehicles equipped with sensors may form a mobile ad hoc network, and monitor traffic congestion (or other applications, e.g., air pollution detection) dynamically.
  • Each mobile node of sensor may dispatch some (computational) tasks to other nodes of sensor.
  • a wireless sensor network for forest fire alarm can be formed by a number of sensors which connect via wireless links. Although the sensors for forest fire alarm may not move, the resources in each sensor node may vary, e.g., battery level change.
  • the mobile cloud of FIG. 2 may be formed in a heterogeneous environment.
  • mobile devices can be equipped with sensors.
  • Some mobile devices can be connected to form a mobile ad hoc network, in which some Internet of Things applications (e.g., environment situation including air, safety (fire), etc.) can be supported through the equipped sensors.
  • Internet of Things applications e.g., environment situation including air, safety (fire), etc.
  • FIG. 3 depicts a simplified block diagram illustrating functional components of a server node configured to perform exemplary embodiments of the present invention. It should also be noted that while FIG. 3 illustrates one example of a configuration of a server node for managing tasks in a mobile cloud environment, numerous other configurations may also be used to implement embodiments of the present invention. For example, the functions of these components may be combined in one or more components or performed by other components of equivalent functionality.
  • the server node 102 may include or otherwise be in communication with an application manager 120, a task manager 122, a data manager 124, a data repository 126, a worker manager 128 and a network database 130.
  • MapReduce will be used as one example module for implementing cloud computing. However, it should be understand that any other types of cloud computing module are also possible.
  • the application manager 120 could be configured to manage applications which need cloud computing operations, e.g. applications (or jobs) for MapReduce operations. In this regard, the application manager 120 may schedule the execution and split of MapReduce jobs. It may also monitor the status of each MapReduce job.
  • the task manager 122 could be configured to assign tasks (e.g. map/reduce tasks) to the worker nodes. In this regard, it may adjust the execution of map/reduce tasks based on the dynamics of the worker nodes. For example, if a worker node executing a map/reduce task leaves the network of mobile cloud, the task manager 122 may reassign the task to another worker node.
  • the data manage 124 could be configured to send the input data or files to the worker nodes for executing tasks (e.g. map/reduce operations), and receives the results from the worker nodes.
  • the data repository 126 could be configured to stores the input data or files and the results got from map/reduce operations.
  • the worker manager 128 could be configured to communicate with the worker nodes. In this regard, it may keep tracks of the status of the worker nodes, send map/reduce tasks to the worker nodes, sends data and gets results from the worker nodes.
  • the network database 130 could be configured to store the status of the worker nodes.
  • the status information may consist of a set of information of the node dynamically changing along with a movement of the worker nodes, and any other dynamic information associated with the worker nodes.
  • the status information may comprises a set of mobile device information, including device information (e.g., a movement speed of a worker node, a location of a worker node, a resource availability of a worker node, etc), network information (e.g., identifications of adjacent nodes, speed of wireless links, etc), and user information (e.g., which application the device's user is using).
  • the application manager 120, task manager 122, data manager 124 and worker manager 128 may be implemented by a processor and its software, but various hardware solutions are also possible, such as a circuit built from separate logic components or one or more application-specific integrated circuits ASIC. A hybrid of these different implementations is also possible.
  • the data repository 126 and network database 130 may be implemented by one or more memories, including volatile memory and non-volatile memory which can be embedded and/or may be removable. The basic structure and operation of the server node are known to one skilled in the art and only the details relevant to the present solution are discussed in detail.
  • FIG. 4 illustrates a mechanism for managing task assignment to worker nodes in a server node based on dynamics of the worker nodes.
  • the process 400 may be performed by the application manager 120, the task manager 122, the data manager 124, the data repository 126, the worker manager 128 and the network database 130.
  • these modules may be deployed in a wireless device or a mobile device, which is implemented in, for instance, a chip set including a processor and a memory.
  • the wireless device or mobile device can provide means for accomplishing various parts of the process 400 as well as means for accomplishing other processes in conjunction with other components of the wireless or mobile device.
  • a server node monitors dynamic status of a worker node (such as any one of the worker nodes 104).
  • the server node may get information of the status by receiving a status message actively sent from the worker node. Additionally or alternatively, the server node may actively monitor the worker node. For example, the server node may send a heartbeat message to the worker node, and then listen to a response from the worker node. If it does not get any reply from the worker node within a time limit, the server node may consider that the worker node leaves the network or there is some failures in the worker node.
  • the server node may estimate the worker node's capability for executing tasks.
  • the server node may analyze the status information, such as resources available for the worker node, a current movement speed and location of the worker node, etc.
  • the server node may collect historical information about the worker node's execution of previous assigned tasks, and the estimation may be made further based on these historical information, for example, the worker node's previous behaviors (e.g. time consumption, success/failure rates) on executing a similar type of tasks.
  • the server node may determine whether or not the worker node is suitable for executing a next map/reduce task. For example, if the server node detects that the worker node is moving out the network area according to the location, movement speed and direction of the worker node, the server node may determine that the worker node is not suitable for a next map/reduce task. If the server node detects that the available processing, memory or link resources of the worker node is becoming increased, it may determine that the worker node's capability for executing tasks is enhanced, and thus is able to undertake more tasks.
  • the server node may adjust a task assignment to the worker node. For example, if the server node detects that the worker node is not suitable for a next map/reduce task, it may check if the worker node has any unfinished task, as shown at 425. If so, the server node may reassign the unfinished task to another worker node, as shown at 430. In another example, if the server node detects that although the worker node is still able to executing tasks, its capability is reduced so that the tasks originally assigned to it seems to be too heavy, then the sever node may lighten the worker node's task assignment, for example by reassigning just part of the unfinished tasks to other worker node. In another example, if the server node detects that the worker node's capability for executing tasks becomes highly increased, then the server node may assign more tasks to the worker node in a subsequent task assignment.
  • the server node may further update the status of the worker node in a database (such as the network database 130) with the monitored status information, at 415.
  • a database such as the network database 130
  • the network database 130 may remain a record of status of the worker node.
  • the server node may update the record with the newly collected dynamic status of the worker node. This updated record may be utilized to assistant the server node to estimate the worker node's capability for executing tasks in the future.
  • the server node can adjust task assignment in time, without waiting for a failure report from the worker node as traditional cloud computing operations. Moreover, the server node may monitor all of the worker nodes in the mobile cloud, and adjust task assignment centrally according to the dynamics of all worker nodes. Thus, the efficiency of cloud computing can be improved, by monitoring worker nodes and adjusting task assignment based on the status of the worker nodes.
  • FIG. 5 illustrating functional components of a worker node according to an embodiment of the present invention. It should also be noted that while FIG. 5 illustrates one example of a configuration of a worker node for handling tasks in a mobile cloud environment, numerous other configurations may also be used to implement embodiments of the present invention.
  • the functions of these components may be combined in one or more components or performed by other components of equivalent functionality.
  • the worker node 104 may include or otherwise be in communication with a task manager 140, a data manager 142, a data repository 144, a communicator 146, and a device manager 148.
  • the task manager 140 could be configured to manages the tasks (e.g. map/reduce tasks) assigned from the server node 102. It could be also configured to send the status of the assigned map/reduce tasks to the server node 102.
  • the data manager 142 could be configured to get input data or files for executing respective assigned tasks, and execute the assigned tasks.
  • the data repository 144 could be configured to store the input data or files and results of the execution of the assigned tasks. In this regard, once a task is finished and the result of the task is successfully sent to the server node, the data related to the task may be removed from the data repository 144.
  • the communicator 146 could be configured to connect with the server node 102.
  • the device manager 148 may be configured to collect the status of the worker node and send the collected status information to the server node 102 through the communicator 146.
  • the worker node may further include or otherwise be in communication with a device Operation System (OS) which could be an operating system of the worker node.
  • OS Device Operation System
  • the status information of a worker node may comprise a set information of mobile device, such as a movement speed of a worker node, a location of a worker node, a resource availability of a worker node, etc., and user information, such as which application the device's user is using.
  • at least part of this status information, such as which application the device's user is using could be collected by the device manager 148 from the device OS 150.
  • the task manager 140, data manager 142, communicator 146, and device manager 148 may be implemented by a processor and its software, but various hardware solutions are also possible, such as a circuit built from separate logic components or one or more application- specific integrated circuits ASIC. A hybrid of these different implementations is also possible.
  • the data repository 144 may be implemented by one or more memories, including volatile memory and non- volatile memory which can be embedded and/or may be removable. The basic structure and operation of the worker node are known to one skilled in the art and only the details relevant to the present solution are discussed in detail.
  • FIGs. 6-8 illustrate procedures for handling a map/reduce task in a worker node based on dynamics of the worker nodes.
  • the processes 600, 700 and 800 may be performed by the task manager 140, the data manager 142, the data repository 144, the communicator 146, and the device manager 148.
  • these modules may be deployed in a wireless device or a mobile device, which is implemented in, for instance, a chip set including a processor and a memory.
  • the wireless device or mobile device can provide means for accomplishing various parts of the processes 600, 700, and 800 as well as means for accomplishing other processes in conjunction with other components of the wireless or mobile device.
  • a worker node receives at least one task from the server node.
  • the task may include a map task, or a reduce task, or the both.
  • the worker node may check its status and determine whether or not it is suitable for executing the task. If not, the worker node may reject the task, for example by sending a failure report to the server node at 640. If yes, the worker node may start to execute the task.
  • the worker node may send the task result back to the server node.
  • the worker node may send a failure report to the server node.
  • the worker node may apply specific algorithms based on dynamics of the worker node in determining if the worker node is suitable for executing a task. For example, one or more criterions for the determining may be set in association with the worker node's status.
  • An example algorithm is shown with reference to FIG. 7. Similar as step 615, a worker node may check its current status at 710. Then, it may check if the residual memory of the worker node is over a first threshold, for example, denoted as x%, wherein x may be a predetermined number between 0 and 100. If yes, the process may go to a next step 720. If not, the worker node may determine that it is not suitable for executing the assigned task, and then send a failure report to the server node at 715.
  • a first threshold for example, denoted as x%, wherein x may be a predetermined number between 0 and 100.
  • the worker node may further check if the residual battery of the worker node is over a second threshold, for example denoted as y%, wherein y may be a predetermined number between 0 and 100. If yes, the process may go to a next step 725. If not, the worker node may determine that it is not suitable for executing the assigned task, and then send a failure report to the server node.
  • a second threshold for example denoted as y%, wherein y may be a predetermined number between 0 and 100.
  • the worker node may estimate if the task can be finished within a time limit z, wherein z may be a predetermined number of time units, e.g., 2 seconds. In an embodiment, the estimation can be based on certain history data, e.g., an average time spent on finishing a task. If it is estimated that the task may be finished within the time limit, and the process may go to a next step. If not, send a failure report to the Server node. In the next step, the worker node may proceed to compare the status of the worker node against a further criterion. Once all of the criterions are determined to be satisfied, the worker node may start to execute the task, and send the result back to the server node at 730, in a similar way as corresponding step 625 in FIG. 6.
  • FIG. 8 illustrates a mechanism to further improve the efficiency of task management in a mobile cloud environment.
  • a worker node may check its own status periodically, for example, while executing assigned tasks. Then, at 815, according to the dynamic status of the worker node, the worker node may detect if it is still suitable for continuing to execute the tasks. For example, the worker node may detect that it is not suitable for executing any map/reduce task due to some reasons, e.g., the worker node is leaving the network, or the available resource of the worker node is becoming too low. Then, the worker node may send a failure report to the server node, so that the server node could adjust task assignments in time.
  • the worker node may further check if the worker node has any unfinished task, as shown at 820. If yes, it may look for nearby nodes and check if there is any nearby worker node suitable for executing the task, as shown at 825. If yes, the worker node may forward the unfinished task and related data to the suitable nearby node, at 830. This may enable a distributed task management instead of a centralized task management by the server node. Thus, the robustness and efficiency of the task management in the mobile cloud environment may be improved.
  • the worker node may inform the server node about this task re-assignment from itself to the nearby node.
  • the worker node may just report its dynamic status to the server node, as shown at 840.
  • the worker node may not suitable for continuing to execute tasks, but it has completed all assigned tasks and there is no unfinished task, then it may also just report its dynamic status to the server node.
  • the worker node may send a failure report to the server node, including its dynamic status.
  • the various exemplary embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof.
  • some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto.
  • firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto.
  • While various aspects of the exemplary embodiments of this invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
  • the exemplary embodiments of the inventions may be practiced in various components such as integrated circuit chips and modules. It should thus be appreciated that the exemplary embodiments of this invention may be realized in an apparatus that is embodied as an integrated circuit, where the integrated circuit may comprise circuitry (as well as possibly firmware) for embodying at least one or more of a data processor, a digital signal processor, baseband circuitry and radio frequency circuitry that are configurable so as to operate in accordance with the exemplary embodiments of this invention.
  • exemplary embodiments of the inventions may be embodied in computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device.
  • the computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc.
  • the function of the program modules may be combined or distributed as desired in various embodiments.
  • the function may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Methods and apparatus are provided for managing task assignment in a mobile cloud computing environment. A method comprises monitoring a dynamic status of the node which is executing at least one assigned task; estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjusting the task assignment to the node according to the estimation. Another method comprises receiving at a first node at least one task assigned by a second node; checking a dynamic status of the first node; determining by the first node whether it is suitable for executing the assigned task at least partly based on the dynamic status; and if suitable, executing the at least one assigned task by the first node.

Description

METHODS AND APPARATUS FOR TASK MANAGEMENT IN A MOBILE CLOUD COMPUTING ENVIRONMENT
FIELD OF THE INVENTION
[0001] The present invention generally relates to a cloud computing technology. More specifically, the invention relates to managing and scheduling tasks in a cloud computing environment.
BACKGROUND
[0002] Mobile device is increasingly becoming an essential and important part of human life as a convenient and effective communication tool for daily life and work. Nowadays, the penetration of mobile devices has reached such a high level that the majority of people in most countries are equipped with one or more than one mobile devices. Mobile devices within physical proximity of one another can establish a mobile ad-hoc network (e.g. a MANET), in which mobile devices can form a mobile cloud based on a mobile cloud computing technology, as illustrated in Figure 1. A MANET can support a number of services, e.g., mobile social networking, mobile gaming, etc.
[0003] Mobile cloud computing (MCC) is an emerging technology that combines mobile devices and cloud computing. The MCC technology involves two aspects: one aspect is that a mobile device accesses cloud services; the other aspect refers to mobile devices whose resources are virtualized and used as services. A mobile cloud in a MANET comprises valuable resources (e.g., wireless access, memory storage, computational power, software, etc), which can be utilized by surrounding devices. For example, an advanced smart phone can share its computation power to other devices; a device can support image processing for other devices; a mobile communication device with extra bandwidth can work as a wireless bridge for other devices for accessing the Internet. [0004] One of the basic ideas of the cloud computing technology is to automatically split a large scale data processing (e.g. computing) work into masses of smaller pieces, assign the these smaller pieces to a serious of nodes sharing their resources for processing the smaller pieces in parallel, and then aggregate and analyze results of these subprograms for getting a final results of the program. MapReduce is a programming model and an associated implementation for processing and generating large data sets. It is initiated by Google and has been widely used in cloud computing. In a traditional MapReduce scheduling algorithm, a MapReduce application may be run on the MapReduce system, being called a "job". A job can be divided into a series of blocks which is called tasks, such as "Map tasks"(MT) and "Reduce tasks"(RT). The task which executes a map function is called a "Map task", and the task which executes a reduce function is called a "Reduce task". In a cluster that runs MapReduce, nodes are classified into "NameNode" and "DataNode" from an aspect of data storage. There is only one NameNode in a cluster, which records all the information of where data is stored. There can be lots of DataNodes that store data in a cluster. The nodes can be classified into "JobTracker"(JT) and "TaskTracker"(TT) from an aspect of task managment. JobTracker is a process that manages jobs. TaskTracker is a process that manages tasks on the corresponding nodes. There are only one node responsible for JT, and a series of nodes responsible for TT.
[0005] The essential insight of the MapReduce programming model is that a large computation is split into a number of smaller tasks; and these tasks are independent of each other and can be assigned on different worker nodes to process different pieces of the input data in parallel. Due to the independent nature of the tasks, replication of the tasks due to worker failure is simply a matter of reassigning the task at another worker if the server does not receive a response from the failing worker.
[0006] A lot of research has been conducted on properly splitting and outsourcing computing intensive tasks to external resources by considering insufficient computing resources on mobile devices. Some research has investigated the possibility of applying cloud computing in a heterogeneous environment. However, in a mobile cloud computing environment, the availability of resources highly depends on the dynamics of mobile devices, e.g., a direction and speed of mobile device movement, a user usage, etc. The dynamics of mobile devices may degrade the performance of MapReduce (or similar cloud computing algorithms), and degrade the efficiency of a centralized task management of map/reduce operations in such a mobile cloud computing environment. Existing solutions on applying MapReduce in a mobile cloud environment has not considered the performance degradation caused by the dynamics of mobile devices.
[0007] Thus, it would be an advancement in the art to provide an approach for efficiently managing tasks in a mobile cloud computing environment.
SOME EXAMPLE EMBODIMENTS
[0008] To overcome limitations described above, and to overcome other limitations that will be apparent upon reading and understanding the present specification, the disclosure provides an approach for efficiently managing tasks in a mobile cloud computing environment.
[0009] According to one embodiment, a method for managing task assignment to a node in a mobile cloud computing environment is provided, and it comprises monitoring a dynamic status of the node which is executing at least one assigned task; estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjusting the task assignment to the node according to the estimation.
[0010] In some exemplary embodiments, said monitoring may comprise receiving a report of the dynamic status from the node. Alternatively or additionally, said monitoring may comprise sending a heartbeat message to the node, and listening to a response of the heartbeat message.
[0011] In some exemplary embodiments, said estimating may comprise determining whether or not the node is suitable for continuing to execute the at least one assigned task. If it is determined that the node is not suitable for continuing to execute the at least one assigned task, the task assignment may be adjusted by reassigning at least part of unfinished tasks of the at least one assigned task to other node for executing.
[0012] In some exemplary embodiments, the method may further comprise updating a record of the node with the dynamic status. The dynamic status of the node may comprise a set of information of the node dynamically changing along with a movement of the node.
[0013] In some exemplary embodiments, the method further comprise collecting historical information about the node's execution of previous tasks, and the estimation may be further based on the collected historical information.
[0014] In some exemplary embodiments, the node is a mobile communication device in a mobile ad-hoc network. In some exemplary embodiments, the node is a mobile device in an internet of things.
[0015] According to another embodiment, an apparatus for managing task assignment to a node in a mobile cloud computing environment is provided, and it comprises at least one processor, and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to monitor a dynamic status of the node which is executing at least one assigned task; estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjust the task assignment to the node according to the estimation.
[0016] According to another embodiment, a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus for managing task assignment to a node in a mobile cloud computing environment, to monitor a dynamic status of the node which is executing at least one assigned task; estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and adjust the task assignment to the node according to the estimation.
[0017] According to another embodiment, an apparatus for managing task assignment to a node in a mobile cloud computing environment, comprises means for means for monitoring a dynamic status of the node which is executing at least one assigned task; means for estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and means for adjusting the task assignment to the node according to the estimation.
[0018] According to one embodiment, a method for handling tasks at a first node in a mobile cloud computing environment is provided, and it comprises receiving at least one task assigned by a second node; checking a dynamic status of the first node; determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
[0019] In some embodiments, said determining can comprises determining at least one of the following criterions can be satisfied: a residual memory in the first node is enough for executing the at least one assigned task; a residual battery of the first node is enough for executing the at least one assigned task; and an estimated time for finishing the at least one assigned tasks is within a time limit.
[0020] In some embodiments, the method may further comprise if it is determined that the first node is not suitable for executing the at least one assigned task, rejecting at least part of the assigned task. The dynamic status of the first node may be checked periodically. In some embodiments, the method may further comprise if it is determined that the first node is not suitable for execute the at least one assigned task, searching for a nearby node which is suitable for executing unfinished tasks of the at least one assigned task; and reassigning at least part of the unfinished tasks by the first node to the nearby node for executing. Then, the method may further comprise informing the second node about the reassigning of the at least part of the unfinished tasks.
[0021] The dynamic status of the first node may comprise a set of information of the node dynamically changing along with a movement of the first node. In some embodiments, at least one of the first node and the second node is a mobile communication device in a mobile ad-hoc network. In some embodiments, at least one of the first node and the second node is a mobile device in an internet of things.
[0022] According to another embodiment, an apparatus for handling tasks at a first node in a mobile cloud computing environment is provided, and it comprises at least one processor, and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to receive at least one task assigned by a second node; check dynamic status of the first node; determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
[0023] According to another embodiment, a computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus for handling tasks at a first node in a mobile cloud computing environment, to receive at least one task assigned by a second node; check dynamic status of the first node; determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
[0024] According to another embodiment, an apparatus for handling tasks at a first node in a mobile cloud computing environment, comprising: means for receiving at least one task assigned by a second node; means for checking a dynamic status of the first node; means for determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and means for, if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
[0025] Still other aspects, features, and advantages of the invention are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the invention. The invention is also capable of other and different embodiments, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings:
[0027] FIG. 1 shows a mobile cloud;
[0028] FIG. 2 shows an exemplary configuration of the mobile cloud, consisting of a server node and a number of worker nodes, according to an embodiment of the present invention;
[0029] FIG. 3 depicts a simplified block diagram illustrating functional components of a server node according to an embodiment of the present invention;
[0030] FIG. 4 is a flowchart of a process for managing tasks in a server node based on dynamics of worker nodes, according to one embodiment;
[0031] FIG. 5 depicts a simplified block diagram illustrating functional components of a worker node according to an embodiment of the present invention;
[0032] FIG. 6 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to one embodiment; [0033] FIG. 7 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to another embodiment; and
[0034] FIG. 8 is a flowchart of a process for handling tasks in a worker node based on dynamics of the worker node, according to yet another embodiment.
DESCRIPTION OF SOME EMBODIMENTS
[0035] Examples of a method, apparatus, and computer program for efficiently managing tasks in a mobile cloud computing environment are disclosed. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It is apparent, however, to one skilled in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention. Like reference numerals refer to like elements throughout.
[0036] FIG. 2 shows an exemplary configuration of a mobile cloud consisting of a server node 102 (indicated as a node in black) and a number of worker nodes 104 (indicated as nodes in grey). The nodes in white are normal nodes that do not participate in the cloud computing operations. The server node is a master node in the mobile cloud, which may split a large scale data processing work (e.g. a user application) into a serious of tasks, assign the tasks to worker nodes, and keep track of the status of worker nodes. The server node may also maintain the input, intermediary and result data associated with the user application, and keeps track of the progress of the user. For example, the server node can operate as a NameNode and a JobTracker in a MapReduce model. A worker node may keep communication with the server node, processes individual tasks, and return the results to the server node. In a MapReduce model, the worker node can operate as a DataNode and a TaskTracker. A worker node may execute map tasks, reduce tasks or both. [0037] The term "node" or "mobile node", or the like, refers to herein any wireless device capable of cloud computing, both mobile and fixed. It may be embodied as or otherwise employed, for example, a mobile phone, an 802.11 WLAN phone, a smart phone, a home appliance, a laptop computer, a desktop computer, a personal digital assistant, an audio/video device, a television, a set- top box, a personal video recorder, a personal digital recorder, a digital camera, a digital camcorder, a personal memory device, a home automation and/or control device, a sensor, a vehicle, and the like or any combination of them. These are merely a few examples of the devices that may be used to implement the various embodiments described herein, and this disclosure is not limited thereto.
[0038] The mobile cloud of FIG. 2 may be applicable to a wide variety of wireless networks and technologies, such as WLAN networks (e.g., IEEE 802.11 type networks), Wi-Fi networks, cellular networks, radio networks, or other wireless networks. The various embodiments described herein may be applied to wireless networks, both in an infrastructure mode where a server node and worker nodes may communicate with each other, as well as an ad-hoc mode in which a server node and worker nodes may communicate to each other directly via a peer-to-peer network, for example.
[0039] In an embodiment, the mobile cloud of FIG. 2 and various embodiments describes herein may be applicable to an Internet of Things, in which the server node and worker nodes communicate with each other via wireless links. For example, a number of vehicles equipped with sensors may form a mobile ad hoc network, and monitor traffic congestion (or other applications, e.g., air pollution detection) dynamically. Each mobile node of sensor may dispatch some (computational) tasks to other nodes of sensor. In another example, a wireless sensor network for forest fire alarm can be formed by a number of sensors which connect via wireless links. Although the sensors for forest fire alarm may not move, the resources in each sensor node may vary, e.g., battery level change. Then, a sensor node may need to dispatch some tasks to other nodes in some cases. In some embodiments, the mobile cloud of FIG. 2 may be formed in a heterogeneous environment. For example, nowadays, mobile devices can be equipped with sensors. Some mobile devices can be connected to form a mobile ad hoc network, in which some Internet of Things applications (e.g., environment situation including air, safety (fire), etc.) can be supported through the equipped sensors.
[0040] FIG. 3 depicts a simplified block diagram illustrating functional components of a server node configured to perform exemplary embodiments of the present invention. It should also be noted that while FIG. 3 illustrates one example of a configuration of a server node for managing tasks in a mobile cloud environment, numerous other configurations may also be used to implement embodiments of the present invention. For example, the functions of these components may be combined in one or more components or performed by other components of equivalent functionality. By way of example, the server node 102 may include or otherwise be in communication with an application manager 120, a task manager 122, a data manager 124, a data repository 126, a worker manager 128 and a network database 130. In the following, MapReduce will be used as one example module for implementing cloud computing. However, it should be understand that any other types of cloud computing module are also possible.
[0041] The application manager 120 could be configured to manage applications which need cloud computing operations, e.g. applications (or jobs) for MapReduce operations. In this regard, the application manager 120 may schedule the execution and split of MapReduce jobs. It may also monitor the status of each MapReduce job. The task manager 122 could be configured to assign tasks (e.g. map/reduce tasks) to the worker nodes. In this regard, it may adjust the execution of map/reduce tasks based on the dynamics of the worker nodes. For example, if a worker node executing a map/reduce task leaves the network of mobile cloud, the task manager 122 may reassign the task to another worker node. The data manage 124 could be configured to send the input data or files to the worker nodes for executing tasks (e.g. map/reduce operations), and receives the results from the worker nodes. The data repository 126 could be configured to stores the input data or files and the results got from map/reduce operations.
[0042] The worker manager 128 could be configured to communicate with the worker nodes. In this regard, it may keep tracks of the status of the worker nodes, send map/reduce tasks to the worker nodes, sends data and gets results from the worker nodes.
[0043] The network database 130 could be configured to store the status of the worker nodes. The status information may consist of a set of information of the node dynamically changing along with a movement of the worker nodes, and any other dynamic information associated with the worker nodes. For example, the status information may comprises a set of mobile device information, including device information (e.g., a movement speed of a worker node, a location of a worker node, a resource availability of a worker node, etc), network information (e.g., identifications of adjacent nodes, speed of wireless links, etc), and user information (e.g., which application the device's user is using).
[0044] The application manager 120, task manager 122, data manager 124 and worker manager 128 may be implemented by a processor and its software, but various hardware solutions are also possible, such as a circuit built from separate logic components or one or more application- specific integrated circuits ASIC. A hybrid of these different implementations is also possible. The data repository 126 and network database 130 may be implemented by one or more memories, including volatile memory and non-volatile memory which can be embedded and/or may be removable. The basic structure and operation of the server node are known to one skilled in the art and only the details relevant to the present solution are discussed in detail.
[0045] FIG. 4 illustrates a mechanism for managing task assignment to worker nodes in a server node based on dynamics of the worker nodes. In an embodiment, the process 400 may be performed by the application manager 120, the task manager 122, the data manager 124, the data repository 126, the worker manager 128 and the network database 130. As noted above, these modules may be deployed in a wireless device or a mobile device, which is implemented in, for instance, a chip set including a processor and a memory. As such, the wireless device or mobile device can provide means for accomplishing various parts of the process 400 as well as means for accomplishing other processes in conjunction with other components of the wireless or mobile device.
[0046] At 410, a server node (such as the server node 102) monitors dynamic status of a worker node (such as any one of the worker nodes 104). In an embodiment, the server node may get information of the status by receiving a status message actively sent from the worker node. Additionally or alternatively, the server node may actively monitor the worker node. For example, the server node may send a heartbeat message to the worker node, and then listen to a response from the worker node. If it does not get any reply from the worker node within a time limit, the server node may consider that the worker node leaves the network or there is some failures in the worker node.
[0047] Based on the monitored dynamic status, the server node may estimate the worker node's capability for executing tasks. In an embodiment, at 415, the server node may analyze the status information, such as resources available for the worker node, a current movement speed and location of the worker node, etc. In an embodiment, the server node may collect historical information about the worker node's execution of previous assigned tasks, and the estimation may be made further based on these historical information, for example, the worker node's previous behaviors (e.g. time consumption, success/failure rates) on executing a similar type of tasks.
[0048] Next at 420, through the analysis, the server node may determine whether or not the worker node is suitable for executing a next map/reduce task. For example, if the server node detects that the worker node is moving out the network area according to the location, movement speed and direction of the worker node, the server node may determine that the worker node is not suitable for a next map/reduce task. If the server node detects that the available processing, memory or link resources of the worker node is becoming increased, it may determine that the worker node's capability for executing tasks is enhanced, and thus is able to undertake more tasks.
[0049] Then, according to the estimation, the server node may adjust a task assignment to the worker node. For example, if the server node detects that the worker node is not suitable for a next map/reduce task, it may check if the worker node has any unfinished task, as shown at 425. If so, the server node may reassign the unfinished task to another worker node, as shown at 430. In another example, if the server node detects that although the worker node is still able to executing tasks, its capability is reduced so that the tasks originally assigned to it seems to be too heavy, then the sever node may lighten the worker node's task assignment, for example by reassigning just part of the unfinished tasks to other worker node. In another example, if the server node detects that the worker node's capability for executing tasks becomes highly increased, then the server node may assign more tasks to the worker node in a subsequent task assignment.
[0050] The server node may further update the status of the worker node in a database (such as the network database 130) with the monitored status information, at 415. For example, the network database 130 may remain a record of status of the worker node. The server node may update the record with the newly collected dynamic status of the worker node. This updated record may be utilized to assistant the server node to estimate the worker node's capability for executing tasks in the future.
[0051] As such, the server node can adjust task assignment in time, without waiting for a failure report from the worker node as traditional cloud computing operations. Moreover, the server node may monitor all of the worker nodes in the mobile cloud, and adjust task assignment centrally according to the dynamics of all worker nodes. Thus, the efficiency of cloud computing can be improved, by monitoring worker nodes and adjusting task assignment based on the status of the worker nodes. [0052] Now reference is made to FIG. 5 illustrating functional components of a worker node according to an embodiment of the present invention. It should also be noted that while FIG. 5 illustrates one example of a configuration of a worker node for handling tasks in a mobile cloud environment, numerous other configurations may also be used to implement embodiments of the present invention. For example, the functions of these components may be combined in one or more components or performed by other components of equivalent functionality. By way of example, the worker node 104 may include or otherwise be in communication with a task manager 140, a data manager 142, a data repository 144, a communicator 146, and a device manager 148.
[0053] The task manager 140 could be configured to manages the tasks (e.g. map/reduce tasks) assigned from the server node 102. It could be also configured to send the status of the assigned map/reduce tasks to the server node 102. The data manager 142 could be configured to get input data or files for executing respective assigned tasks, and execute the assigned tasks. The data repository 144 could be configured to store the input data or files and results of the execution of the assigned tasks. In this regard, once a task is finished and the result of the task is successfully sent to the server node, the data related to the task may be removed from the data repository 144. The communicator 146 could be configured to connect with the server node 102. In this regard, it may receive map/reduce tasks and input data or files from the server node 102, and send the execution results back to the server node 102. Further, it may also send the status information of the worker node 104 to the server node 102. The device manager 148 could be configured to collect the status of the worker node and send the collected status information to the server node 102 through the communicator 146.
[0054] The worker node may further include or otherwise be in communication with a device Operation System (OS) which could be an operating system of the worker node. As discussed above, the status information of a worker node may comprise a set information of mobile device, such as a movement speed of a worker node, a location of a worker node, a resource availability of a worker node, etc., and user information, such as which application the device's user is using. In some embodiments, at least part of this status information, such as which application the device's user is using, could be collected by the device manager 148 from the device OS 150.
[0055] The task manager 140, data manager 142, communicator 146, and device manager 148 may be implemented by a processor and its software, but various hardware solutions are also possible, such as a circuit built from separate logic components or one or more application- specific integrated circuits ASIC. A hybrid of these different implementations is also possible. The data repository 144 may be implemented by one or more memories, including volatile memory and non- volatile memory which can be embedded and/or may be removable. The basic structure and operation of the worker node are known to one skilled in the art and only the details relevant to the present solution are discussed in detail.
[0056] FIGs. 6-8 illustrate procedures for handling a map/reduce task in a worker node based on dynamics of the worker nodes. In an embodiment, the processes 600, 700 and 800 may be performed by the task manager 140, the data manager 142, the data repository 144, the communicator 146, and the device manager 148. As noted above, these modules may be deployed in a wireless device or a mobile device, which is implemented in, for instance, a chip set including a processor and a memory. As such, the wireless device or mobile device can provide means for accomplishing various parts of the processes 600, 700, and 800 as well as means for accomplishing other processes in conjunction with other components of the wireless or mobile device.
[0057] At 610, a worker node (such as the worker node 104) receives at least one task from the server node. For example, the task may include a map task, or a reduce task, or the both. Next at 615, the worker node may check its status and determine whether or not it is suitable for executing the task. If not, the worker node may reject the task, for example by sending a failure report to the server node at 640. If yes, the worker node may start to execute the task.
[0058] Next at 630 and 635, if the task is finished successfully, the worker node may send the task result back to the server node. In the other hand, if the task is not finished successfully, the worker node may send a failure report to the server node.
[0059] In some embodiments, the worker node may apply specific algorithms based on dynamics of the worker node in determining if the worker node is suitable for executing a task. For example, one or more criterions for the determining may be set in association with the worker node's status. An example algorithm is shown with reference to FIG. 7. Similar as step 615, a worker node may check its current status at 710. Then, it may check if the residual memory of the worker node is over a first threshold, for example, denoted as x%, wherein x may be a predetermined number between 0 and 100. If yes, the process may go to a next step 720. If not, the worker node may determine that it is not suitable for executing the assigned task, and then send a failure report to the server node at 715.
[0060] Next at 720, the worker node may further check if the residual battery of the worker node is over a second threshold, for example denoted as y%, wherein y may be a predetermined number between 0 and 100. If yes, the process may go to a next step 725. If not, the worker node may determine that it is not suitable for executing the assigned task, and then send a failure report to the server node.
[0061] Next at 725, the worker node may estimate if the task can be finished within a time limit z, wherein z may be a predetermined number of time units, e.g., 2 seconds. In an embodiment, the estimation can be based on certain history data, e.g., an average time spent on finishing a task. If it is estimated that the task may be finished within the time limit, and the process may go to a next step. If not, send a failure report to the Server node. In the next step, the worker node may proceed to compare the status of the worker node against a further criterion. Once all of the criterions are determined to be satisfied, the worker node may start to execute the task, and send the result back to the server node at 730, in a similar way as corresponding step 625 in FIG. 6.
[0062] FIG. 8 illustrates a mechanism to further improve the efficiency of task management in a mobile cloud environment. At 810, a worker node may check its own status periodically, for example, while executing assigned tasks. Then, at 815, according to the dynamic status of the worker node, the worker node may detect if it is still suitable for continuing to execute the tasks. For example, the worker node may detect that it is not suitable for executing any map/reduce task due to some reasons, e.g., the worker node is leaving the network, or the available resource of the worker node is becoming too low. Then, the worker node may send a failure report to the server node, so that the server node could adjust task assignments in time.
[0063] Alternatively or additionally, if the worker node detects that it is not suitable for continuing to execute the tasks, it may further check if the worker node has any unfinished task, as shown at 820. If yes, it may look for nearby nodes and check if there is any nearby worker node suitable for executing the task, as shown at 825. If yes, the worker node may forward the unfinished task and related data to the suitable nearby node, at 830. This may enable a distributed task management instead of a centralized task management by the server node. Thus, the robustness and efficiency of the task management in the mobile cloud environment may be improved.
[0064] Next at 835, the worker node may inform the server node about this task re-assignment from itself to the nearby node. In an embodiment, if the previous checking of dynamics of the worker node indicates that the worker node is still suitable for executing tasks, the worker node may just report its dynamic status to the server node, as shown at 840. In an embodiment, if the worker node is not suitable for continuing to execute tasks, but it has completed all assigned tasks and there is no unfinished task, then it may also just report its dynamic status to the server node. In an embodiment, if the worker node find no suitable nearby node for executing tasks, then it may send a failure report to the server node, including its dynamic status. [0065] In general, the various exemplary embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects of the exemplary embodiments of this invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
[0066] As such, it should be appreciated that at least some aspects of the exemplary embodiments of the inventions may be practiced in various components such as integrated circuit chips and modules. It should thus be appreciated that the exemplary embodiments of this invention may be realized in an apparatus that is embodied as an integrated circuit, where the integrated circuit may comprise circuitry (as well as possibly firmware) for embodying at least one or more of a data processor, a digital signal processor, baseband circuitry and radio frequency circuitry that are configurable so as to operate in accordance with the exemplary embodiments of this invention.
[0067] It should be appreciated that at least some aspects of the exemplary embodiments of the inventions may be embodied in computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. As will be appreciated by one of skill in the art, the function of the program modules may be combined or distributed as desired in various embodiments. In addition, the function may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like.
[0068] The present invention includes any novel feature or combination of features disclosed herein either explicitly or any generalization thereof. Various modifications and adaptations to the foregoing exemplary embodiments of this invention may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. However, any and all modifications will still fall within the scope of the non-Limiting and exemplary embodiments of this invention.

Claims

1. A method for managing task assignment to a node in a mobile cloud computing environment, comprising:
monitoring a dynamic status of the node which is executing at least one assigned task;
estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and
adjusting the task assignment to the node according to the estimation.
2. A method of claim 1, wherein said monitoring comprises receiving a report of the dynamic status from the node.
3. A method of claim 1, wherein said monitoring comprises sending a heartbeat message to the node, and listening to a response of the heartbeat message.
4. A method of claim 1, wherein said estimating comprises determining whether or not the node is suitable for continuing to execute the at least one assigned task.
5. A method of claim 4, wherein said adjusting comprises if it is determined that the node is not suitable for continuing to execute the at least one assigned task, reassigning at least part of unfinished tasks of the at least one assigned task to other node for executing.
6. A method of claim 1, further comprises updating a record of the node with the dynamic status.
7. A method of claim 1, wherein the dynamic status of the node comprises a set of information of the node dynamically changing along with a movement of the node.
8. A method of claim 1, wherein the method further comprises collecting historical information about the node's execution of previous tasks, and the estimation is further based on the collected historical information.
9. A method of claim 1, wherein the node is a mobile communication device in a mobile ad-hoc network.
10. A method of claim 1, wherein the node is a mobile device in an internet of things.
11. A method for handling tasks at a first node in a mobile cloud computing environment, comprising:
receiving at least one task assigned by a second node;
checking a dynamic status of the first node;
determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and
if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
12. A method of claim 11, wherein said determining comprises determining at least one of the following criterions is satisfied:
a residual memory in the first node is enough for executing the at least one assigned task;
a residual battery of the first node is enough for executing the at least one assigned task; and an estimated time for finishing the at least one assigned tasks is within a time limit.
13. A method of claim 11, further comprises if it is determined that the first node is not suitable for executing the at least one assigned task, rejecting at least part of the assigned task.
14. A method of claim 11, wherein the dynamic status of the first node is checked periodically.
15. A method of claim 11 or 14, further comprising: if it is determined that the first node is not suitable for execute the at least one assigned task,
searching for a nearby node which is suitable for executing unfinished tasks of the at least one assigned task; and
reassigning at least part of the unfinished tasks by the first node to the nearby node for executing.
16. A method of claim 15, further comprising: informing the second node about the reassigning of the at least part of the unfinished tasks.
17. A method of claim 11, wherein the dynamic status of the first node comprises a set of information of the node dynamically changing along with a movement of the first node.
18. A method of claim 11, wherein at least one of the first node and the second node is a mobile communication device in a mobile ad-hoc network.
19. A method of claim 11, wherein at least one of the first node and the second node is a mobile device in an internet of things.
20. An apparatus for managing task assignment to a node in a mobile cloud computing environment, comprising:
at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:
monitor a dynamic status of the node which is executing at least one assigned task;
estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and
adjust the task assignment to the node according to the estimation.
21. A apparatus of claim 20, wherein monitoring the dynamic status comprises receiving a report of the dynamic status from the node.
22. An apparatus of claim 20, wherein monitoring the dynamic status comprises sending a heartbeat message to the node, and listening to a response of the heartbeat message.
23. An apparatus of claim 20, wherein said estimating comprises determining whether or not the node is suitable for continuing to execute the at least one assigned task.
24. An apparatus of claim 23, wherein adjusting the task assignment comprises if it is determined that the node is not suitable for continuing to execute the at least one assigned task, reassigning at least part of unfinished tasks of the at least one assigned task to other node for executing.
25. An apparatus of claim 20, wherein the apparatus is further caused to update a record of the node with the dynamic status.
26. An apparatus of claim 20, wherein the dynamic status of the node comprises a set of information of the node dynamically changing along with a movement of the node.
27. An apparatus of claim 20, wherein the apparatus is further caused to collecting historical information about the node's execution of previous tasks, and the estimation is further based on the collected historical information.
28. An apparatus of claim 20, wherein the node is a mobile communication device in a mobile ad-hoc network.
29. An apparatus of claim 20, wherein the node is a mobile device in an internet of things.
30. An apparatus for handling tasks at a first node in a mobile cloud computing environment, comprising:
at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:
receive at least one task assigned by a second node; check dynamic status of the first node;
determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and
if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
31. An apparatus of claim 30, wherein said determining comprises determining at least one of the following:
whether a residual memory in the first node is enough for executing the at least one assigned task;
whether a residual battery of the first node is enough for executing the at least one assigned task; and
whether an estimated time for finishing the at least one assigned tasks is within a time limit.
32. An apparatus of claim 30, wherein the apparatus is further caused to, if it is determined that the first node is not suitable for executing the at least one assigned tasks, reject at least part of the assigned task.
33. An apparatus of claim 30, wherein the dynamic status of the first node is checked periodically.
34. An apparatus of claim 30 or 33, wherein the apparatus is further caused to, if it is determined that the first node is not suitable for execute the at least one assigned task, search for a nearby node which is suitable for executing unfinished tasks of the at least one assigned task; and reassign at least part of the unfinished tasks by the first node to the nearby node for executing.
35. An apparatus of claim 34, wherein the apparatus is further caused to, inform the second node about the reassigning of the at least part of the unfinished tasks.
36. An apparatus of claim 30, wherein the dynamic status of the first node comprises a set of information of the node dynamically changing along with a movement of the first node.
37. An apparatus of claim 30, wherein the node is a mobile communication device in a mobile ad-hoc network.
38. An apparatus of claim 30, wherein the node is a mobile device in an internet of things.
39. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus for managing task assignment to a node in a mobile cloud computing environment, to at least perform the following:
monitor a dynamic status of the node which is executing at least one assigned task;
estimate the node's capability for executing tasks at least partly based on the monitored dynamic status; and
adjust the task assignment to the node according to the estimation.
40. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus for handling tasks in a mobile cloud computing environment at a first node, to at least perform the following:
receive at least one task assigned by a second node;
check a dynamic status of the first node;
determine whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and
if it is determined that the first node is suitable for executing the at least one assigned tasks, execute the at least one assigned task.
41. An apparatus for managing task assignment to a node in a mobile cloud computing environment, comprising:
means for monitoring a dynamic status of the node which is executing at least one assigned task;
means for estimating the node's capability for executing tasks at least partly based on the monitored dynamic status; and
means for adjusting the task assignment to the node according to the estimation.
42. An apparatus for handling tasks at a first node in a mobile cloud computing environment, comprising:
means for receiving at least one task assigned by a second node;
means for checking a dynamic status of the first node;
means for determining whether the first node is suitable for executing the at least one assigned task, at least partly based on the dynamic status; and
means for, if it is determined that the first node is suitable for executing the at least one assigned tasks, executing the at least one assigned task.
43. A computer program product including one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the steps of a method of any one of claims 1-19.
PCT/CN2013/086201 2013-10-30 2013-10-30 Methods and apparatus for task management in a mobile cloud computing environment WO2015061976A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/086201 WO2015061976A1 (en) 2013-10-30 2013-10-30 Methods and apparatus for task management in a mobile cloud computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/086201 WO2015061976A1 (en) 2013-10-30 2013-10-30 Methods and apparatus for task management in a mobile cloud computing environment

Publications (1)

Publication Number Publication Date
WO2015061976A1 true WO2015061976A1 (en) 2015-05-07

Family

ID=53003107

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/086201 WO2015061976A1 (en) 2013-10-30 2013-10-30 Methods and apparatus for task management in a mobile cloud computing environment

Country Status (1)

Country Link
WO (1) WO2015061976A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017114170A1 (en) * 2015-12-29 2017-07-06 阿里巴巴集团控股有限公司 Control method and device for real-time calculation tasks, and real-time calculation system using same
WO2017148679A1 (en) * 2016-03-03 2017-09-08 Koninklijke Philips N.V. A healthcare information technology system and method
RU2643620C2 (en) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Method of planning assignments of preparing data of internet of things for analyzing systems
CN108874513A (en) * 2017-05-11 2018-11-23 北京京东尚科信息技术有限公司 Handle method, system, electronic equipment and the computer-readable medium of timed task
CN109889598A (en) * 2019-03-07 2019-06-14 武汉大学 A kind of self-organization computation platform and its method for scheduling task based on mobile node
CN110582750A (en) * 2017-04-28 2019-12-17 北京嘀嘀无限科技发展有限公司 system and method for task scheduling and device management
CN112532475A (en) * 2020-11-23 2021-03-19 南京邮电大学 State estimation method of multilayer complex dynamic network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986272A (en) * 2010-11-05 2011-03-16 北京大学 Task scheduling method under cloud computing environment
CN102073548A (en) * 2010-12-21 2011-05-25 北京高森明晨信息科技有限公司 Method for executing task, and system thereof
CN102073546A (en) * 2010-12-13 2011-05-25 北京航空航天大学 Task-dynamic dispatching method under distributed computation mode in cloud computing environment
CN103019837A (en) * 2011-09-27 2013-04-03 中国移动通信集团公司 Resource scheduling method, device and terminal equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986272A (en) * 2010-11-05 2011-03-16 北京大学 Task scheduling method under cloud computing environment
CN102073546A (en) * 2010-12-13 2011-05-25 北京航空航天大学 Task-dynamic dispatching method under distributed computation mode in cloud computing environment
CN102073548A (en) * 2010-12-21 2011-05-25 北京高森明晨信息科技有限公司 Method for executing task, and system thereof
CN103019837A (en) * 2011-09-27 2013-04-03 中国移动通信集团公司 Resource scheduling method, device and terminal equipment

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017114170A1 (en) * 2015-12-29 2017-07-06 阿里巴巴集团控股有限公司 Control method and device for real-time calculation tasks, and real-time calculation system using same
WO2017148679A1 (en) * 2016-03-03 2017-09-08 Koninklijke Philips N.V. A healthcare information technology system and method
RU2643620C2 (en) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Method of planning assignments of preparing data of internet of things for analyzing systems
CN110582750A (en) * 2017-04-28 2019-12-17 北京嘀嘀无限科技发展有限公司 system and method for task scheduling and device management
EP3616054A4 (en) * 2017-04-28 2020-05-06 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for task scheduling and device management
CN108874513A (en) * 2017-05-11 2018-11-23 北京京东尚科信息技术有限公司 Handle method, system, electronic equipment and the computer-readable medium of timed task
CN109889598A (en) * 2019-03-07 2019-06-14 武汉大学 A kind of self-organization computation platform and its method for scheduling task based on mobile node
CN109889598B (en) * 2019-03-07 2021-04-16 武汉大学 Self-organizing computing platform based on mobile node and task scheduling method thereof
CN112532475A (en) * 2020-11-23 2021-03-19 南京邮电大学 State estimation method of multilayer complex dynamic network
CN112532475B (en) * 2020-11-23 2022-03-08 南京邮电大学 State estimation method of multilayer complex dynamic network

Similar Documents

Publication Publication Date Title
WO2015061976A1 (en) Methods and apparatus for task management in a mobile cloud computing environment
US10439890B2 (en) Optimal deployment of fog computations in IoT environments
Yaqoob et al. Mobile ad hoc cloud: A survey
US20170222901A1 (en) Network selection using current and historical measurements
US20090061862A1 (en) Peer to peer service discovery sharing
Li et al. Exploring device-to-device communication for mobile cloud computing
US8924570B2 (en) Temporary collaborative ad-hoc network of hardware nodes to perform function
CN110688213B (en) Resource management method and system based on edge calculation and electronic equipment
EP3800589A1 (en) Task processing method and apparatus
US10616069B2 (en) Cache based on dynamic device clustering
Atzori et al. A SIoT-aware approach to the resource management issue in mobile crowdsensing
CN114556861A (en) Anonymization and randomization of device identities
Wang et al. Service delay and optimization of the energy efficiency of a system in fog-enabled smart cities
Rashid et al. Edgestore: Towards an edge-based distributed storage system for emergency response
US20230196111A1 (en) Dynamic Labeling For Machine Learning Models for Use in Dynamic Radio Environments of a Communications Network
WO2012095983A1 (en) Scheduling method
US20210336862A1 (en) Data sample template (dst) management for enabling fog-based data processing
Dragan et al. Leader election in opportunistic networks
KR102386382B1 (en) A method and apparatus for forecasting saturation of cell capacity in a wireless communication system
Thanuja Multi mobile agent itinerary planning using farthest node first nearest node next (FNFNNN) technique
US11836934B2 (en) Distributed computation for real-time object detection and tracking
CN112930692B (en) Communication range control device, method, and computer-readable storage medium
Pore et al. Contextaide: End-to-end architecture for mobile crowd-sensing applications
ur Rehman et al. Device-centric adaptive data stream management and offloading for analytics applications in future internet architectures
US10306488B2 (en) Controller node, method and computer programrat

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13896749

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13896749

Country of ref document: EP

Kind code of ref document: A1