IP Library › Granted Patent US 8,682,342
Granted Patent B2
US 8,682,342 · App. 12/464,892 · Granted Mar 25, 2014

Constraint-based scheduling for delivery of location information

Inventors: Jyh-Han Lin (Mercer Island, WA); Chester Overstead Murphy (Woodinville, WA); Gang Zhao (Redmond, WA); Karon A. Weber (Kirkland, WA); Katrika Woodcock (Issaquah, WA)
Assignee: Microsoft Corporation
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 8,682,342
App. No.
12/464,892
Granted
Mar 25, 2014
Kind
B2
Abstract

Defining subscriptions to location information for a computing device (e.g., a mobile computing device). Application programs, services, and/or peer devices define the subscriptions based on constraints associated with requests for the location information. A location request scheduler coordinates the subscriptions temporally and spatially to reduce the quantity of the requests from the computing device. In some embodiments, the subscriptions are automatically defined based on an observed mobility pattern of the computing device.

Claims (40)

1. A system for execution on a mobile computing device, said system executing to reduce a quantity of requests from the mobile computing device for location reports from a network, said system comprising:

a memory area for storing a plurality of subscriptions each having a time value and application program associated therewith, said time value representing a time at or during which the application program desires to receive a location report, said location report identifying a location of a mobile computing device executing the application program; and

a processor programmed to:

identify a mobility pattern for the mobile computing device based on a location history of the mobile computing device, the location history comprising a plurality of timestamped locations, the location history being correlated with profile data to generate a location tag for one or more of the plurality of timestamped locations, wherein the profile data is associated with a user of the mobile computing device;

define the subscriptions to the location report based at least on the identified mobility pattern;

store the defined subscriptions in the memory area;

determine a report time based on the time value of at least one of the plurality of subscriptions;

generate the location report at the determined report time;

select a plurality of the subscriptions stored in the memory area based on said time value of at least one of the plurality of subscriptions; and

provide the generated location report to the application programs associated with the selected subscriptions.

2. The system of claim 1 , wherein the processor is programmed to define the subscriptions by determining a request pattern for the mobile computing device, said request pattern representing one or more previous requests for the location report from the mobile computing device.

3. The system of claim 1 , wherein the processor is programmed to select the plurality of the subscriptions by identifying a plurality of the subscriptions having approximately equal time values associated therewith.

4. The system of claim 1 , wherein the mobility pattern represents one or more previous requests by the mobile computing device for the location report.

5. The system of claim 1 , wherein the processor is programmed to identify the mobility pattern by identifying a duration spent at each of the locations.

6. The system of claim 1 , further comprising means for coordinating requests for the location report to reduce a quantity of the requests.

7. The system of claim 1 , further comprising means for identifying the mobility pattern and means for defining the subscriptions.

8. A method comprising:

accessing subscriptions each having a time value and application program associated therewith, said time value representing a time at or during which the application program desires to receive location information describing a location of a computing device executing the application program;

accessing a location history of the computing device, the location history comprising a plurality of timestamped locations, the accessed location history being correlated with profile data to generate a location tag for one or more of the plurality of timestamped locations, wherein the profile data is associated with a user of the computing device;

defining a report time based on the time value of at least one of the accessed subscriptions;

generating the location information at the defined report time;

selecting a plurality of the subscriptions based on said time value of at least one of the accessed subscriptions; and

providing the generated location information to the application programs associated with the selected subscriptions.

9. The method of claim 8 , further comprising defining one or more of the subscriptions based on one or more of the following: a task list, a calendar entry, a location history, and a mobility pattern.

10. The method of claim 8 , further comprising defining one or more of the subscriptions by:

determining commuting time periods; and

defining the subscriptions to include time values corresponding to at least a portion of the determined commuting time periods.

11. The method of claim 8 , wherein a task list application executing on the computing device manages one or more tasks, wherein each of the tasks has a location associated therewith, and further comprising identifying at least one of the tasks based on a comparison of the location to the generated location information.

12. The method of claim 8 , wherein the computing device provides a plurality of channels of radio content, and further comprising selecting one of the channels based on the generated location information.

13. The method of claim 8 , further comprising defining one or more of the subscriptions based on calendar events.

14. The method of claim 13 , wherein each of the calendar events has a time and location associated therewith, and wherein defining the one or more of the subscriptions comprises defining the one or more of the subscriptions based on differences between the times and distances between the locations of the calendar events.

15. The method of claim 13 , further comprising determining a reminder time based on estimated travel time between locations of the calendar events.

16. One or more computer-readable devices storing computer-executable components, said components comprising:

a memory component that when executed by at least one processor causes the at least one processor to access subscriptions each having a time value and application program associated therewith, said time value representing a time at which the application program desires to receive location information identifying a location of a computing device executing the application program, the memory component storing a location history of the computing device, the location history comprising a plurality of timestamped locations, the location history being correlated with profile data and/or point-of-interest information to generate a location tag for one or more of the plurality of timestamped locations;

a timing component that when executed by at least one processor causes the at least one processor to organize the subscriptions into one or more groups based at least on the time values, wherein each of the groups has a group time value;

a processor component that when executed by at least one processor causes the at least one processor to execute, at one of the group time values, the application programs associated with the subscriptions in the group associated with said one of the group time values; and

a location component that when executed by at least one processor causes the at least one processor to generate, responsive to a request from at least one of the executing application programs, the location information and providing the generated location information to the executing application programs.

17. The computer-readable devices of claim 16 , wherein the time value comprises a time interval and the group time value represents coordinated location requests, the location requests being coordinated based on geofenced regions.

18. The computer-readable devices of claim 16 , wherein the location information comprises one or more of the following: a position of the computing device, information describing an area surrounding the position, and business information associated with the area surrounding the position.

19. The computer-readable devices of claim 16 , wherein one or more locations are associated with each of the subscriptions, and wherein the timing component organizes the subscriptions based on geographic proximity of the locations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2009
From: LIN, JYH-HAN; MURPHY, CHESTER OVERSTEAD; ZAO, GANG; WEBER, KARON A.; WOODCOCK, KATRIKA
To: MICROSOFT CORPORATION
Reel/Frame 023152/0492 →
Continuity (1)
Related Publication 20100291950A1 · Nov 18, 2010