IP Library Granted Patent US 9,065,829
Granted Patent B2
US 9,065,829 · App. 14/252,616 · Granted Jun 23, 2015

Automatic resource balancing for multi-device applications

Inventors: Michael A. Chan (San Francisco, CA); Justin Quan (San Francisco, CA); Daniel R. Bornstein (San Francisco, CA); Tom Moss (Los Altos, CA); Linda Tong (San Francisco, CA)
H04L67/10H04L47/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,065,829
App. No.
14/252,616
Granted
Jun 23, 2015
Kind
B2
Abstract

At least one embodiment of this disclosure includes a method of resource balancing execution of an application involving multiple devices. The method can include: identifying an application executing on an operating system of a first computing device; identifying a resource type to facilitate the executing of the application; identifying multiple computing devices each having at least an available resource instance of the identified resource type, wherein the multiple computing devices are reachable by a communication protocol of the first computing device; and selecting a target computing device to offer up a target resource instance of the resource type to the application based at least partly on a comparable limitation of each available resource instance of the multiple computing devices.

Claims (36)

1. A computer-implemented method to broker computing device resources between computing devices, comprising:

identifying an application executing on an operating system of a first computing device, wherein executing of the application is associated with a first user profile;

identifying a resource type to facilitate the executing of the application;

maintaining a list of multiple computing devices each having at least an available application service of the identified resource type by discovering the multiple computing devices through a communication protocol available to the first computing device and identifying the multiple computing devices that are associated with and at least partially controllable by the first user profile via an ownership credential of the first user profile;

comparing a comparable limitation of each available application service instance from the list against each other in the list to select a target computing device from the multiple computing devices to offer up a target application service instance of the resource type to the application, wherein the comparable limitation is an available usage capacity of a secondary resource to be consumed if the each available application service instance is utilized to serve the application; and

commanding the target computing device to utilize the target application service instance on behalf of the application that is executing on the operating system of the first computing device.

2. The computer-implemented method of claim 1 , wherein the secondary resource is a battery in one of the multiple computing devices and the comparable limitation is an available battery power left in the battery.

3. The computer-implemented method of claim 1 , wherein the secondary resource is a memory device in one of the multiple computing devices and the comparable limitation is available memory space left in the memory device to run the available application service instance.

4. The computer-implemented method of claim 1 , wherein the secondary resource is a network data plan accessible to one of the multiple computing devices and the comparable limitation is available data usage size left in the network data plan to run the available application service instance.

5. The computer-implemented method of claim 1 , wherein the secondary resource is a processor in one of the multiple computing devices and the comparable limitation is available processing capacity of the processor to run the available application service instance.

6. A computer-implemented method to broker computing device resources between computing devices, comprising:

identifying an application executing on an operating system of a first computing device, wherein executing of the application is associated with a first user profile;

identifying a resource type to facilitate the executing of the application;

maintaining a list of multiple computing devices each having at least an available resource instance of the identified resource type by discovering the multiple computing devices through a communication protocol available to the first computing device and identifying the multiple computing devices that are associated with and at least partially controllable by the first user profile via an ownership credential of the first user profile;

comparing a comparable limitation of each available resource instance from the list against each other in the list to select a target computing device from the multiple computing devices to offer up a target resource instance of the resource type to the application;

notifying the first computing device with an offer for the target resource instance to be utilized by the application; and

in response to receiving an acceptance of the offer, commanding the target computing device to utilize the target resource instance on behalf of the application.

7. The computer-implemented method of claim 6 , further comprising: receiving a resource request from the application over a network, the resource request indicating the resource type; and wherein identifying the application and the resource type are based on the resource request.

8. The computer-implemented method of claim 6 , further comprising: intercepting a resource request from the application to the operating system, the resource request indicating the resource type; and wherein identifying the application and the resource type are based on the resource request.

9. The computer-implemented method of claim 6 , wherein maintaining the list of the multiple computing devices includes maintaining the first computing device as one of the multiple computing devices in the list.

10. The computer-implemented method of claim 6 , wherein the comparable limitation is quantified by a measurable availability of one or more resource instances of the resource type in one of the multiple computing devices.

11. The computer-implemented method of claim 6 , wherein the resource type is a device service, wherein the comparable limitation is quantified by a device specification of a computing device associated with the device service in one of the multiple computing devices.

12. The computer-implemented method of claim 11 , wherein the device service is a sensor data service, wherein the comparable limitation is quantified by the device specification of a sensor associated with the sensor data service in one of the multiple computing devices.

13. The computer-implemented method of claim 12 , wherein the comparable limitation is quantified by an accuracy of the sensor according to the device specification.

14. The computer-implemented method of claim 6 , wherein the comparable limitation is calculated based on a location of each of the multiple computing devices relative to the first computing device.

15. The computer-implemented method of claim 6 , wherein comparing to select the target computing device is further based at least partly on comparing an available duration to utilize the available resource instance in each of the of the multiple computing devices to a timing restriction of when the application requires to utilize the target resource instance.

16. A device comprising:

a memory storing executable instructions;

a processor configured by the executable instructions to:

identify an application executing on an operating system of a first computing device, wherein executing of the application is associated with a first user profile;

identify a resource type to facilitate the executing of the application;

maintain a list of multiple computing devices each having at least an available application service of the identified resource type by discovering the multiple computing devices through a communication protocol available to the first computing device and identifying the multiple computing devices that are associated with and at least partially controllable by the first user profile via an ownership credential of the first user profile;

compare a comparable limitation of each available application service instance from the list against each other in the list to select a target computing device from the multiple computing devices to offer up a target application service instance of the resource type to the application, wherein the comparable limitation is an available usage capacity of a secondary resource to be consumed if the each available application service instance is utilized to serve the application; and

command the target computing device to utilize the target application service instance on behalf of the application that is executing on the operating system of the first computing device.

17. The device of claim 16 , wherein the first computing device is the device and wherein the processor is configured to identify the application executing on the operating system implemented by the processor.

18. The device of claim 16 , wherein the first computing device is external to the device and wherein the processor is configured to identify the application executing on the operating system implemented on the first computing device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2017
From: NEXTBIT SYSTEMS INC.
To: RAZER (ASIA-PACIFIC) PTE. LTD.
Reel/Frame 041980/0254 →
RELEASE OF SECURITY INTEREST Recorded Jan 27, 2017
From: PINNACLE VENTURES, L.L.C., AS AGENT
To: NEXTBIT SYSTEMS INC.
Reel/Frame 041519/0146 →
SECURITY INTEREST Recorded Dec 1, 2015
From: NEXTBIT SYSTEMS INC.
To: PINNACLE VENTURES, L.L.C., AS AGENT
Reel/Frame 037184/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2014
From: CHAN, MICHAEL A.; QUAN, JUSTIN; BORNSTEIN, DANIEL R.; MOSS, TOM; TONG, LINDA
To: NEXTBIT SYSTEMS INC.
Reel/Frame 032780/0459 →
Continuity (3)
Continuation In Part 14220984 · Mar 20, 2014
Provisional Application 61804134 · Mar 21, 2013
Related Publication 20140289417A1 · Sep 25, 2014