IP Library › Granted Patent US 12,142,265
Granted Patent B2
US 12,142,265 · App. 16/882,127 · Granted Nov 12, 2024

Synchronization of remote context data

Inventors: Kartik R. Venkatraman (Santa Clara, CA); Brian E. Korver (San Francisco, CA)
Assignee: Apple Inc.
G10L15/22G10L15/26G10L15/30G10L17/22H04L41/0681H04L67/1095H04L67/535G10L2015/223
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 12,142,265
App. No.
16/882,127
Filed
May 22, 2020
Granted
Nov 12, 2024
Kind
B2
Art Unit
2442
USPC
709/224
Abstract

Embodiments described herein provide for a multi-device context store in which context attributes of multiple devices can be synchronized. A first device can transmit a predicate to a second device, where the predicate includes a condition associated with an attribute of a multi-device context store. Upon the occurrence of the condition at the second device, a notification and/or context update can be sent by the second device to the first device. The predicate can also include a code block to be executed upon the occurrence of the condition.

Claims (42)

1. A method comprising:

constructing a predicate on a first electronic device, wherein the predicate includes:

an activation condition associated with an attribute stored in a multi-device context store at the first electronic device,

a code block that is programmed to be conditionally executed upon occurrence of the condition, and

a wake flag that indicates whether the occurrence of the condition causes an application processor to wake from a sleep state to execute the code block or whether the occurrence of the condition causes the code block to be placed in a queue that is executed when the application processor wakes from the sleep state;

transmitting the predicate to a second electronic device;

receiving, by the first electronic device, a notice from the second electronic device that the activation condition occurred was based on a detected change to a value of the attribute stored in another instance of the multi-device context store at the second electronic device, the change to the value occurring after processing of transmitted predicate at the second electronic device; and

performing an action on the first electronic device in response to the received notice.

2. An electronic device comprising:

a memory; and

at least one processor configured to:

construct a predicate, wherein the predicate includes;

a condition associated with an attribute stored in a multi-device context store at the electronic device,

a code block that is programmed to be conditionally executed upon occurrence of the condition, and

a wake flag that indicates whether the occurrence of the condition causes an application processor to wake from a sleep state to execute the code block or whether the occurrence of the condition causes the code block to be placed in a queue that is executed when the application processor wakes from the sleep state;

transmit the predicate to a second electronic device;

receive a notice from the second electronic device that the condition was satisfied based on a detected change to a value of the attribute stored in another instance of the multi-device context store at the second electronic device, the change to the value occurring after processing of transmitted predicate at the second electronic device; and

perform an action on the electronic device in response to the notice.

3. The electronic device as in claim 2 , wherein the action comprises pausing or resuming a process being executed on the electronic device.

4. A non-transitory machine-readable medium storing instructions to cause one or more processors to perform operations comprising:

constructing a predicate on a first electronic device, the predicate including:

a condition associated with an attribute of a plurality of attributes stored in a multi-device context store at the first electronic device, wherein the plurality of attributes stored in the multi-device context store comprise context information obtained from multiple electronic devices,

a code block that is programmed to be conditionally executed upon occurrence of the condition, and

a wake flag that indicates whether the occurrence of the condition causes an application processor to wake from a sleep state to execute the code block or whether the occurrence of the condition causes the code block to be placed in a queue that is executed when the application processor wakes from the sleep state;

transmitting the predicate to a second electronic device;

receiving, by the first electronic device, a notice from the second electronic device that the condition was satisfied based on a detected change to a value of the attribute stored in another instance of the multi-device context store at the second electronic device, the change to the value occurring after processing of the transmitted predicate at the second electronic device; and

performing an action on the first electronic device in response to the received notice.

5. The non-transitory machine-readable medium as in claim 1 , the operations further comprising transmitting the predicate to the second electronic device by transmitting the predicate to a daemon on the first electronic device associated with the multi-device context store and transmitting the predicate to the second electronic device via the daemon.

6. The non-transitory machine-readable medium as in claim 4 , wherein the predicate is associated with a set of remote devices to which the predicate is to be transmitted.

7. The non-transitory machine-readable medium as in claim 6 , wherein the predicate is a compound predicate that includes multiple conditions or code blocks and the compound predicate is registered with a scheduler at the second electronic device.

8. The non-transitory machine-readable medium as in claim 6 , wherein the attribute of the multi-device context store is a context attribute associated with the first electronic device or associated with a third electronic device.

9. The non-transitory machine-readable medium as in claim 6 , wherein the attribute of the multi-device context store is a context attribute associated with the second electronic device.

10. The non-transitory machine-readable medium as in claim 4 , wherein the condition can include a key path that specifies a context attribute and an identifier for the device for which the context is to be monitored.

11. The non-transitory machine-readable medium as in claim 10 , wherein devices to which the predicate is to be transmitted differs from the devices specified by the key path.

12. The non-transitory machine-readable medium as in claim 4 , wherein the notice from the second electronic device that the condition was satisfied includes a snapshot of changes to the context of the second electronic device.

13. The non-transitory machine-readable medium as in claim 12 , wherein the first electronic device is to perform an action in response to a change in the snapshot.

14. The non-transitory machine-readable medium as in claim 13 , wherein the action includes to execute a code block or callback on the first electronic device.

15. The non-transitory machine-readable medium as in claim 14 , wherein to execute the code block or callback on the first electronic device includes to determine whether to wake one of the one or more processors from a low-power state.

16. The non-transitory machine-readable medium as in claim 4 , wherein the notice from the second electronic device that the condition was satisfied is received via a wireless network advertisement broadcast by the second electronic device.

17. The non-transitory machine-readable medium as in claim 15 , wherein the notice from the second electronic device that the condition was satisfied includes an updated attribute stored in the other instance of the multi-device context store.

18. The non-transitory machine-readable medium of claim 4 , wherein the operations further comprise:

synchronizing the multi-device context store of the first electronic device with the other instance of the multi-device context store at the second electronic device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: VENKATRAMAN, KARTIK R.; KORVER, BRIAN E.
To: APPLE INC.
Reel/Frame 052737/0854 →
Continuity (2)
Provisional Application 62855969 · Jun 1, 2019
Related Publication 20200380984A1 · Dec 3, 2020