The present invention relates generally to mesh networks, and more particularly to sharing processing resources between multiple communication devices in mesh networks.
Mesh networks interconnect wireless and/or wired communication devices to form a co-operative communication infrastructure. Each device in the mesh network operates as a node for routing communication signals. As a result, communication signals originating from one device hop from node to node within the mesh network to arrive at the target device.
Because mesh networks interconnect a large number of communication devices, mesh networks provide an ideal opportunity for sharing processing resources. For example, a device having available processing resources may execute a processing task for another device in the mesh network having limited processing resources. This enables the task to be completed, and in some cases enables the task to be completed more efficiently.
Originally, mesh networks contained only wired communication devices. As such, each device was connected to an essentially unlimited power supply. However, modern mesh networks may also include wireless devices with limited power resources. Thus, while a particular device may have sufficient processing resources, it may not have the power resources required to complete a task.
The present invention relates to a method of sharing processing loads among a plurality of communication devices interconnected within a mesh network. According to one exemplary embodiment, a communication device with a processing load selects one or more helpers to share the processing load from a set of candidates that are available for load sharing. To select the helpers, the requesting communication device assesses the available power resources for each of the candidates and selects one or more helpers based on power availability criterion. The requesting device then allocates a portion of the processing load to each selected helper.
The present invention solves this problem by considering the available power resources of the communication devices 20 in the mesh network 10 when deciding how a processing load should be divided and shared. More particularly, a communication device 20 looking to share a processing task, referred to herein as a requesting device, identifies a set of candidates available to share the processing load. The set of load sharing candidates generally includes those communication devices 20 in the mesh network 10 that have sufficient power and processing capacity to share. The requesting device determines the available power resources for each candidate. Based on the available power resources of the candidates, the requesting device selects one or more helpers from the set of candidates and allocates a portion of the processing task to each selected helper. The entire processing task may be completed by one helper or may be divided and distributed among a plurality of helpers.
When a communication device 20 determines it does not have sufficient power resources and/or processing resources to complete a task, the communication device 20 searches the mesh network 10 for one or more helpers to assist with the processing task. To that end, a communication device 20 of the present invention may include a load sharing controller 32. Load sharing controller 32 identifies the candidates, available to share the processing load, evaluates the available power resources of each candidate, and selects one or more helpers from the available candidates to share the processing load. The load sharing controller 32 then divides and allocates respective portions of the processing task to the selected helpers. While
The following example illustrates how the processing load is shared in one exemplary embodiment. It will be appreciated that this example is for illustrative purposes and therefore is not limiting. Mobile phone A in
The candidates for load sharing may comprise all communication devices 20 in the communication network 10, or a subset of the communication devices 20. In the later case, the candidates may be pre-defined or pre-selected. In one exemplary embodiment, the communication devices 20 individually determine their available processing capacity and power resources and declare themselves available as candidates for load sharing
Both the query and periodic update methods discussed above require the candidates to send power resource information to one or more communication devices 20 in the mesh network 10. The power resource information may be sent as data bytes in some portion of a data message. For example, candidates may send their power resource information by transmitting a specific power resource message formatted according to any known protocol. Exemplary message formats include SNMP (Simple Network Management Protocol), TCP/IP (Transmission Control Protocol/Internet Protocol), etc. Alternatively, the candidates may send their power resource information within an existing data packet. For this embodiment, a header or data field of the data packet may be extended to include the pertinent power resource information.
Generally, the power resource information provided by each candidate includes information regarding the type of power, i.e., battery or AC power, and the relative power state, i.e., the amount of remaining battery power. The power resource information may further include secondary information, i.e., the number of node hops between the requesting device and the helper. For example, data containing power resource information may comprise the data bytes shown in Table 1.
Based on the received power resource information, a requesting device selects one or more of the candidates as helpers. In one embodiment, the requesting device selects the n available candidate with the most available power as the helper(s). For example, the requesting device may prefer candidates having a generally unlimited AC power source as helpers. Alternatively, the requesting device may select the candidate(s) having the most available battery power as the helper(s) if no candidates have an AC power source. It will be appreciated that the requesting device may opt to do all or part of the processing task itself (if possible) when no candidate has sufficient power to complete the task. Alternatively, requesting device defer the processing task until a candidate having sufficient power becomes available.
The requesting device may take one or more secondary factors into account when selecting a candidate for load sharing. Secondary factors include, but are not limited to, the number of node hops between the requesting device and the candidates, and the processing resources of the candidate, i.e., processing speed and/or processing capacity. Information regarding the secondary factors may be included with a power resource update and/or in response to a power resource query.
To illustrate the operation of the present invention in view of possible secondary factors, consider the following example with reference to
It will further be appreciated that a requesting device may consider the available power resources of the intervening communication devices 20 serving as mesh network nodes that transport the task data to the selected helper(s). For example, if mobile phone A selects laptop B as the helper, mobile phone A may transmit the task data to laptop B via PDA D or via laptop E and phone F. If PDA D is low on power, mobile phone A may choose to send the task data to laptop B via laptop E and phone F, even though this path requires two node hops. This enables mobile phone A to increase the probability that the task data will safely arrive at the intended destination.
The above describes how communication devices 20 in a mesh network 10 share processing resources based on the available power resources of one or more candidates. In so doing, the communication device 20 of the present invention takes advantage of the available resources within the mesh network 10 while improving the probability that selected helpers are fully capable of handling the processing task.
The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.