# US 7,412,400 B1 · System and method for providing personal location information to location consumers from a location services server

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,400 B1
- Document ID: US7412400B1
- Status: Granted
- Kind: B1
- Application number: 10/184,138
- Filed: 2002-06-27
- Granted: 2008-08-12
- Earliest claimed: 2002-06-27
- Assignees: Microsoft Corporation
- Inventors: Harvinder S. Bhela; Stephen L. Lawler; Rajesh M. Rao
- Web page: https://patentgrep.com/patent/US7412400B1

## CPC

- G06Q 30/02: Marketing; Price estimation or determination; Fundraising
- H04L 67/306: User profiles
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 67/54: Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
- H04W 4/02: Services making use of location information
- H04W 4/029: Location-based management or tracking services
- H04W 8/18: Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W 64/00: Locating users or terminals {or network equipment} for network management purposes, e.g. mobility management
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A system and method for providing a location owner's location information to third parties (location consumers) is provided. The location server obtains an owner profile controlling access to the location owner's location information. A location consumer requests the location owner's location information through a location request. The location server determines whether the location consumer is authorized to access the location owner's location information according to access information in the owner profile. If the location consumer is authorized to access the information, the location server obtains location information from a location provider and returns the location information to the location consumer. The location consumer may also subscribe to a location owner, such that when an identified subscription event occurs, the location server notifies the location consumer of the location owner's current location. The location server repeatedly notifies the location consumer when the subscription event occurs or until the subscription is terminated.

## Claims

### Claim 1

A computer system for providing information about the location of a location owner to a location consumer in response to the receipt of a location request from said location consumer comprising:
(a) data storage for storing location owner profile information, the profile information provided by said third party location owner including authorization information specific to one or more location consumers, suitable for authorizing and controlling access to information about the location of the associated location owner; and
(b) a data processing system for:
(i) receiving a request from a location consumer for information about the current location of the location owner;
(ii) in response to the receipt of the request from the location consumer for information about the location of the location owner, obtaining location owner profile information from said data storage associated with said location owner;
(iii) obtaining from at least one third-party location provider information about the current location of said location owner;
(iv) processing the information provided by the at least one third-party location provider about the current location of said location owner in accordance with said location owner profile information obtained from said data storage; and
(v) transmitting the result of said processing of the information provided by said third-party location provider to said location consumer requesting information about the current location of said location owner.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein the owner profile includes consumer authorization information for determining whether the location consumer is authorized to access the location owner's location information.

### Claim 3 (depends on 2)

The computer system of claim 2, wherein said data processing system authenticates the identity of the location consumer to determine if the location consumer is authorized to access information about the current location of said location owner.

### Claim 4 (depends on 3)

The computer system of claim 3, wherein said data processing system authenticates the identity of the location consumer using an external authentication service.

### Claim 5 (depends on 2)

The computer system of claim 2, wherein said data processing system transmits an error message to said location consumer requesting information about the current location of said location owner if the location consumer is not authorized to access information about the current location of said location owner.

### Claim 6 (depends on 1)

The computer system of claim 1, wherein the owner profile includes a time-based restriction that restricts access to said information about the current location of said location owner to time periods identified in the time-based restriction.

### Claim 7 (depends on 1)

The computer system of claim 1, wherein the owner profile includes a geographic restriction that restricts access to said information about the current location of said location owner to a geographic area identified in the geographic restriction.

### Claim 8 (depends on 1)

The computer system of claim 1, wherein said data processing system obtains from a plurality of location providers information about the current location of said location owner.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein said owner profile includes a provider restriction that limits obtaining information about the current location of said location owner to particular location providers.

### Claim 10 (depends on 1)

The computer system of claim 1, wherein, if the request for information about the location of a location owner is a synchronous request, said data processing system synchronously transmits the results of the processing of the information by the location provider to the location consumer.

### Claim 11 (depends on 1)

The computer system of claim 1, wherein, if the request for information about the current location of a location owner is an asynchronous request, said data processing system asynchronously transmits the results of the processing of information provided by the location provider to the location consumer.

### Claim 12 (depends on 1)

The computer system of claim 1, wherein, if the request for information about the current location of a location owner is a subscription request that includes a subscription event, said data processing system transmits the results of the processing of information provided by the location provider to the location consumer when the subscription event occurs.

### Claim 13 (depends on 12)

The computer system of claim 12, wherein the subscription event is a location change event.

### Claim 14 (depends on 12)

The computer system of claim 12, wherein the subscription event occurs when the current location of the location owner changes from one geographic area to another.

### Claim 15 (depends on 12)

The computer system of claim 12, wherein the subscription event is a time interval event.

### Claim 16 (depends on 12)

The computer system of claim 12, wherein the data processing system repeatedly processes the subscription request when the subscription event occurs until a termination condition is met.

### Claim 17 (depends on 16)

The computer system of claim 16, wherein the termination condition is the expiration of a time period.

### Claim 18 (depends on 16)

The computer system of claim 16, wherein the termination condition is an event count identifying the number of times the subscribed event is to be processed.

### Claim 19 (depends on 16)

The computer system of claim 16, wherein the termination condition is an internal termination condition supplied by the data processing system.

### Claim 20 (depends on 19)

The computer system of claim 19, wherein the internal termination condition is the expiration of a time period.

### Claim 21 (depends on 19)

The computer system of claim 19, wherein the internal termination condition is an event count identifying the number of times the subscribed event is to be processed.

### Claim 22

A method for providing information about the current location of a location owner to a location consumer in response to the receipt of a location request from the location consumer, comprising:
(a) in response to receiving a location request from the location consumer requesting information about the current location of a location owner, obtaining an owner profile associated with the location owner, the owner profiles having been provided by the location owner, including authorization information specific to one or more location consumers suitable for authorizing and controlling access to information about the location of the associated location owner;
(b) using the owner profile to determine whether the location consumer is authorized to receive information about the current location of the location owner; and,
(c) if the location consumer is authorized to receive information about the current location of the location owner:
(i) obtaining information about the current location of the location owner from a third-party location provider;
(ii) processing the obtained information about the current location of the location owner in accordance with the owner profile; and
(iii) transmitting the results of the processing of the obtained information to the location consumer.

### Claim 23 (depends on 22)

The method of claim 22 further comprising transmitting an error message to the location consumer if the location consumer is not authorized to receive information about the current location of the location owner.

### Claim 24 (depends on 22)

The method of claim 22, wherein using the owner profile to determine whether the location consumer is authorized to receive information about the current location of the location owner information comprises determining whether the owner profile includes a time-based restriction and, if included, whether the time-based restriction prohibits the location consumer from receiving information about the current location of the location owner.

### Claim 25 (depends on 22)

The method of claim 22, wherein determining whether the location consumer is authorized to receive information about the current location of the location owner comprises determining whether the owner profile includes a geographic restriction and, if included, whether the geographic restriction prohibits the location consumer from receiving information about the current location of the location owner.

### Claim 26 (depends on 22)

The method of claim 22 further comprising obtaining information about the current location of the location owner from a plurality of location providers.

### Claim 27 (depends on 26)

The method of claim 26, wherein processing the obtained information about the current location of the location owner in accordance with the owner profile comprises determining if the owner's profile includes a location provider restriction and, if included, restricting the plurality of location providers in accordance with the location provider restriction.

### Claim 28 (depends on 22)

The method of claim 22 further comprising authenticating the identity of the location consumer to determine if the location consumer is authorized to obtain information about the current location of the location owner.

### Claim 29 (depends on 28)

The method of claim 28, wherein authenticating the identity of the location consumer comprises requesting authentication from an authentication service.

### Claim 30 (depends on 22)

The method of claim 22, wherein, if the received location request is a synchronous request, synchronously transmitting the results of the processing of the obtained information to the location consumer.

### Claim 31 (depends on 22)

The method of claim 22, wherein, if the location request is an asynchronous request, asynchronously transmitting the results of the processing of the obtained information to the location consumer.

### Claim 32 (depends on 22)

The method of claim 22 wherein, if the location request is a subscription request that identifies a subscription event, transmitting the results of the processing of the obtained information to the location consumer when the subscription event occurs.

### Claim 33 (depends on 32)

The method of claim 32, wherein the subscription event is a change in the current location of the location owner.

### Claim 34 (depends on 33)

The method of claim 33, wherein the current location is a geographic location.

### Claim 35 (depends on 32)

The method of claim 32, wherein the subscription event is the expiration of a time interval.

### Claim 36 (depends on 32)

The method of claim 32 further comprising repeatedly transmitting the results of the processing of the obtained information to the location consumer each time the subscription event occurs, until a termination condition is met.

### Claim 37 (depends on 36)

The method of claim 36, wherein the termination condition comprises the expiration of a time period.

### Claim 38 (depends on 36)

The method of claim 36, wherein the termination condition comprises an event count that identifies the number of subscription events to be processed.

### Claim 39 (depends on 22)

A computer-readable medium having computer readable instructions encoded thereon that, when executed on a computer, perform the method recited in claim 22.

### Claim 40 (depends on 32)

A computer-readable medium having computer readable instructions encoded thereon that, when executed on a computer, perform the method recited in claim 32.

### Claim 41 (depends on 36)

A computer-readable medium having computer readable instructions encoded thereon that, when executed on a computer, perform the method recited in claim 36.

### Claim 42 (depends on 22)

A computer system having a memory, a processor, and an operating environment and operable to perform the method recited in claim 22.

### Claim 43 (depends on 32)

A computer system having a memory, a processor, and an operating environment and operable to perform the method recited in claim 32.

### Claim 44 (depends on 36)

A computer system having a memory, a processor, and an operating environment and operable to perform the method recited in claim 36.

### Claim 45

A computer-readable medium having computer-executable instructions, said instructions are executed by one or more computers for providing location information about the current location of a location owner to a location consumer, comprising a core services module and a location provider module, the location provider module being communicatively coupled to the core services module, wherein:
(a) the core services module:
(i) obtains a location request from a location consumer requesting access to location information about current the location of a location owner;
(ii) obtains an owner profile associated with the location owner, the owner profile provided by the location owner, from an owner profile database communicatively coupled to the core services module, wherein the owner profile includes authorization information specific to one or more location consumers for authorizing and controlling access by the location consumer to the location owner's current location information;
(iii) determines whether the location consumer is authorized to access the location owner's current location information according to the owner profile, and if the location consumer is authorized according to the results of the determination;
(iv) obtains the location owner's current location information from the location provider module;
(v) processes the current location information according to information in the owner profile; and
(vi) transmits the current location information to the location consumer in response to the location request; and
(b) the location provider module obtains the location owner's current location information from a third-party location provider.

### Claim 46 (depends on 45)

The computer-readable medium of claim 45, wherein the core services module further obtains the location owner's current location information from a location provider listening module communicatively coupled to the core services module, and wherein the location provider listening module receives the location owner's current location information from the location provider.

### Claim 47 (depends on 46)

The computer-readable medium of claim 46, wherein the location provider listening module further stores the location owner's current location information in a location cache communicatively coupled to the location provider listening module and the core services module.

### Claim 48 (depends on 47)

The computer-readable medium of claim 47, wherein the core services module further obtains the location owner's current location information from the location cache.

### Claim 49 (depends on 45)

The computer-readable medium of claim 45, wherein the location request comprises a subscription request identifying a subscribed event, and wherein the core services module further processes a subscription request from the location consumer, such that when the subscribed event occurs, the core services module:
(a) obtains the location owner's current location information from the location provider module;
(b) processes the current location information according to the owner profile; and
(c) transmits the processed current location information to the location consumer.

### Claim 50 (depends on 49)

The computer-readable medium of claim 49 further comprising a subscription module communicatively coupled to the core services module, wherein the subscription module:
(a) obtains the subscription request from the core services module;
(b) monitors the location owner's current location information for the subscribed event identified in the subscription request; and
(c) notifies the core services module when the subscribed event occurs.

### Claim 51 (depends on 50)

The computer-readable medium of claim 50 wherein the subscription module further stores subscription information corresponding to the subscription request in a subscription database communicatively coupled to the subscription module.

### Claim 52 (depends on 50)

The computer-readable medium of claim 50, wherein the subscription module further repeatedly notifies the core services module when the subscribed event occurs until a termination condition is met.

### Claim 53 (depends on 52)

The computer-readable medium of claim 52, wherein the termination condition is met after the expiration of a time period identified in the subscription request.

### Claim 54 (depends on 52)

The computer-readable medium of claim 52, wherein the termination condition is met after the subscribed event has occurred a certain number of times according to a value identified in the subscription request.

### Claim 55 (depends on 50)

The computer-readable medium of claim 50, wherein the subscribed event is a timer event, such that the subscribed event occurs periodically according to a time duration identified in the subscription request.

### Claim 56 (depends on 50)

The computer-readable medium of claim 50, wherein the subscribed event is a geographic event, such that the subscribed event occurs when the location owner's current location information changes in relation to a geographic area identified in the subscription request.

### Claim 57 (depends on 45)

The computer-readable medium of claim 45 further comprising an owner administration module communicatively coupled to the owner profile database that receives the owner profile from the location owner and stores the owner profile in the owner profile database.

### Claim 58 (depends on 45)

The computer-readable medium of claim 45 further comprising a notification module communicatively coupled to the core services module that facilitates the transmission of the processed current location information from the core services module to the location consumer in response to a location request.

### Claim 59 (depends on 45)

The computer-readable medium of claim 45 further comprising a consumer request module communicatively coupled to the core services module that obtains the location request from the location consumer and transmits the location request to the core services module.
