IP Library Granted Patent US 10,409,646
Granted Patent B2
US 10,409,646 · App. 16/022,760 · Granted Sep 10, 2019

Modular electronic devices with contextual task management and performance

Inventors: Eric H C Liu (Redwood City, CA); Kevin D. Brune (Maple Valley, WA); Yoshimichi Matsuoka (Sunnyvale, CA); Gilbert Cabillic (Brece, FR); Gaurav Shah (San Jose, CA)
Assignee: Google LLC
G06F9/5038G06F9/5027G06F9/5083G06Q30/00G06F2209/503G06F2209/5019G06F2209/548
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 10,409,646
App. No.
16/022,760
Granted
Sep 10, 2019
Kind
B2
Abstract

The present disclosure provides modular electronic devices that are capable of managing task performance based on a particular context of computing resources currently available from the ad hoc combination of devices.

Claims (83)

1. A computer-implemented method for contextual task management, the method comprising:

identifying, by an electronic device, a plurality of computing tasks to be performed, wherein the electronic device is physically movable between a plurality of different locations by a user of the electronic device, and wherein a plurality of different and dynamically-changing ad hoc combinations of devices are respectively available at the plurality of different locations;

determining, by the electronic device, a plurality of required sets of computing resources respectively required to perform the plurality of computing tasks; and

for each of two or more locations of the plurality of different locations and while the electronic device is respectively present at each of the two or more locations:

determining, by the electronic device, a current set of computing resources that are currently available to the electronic device at such location via the respective dynamically-changing ad hoc combination of devices available at such location;

comparing, by the electronic device, the current set of computing resources to the plurality of required sets of computing resources;

identifying, by the electronic device, at least one computing task that is currently performable based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

causing, by the electronic device, performance of the at least one performable computing task by the respective dynamically-changing ad hoc combination of devices available at such location.

2. The computer-implemented method of claim 1 , further comprising:

providing, by the electronic device, a notification to a user of the electronic device that identifies the at least one performable computing task; and

receiving, by the electronic device, data descriptive of a user input that instructs performance of the at least one performable computing task;

wherein causing, by the electronic device, performance of the at least one performable computing task by the ad hoc combination of devices comprises causing, by the electronic device, performance of the at least one performable computing task by the ad hoc combination of devices in response to the user input that instructs performance of the at least one performable computing task.

3. The computer-implemented method of claim 1 , wherein:

identifying, by the electronic device, the at least one performable computing task comprises identifying, by the electronic device, a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources;

the method further comprises:

providing, by the electronic device, a notification to a user of the electronic device that identifies the plurality of performable computing tasks; and

receiving, by the electronic device, data descriptive of a user input that selects a first performable task of the plurality of performable computing tasks and that instructs performance of the first performable task; and

causing, by the electronic device, performance of the at least one performable computing task comprises causing, by the electronic device, performance of the first performable task by the ad hoc combination of devices in response to the user input that instructs performance of the first performable task.

4. The computer-implemented method of claim 1 , wherein:

identifying, by the electronic device, the plurality of computing tasks to be performed comprises predicting, by the electronic device, a first computing task that a user of the electronic device will request to be performed in at least one future time period; and

identifying, by the electronic device, at least one computing task that is currently performable comprises determining, by the electronic device, that the predicted first computing task is currently performable.

5. The computer-implemented method of claim 1 , wherein:

identifying, by the electronic device, the at least one performable computing task comprises identifying, by the electronic device, a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

the method further comprises:

assigning, by the electronic device, a priority to each of the plurality of computing tasks; and

after identifying, by the electronic device, the plurality of performable computing tasks, selecting, by the electronic device, at least one of the plurality of performable computing tasks for performance based at least in part on the respective priority assigned to each of the plurality of performable computing tasks.

6. The computer-implemented method of claim 1 , further comprising:

assigning, by the electronic device, the plurality of computing tasks into a plurality of queues, the plurality of queues respectively associated with the plurality of required sets of computing resources;

wherein identifying, by the electronic device, at least one performable computing task comprises identifying, by the electronic device, at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

wherein causing, by the electronic device, performance of the at least one performable computing task comprises causing, by the electronic device, performance of at least one of the computing tasks assigned to the at least one performable queue.

7. The computer-implemented method of claim 6 , further comprising:

assigning, by the electronic device, an intra-queue priority to each of the plurality of computing tasks; and

after identifying, by the electronic device, the at least one performable queue, selecting, by the electronic device, the at least one of the computing tasks assigned to the at least one performable queue for performance based at least in part on the respective intra-queue priority assigned to each of the computing tasks assigned to the at least one performable queue.

8. The computer-implemented method of claim 6 , further comprising:

assigning, by the electronic device, an inter-queue priority to each of the plurality of queues;

wherein identifying, by the electronic device, at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources comprises:

identifying, by the electronic device, a plurality of performable queues based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

selecting, by the electronic device, at least a first performable queue of the plurality of performable queues for performance based at least in part on the inter-queue priorities respectively assigned to the plurality of performable queues; and

wherein causing, by the electronic device, performance of at least one of the computing tasks assigned to the at least one performable queue comprises causing, by the electronic device, performance of at least one of the computing tasks assigned to the selected first performable queue.

9. The computer-implemented method of claim 1 , wherein:

the respective dynamically-changing ad hoc combination of devices available at each of the two or more of the plurality of different locations comprises an additional computing device that is communicatively coupled to the electronic device but not physically coupled to the electronic device; and

the at least one performable computing task is performed at least in part by the additional computing device.

10. An electronic device, comprising:

at least one processor;

wherein the electronic device is physically movable between a plurality of different locations by a user of the electronic device;

wherein a plurality of different and dynamically-changing ad hoc combinations of devices are respectively available at the plurality of different locations; and

wherein the electronic device is configured to:

identify a plurality of computing tasks to be performed;

determine a plurality of required sets of computing resources respectively required to perform the plurality of computing tasks; and

for each of two or more locations of the plurality of different locations and while the electronic device is respectively present at each of the two or more locations:

sense a current set of computing resources that are currently available to the electronic device at such location via the respective dynamically-changing ad hoc combination of devices available at such location;

compare the current set of computing resources to the plurality of required sets of computing resources;

identify at least one computing task that is currently performable based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

cause performance of the at least one performable computing task by the respective dynamically-changing ad hoc combination of devices available at such location.

11. The electronic device of claim 10 , wherein the electronic device is configured to:

provide a notification to a user of the electronic device that identifies the at least one performable computing task;

receive data descriptive of a user input that instructs performance of the at least one performable computing task; and

cause performance of the at least one performable computing task by the ad hoc combination of devices in response to the user input that instructs performance of the at least one performable computing task.

12. The electronic device of claim 10 , wherein the electronic device is configured to:

identify a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources;

provide a notification to a user of the electronic device that identifies the plurality of performable computing tasks;

receive data descriptive of a user input that instructs performance of a first performable task of the plurality of performable computing tasks; and

cause performance of the first performable task by the ad hoc combination of devices in response to the user input that instructs performance of the first performable task.

13. The electronic device of claim 10 , wherein:

to identify the plurality of computing tasks to be performed, the electronic device is configured to predict a first computing task that a user of the electronic device will request to be performed in at least one future time period; and

to identify the at least one computing task that is currently performable, the electronic device is configured to determine that the predicted first computing task is currently performable in advance of the at least one future time period.

14. The electronic device of claim 10 , wherein the electronic device is configured to:

assign a priority to each of the plurality of computing tasks;

identify a plurality of performable computing tasks based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

after identifying the plurality of performable computing tasks, select at least one of the plurality of performable computing tasks for performance based at least in part on the respective priority assigned to each of the plurality of performable computing tasks.

15. The electronic device of claim 10 , wherein:

the electronic device is configured to assign the plurality of computing tasks into a plurality of queues, the plurality of queues respectively associated with the plurality of required sets of computing resources;

to identify the at least one performable computing task, the electronic device is configured to identify at least one performable queue based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

to cause performance of the at least one performable computing task, the electronic device is configured to cause performance of at least one of the computing tasks assigned to the at least one performable queue.

16. The electronic device of claim 15 , wherein the electronic device is configured to:

assign an intra-queue priority to each of the plurality of computing tasks; and

after identifying the at least one performable queue, select the at least one of the computing tasks assigned to the at least one performable queue for performance based at least in part on the respective intra-queue priority assigned to each of the computing tasks assigned to the at least one performable queue.

17. The electronic device of claim 5 , wherein:

the electronic device is configured to assign an inter-queue priority to each of the plurality of queues;

to identify the at least one performable queue, the electronic device is configured to:

identify a plurality of performable queues based on the comparison of the current set of computing resources to the plurality of required sets of computing resources; and

select at least a first performable queue of the plurality of performable queues for performance based at least in part on the inter-queue priorities respectively assigned to the plurality of performable queues; and

to cause performance of the at least one of the computing tasks assigned to the at least one performable queue, the electronic device is configured to cause performance of at least one of the computing tasks assigned to the selected first performable queue.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE LIST OF INVENTORS PREVIOUSLY RECORDED ON REEL 046235 FRAME 0339. ASSIGNOR(S) HEREBY CONFIRMS THE INVENTORS SHOULD BE ERIC HC LIU; KEVIN D. BRUNE; YOSHIMICHI MATSUOKA; GILBERT CABILLIC; AND GAURAV SHAH. Recorded Jul 2, 2018
From: LIU, ERIC HC; BRUNE, KEVIN D.; MATSUOKA, YOSHIMICHI; CABILLIC, GILBERT; SHAH, GAURAV
To: GOOGLE INC.
Reel/Frame 046556/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2018
From: JAGADEV, MANAS RANJAN; LORIMER, ELI DYLAN; PETERSON, BRET; RAMAN, VIJAY; WHEELER, MARK DAMON
To: GOOGLE INC.
Reel/Frame 046235/0339 →
CHANGE OF NAME Recorded Jun 29, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 046460/0777 →
Continuity (2)
Continuation 15130242 · Apr 15, 2016
Related Publication 20180321982A1 · Nov 8, 2018