IP Library Granted Patent US 11,455,185
Granted Patent B2
US 11,455,185 · App. 16/712,433 · Granted Sep 27, 2022

Service schedule optimization for background execution limits

Inventors: Daniel Ochoa (Austin, TX); Nitin Sethi (Bengaluru, IN); Ashish Maan (Bengaluru, IN); Gaurav Badur Gopalkrishna (Sandy Springs, GA)
Assignee: VMware, Inc.
G06F9/4881G06F9/44505G06F9/485G06F9/544G06F9/546
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 11,455,185
App. No.
16/712,433
Granted
Sep 27, 2022
Kind
B2
Abstract

Scheduling optimizations for services are described. In one example, a priority category, such as a high, low, or other priority category, can be determined for a service of an application executing on a computing device. If the application is running as a background application on the computing device, an exception to the start of the service can be returned by the operating system of the device, due to background execution limits on the device. In that case, the start of the service can be managed by a service manager of the application based on the priority category for the service. If the priority category for the service is high, the background application can call a foreground service. The call for the foreground service can bring the application to the foreground, and the service manager can again call for the start of the service after the foreground service is running.

Claims (64)

1. A method for service schedule optimization in a computing device, comprising:

determining a priority category for a service of an application executing on the computing device;

calling, by a service manager of the application, for a start of the service as a background service of the application;

identifying a state exception to the start of the service as a background service in response to calling for the start of the service, the state exception being due to background execution limits on the computing device; and

responsive to the state exception, managing the start of the service of the application based on the priority category for the service, wherein managing the start of the service comprises:

calling a foreground service based on the priority category of the service;

calling for the start of the service after the foreground service is running; and

registering the service and the priority category for the service in a service registry.

2. The method according to claim 1 , wherein managing the start of the service further comprises:

unregistering the service from the service registry based on a stop of the service;

determining that the service registry does not identify any running service having a high priority; and

stopping the foreground service.

3. The method according to claim 1 , wherein managing the start of the service further comprises:

queueing an intent to start the service into a deferred services queue based on the priority category of the service;

receiving a notification that the background execution limits have been lifted on the computing device; and

calling for the start of the service after the background execution limits have been lifted based on the deferred services queue.

4. The method according to claim 1 , wherein determining the priority category for the service comprises setting the priority category to high based on a requirement of the service for network activity.

5. The method according to claim 1 , wherein determining the priority category for the service comprises setting the priority category to high based on a user interaction associated with the service.

6. The method according to claim 1 , wherein determining the priority category for the service comprises setting the priority category to one of low, bindable, or system-schedulable.

7. The method according to claim 1 , wherein:

determining the priority category for the service comprises setting the priority category to bindable based on a need for the service to run immediately with no requirement for network activity; and

managing the start of the service comprises binding to the service.

8. The method according to claim 1 , wherein:

determining the priority category for the service comprises setting the priority category to system-schedulable based on no need for the service to run immediately and no requirement for network activity; and

managing the start of the service comprises scheduling an intent to start the service with a system service scheduler.

9. A non-transitory computer-readable medium embodying program code for service schedule optimization that, when executed by a computing device, directs the computing device to at least:

determine a priority category for a service of an application executing on the computing device;

call, by a service manager of the application, for a start of the service as a background service of the application;

identify a state exception to the start of the service as a background service in response to calling for the start of the service, the state exception being due to background execution limits on the computing device; and

responsive to the state exception, manage the start of the service of the application based on the priority category for the service, wherein managing the start of the service comprises:

calling a foreground service based on the priority category of the service;

calling for the start of the service after the foreground service is running; and

registering the service and the priority category for the service in a service registry.

10. The non-transitory computer-readable medium according to claim 9 , wherein, to manage the start of the service, the computing device is further directed to:

unregister the service from the service registry based on a stop of the service;

determine that the service registry does not identify any running service having a high priority; and

stop the foreground service.

11. The non-transitory computer-readable medium according to claim 9 , wherein, to manage the start of the service, the computing device is further directed to:

queue an intent to start the service into a deferred services queue based on the priority category of the service;

receive a notification that the background execution limits have been lifted on the computing device; and

call for the start of the service after the background execution limits have been lifted based on the deferred services queue.

12. The non-transitory computer-readable medium according to claim 9 , wherein, to determine the priority category for the service, the computing device is further directed to set the priority category to high based on at least one of a requirement of the service for network activity or a user interaction associated with the service.

13. The non-transitory computer-readable medium according to claim 9 , wherein, to determine the priority category for the service, the computing device is further directed to set the priority category to one of low, bindable, or system-schedulable.

14. The non-transitory computer-readable medium according to claim 9 , wherein the computing device is further directed to:

set the priority category for the service to bindable based on a need for the service to run immediately with no requirement for network activity; and

bind to the service.

15. A computing device for service schedule optimization, comprising:

a memory device configured to store computer-readable instructions thereon; and

at least one processing device configured, through execution of the computer-readable instructions, to direct the computing device to at least:

determine a priority category for a service of an application executing on the computing device;

call, by a service manager of the application, for a start of the service as a background service of the application;

identify a state exception to the start of the service as a background service in response to calling for the start of the service, the state exception being due to background execution limits on the computing device; and

responsive to the state exception, manage the start of the service of the application based on the priority category for the service, wherein managing the start of the service comprises:

calling a foreground service based on the priority category of the service;

calling for the start of the service after the foreground service is running; and

registering the service and the priority category for the service in a service registry.

16. The computing device according to claim 15 , wherein, to manage the start of the service, the computing device is further directed to:

unregister the service from the service registry based on a stop of the service;

determine that the service registry does not identify any running service having a high priority; and

stop the foreground service.

17. The computing device according to claim 15 , wherein, to manage the start of the service, the computing device is further directed to:

queue an intent to start the service into a deferred services queue based on the priority category of the service;

receive a notification that the background execution limits have been lifted on the computing device; and

call for the start of the service after the background execution limits have been lifted based on the deferred services queue.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: OCHOA, DANIEL; SETHI, NITIN; MAAN, ASHISH; GOPALKRISHNA, GUARAV BADAR
To: VMWARE, INC.
Reel/Frame 060685/0934 →