IP Library Granted Patent US 10,542,496
Granted Patent B2
US 10,542,496 · App. 16/001,799 · Granted Jan 21, 2020

Background transfer service for applications on mobile devices

Inventors: Marc David McClure (Seattle, WA); Abolade Gbadegesin (Seattle, WA); Chittur Padmanabhan Subbaraman (Carnation, WA); Jianping Yin (Sammamish, WA); Jorge I. Raastroem (Issaquah, WA); Yasser Shaaban (Seattle, WA); Timothy Daniel Noonan (Cary, NC); Rachel Jiang (Redmond, WA); Peter John Torr (Bellevue, WA); Vishal Ghotge (Seattle, WA); Gregory Arthur De Souza (Seattle, WA); Pavan Rajamohan Hullumane (Seattle, WA); Adrian Dragomir (Bellevue, WA); Darin Miller (Sammamish, WA); Megan Galbraith Donahue (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
H04W52/0264G06F9/5011G06F9/546H04L41/0893H04N21/233H04N21/4126H04N21/439H04N21/6175H04W4/50H04W4/60Y02D70/00Y02D70/12Y02D70/124Y02D70/142Y02D70/144Y02D70/146Y02D70/164Y02D70/23Y02D70/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,542,496
App. No.
16/001,799
Granted
Jan 21, 2020
Kind
B2
Abstract

The subject disclosure is directed towards a background transfer service that provides platform-level support for third party applications to queue data transfers to run in the background, including when the application is not running in the foreground. Applications may thus perform downloading and uploading tasks in the background; however the background transfer service manages the data transfer requests so as to limit each background application's ability to interfere with foreground application operations, that is, by controlling resource usage according to one or more policies.

Claims (44)

1. A system comprising:

at least one processor; and

a background transfer service implemented on the at least one processor and configured to run on a mobile device at a platform-level to control data transfers of a plurality of applications, the data transfers comprising data transfers from a background application, the at least one processor programmed to:

manage application requests for the data transfers based upon one or more policies that control resource usage of background application data transfers to limit interference with foreground application operations, wherein the one or more policies comprise a maximum data transfer limitation;

pause a data transfer for the background application based at least on the maximum transfer limitation being met;

generate one or more notifications associated with the paused data transfer request; and

generate one or more additional notifications when the data transfer request is resumed.

2. The system of claim 1 , further comprising a download manager configured to make remote connections to transfer data to or from a remote source to satisfy the data transfer request.

3. The system of claim 1 , wherein the data transfers comprises data transfers from a second background application, and wherein the at least one processor is further programmed to prioritize a data transfer for the second background application over the data transfer for the background application based on the one or more polices.

4. The system of claim 1 , wherein the at least one processor is further programmed to provide the one or more notifications to the background application that requested the data transfer.

5. The system of claim 1 , wherein the at least one processor is further programmed to:

receive information indicating that the background application is being uninstalled; and

cancel the data transfer request corresponding to the background application being uninstalled.

6. The system of claim 1 , wherein the one or more policies further comprises a policy based upon one or more of the following conditions: other application data transfer requests, available cellular service, Wi-Fi availability, desktop pass-through availability, power state, battery power level, and charging state.

7. A method for controlling data transfers of a plurality of applications, the data transfers comprising data transfers from a background application, the method comprising:

managing application requests for the data transfers based upon one or more policies that control resource usage of background application data transfers to limit interference with foreground application operations, wherein the one or more policies comprise a maximum data transfer limitation;

pausing a data transfer for the background application based at least on the maximum transfer limitation being met;

generating one or more notifications associated with the paused data transfer request; and

generating one or more additional notifications when the data transfer request is resumed.

8. The method of claim 7 , further comprising making remote connections to transfer data to or from a remote source to satisfy the data transfer request.

9. The method of claim 7 , wherein the maximum data transfer limitation is based upon a size of the data to transfer.

10. The method of claim 7 , further comprising waiting for a changed condition before resuming the transferring of the data.

11. The method of claim 7 , further comprising:

receiving information indicating that the background application is being uninstalled; and

canceling the data transfer request based on the background application being uninstalled.

12. The method of claim 7 , wherein the data transfers comprising data transfers from a second background application, and wherein the method further comprises prioritizing a data transfer for the second background application over the data transfer for the background application based on the one or more.

13. The method of claim 7 , further comprising:

receiving information indicating that the background application has changed from a background application to a new foreground application; and

resuming the paused data transfer request based on the background application being changed from the background application to the new foreground application.

14. One or more computer storage devices having computer-executable instructions, that when executed by one or more processors, cause the one or more processors to control data transfers of a plurality of applications, the data transfers comprising data transfers from a background application, wherein controlling the data transfers comprises:

managing application requests for the data transfers based upon one or more policies that control resource usage of background application data transfers to limit interference with foreground application operations, wherein the one or more policies comprise a maximum data transfer limitation;

pausing a data transfer for the background application based at least on the maximum transfer limitation being met;

generating one or more notifications associated with the paused data transfer request; and

generating one or more additional notifications when the data transfer request is resumed.

15. The one or more computer storage devices of claim 14 , wherein the data transfers comprising data transfers from a second background application, and wherein the computer-executable instructions further comprises prioritizing a data transfer for the second background application over the data transfer for the background application based on the one or more polices.

16. The one or more computer storage devices of claim 14 having further computer-executable instructions comprising:

receiving information indicating that the background application is being uninstalled; and

canceling the data transfer request corresponding to the background application being uninstalled.

17. The one or more computer storage devices of claim 14 , wherein the one or more policies further comprises a policy based upon one or more of the following conditions: other application data transfer requests, available cellular service, Wi-Fi availability, desktop pass-through availability, power state, battery power level, and charging state.

18. The one or more computer storage devices of claim 14 , wherein the maximum data transfer limitation is based upon a size of the data to transfer.

19. The one or more computer storage devices of claim 14 , having further computer-executable instructions comprising waiting for a changed condition before resuming the transferring of the paused data transfer.

20. The one or more computer storage devices of claim 14 , having further computer-executable instructions comprising:

receiving information indicating that the background application has changed from a background application to a new foreground application; and

resuming the paused data transfer request based on the background application being changed from the background application to the new foreground application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: MCCLURE, MARC DAVID; GBADEGESIN, ABOLADE; SUBBARAMAN, CHITTUR PADMANABHAN; YIN, JIANPING; RAASTROEM, JORGE I.; SHAABAN, YASSER; NOONAN, TIMOTHY DANIEL; JIANG, RACHEL; TORR, PETER JOHN; GHOTGE, VISHAL; DE SOUZA, GREGORY ARTHUR; HULLUMANE, PAVAN RAJAMOHAN; DRAGOMIR, ADRIAN; MILLER, DARIN; DONAHUE, MEGAN GALBRAITH
To: MICROSOFT CORPORATION
Reel/Frame 046006/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 046006/0731 →