IP Library Granted Patent US 10,594,835
Granted Patent B2
US 10,594,835 · App. 15/151,338 · Granted Mar 17, 2020

Efficient context monitoring

Inventors: Alexander Barraclough Brown (Mountain View, CA); Umesh S. Vaishampayan (Santa Clara, CA)
Assignee: Apple Inc.
H04L67/327G06F8/61G06F9/445G06F9/461G06F9/542G06F9/546G06F11/30G06N7/005H04L67/14H04L67/26H04W24/02H04W52/0264Y02D10/43Y02D70/00Y02D70/142Y02D70/144Y02D70/164Y02D70/26
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,594,835
App. No.
15/151,338
Granted
Mar 17, 2020
Kind
B2
Abstract

Disclosed are systems, methods, and non-transitory computer-readable storage media for efficiently monitoring the operating context of a computing device. In some implementations, the context daemon and/or the context client can be terminated to conserve system resources. For example, if the context daemon and/or the context client are idle, they can be shutdown to conserve battery power or free other system resources (e.g., memory). When an event occurs (e.g., a change in current context) that requires the context daemon and/or the context client to be running, the context daemon and/or the context client can be restarted to handle the event. Thus, system resources can be conserved while still providing relevant context information collection and callback notification features.

Claims (52)

1. A method comprising:

receiving, at a context daemon executing on a computing device, a first context callback request from a context client, the first context callback request initiating a first communication session between the context client and the context daemon;

terminating the context client after the context daemon receives the first context callback request and in response to determining that the context client is idle;

receiving, by the context daemon, current context information;

determining that the current context information corresponds to the first context callback request;

in response to the determining, detecting, by the context daemon, that the first communication session with the context client has terminated; and

in response to the detecting, sending, by the context daemon, a restart message to a launch daemon requesting that the launch daemon restart the context client.

2. The method of claim 1 , wherein the first context callback request includes a client identifier, and further comprising:

sending, by the context daemon, the client identifier to the launch daemon in the restart message.

3. The method of claim 1 , wherein the current context information includes one or more context items that describe a current state of the computing device.

4. The method of claim 1 , wherein the first context callback request specifies conditions for notifying the context client based on the current context information received by the context daemon.

5. The method of claim 1 , further comprising:

upon receipt of the restart message, restarting, by the launch daemon, the context client;

after the context client has been restarted, receiving, by the context daemon, a second context callback request from the context client;

comparing the second context callback request to the current context information; and

in response to the comparing, notifying the context client that the current context information corresponds to the second context callback request.

6. The method of claim 5 , wherein the second context callback request establishes a second communication session between the context client and the context daemon, and wherein the context daemon uses the second communication session established by the context client to notify the context client that the current context information corresponds to the second context callback request.

7. A computing device for efficient context monitoring comprising:

a hardware processor; and

logic, which when executed by the hardware processor on the computing device, causes a context daemon to:

receive a first context callback request from a context client, the first context callback request initiating a first communication session between the context client and the context daemon;

terminate the context client after the context daemon receives the first context callback request and in response to determining that the context client is idle;

receive current context information;

determine that the current context information corresponds to the first context callback request;

detect, in response to the determination, that the first communication session with the context client has terminated; and

send, in response to the detection, a restart message to a launch daemon requesting that the launch daemon restart the context client.

8. The computing device of claim 7 , wherein the first context callback request includes a client identifier, and wherein the logic is further executed to cause the context daemon to:

send the client identifier to the launch daemon in the restart message.

9. The computing device of claim 7 , wherein the current context information includes one or more context items that describe a current state of the computing device.

10. The computing device of claim 7 , wherein the first context callback request specifies conditions for notifying the context client based on the current context information received by the context daemon.

11. The computing device of claim 7 , wherein the logic is further executed to cause the context daemon to:

upon receipt of the restart message, restart, by the launch daemon, the context client;

after the client has been restarted, receive a second context callback request from the context client;

compare the second context callback request to the current context information; and

in response to the comparison, notify the context client that the current context information corresponds to the second context callback request.

12. The computing device of claim 11 , wherein the second context callback request establishes a second communication session between the context client and the context daemon, and wherein the context daemon uses the second communication session established by the context client to notify the context client that the current context information corresponds to the second context callback request.

13. A non-transitory computer-readable medium containing instructions that, when executed by a computing device, cause a context daemon of the computing device to:

receive a first context callback request from a context client, the first context callback request initiating a first communication session between the context client and the context daemon;

terminate the context client after the context daemon receives the first context callback request and in response to determining that the context client is idle;

receive current context information;

determine that the current context information corresponds to the first context callback request;

detect, in response to the determination, that the first communication session with the context client has terminated; and

send, in response to the detection, a restart message to a launch daemon requesting that the launch daemon restart the context client.

14. The non-transitory computer-readable medium of claim 13 , wherein the first context callback request includes a client identifier, and further comprising instructions, which when executed, cause the context daemon to:

send the client identifier to the launch daemon in the restart message.

15. The non-transitory computer-readable medium of claim 13 , wherein the current context information includes one or more context items that describe a current state of the computing device.

16. The non-transitory computer-readable medium of claim 13 , wherein the first context callback request specifies conditions for notifying the context client based on the current context information received by the context daemon.

17. The non-transitory computer-readable medium of claim 13 , further comprising instructions, which when executed, cause the context daemon to:

upon receipt of the restart message, restart, by the launch daemon, the context client;

after the client has been restarted, receive a second context callback request from the context client;

compare the second context callback request to the current context information; and

in response to the comparison, notify the context client that the current context information corresponds to the second context callback request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2016
From: BROWN, ALEXANDER BARRACLOUGH; VAISHAMPAYAN, UMESH S.
To: APPLE INC.
Reel/Frame 038541/0209 →
Continuity (2)
Provisional Application 62171892 · Jun 5, 2015
Related Publication 20160360008A1 · Dec 8, 2016