Systems and methods are presented for discovering a local location server associated with a local provider based on a relationship between the local provider and another regional/global provider. A mobile device discovers the local provider and queries a home location server which returns the address of a regional/global location server associated with the regional/global provider. A mobile device then queries the regional/global location server to discover the local location server and may then access the local location server to obtain location services. The method may be employed with the OMA SUPL location solution wherein the home location server may be an H-SLP and the local and regional/global location servers may be D-SLPs.
|
1. A method of supporting location services at a mobile device comprising:
receiving at the mobile device an identity of a first location provider;
querying a home location server for authorization to a first location server associated with the first location provider, the first location server providing location services to a first service area comprising a venue or building;
receiving an authorization from the home location server for access to a second location server associated with a second location provider, the second location server providing location services to a second service area larger than the first service area;
querying the second location server for authorization to the first location server;
receiving an authorization to access the first location server from the second location server; and
accessing the first location server to receive location services.
22. A device comprising:
means for receiving at the mobile device an identity of a first location provider;
means for querying a home location server for authorization to a first location server associated with the first location provider, the first location server providing location services to a first service area comprising a venue or building;
means for receiving an authorization from the home location server for access to a second location server associated with a second location provider, the second location server providing location services to a second service area larger than the first service area;
means for querying the second location server for authorization to the first location server;
means for receiving an authorization to access the first location server from the second location server; and
means for accessing the first location server to receive location services.
28. A mobile device comprising:
a memory; and
a processor coupled to the memory, wherein the processor is configured to:
receive at the mobile device an identity of a first location provider;
query a home location server for authorization to a first location server associated with the first location provider, the first location server providing location services to a first service area comprising a venue or building;
receive an authorization from the home location server for access to a second location server associated with a second location provider, the second location server providing location services to a second service area larger than the first service area;
query the second location server for authorization to the first location server;
receive an authorization to access the first location server from the second location server; and
access the first location server to receive location services.
25. A non-transitory computer readable instruction medium comprising instructions that, when executed by a processor of a mobile device, cause the mobile device to perform a method comprising:
receiving at the mobile device an identity of a first location provider;
querying a home location server for authorization to a first location server associated with the first location provider, the first location server providing location services to a first service area comprising a venue or building;
receiving an authorization from the home location server for access to a second location server associated with a second location provider, the second location server providing location services to a second service area larger than the first service area;
querying the second location server for authorization to the first location server;
receiving an authorization to access the first location server from the second location server; and
accessing the first location server to receive location services.
2. The method of
5. The method of
6. The method of
7. The method of
receiving at the mobile device the identity of the first location server wherein the querying of the home location server and the querying of the second location server include providing the identity of the first location server.
8. The method of
receiving at the mobile device the identity of the second location provider wherein the querying of the home location server and the querying of the second location server include providing the identity of the second location provider.
9. The method of
wherein the first location server is a first discovered SLP server (D-SLP) and wherein the second location server is a second D-SLP.
10. The method of
initiating a first SUPL session with the H-SLP; and
communicating the business name and a media access control (MAC) address of the AP to the H-SLP.
11. The method of
ending the first SUPL session with the H-SLP.
12. The method of
initiating a second SUPL session with the second D-SLP; and
communicating the first authentication data to the second D-SLP as part of the second SUPL session.
13. The method of
receiving second authentication data from the second D-SLP as part of the second SUPL session; and
ending the second SUPL session.
14. The method of
communicating the second authentication data to the AP associated with the first D-SLP; and
receiving approval from the first D-SLP to access a wide area network Internet connection via the AP using the device.
15. The method of
initiating a third SUPL session with the first D-SLP using the second authentication data; and
requesting assistance data (AD) from the first D-SLP.
17. The method of
performing a position measurement of the device using the first D-SLP and the AP.
18. The method of
19. The method of
receiving, from an advertising server via the first D-SLP, advertising information as part of a GAS response;
receiving an approval for display of the advertising information at the device;
and receiving AD at the device in response to the approval for display of the advertising information at the device.
20. The method of
21. The method of
receiving from the first location server, a time limit for the first location server to provide assistance data.
23. The device of
means for operating a location based services (LBS) application.
24. The device of
means for communicating with the first location server via the LBS application.
26. The non-transitory computer readable instruction medium of
27. The non-transitory computer readable instruction medium of
communicating a generic advertising service (GAS) initial request to the first location server with a request for assistance data (AD);
receiving, from an advertising server via the first location server, advertising information as part of a GAS response;
receiving an approval for display of the advertising information at the device;
and receiving AD at the device in response to the approval for display of the advertising information at the device.
29. The device of
|
The present application claims priority to provisional US. Patent Application No. 61/689,926, filed Jun. 15, 2012, entitled “Optimized Indoor Location Server Provision and Discovery”, the entire contents of which is herein incorporated by reference for all purposes
Aspects of the disclosure relate to networked computing technologies and location services. In particular, aspects of the disclosure relate to systems, methods, apparatus, and computer readable media for providing network based and network assisted positioning services to a mobile electronic device.
The Secure User Plane Location (SUPL) solution is a user plane location solution defined by the Open Mobile Alliance (OMA) that uses internet protocol technology to support location based services related to mobile devices. One focus of the SUPL solution is providing assistance data (AD) to a mobile device whose location is needed (e.g. by an application on the mobile device or by the user of the mobile device) to assist the mobile device to make suitable location related measurements and, in some cases, to compute its location using such measurements. While there are a variety of ways to provide location assistance data to a mobile device, SUPL provides a standardized environment with a simple client server model together with standardized protocols defining interaction between a SUPL location server, known as a SUPL Location Platform (SLP) and a mobile device, known as a SUPL Enabled Terminal (SET). The SUPL solution also supports the conveyance of a location estimate from a SET to an SLP, the conveyance of location related measurements from a SET to an SLP when the SLP rather than SET will compute the SET's location and the exchange of positioning and SUPL capabilities between a SET and an SLP. SUPL can, in addition, support various service related features that enhance simple positioning such as obtaining SET location estimates on a triggered or periodic basis and obtaining historic SET locations. The various capabilities supported by SUPL may significantly improve location support for mobile devices and may enable more accurate and reliable location of a mobile device in comparison to methods that rely on simple standalone positioning support in a mobile device based on measurements of, for example, the US Global Positioning System (GPS).
In devices that make use of SUPL services, the standard implementation involves a mobile device being assigned a fixed single home SLP (H-SLP) based on a pre-provisioned setting with the H-SLP being associated with either a home operator for the mobile device or some other preferred provider of location services. A device uses the pre-provisioned setting, which is the H-SLP address, to establish a connection with the device's single H-SLP when engaging in a SUPL location session. Information about additional local devices (e.g. wireless base stations and WiFi access points (APs) whose signals can be received by the device and used to help determine the device's current location) may then be accessed via the H-SLP. SUPL also defines more local SLPs, known as Discovered SLPs (D-SLPs) that may in some scenarios provide more extensive and appropriate information (e.g. better assistance data) to a device than its H-SLP. For example, when a device is roaming in a distant location from its H-SLP or is at a location (e.g. inside a building or at a venue for which its H-SLP has little or no information), a D-SLP nearby to the device (e.g. associated with the same building or venue within which the mobile device may be located) may be able to provide assistance data containing information for more base stations and access points local to the device than the device's H-SLP. This additional information may enable improved location support based on the device acquiring and measuring signals from these additional base stations and access points. An ability to discover and make use of suitable D-SLPs may therefore be an advantage to mobile devices and their users.
Various embodiments described herein include systems, methods, apparatus, and computer readable media for providing network based and network assisted positioning services to a mobile electronic device.
For example, one embodiment may be a method of supporting location services at a mobile device comprising: receiving at the mobile device an identity of a first location provider; querying a home location server for authorization to a first location server associated with the first location provider; receiving an authorization from the H-SLP for access to a second location server associated with a second location provider; querying the second location server for authorization to the first location server; receiving an authorization to access the first location server from the second location server; and accessing the first location server to receive location services.
Further embodiments of such a method may additionally function where the home location server is an H-SLP. Further embodiments of such a method may additionally function where the second location server is a D-SLP. Further embodiments of such a method may additionally function where the first location server is a D-SLP. Further embodiments of such a method may additionally function where the first and second location providers have a business relationship. Further embodiments of such a method may additionally function where the identity of the first location provider comprises an identity of an area supported by the first location provider.
Further embodiments of such a method may additionally comprise receiving at the mobile device the identity of the first location server wherein the querying of the home location server and the querying of the second location server include providing the identity of the first location server. Further embodiments of such a method may additionally comprises receiving at the mobile device the identity of the second location provider wherein the querying of the home location server and the querying of the second location server include providing the identity of the second location provider.
Further embodiments of such a method may additionally function where receiving at the device, identities for the first location server and the associated location provider comprises receiving a business name from an access point (AP) controlled by the first location server; wherein the first location server is a first discovered SLP server (D-SLP) and wherein the second location server is a second D-SLP.
Further embodiments of such a method may additionally function where querying the H-SLP for authorization to the first location server comprises: initiating a first SUPL session with the H-SLP; and communicating the business name and a media access control (MAC) address of the AP to the H-SLP. Further embodiments of such a method may additionally function where receiving the authorization from the H-SLP for the second location server associated with the associated location provider comprises receiving an IP address and first authentication data for the second location server; and ending the first SUPL session with the H-SLP.
Further embodiments of such a method may additionally function where querying the second location server for authorization to the first location server comprises: initiating a second SUPL session with the second D-SLP; and communicating the first authentication data to the second D-SLP as part of the second SUPL session. Further embodiments of such a method may additionally function where receiving the authorization to the first location server from the second location server comprises: receiving second authentication data from the second D-SLP as part of the second SUPL session; and ending the second SUPL session.
Further embodiments of such a method may additionally function where accessing the first location server comprises: communicating the second authentication data to the AP associated with the first D-SLP; and receiving approval from the first D-SLP to access a wide area network Internet connection via the AP using the device. Further embodiments of such a method may additionally function where accessing the first location server comprises: initiating a third SUPL session with the first D-SLP using the second authentication data; and requesting assistance data (AD) from the first D-SLP.
Further embodiments of such a method may additionally comprise receiving map data from the first D-SLP. Further embodiments of such a method may additionally comprise performing a position measurement of the device using the first D-SLP and the AP. Further embodiments of such a method may additionally function where the request for AD further comprises a generic advertising service (GAS) initial request.
Further embodiments of such a method may additionally comprise receiving, from an advertising server via the first D-SLP, advertising information as part of a GAS response; receiving an approval for display of the advertising information at the device; and receiving AD at the device in response to the approval for display of the advertising information at the device. Further embodiments of such a method may additionally function where the identities for the first location server and the associated location provider are received as part of a broadcast message from an access point. Further embodiments of such a method may additionally comprise receiving from the first location server, a time limit for the first location server to provide assistance data.
Another embodiment may be a device comprising: means for receiving at the mobile device an identity of a first location provider; means for querying a home location server for authorization to a first location server associated with the first location provider; means for receiving an authorization from the H-SLP for access to a second location server associated with a second location provider; means for querying the second location server for authorization to the first location server; means for receiving an authorization to access the first location server from the second location server; and means for accessing the first location server to receive location services. Further embodiments may comprise means for operating a location based services (LBS) application. Further embodiments may comprise means for communicating with the first location server via the LBS application.
Still another embodiment may be a non-transitory computer readable instruction medium comprising instructions that, when executed by a processor of a mobile device, cause the mobile device to perform a method comprising: receiving at the mobile device an identity of a first location provider; querying a home location server for authorization to a first location server associated with the first location provider; receiving an authorization from the H-SLP for access to a second location server associated with a second location provider; querying the second location server for authorization to the first location server; receiving an authorization to access the first location server from the second location server; and accessing the first location server to receive location services.
Further embodiments may function where the method further comprises receiving map data from the first location server and performing a position measurement of the device using the first location server and an access point associated with the first location server. Further embodiments may function where the method further comprises: communicating a generic advertising service (GAS) initial request to the first location server with a request for assistance data (AD); receiving, from an advertising server via the first location server, advertising information as part of a GAS response; receiving an approval for display of the advertising information at the device; and receiving AD at the device in response to the approval for display of the advertising information at the device.
Another embodiment may be a mobile device comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to: receive at the mobile device an identity of a first location provider; query a home location server for authorization to a first location server associated with the first location provider; receive an authorization from the H-SLP for access to a second location server associated with a second location provider; query the second location server for authorization to the first location server; receive an authorization to access the first location server from the second location server; and access the first location server to receive location services.
Another embodiment may function where the processor is further configured to execute a location based services (LBS) application and communicate with the first D-SLP via the LBS application.
Another embodiment may be a method comprising: receiving, at a discovered secure user platform location (SUPL) server (D-SLP) a request from a device for authorization to access a second D-SLP; authenticating information from an H-SLP received as part of the request to access the second D-SLP; and communicating an authorization to access the second D-SLP to the device after authenticating the information from the H-SLP.
Another embodiment may function where the authorization to access the second D-SLP comprises an authorization time limit. Another embodiment may function where the authorization to access the second D-SLP comprises an authorization area limit that limits access by the device to assistance data (AD) for a predefined area.
Another embodiment may be a discovered secure user platform location (SUPL) server (D-SLP) comprising: means for receiving, at the D-SLP a request from a device for authorization to access a second D-SLP; means for authenticating information from an H-SLP received as part of the request to access the second D-SLP; and means for communicating an authorization to access the second D-SLP to the device after authenticating the information from the H-SLP.
Another embodiment may further comprise: means for determining a time limit associated with the authenticating information from the H-SLP. Another embodiment may further comprise: means for identifying an advertising server to provide advertising information to the device as part of the authorization to access the second D-SLP.
Another embodiment may be a non-transitory computer readable instruction medium comprising instructions that, when executed by a processor perform a method comprising: receiving, at a discovered secure user platform location (SUPL) server (D-SLP) a request from a device for authorization to access a second D-SLP; authenticating information from an H-SLP received as part of the request to access the second D-SLP; and communicating an authorization to access the second D-SLP to the device after authenticating the information from the H-SLP.
Another embodiment may function where the method further comprises: communicating a set of authorized assistance data functions associated with the first D-SLP to the device. Another embodiment may function where the method further comprises communicating a SUPL end message with the authorization to access the second D-SLP. Another embodiment may be a discovered secure user platform location (SUPL) server (D-SLP) comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to: receive a SUPL start message from a device initiating a SUPL session; receive a request from the device for authorization to access a second D-SLP as part of the SUPL session; authenticate information from an H-SLP received as part of the request to access the second D-SLP; and communicate an authorization to access the second D-SLP to the device after authenticating the information from the H-SLP as part of the SUPL session.
Another embodiment may function where the processor is further configured to: address a database of SLP relationships to verify the information from the H-SLP. Another embodiment may function where the processor is further configured to communicate a message to the H-SLP as part of the authentication of the information from the H-SLP; and receive a verification message from the H-SLP as part of the authentication of the information from the H-SLP.
While various specific embodiments are described, a person of ordinary skill in the art will understand that elements, steps, and components of the various embodiments may be arranged in alternative structures while remaining within the scope of the description. Also, additional embodiments will be apparent given the description herein, and thus the description is not referring only to the specifically described embodiments, but to any embodiment capable of the function or structure described herein.
A further understanding of the nature and advantages of various embodiments may be realized by reference to the following figures. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
Embodiments disclosed herein are related to systems for providing location services and for determining a position of an electronic device. In certain embodiments, a framework is provided to support global and regional location services alongside and integrated with highly local position services. Such systems may provide security and reliability features of a regional or global system in conjunction with the highly specialized local information of a local position service in an integrated fashion. Such embodiments may further enable local support of indoor positioning in private or semi-private spaces integrated with regional or global systems. Aspects of such embodiments may additionally relate to SUPL SLP servers, to determine the location of a computing device.
Terms recited herein may be used to encompass functionality or features as described below. Other functionality and/or features may instead or additionally be utilized in some embodiments. SUPL is a location solution based on interaction between a SET and an SLP using TCP/IP as a transport mechanism in which SUPL messages, defined according to the SUPL User Plane Location Protocol (ULP), are exchanged between a SET and an SLP to set up and manage SUPL location sessions and to transport needed assistance data, location information (e.g. location estimate and/or location measurements) and SUPL and positioning capabilities. A SUPL session may typically employ one or more positioning protocols that may convey some or all of the assistance data transferred from an SLP to a SET and some or all of the location measurements and/or location estimate transferred from the SET to the SLP. Typically, certain SUPL messages (e.g., a SUPL POS message) may carry one or more embedded messages defined according to a positioning protocol as a means of invoking and supporting positioning within a SUPL session. Examples of positioning protocols supported by SUPL include Radio Resource Location Services (LCS) Protocol (RRLP), Radio Resource Control Protocol (RRC), LTE Positioning Protocol (LPP), IS-801 and LPP Extensions (LPPe). Typically, LPPe may extend LPP such that an LPP positioning protocol message may contain an embedded LPPe message. RRLP, RRC and LPP are defined by an organization known as the 3rd Generation Partnership Project (3GPP), IS-801 is defined by an organization known as the 3rd Generation Partnership Project 2 (3GPP2) and LPPe is defined by OMA, all in publicly available documents. The terms location, location estimate, position and position estimate are used interchangeably herein and refer to a location of a mobile device which may be expressed in absolute terms (e.g. using latitude, longitude and possibly altitude coordinates), or in a civic form (e.g. as a postal address) or in relative terms (e.g. as a distance and direction from some other known location).
A mobile device or SET may be referred to as a User Equipment (UE), mobile terminal, terminal, wireless device, device, mobile station or by some other name. Examples of a SET are cellphones, smartphones, laptops, tablets or any IP enabled direction providing electronics, though any computing device with location services may function as a SET in various embodiments described herein. Typically a SET will support wireless communications using such radio technologies as Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), Long Term Evolution LTE), High Rate Packet Data (HRPD) and IEEE 802.11 WiFi. GSM, WCDMA and LTE are technologies defined by 3GPP. CDMA and HRPD are technologies defined by 3GPP2. A SET may also or instead support wireline communication using broadband access from a Local Area Network (LAN) or using Packet Cable or DSL.
A Home SLP (H-SLP) is a particular kind of SUPL location server, and may include the SLP that is directly associated with and/or primarily responsible for providing location services to a particular SET, for example through a network contract that may be associated with a cellular phone carrier service. A Discovered SLP (D-SLP) may include an SLP operated by a particular business or the owner of a venue (e.g. a hospital, airport, shopping mall, sports stadium) or a local network service provider that may each provide improved location services to a SET within a defined D-SLP service area compared to services a SET may otherwise receive from an H-SLP.
An access point (AP) may refer to any transmission point that communicates with a nearby mobile device, such as a wireless transmitter according to any number of IEEE standards (for example one or more of the 802.11 standards) or using Bluetooth or other short range wireless technologies.
SUPL location support may be provided to a SET by an H-SLP communicating over IP with the SET. In certain areas and environments, however, an H-SLP may have limited ability to communicate effectively with the SET and/or to provide the SET with appropriate location assistance data and/or compute an accurate location estimate from location measurements that a SET was able to obtain. Examples of such areas may be indoor locations, or locations where a third party has important location related information that the H-SLP does not have access to. In such environments a D-SLP may be implemented by a local service provider or venue owner to provide improved local information to a SET. In some scenarios, a D-SLP may be supported by a provider separate from a local service provider or venue owner but where there is a business relationship to provide location services to SETs who are within a certain area owned or associated with the local service provider or venue owner. In some scenarios, a D-SLP may be local to a particular service area (e.g. a venue or building) and may be referred to as a “local D-SLP” and may then be operated specifically to provide location services to this particular service area, In certain other scenarios, a D-SLP may be regional and may be referred to as a “regional D-SLP” and may support location services in a number of local services areas throughout a certain region such as a town, city, county, state or other extensive area. In still other scenarios, a D-SLP may be global and may be referred to as a “global D-SLP” and may then support location services in a number of services areas throughout a whole country or over the entire world.
An H-SLP provider may negotiate with a D-SLP provider to allow a SET subscriber of the H-SLP to have access to the D-SLP as part of a business relationship between the H-SLP provider and the D-SLP provider, for example. When a SET discovers that it is in a location with a D-SLP, the SET may query its H-SLP for authorization to access the D-SLP for location services through an authorization process. If access to the D-SLP is authorized by the H-SLP, the SET may then access the D-SLP to obtain location services such as receiving assistance data to support location determination or sending location measurements to the D-SLP for the D-SLP to compute a location estimate and return it to the SET. In some scenarios, a SET may be in some local area (e.g. inside a venue such as a shopping mall, airport, hospital, college campus) where adequate location support is not possible from its H-SLP but where the SET is not aware of a particular D-SLP that may provide better location services. In such a scenario, a SET may query its H-SLP to provide the address of some D-SLP authorized by the H-SLP to provide location services for the SET in the current local area. In such a query interaction, the H-SLP may both supply the address of a D-SLP and authorize access to the D-SLP in the same interaction.
In certain embodiments, a local D-SLP may have improved local information as compared with a regional D-SLP, a global D-SLP or an H-SLP due to being owned or operated in association with a building owner or venue owner who has access to information such as building floor plans, layout of a campus and/or placement of APs and base stations that are not so easily accessible to the providers of global or regional D-SLPs or an H-SLP. For example, the owner of a multi-story library may uniquely be able to provide specific location information around stacks of books and staircases within the library or the owner of a large building may be able to provide specific non-public information related to interior walls and corridors in the building, including emergency exit paths for example. One other example of this may be specific information related to the characteristics (e.g. WiFi radio interface types and WiFi AP addresses) and placements (e.g. relative or absolute location coordinates) of local wireless access points (e.g. WiFi APs) within a building or venue. WiFi APs may be used in conjunction with SUPL and an SLP to support location of a mobile device. Those of skill in the art will appreciate that while the term WiFi is used to describe certain embodiments, this term does not limit the scope of these embodiments. Rather, these embodiments may utilize any WLAN or wide area signaling and/protocols in certain implementations. For example, Bluetooth technology, LTE or WCDMA may be utilized in certain embodiments instead of or in addition to WiFi. In addition, cellular base stations, such as Femtocells or home base stations, may be used in place of APs and WiFi APs.
Provision of commercial location services to mobile wireless users may include various forms. Two of these are described below. The first form is provision of a standards based user plane location service such as SUPL by a wireless operator to its subscribers as described previously herein. The second form is provision of a proprietary location service by a vendor, service provider or wireless operator such as those provided by Qualcomm™ or Nokia™ or a global service provider such as Google™ to its users. In both cases, user devices are provided with the address or addresses of location servers belonging to the service provider which can be used to establish a location session when the device would like to determine its location. This may change as small local providers such as owners of shopping malls, airports, hospitals, convention centers, office buildings, and university campuses seek to provide reliable and accurate location services and associated services or applications. Such services and applications may include advertising, direction finding, and/or information services among others, which operate over the local areas that these small local providers control. In such cases, local providers may use local servers to provide location services. Such local servers may be able to provide superior location services to users inside the associated local areas. This may be due to better knowledge of radio sources such as WiFi and Bluetooth access points that may be used to obtain location and better knowledge of building and/or venue layout which may be used to provide mapping data and building floor plans. Other WLAN transmitters or other types of access points may be known in some embodiments. Local servers may also have access to other information such as points of interest relevant to location derivation and/or location usage.
One potential issue in certain implementations of local location related services may be in making devices in the local areas aware of the existence of local location servers. In particular, devices not only need to obtain the address of any local location server but also receive an authorization from a trusted source such as an H-SLP which may verify that a local location server can be considered as a trustworthy source of location services and other related services in the local area. Such trustworthiness may be important from a privacy and security standpoint whereby location information obtained for a particular mobile device will not be provided by a location server to clients not authorized by the user of the mobile device to receive this information. In addition, authorizing a location server may be needed to assure a mobile device in advance that the owner of the location server will be able to bill the user of the mobile device or the mobile user's home network operator or H-SLP provider for any location services provided to the user as opposed to not receiving such location services due to an inability to bill for these services.
To assist with accessing a local location server such as a local SLP, the concept of an SLP provider may be used. An SLP provider may be the owner or operator of an SLP. An SLP provider may be global, regional or local according to the type of SLP that it deploys. Providers may have relationships with one another such that an H-SLP or D-SLP belonging to a provider A may authorize any D-SLP belonging to another provider B (and possibly vice-versa). The address of an SLP which may be a Fully Qualified Domain Name (FQDN) may include the provider name as a means of associating an SLP to a particular provider. A mobile device (e.g. SET) may be able to discover the SLP provider for a local area—e.g. via WiFi interaction with a locally accessible WiFi AP or from WiFi AP broadcast information.
Embodiments described herein provide an architectural framework that can support coexistence of and coordination between traditional global or regional user plane location services from operators, vendors and other major service providers and location services from small providers within small local areas. The framework allows for partnerships between various location providers, where a major provider like Cisco™, Nokia™ or Qualcomm™ could support location services from small providers via equipment sales and/or service management. Certain embodiments comprise methods and procedures that are defined to enable optimal location server discovery by a device when in any local provider's area regardless of the service provider normally used by the device. Although the embodiments described herein relate generally to the OMA SUPL location solution and to location servers that are different types of SUPL SLPs, it may be seen by those with normal ability in the art that the embodiments can be extended to other location solutions and to location servers other than SUPL SLPs—e.g. to enable discovery of local location servers other than SLPs.
Location server 130 may be an SLP server, such as a D-SLP or H-SLP server as described above, but may be any location server that provides location services in a manner consistent with the embodiments described herein. Map and access network database 150 may comprise data such as map data, location information, points of interest, or other data that may be used by a location service. This information may derive from a third party service, a crowd sourced database (which may collect location related information provided by mobile devices such as mobile device 110), or from any suitable source that provides information relevant to location services. LBS application 160 may be an application, program, server computer, or service that uses location information. Examples include map programs on computing devices that show current locations using location services, and that provide directions based on a current location. LBS application 160 may further use information obtained from database 150 as well as location information obtained from location server 130 to provide application information to a mobile device 110. LBS application 160 may provide various location related services to mobile device 110 and/or to the user of mobile device 110 such as direction finding and navigation within a particular local area (e.g. building or venue) and/or provision of information about a particular local area that may be related to mobile device 110 being inside the local area or being at or nearby to some particular location in the local area. Such location related information may include information on a particular sales event inside a shopping mall, the whereabouts of a particular product or service of interest to the user of mobile device 110, nearby vacant car parking space, etc.
Additional examples of data flows within architecture 100 are shown in elements S1 through S9 of
SLP 230 in architecture 200 may include the following modules (or functional components): (i) map provision 232 which may provide map AD to SET 210; (ii) AD provision 234 which may provide other location related AD to SET 210; (iii) WiFi AP and Bluetooth (BT) AP control 236 which may configure and control access network 220 to report location related information (e.g. location measurements) for SET 210 and may provide SET 210 with assistance data either point to point or via broadcast; (iv) location computation 238 which may compute a location for SET 210 based on location related measurements received from access network 220 and/or from SET 210; and (v) SLP discovery 239 which may enable discovery of a local or more local SLP for SET 210 than SLP 230 and may support SLP interactions described later herein with reference to
Assistance Data (AD) provided to SET 210 by SLP 230 and/or by access network 220 may contain information (e.g. addresses, location coordinates, coverage areas, transmission characteristics) for APs and base stations that may be part of access network 220, or may be part of any other access network.
In certain embodiments, crowd sourcing of UE measurements of APs may be implemented. Such a system may enable an SLP 230 to request a SET 210 to provide information such as addresses and measurements for local APs. A SET 210 may also provide this information unsolicited to an SLP 230 via a trigger or rule for information sharing. Certain embodiments may also enable a SET 210 to provide crowd sourcing information to its H-SLP when the UE is otherwise using a local D-SLP (e.g. a D-SLP that may be SLP 230).
Architectures 100 and 200 exemplified in
In conjunction with a multi-step discovery and authorization process exemplified above in association with
If a SET provides both a WLAN MAC address and associated SSID(s) received from a WiFi AP to an H-SLP when querying for an SLP address (e.g. as in step S32 in
In an alternative implementation, a regional or global provider P1 could provide to its business partners a list L of the names (e.g. SSIDs) of local providers that it supports and their approximate geographic locations but without details of local provider D-SLPs or WiFi support. If a SET then queries its H-SLP for an authorized D-SLP for some local provider P2 and the H-SLP is able to determine that the regional or global provider P1 supports the local provider P2 (e.g. from information in the list L provided by P1 to the operator of the H-SLP), then the H-SLP may return the address of an authorized D-SLP belonging to provider P1 (e.g. as in step S33 in
In various alternative embodiments, SLP provider service areas may overlap if there is more than one local provider for the same area or if one or more regional or global providers support the same local areas well. In such embodiments with overlapping SLP provider service areas, a SET may not discover all providers for its current local area by listening to local WiFi and/or BT transmission. This may mean that a SET is not aware of a local service provider for its current location that may offer better service (e.g. less expensive, more extensive or higher quality service) than other local providers that a SET discovers from local WiFi and/or BT transmission. However, a SET that uses SUPL for D-SLP discovery and authorization may still be directed to the SLP provider preferred by its H-SLP to provide better (or optimum) service. Such optimization may be enabled if a SET provides all discovered local providers and related (e.g. regional or global) providers to its H-SLP when querying for a local D-SLP (e.g. in step S32 of
In general in association with embodiments discussed above in association with
As an alternative or supplement to using provider identifiers to discover a local D-SLP, as exemplified in
TABLE 1
Possible Correspondence of Elements in FIG.S 3, 4, 5, 6 and 7
FIG.
FIG.
FIG.
Element
FIG. 3
FIG. 4
5
6
7
Mobile Device (SET)
310
410
510
610
710
WiFi AP(s) accessible by the
390
420, 422
590
690
790
SET
Local D-SLP
320
430
520
622
722
Regional or Global D-SLP
330
440
624
724
H-SLP for the SET
312
450
626
726
Corresponding elements in Table 1 are shown in like rows where the first entry of each row indicates the type of element. Thus, for example, row 4 shows corresponding elements for a local D-SLP with element 320 in
At step S503 and independently of whether steps S501 and S502 are performed or not, SET 510 may send a measurement request frame with a location identifier request to the local WiFi AP 590 to request a location Universal Resource Identifier (URI) for SET 510. A location URI is typically assigned by a location server on behalf of a terminal and may contain an address for the location server, a protocol identifier for using the location URI and identification, typically meaningful only to the location server, for the terminal AP 590 may then, if authorized to do so, return such a location URI to SET 510 by returning a Measurement Report frame containing a Location Identifier Report that includes the location URI) in step S506 and may then skip steps S504 and S505. If AP 590 is not authorized to assign or return a location URI on behalf of AP 590, it may request a location URI from AP 590 at step S504 (and provide the identification of SET 510 as part of the request) and may receive back the location URI at step S505 before then transferring the location URI to SET 510 at step S506. SET 510 may then obtain the local D-SLP 520 address from the location URI and either use this address to access D-SLP 520 for location services or query its H-SLP (e.g. H-SLP 450 in
In S804, a home location server (e.g. an H-SLP) of the device is queried to authorize and, if not already obtained by the device, also provide an address of the first location server based on the identities for the first location provider and, if obtained at S802, the first location server. If the home location server is able to authorize and if needed provide an address of the first location server to the device, it will and the process may then terminate (not shown in
In S808, the device queries the second location server for authorization to and, if needed, for the address of the first location server, and in S810, the device receives an authorization to, and if needed also an address of, the first location server from the second location server. In S812, the device may access the first location server to obtain location services such as assistance data or an estimated location.
While certain global, local, and regional SLPs are described above, additional specialized SLPs may be implemented to specialize in certain functions, such as an SLP specialized as a discovery or directory server (e.g. to authorize and provide addresses for local D-SLPs), specialized in AP control, or specialized in local UE location support. In various embodiments, structures may be implemented to identify SLP functions such as SLP discovery, Map data delivery, AD delivery, or other functions. In one embodiment, an H-SLP or proxy D-SLP may provide the authorized functions supported by each authorized D-SLP to the SET. In another alternative embodiment, the SUPL SLP capabilities parameter may be extended with supported SLP functions to enable SLP functions to be provided to a SET at the start of any SUPL session. Further, H-SLP functions may be enabled to be configured in a SET.
In certain embodiments, SUPL may be enhanced with additional commands and structures. For example, in a SUPL START message sent by a SET to an H-SLP or proxy D-SLP to request a new D-SLP address or authorization of a discovered D-SLP address, a provider name may be added for discovered or preferred providers for a D-SLP. Additionally, related provider names may be added to support multi-step SLP discovery. Further, an SSID parameter may be added obtained from a WLAN AP and a civic address for a location of or nearby to the SET may be added to convey a provider ID and/or area ID. Additionally, in a SUPL END message sent to authorize a D-SLP or provide an authorized D-SLP address, a provider name may be added to indicate the provider of an authorized D-SLP, which may be used by a SET to help determine priority if provider priorities are configured in or provided to the SET by an H-SLP. An indication of a local area served by an authorized D-SLP may also be added to a SUPL END message and a civic address may be added to convey a provider ID and/or area ID. An extended D-SLP services parameter may be added to a SUPL END message to indicate additional functions authorized for a D-SLP. An indication that “a D-SLP address requested to be authorized by a SET is unknown” may also be added to such a SUPL END message. Such an indication may enable the SET to query another SLP such as a proxy D-SLP to authorize the D-SLP address. Further embodiments may include an indication of whether an authorized D-SLP address is optimum for the SET location (e.g. is a local SLP) or not optimum (e.g. is a regional or global SLP).
Certain embodiments may be integrated with the IEEE 802.11 protocol such as the 802.11v set of enhancements. In such embodiments, a UE may request the civic address of a WiFi AP using the 802.11v Location Request and Report messages. A civic address may be requested in IETF RFC 4776 format allowing inclusion of country, city, street address, building name, floor, room number. Alternative embodiments may be used to discover the local provider and area IDs when such IDs are included as part of a civic address.
To assist in obtaining a local D-SLP address, a SET may request a location reference from a WiFi AP using the 802.11v Location Identifier Request and Report messages. In such embodiments, a location reference may be a URI containing a location server address, a protocol indication and a reference to the SET. The SET may then treat the location server address portion of a location reference as a potential local SLP address and the address may indicate that the server supports SUPL and/or could contain the provider name.
Additional embodiments implemented with 802.11 may include added broadcast or request of WiFi AN provider names and any related providers, broadcast of civic addresses, broadcast of local D-SLP addresses, and/or provision of local D-SLP authentication data for SUPL authentication of a SET by a local D-SLP. Additional such implementations may broadcast location AD, for example, carried using LPP/LPPe or LPPe within 802.11 frames.
Further embodiments may include interworking elements in conjunction with 802.11u. Such embodiments may be included in 802.11 beacon and probe response frames. These may include venue related information such as a venue group (e.g., Assembly, Business, Outdoor, etc.) and/or a venue type (e.g., Arena, Stadium, Museum, Airport, etc.). An Advertisement Protocol Element may be included in Beacon and Probe Response frames. This may contain supported Advertisement Protocol ID(s) together with Advertisement Control information (e.g., length of Query Response message). Advertisement protocols may be included such as an Access Network Query Protocol (e.g. an 802.11 native advertisement protocol) and/or a vendor specific protocol wherein a header may contain an Organizationally Unique Identifier of the entity that has defined the content. Such information may be used to convey information on location providers, area IDs and location servers.
As shown in
Still further embodiments implemented with 802.11u may include an access network query protocol (ANQP), which may be a native advertisement protocol included in GAS request/response frames (e.g. sent as exemplified in
Thus, in various alternative embodiments, enhancements to SUPL, 802.11 and/or LPPe may be included for improved support of D-SLP discovery and authorization.
An example of a computing system in which various aspects of the disclosure may be implemented may now be described with respect to
The computer system 1000 is shown comprising hardware elements that can be electrically coupled via a bus 1005 (or may otherwise be in communication, as appropriate). The hardware elements may include one or more processors 1010, including without limitation one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 1015, which can include without limitation a camera, a mouse, a keyboard and/or the like; and one or more output devices 1020, which can include without limitation a display unit, a printer and/or the like.
The computer system 1000 may further include (and/or be in communication with) one or more non-transitory storage devices 1025, which can comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, a solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like. Such storage devices may be configured to implement any appropriate data storage, including without limitation, various file systems, database structures, and/or the like.
The computer system 1000 may also include a communications subsystem 1030, which can include without limitation a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device and/or chipset (such as a Bluetooth® device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. The communications subsystem 1030 may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, the computer system 1000 may further comprise a non-transitory working memory 1035, which can include a RAM or ROM device, as described above.
The computer system 1000 also may comprise software elements, shown as being currently located within the working memory 1035, including an operating system 1040, device drivers, executable libraries, and/or other code, such as one or more application programs 1045, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configuration systems, provided by other embodiments, as described herein. Merely by way of example, one or more procedures described with respect to the method(s) discussed above, might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general purpose computer (or other device) to perform one or more operations in accordance with the described methods. Any device described herein, such as location server 130, AP 390, SET 410, or any other device, server or otherwise described system may include such elements as a processor, display, communication subsystem, memory, or any other such element as shown in
A set of these instructions and/or code might be stored on a computer-readable storage medium, such as the storage device(s) 1025 described above. In some cases, the storage medium might be incorporated within a computer system, such as computer system 1000. In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as a compact disc), and/or provided in an installation package, such that the storage medium can be used to program, configure and/or adapt a general purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer system 1000 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 1000 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.) then takes the form of executable code.
Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
Some embodiments may employ a computer system (such as the computer system 1000) to perform methods in accordance with the disclosure. For example, some or all of the procedures of the described methods may be performed by the computer system 1000 in response to processor 1010 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 1040 and/or other code, such as an application program 1045) contained in the working memory 1035. Such instructions may be read into the working memory 1035 from another computer-readable medium, such as one or more of the storage device(s) 1025. Merely by way of example, execution of the sequences of instructions contained in the working memory 1035 might cause the processor(s) 1010 to perform one or more procedures of the methods described herein.
The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the computer system 1000, various computer-readable media might be involved in providing instructions/code to processor(s) 1010 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). For example, location server 130 and mobile device 110, along with any other device described herein, may include a machine readable medium. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical and/or magnetic disks, such as the storage device(s) 1025. Volatile media include, without limitation, dynamic memory, such as the working memory 1035. Transmission media include, without limitation, coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 1005, as well as the various components of the communications subsystem 1030 (and/or the media by which the communications subsystem 1030 provides communication with other devices). Hence, transmission media can also take the form of waves (including without limitation radio, acoustic and/or light waves, such as those generated during radio-wave and infrared data communications).
Some embodiments may employ a computer system (such as the processor 1010) to perform methods in accordance with the disclosure. For example, some or all of the procedures of the described methods may be performed by the viewing apparatus in response to the processor executing one or more sequences of one or more instructions (which might be incorporated into an operating system and/or other code, such as an application program) contained in working memory. Such instructions may be read into the working memory from another computer-readable medium, such as one or more of the storage device(s). Merely by way of example, execution of the sequences of instructions contained in the working memory might cause the processor(s) to perform one or more procedures of the methods described herein.
Again, embodiments employing computer systems described herein are not limited to being physically connected to the viewing apparatus. Processing may occur in another apparatus, connected via wire or wirelessly to the viewing apparatus. For example, a processor in a phone or instructions for executing commands by a phone or tablet may be included in these descriptions. Similarly, a network in a remote location may house a processor and send data to the viewing apparatus.
The terms “machine-readable medium” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the processor 1010, various computer-readable media might be involved in providing instructions/code to processor(s) 1010 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical and/or magnetic disks. Volatile media include, without limitation, dynamic memory, such as flash memory or DDR3 RAM. Transmission media include, without limitation, coaxial cables, copper wire and fiber optics, as well as the various components of a communications subsystem (and/or the media by which the communications subsystem provides communication with other devices). Hence, transmission media can also take the form of waves (including without limitation radio, acoustic and/or light waves, such as those generated during radio-wave and infrared data communications).
Computer system 1000 when used to implement a mobile device, UE or SET may contain inertial sensors 1050 to assist location of computer system 1000 and/or may contain an antenna 1032 or additional antennas and hardware (e.g. processors, memory, communications support) dedicated or enabled to support reception of navigation satellite signals from one or more Global Navigation Satellite Systems to enable location of computer system 1000. Computer system 1000 may further include an antenna or antennas and hardware (e.g. processors, memory, transceivers not shown in
In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media may include computer data storage media. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this disclosure. “Data storage media” as used herein refers to manufactures and does not refer to transitory propagating signals. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also be included within the scope of computer-readable media.
The code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec. Also, the techniques could be fully implemented in one or more circuits or logic elements.
The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a codec hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware stored on computer-readable media.
Various examples have been described. It will be understood by a person of ordinary skill in the art that the above examples are illustrative, and that alternative embodiments are possible using various combinations and alternatives to the embodiments described herein without departing from the scope of the invention. These and other alternatives may therefore operate are within the scope of the following claims.
In various embodiments as described herein, computing devices may be networked in order to send and receive signals both to implement location measurements and also to communicate general information between computing devices. For example the links shown in
Certain embodiments of the invention operate in a networked environment, which can include a network 1110. The network 1110 can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially-available protocols, including, without limitation, TCP/IP, SNA, IPX, AppleTalk, and the like. Merely by way of example, the network 1110 can be a local area network (“LAN”), including, without limitation, an Ethernet network, a Token-Ring network and/or the like; a wide-area network (WAN); a virtual network, including, without limitation, a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephone network (“PSTN”); an infra-red network; a wireless network, including, without limitation, a network operating under any of the IEEE 802.11 WiFi suite of protocols, the Bluetooth™ protocol known in the art, and/or any other wireless protocol such as GSM, WCDMA, CDMA, HRPD and LTE; and/or any combination of these and/or other networks. Network 1110 may enable communication and interaction between certain pairs of elements shown and described with reference to
Embodiments of the invention can include one or more server computers 1160. Each of the server computers 1160 may be configured with an operating system, including, without limitation, any of those discussed above, as well as any commercially (or freely) available server operating systems. Each of the servers 1160 may also be running one or more applications, which can be configured to provide services to one or more user computing devices 1105 and/or other servers 1160.
Merely by way of example, one of the servers 1160 may be a web server, which can be used, merely by way of example, to process requests for web pages or other electronic documents from user computing devices 1105 in addition to the wireless location measurement usage described throughout. The web server can also run a variety of server applications, including HTTP servers, FTP servers, CGI servers, database servers, Java™ servers, and the like. In some embodiments of the invention, the web server may be configured to serve web pages that can be operated within a web browser on one or more of the user computing devices 1105 to perform methods of the invention.
The server computers 1160, in some embodiments, might include one or more application servers, which can include one or more applications accessible by a client running on one or more of the client computers 1105 and/or other servers 1160. Merely by way of example, the server(s) 1160 can be one or more general purpose computers capable of executing programs or scripts in response to the user computing devices 1105 and/or other servers 1160, including, without limitation, web applications (which might, in some cases, be configured to perform methods of the invention). Merely by way of example, a web application can be implemented as one or more scripts or programs written in any suitable programming language, such as Java™, C, C# or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming/scripting languages. The application server(s) can also include database servers, including without limitation those commercially available from Oracle™, Microsoft™, Sybase™ IBM™, and the like, which can process requests from clients (including, depending on the configurator, database clients, API clients, web browsers, etc.) running on a user computing device 1105 and/or another server 1160. In some embodiments, an application server can create web pages dynamically for displaying the information in accordance with embodiments of the invention, such as information communicated from an SLP to a web page for viewing by an authorized third party tracking request. Data provided by an application server may be formatted as web pages (comprising HTML, Javascript, etc., for example) and/or may be forwarded to a user computing device 1105 via a web server (as described above, for example). Similarly, a web server might receive web page requests and/or input data from a user computing device 1105 and/or forward the web page requests and/or input data to an application server. In some cases a web server may be integrated with an application server.
In accordance with further embodiments, one or more servers 1160 can function as a file server and/or can include one or more of the files (e.g., application code, data files, etc.) necessary to implement methods of the invention incorporated by an application running on a user computing device 1105 and/or another server 1160. Alternatively, as those skilled in the art will appreciate, a file server can include all necessary files, allowing such an application to be invoked remotely by a user computing device 1105 and/or server 1160. It should be noted that the functions described with respect to various servers herein (e.g., application server, database server, web server, file server, etc.) can be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters. Servers 1160 may represent one or more servers shown in
In certain embodiments, the system can include one or more databases 1120. The location of the database(s) 1120 is discretionary: merely by way of example, a database 1120a might reside on a storage medium local to (and/or resident in) a server 1160a (and/or a user computing device 1105). Alternatively, a database 1120b can be remote from any or all of the computers 1105 or servers 1160, so long as the database 1120b can be in communication (e.g., via the network 1110) with one or more of these. In a particular set of embodiments, a database 1120 can reside in a storage-area network (“SAN”) familiar to those skilled in the art. (Likewise, any necessary files for performing the functions attributed to the computers 1105 or servers 1160 can be stored locally on the respective computer and/or remotely, as appropriate.) In one set of embodiments, the database 1120 can be a relational database, such as an Oracle™ database, that is adapted to store, update, and retrieve data in response to SQL-formatted commands. The database might be controlled and/or maintained by a database server, as described above, for example. Such databases may store information related to AP location and identification, securing information, or other such information that may enable various embodiments of network location according to the embodiments described herein. Databases 1120 may represent one or more databases shown and described in relation to
The methods, systems, and devices discussed above are examples. Various embodiments may omit, substitute, or add various procedures or components as appropriate. For instance, in alternative configurations, the methods described may be performed in an order different from that described, and/or various stages may be added, omitted, and/or combined. Also, features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples that do not limit the scope of the disclosure to those specific examples.
Specific details are given in the description to provide a thorough understanding of the embodiments. However, embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the embodiments. This description provides example embodiments only, and is not intended to limit the scope, applicability, or configuration of various embodiments. Rather, the preceding description of the embodiments will provide those skilled in the art with an enabling description for implementing embodiments. Various changes may be made in the function and arrangement of elements without departing from the spirit and scope of various embodiments.
Also, some embodiments were described as processes depicted in a flow with process arrows. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figures. Furthermore, embodiments of the methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the associated tasks may be stored in a computer-readable medium such as a storage medium. Processors may perform the associated tasks.
Having described several embodiments, various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the disclosure. For example, the above elements may merely be a component of a larger system, wherein other rules may take precedence over or otherwise modify the application various embodiments. Also, a number of steps may be undertaken before, during, or after the above elements are considered.
Fischer, Sven, Edge, Stephen William, Wachter, Andreas Klaus
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6785542, | Feb 28 2001 | ACCESS CO , LTD | Resource proxy for mobile wireless electronic devices |
7454192, | Feb 04 2005 | Sprint Communications Company, L.P. | Postal address validation using mobile telephone location information |
8019347, | Nov 21 2007 | Qualcomm Incorporated | Method and apparatus for RAN assisted location update |
8200247, | Feb 08 2010 | GOOGLE LLC | Confirming a venue of user location |
8229389, | Oct 11 2004 | Apple Inc | Method for obtaining location information for emergency services in wireless multimedia networks |
8320931, | Jan 08 1999 | SKYHOOK HOLDING, INC | Geo-fencing in a wireless location system |
8463295, | Dec 07 2011 | PayPal, Inc | Systems and methods for generating location-based group recommendations |
8489669, | Jun 07 2000 | Apple Inc | Mobile data processing system moving interest radius |
8493206, | Jul 30 2010 | GRAVITY JACK, INC | Augmented reality and location determination methods and apparatus |
8498807, | Oct 14 2010 | Verizon Patent and Licensing Inc. | Method and system for providing expanded access to navigational services |
8700063, | Aug 09 2009 | Qualcomm Incorporated | Systems and methods for generating called device location based on cell sector information |
20030060214, | |||
20040015537, | |||
20040100937, | |||
20040137918, | |||
20040198397, | |||
20040254724, | |||
20050043037, | |||
20050136942, | |||
20060014531, | |||
20060099960, | |||
20060120320, | |||
20070032247, | |||
20070168524, | |||
20070229546, | |||
20090036116, | |||
20090088180, | |||
20090319306, | |||
20100039315, | |||
20100093380, | |||
20100167760, | |||
20100240398, | |||
20100241496, | |||
20110018349, | |||
20110021212, | |||
20110077021, | |||
20110086646, | |||
20110098059, | |||
20110105092, | |||
20110142016, | |||
20110201347, | |||
20110201349, | |||
20110294506, | |||
20110296184, | |||
20120100874, | |||
20120122487, | |||
20120130794, | |||
20120139781, | |||
20120158297, | |||
20120170560, | |||
20120200411, | |||
20120322462, | |||
20130023284, | |||
20130045751, | |||
20130059608, | |||
20140162693, | |||
20140274135, | |||
20140274136, | |||
EP1111951, | |||
EP2424317, | |||
GB2474865, | |||
WO2009022857, | |||
WO3009605, | |||
WO2006104352, | |||
WO2009036497, | |||
WO2009067447, | |||
WO2012114304, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 15 2013 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Mar 22 2013 | WACHTER, ANDREAS KLAUS | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030270 | /0787 | |
Mar 25 2013 | FISCHER, SVEN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030270 | /0787 | |
Apr 05 2013 | EDGE, STEPHEN WILLIAM | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030270 | /0787 |
Date | Maintenance Fee Events |
Jul 14 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 11 2024 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 21 2020 | 4 years fee payment window open |
Aug 21 2020 | 6 months grace period start (w surcharge) |
Feb 21 2021 | patent expiry (for year 4) |
Feb 21 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 21 2024 | 8 years fee payment window open |
Aug 21 2024 | 6 months grace period start (w surcharge) |
Feb 21 2025 | patent expiry (for year 8) |
Feb 21 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 21 2028 | 12 years fee payment window open |
Aug 21 2028 | 6 months grace period start (w surcharge) |
Feb 21 2029 | patent expiry (for year 12) |
Feb 21 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |