throbber
US008045995B2
`
`(12) United States Patent
`King et a].
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,045,995 B2
`Oct. 25, 2011
`
`(54) CENTRALIZED LOCATION BROKER
`
`(75) Inventors: Simon P. King, Berkeley, CA (US); Paul
`Hammond, San Francisco, CA (US);
`Tom Coates, London (GB); Simon
`Willison, Oxford (GB); Rahul Nair,
`Oakland, CA (US); Shane Ahern, Foster
`City, CA (US); Mor Naaman, San
`Francisco, CA (US)
`
`(73) Assignee: Yahoo! Inc., Sunnyvale, CA (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 809 days.
`
`(21) Appl.No.: 11/755,99s
`
`(22) Filed:
`
`May 31, 2007
`
`(65)
`
`Prior Publication Data
`
`US 2008/0299989 A1
`
`Dec. 4, 2008
`
`(51) Int. Cl.
`(2009.01)
`H04 W24/00
`(52) US. Cl. ............. .. 455/456.1; 455/404.2; 455/414.2;
`455/456.2; 455/456.5
`(58) Field of Classi?cation Search ............. .. 455/414.2,
`455/456.1, 456.2, 456.5, 404.2
`See application ?le for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`6,321,092 Bl
`11/2001 Fitch et al.
`6,757,545 B2 *
`6/2004 NoWak et a1. ............ .. 455/456.2
`7,035,647 B2
`4/2006 De Verteuil
`7,085,578 B2 *
`8/2006 Barclay et al. .............. .. 455/457
`7,117,371 B1* 10/2006 Parthasarathy et al. ..... .. 713/187
`7,120,254 B2 * 10/2006 Glick et a1. ................. .. 380/258
`2002/0193121 A1 12/2002 NoWak et a1.
`2004/0104097 A1* 6/2004 Ngee ........................... .. 194/210
`2005/0181805 A1* 8/2005 Gallagher ................ .. 455/456.1
`2005/0186967 A1
`8/2005 OZluturk
`
`2005/0204014 A1* 9/2005 Yao m1. .................... .. 709/217
`2005/0251440 A1* 11/2005 Bednarek
`....... .. 705/10
`2006/0077095 A1* 4/2006 Tucker et al. ..
`.. 342/357.08
`
`. . . . . .. 701/213
`2006/0217885 A1* 9/2006 Crady et al. . . . . . . .
`.. 340/521
`2007/0132550 A1* 6/2007 Avraham et al.
`455/456.1
`2007/0149212 A1* 6/2007 Gupta et al.
`2008/0171559 A1* 7/2008 Frank et al. .............. .. 455/456.5
`
`W0
`W0
`W0
`
`FOREIGN PATENT DOCUMENTS
`WO 97/38548 A1 10/1997
`WO 00/27143 A1
`5/2000
`W0 02/076118 A1
`9/2002
`(Continued)
`
`OTHER PUBLICATIONS
`
`Brandt, Joel, et al. “Lash-Ups: A Toolkit for Location-Aware Mash
`Ups,” http://hci.stanford.edu/research/lash-ups/, 4 pages (retrieved
`May 29, 2007).
`
`(Continued)
`
`Primary Examiner * Marivelisse Santiago Cordero
`Assistant Examiner * Qun Shen
`(74) Attorney, Agent, or Firm * Nathan 0. Greene; Brinks
`Hofer Gilson & Lione
`
`ABSTRACT
`(57)
`A centralized location system includes a location update
`application programming interface (API) to receive varying
`types of location inputs for a user from at least one location
`providing application. A memory stores a location of the user
`and the location inputs, Wherein the location update API
`periodically updates in the memory the location inputs When
`location updates are received from the at least one location
`providing application. A location export API, upon request
`from a location-based service application, processes the loca
`tion inputs to estimate a location of the user, Which location
`estimate replaces the stored location in memory and is sent to
`the location-based service application. A user interface
`enables the user to specify a location granularity for at least
`one of the at least one location-providing application and the
`location-based service application.
`
`23 Claims, 6 Drawing Sheets
`
`Sponsored
`“9157:”!
`—
`_
`
`Extemai
`Applications
`2 1L
`
`l-vci?'vn Br?k?r 11H
`User Loealion
`Update API 1.45
`
`User Location
`Export API 31
`
`User Permission I;
`Privacy Manager
`E
`
`Userlnien‘ace 11.4,
`
`N ETWORK
`
`I Sponsored
`>
`Sega“
`
`108
`
`q
`
`External
`Services
`m
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US 8,045,995 B2
`Page 2
`
`FOREIGN PATENT DOCUMENTS
`W0 WO 2005/003920 A2
`1/2005
`W0 WO 2005/081796 A2
`9/2005
`OTHER PUBLICATIONS
`_
`_
`_
`Gangemi, Jeffrey, “Fine-Tuning Local Search,” http://WWW.
`businessweek.com/print/smallbiZ/Content/dec2006/sb20061226i
`63390l.htm, 2 pages (Dec. 26, 2006).
`
`Loki for Internet Explorer, http://softwaretechrepublic.com.con1/
`download.aspx?docid:290960, 2 pages (retrieved May 8, 2007).
`Skyhook Wireless, http://WWW.skyhookWireless.com/, 12 pages
`(retrieved May 29, 2007).
`Trackut: How it Works, http://WWW.trackut.com/help.php, 2 pages
`(retrieved May 8 2007)‘
`
`* cited by examiner
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`0a. 25, 2011
`
`Sheet 1 of6
`
`US 8,045,995 B2
`
`Sponsored
`Applaéaglons
`
`—
`
`External
`Applications
`1.32
`
`Location Broker 19.”;
`User Location
`
`Update APi _1_4_§
`
`I Sponsored

`S93E85
`
`_
`
`NETWORK
`m
`
`User Location
`Export API @
`
`NETWORK
`m
`
`User Permission it
`Privacy Manager
`E
`
`User interface m
`
`NETWORK
`jj?
`
`External
`Services
`E
`
`FIG. 1
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`0a. 25, 2011
`
`Sheet 2 of6
`
`US 8,045,995 B2
`
`112
`
`i
`
`NETWORK
`m
`
`Location Broker M
`
`M
`User Location
`Update API m E
`M
`0
`R
`Y
`
`I
`User Locat|on
`Export AP! 152
`
`User Permission & Privacy
`Management 1_5_6_
`
`PROCESSOR @
`
`User Interface L45
`
`FIG. 2
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`0a. 25, 2011
`
`Sheet 3 of6
`
`US 8,045,995 B2
`
`U2
`
`FIG. 3A
`
`U2
`
`FIG. 3B
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`0a. 25, 2011
`
`Sheet 4 of6
`
`US 8,045,995 B2
`
`ii?
`
`Receive from User Location Granularity for a Location-Providing @
`Application and a Location-based Service Application
`
`Receive Location Inputs From at least one Location-Providing Application
`
`%
`
`Store Location inputs in a Database According to Speci?ed
`Location Granularity
`
`m
`
`.
`
`.
`
`Receive Query from a Location-based Service Application
`
`.
`
`.
`
`Process Location inputs Together to Formulate Estimate of
`Current User Locaiton
`
`%
`
`42_0
`
`1
`i
`
`Update the Location of the User in Memory with the Estimate of g
`the Current Location
`
`Send Updated Location of User to the Location-based Service Application %
`According to Speci?ed Location Granularity
`
`i
`
`Receive a Second-Query from a Location-based Service Application £2
`Before Receiving Additional Location Updates
`
`Send the Stored Location to the Location-based Service Application
`
`4_3Ei
`
`FIG. 4
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`0a. 25, 2011
`
`Sheet 5 of6
`
`US 8,045,995 B2
`
`Register as a Location-based Application for System Access
`
`Receive At Least one of an Apptication Token and a Secret
`
`Query a Location of a User and be Authenticated by the System
`
`5%
`
`E
`
`512
`
`i
`
`Receive an Updated Location for the User According to m
`User-Speci?ed Location Granularity
`
`FIG. 5
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US. Patent
`
`Oct. 25, 2011
`
`Sheet 6 0f 6
`
`US 8,045,995 B2
`
`Receive
`Location Input
`@Qi
`
`i
`
`Store Location
`in Database at
`Maximum
`Precision
`§_O_§
`
`i
`
`Flag Location
`Stored in
`Memory as
`"State" _6_1_2
`
`Receive Query
`w
`
`Updates Since Last
`Version Stored in
`Memory?
`E
`
`Process One
`or More
`Location Inputs
`521
`
`1'
`Store User’s
`Location in
`Memory
`egg
`
`i
`
`Adjust
`Locationin
`Memory to
`Appropriate
`Granularity
`_6_§_2_
`
`Return to
`Location
`Services
`Application
`@
`
`FIG. 6
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US 8,045,995 B2
`
`1
`CENTRALIZED LOCATION BROKER
`
`BACKGROUND
`
`1. Technical Field
`The disclosed embodiments relate to a system and its meth
`ods for centralizing location updates, and more particularly,
`for centralizing location updates for location-based applica
`tions based on receipt of location inputs from location-pro
`viding applications.
`2. Related Art
`Consumers are becoming increasingly mobile. This
`increase in mobility creates many opportunities for organiZa
`tions to provide consumers With location-based content and
`services. For example, a consumer may subscribe to a loca
`tion-based restaurant revieW service that presents the con
`sumer With a list of popular eateries that are located Within
`driving distance of the consumer’s current location. This
`service may also use the time of day to customiZe the list
`based on the type of meal (e.g., breakfast, lunch, or dinner).
`Consumers generally value this type of location-based con
`tent more than traditional content because it is more focused,
`relevant, and useful. Another service may provide a Way that
`friends can track each other’s locations, or other more user
`integrated type services. Location-based content is informa
`tion provided to a consumer that is keyed to a past, present or
`future geographic location of the consumer. Similarly, loca
`tion-based services are services keyed to geographic location
`information for the consumer.
`Additionally, the sources of location information related to
`a user of such applications have groWn in recent years. These
`include devices that supply, for instance, a global positioning
`satellite (GPS) latitude and longitude coordinate set, a Global
`System for Mobile Communications (GSM) cell toWer iden
`ti?er, and a location related to a Wi-Fi access point media
`access control (MAC) address. Applications that integrate
`location information as part of a service provided to a user
`have heretofore used a single location source (or type of
`source) to provide location updates, and generally the loca
`tion information obtained is destined for a single device or
`application.
`
`SUMMARY
`
`By Way of introduction, the embodiments described beloW
`include a system and methods for centraliZing location
`updates in a system for providing updated user locations to
`location-based service applications, and in Which third party
`location-providing applications also may participate.
`In a ?rst aspect, a centraliZed location system includes a
`location update application programming interface (API) to
`receive varying types of location inputs for a user from at least
`one location-providing application. A memory stores a loca
`tion of the user and the location inputs, Wherein the location
`update API periodically updates in the memory the location
`inputs When location updates are received from the at least
`one location-providing application. A location export API,
`upon request from a location-based service application, pro
`cesses the location inputs to estimate a location of the user,
`Which location estimate replaces the stored location in
`memory and is sent to the location-based service application.
`A user interface enables the user to specify a location granu
`larity for at least one of the at least one location-providing
`application and the location-based service application.
`In a second aspect, a method is disclosed for centraliZing
`management of user location for third party use With a cen
`traliZed location system. The system receives from a user a
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`location granularity for at least one location-providing appli
`cation and for at least one location-based service application.
`The system receives location inputs from the at least one
`location-providing application. The system stores the loca
`tion inputs in a database according to the location granularity
`speci?ed by the user for each location-providing application.
`The system receives a query from a location-based service
`application for the location of the user. The system processes
`the location inputs together to formulate an estimate of the
`current location of the user, and updates the location of the
`user in memory With the estimate of the current location. The
`system may then send the updated location of the user to the
`location-based service application in response to the query
`and in accordance With the location granularity speci?ed by
`the user for the location-based service application.
`In a third aspect, a method is disclosed for a method for
`centraliZing management of user location for third party use
`With a centraliZed location system. A location-based service
`application registers system access, and receives at least one
`of an application token and a secret. The location-based ser
`vice application queries a location of a user from the system
`after registration, Wherein the system identi?es the location
`based service application based on at least one of the received
`application token and a hashed encrypted version of the
`secret. The location-based service application receives an
`updated location for the user according to a location granu
`larity speci?ed by the user for the location-based service
`application, Wherein the updated location is estimated from
`processing location inputs for the user obtained from at least
`one location-providing application.
`Other systems, methods, features and advantages Will be,
`or Will become, apparent to one With skill in the art upon
`examination of the folloWing ?gures and detailed description.
`It is intended that all such additional systems, methods, fea
`tures and advantages be included Within this description, be
`Within the scope of the invention, and be protected by the
`folloWing claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The system may be better understood With reference to the
`folloWing draWings and description. The components in the
`?gures are not necessarily to scale, emphasis instead being
`placed upon illustrating the principles of the invention. More
`over, in the ?gures, like-referenced numerals designate cor
`responding parts throughout the different vieWs.
`FIG. 1 is a diagram of an exemplary centraliZed location
`system including a location broker that updates a location for
`service applications according to location inputs received
`from one or more location-providing applications.
`FIG. 2 is a more detailed diagram of the system displayed
`in FIG. 1, With a focus on the location broker.
`FIGS. 3A and 3B are examples of hoW various location
`input types are processed together to best estimate a location
`or area Where a user is currently located.
`FIG. 4 is a How chart of an exemplary method for central
`iZing location updates for location-based service applications
`based on inputs received from location-providing applica
`tions.
`FIG. 5 is a How chart of a further exemplary method for
`centraliZing location updates for location-based service
`applications based on inputs received from location-provid
`ing applications.
`FIG. 6 is a How chart of another method for centraliZing
`location updates for location-based service applications
`based on inputs received from location-providing applica
`tions.
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US 8,045,995 B2
`
`3
`DETAILED DESCRIPTION
`
`In the following description, numerous speci?c details of
`programming, software modules, user selections, network
`transactions, database queries, database structures, etc., are
`provided for a thorough understanding of various embodi
`ments of the systems and methods disclosed herein. However,
`the disclosed system and methods can be practiced with other
`methods, components, materials, etc., or can be practiced
`without one or more of the speci?c details. In some cases,
`well-known structures, materials, or operations are not shown
`or described in detail. Furthermore, the described features,
`structures, or characteristics may be combined in any suitable
`manner in one or more embodiments. The components of the
`embodiments as generally described and illustrated in the
`Figures herein could be arranged and designed in a wide
`variety of different con?gurations.
`The order of the steps or actions of the methods described
`in connection with the disclosed embodiments may be
`changed as would be apparent to those skilled in the art. Thus,
`any order appearing in the Figures, such as in ?ow charts or in
`the Detailed Description is for illustrative purposes only and
`is not meant to imply a required order.
`Several aspects of the embodiments described are illus
`trated as software modules or components. As used herein, a
`software module or component may include any type of com
`puter instruction or computer executable code located within
`a memory device and/ or transmitted as electronic signals over
`a system bus or wired or wireless network. A software module
`may, for instance, include one or more physical or logical
`blocks of computer instructions, which may be organiZed as a
`routine, program, object, component, data structure, etc. that
`performs one or more tasks or implements particular abstract
`data types.
`In certain embodiments, a particular software module may
`include disparate instructions stored in different locations of
`a memory device, which together implement the described
`functionality of the module. Indeed, a module may include a
`single instruction or many instructions, and it may be distrib
`uted over several different code segments, among different
`programs, and across several memory devices. Some embodi
`ments may be practiced in a distributed computing environ
`ment where tasks are performed by a remote processing
`device linked through a communications network. In a dis
`tributed computing environment, software modules may be
`located in local and/ or remote memory storage devices.
`Currently, there are location tracking techniques that use,
`for example, one of global positioning satellite (GPS) latitude
`and longitude coordinate sets, Global System for Mobile
`Communications (GSM) cell tower identi?ers, or locations
`related to Wi-Fi access point media access control (MAC)
`addresses. No interface exists, however, that provides a
`robust, reliable, and centraliZed means for ascertaining and
`updating a user’s location that could integrate multiple types
`location inputs, including from third party applications. What
`is needed is a centraliZed location broker for third-parties to
`obtain and update a user’s location. The broker should also
`allow a user to de?ne the level of location precision available
`to speci?c third-parties. For example, a user may desire to
`only expose the user’ s current city to the third-parties, instead
`of a more precise location, such as the block or intersection in
`which the user is located. Thus, the location broker facilitates
`the adoption of location-based services by allowing users to
`selectively expose their location to service providers.
`FIG. 1 is a diagram of an exemplary centraliZed location
`system 100 including a location broker 104 that updates a
`location for service applications 108 according to location
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`inputs received from one or more location-providing appli
`cations 112. Communication, of course, takes place over a
`network 116 that may include the Internet, an Intranet, a local
`area network (LAN), a wide area network (WAN), or other
`network. The location-based service applications 108 may
`include sponsored services 120 such as those provided by the
`entity that owns and/or controls the location broker 104. The
`service applications 108 may also include external, third
`party services 124 that integrate into their development and
`use the bene?ts of the location broker 104 as described herein.
`The location-based service applications 108 may include, but
`are not limited to, location-based alerts, location-based
`advertising, coupon distribution, and services that use the
`location of the user to provide focused content.
`It would be impossible to include all types of location
`based service applications because many are conceivable, and
`all are contemplated here. For instance, a user location could
`be used to tag Flickr® photos or other media to record where
`the user 140 was when the media was recorded. Also, user 140
`could be allowed to annotate records of holidays or commut
`ing patterns, or for easily tracking tax deductible miles. Addi
`tionally, presence indicators may also be included, such as
`putting a badge on a user website that indicates user location,
`which location is periodically updated through the location
`broker 104.
`Furthermore, the location-providing applications 112 may
`include sponsored applications 128 and external, third-party
`applications 132. Examples of location-providing applica
`tions 112 include, but are not limited to, devices that supply
`location inputs such as a GPS latitude and longitude coordi
`nate sets, a GSM cell tower identi?er, and a Bluetooth iden
`ti?er. Further examples of location-providing applications
`112 also include persons or entities that supply the location
`inputs, such as a user- speci?ed identi?er or location, or a third
`party location tracking application such as PlaZes® (based on
`tracking Wi-Fi access point MAC addresses). PlaZes® is a
`social community that connects friends by use of a client
`downloadable through beta.plaZes.com; the company is
`headquartered in Zurich and Berlin. Recently, updates to
`location were made available through the PlaZes® website or
`through text messaging, both of which require the user to
`enter his or her location manually.
`Users 140 are the bene?ciaries of the system 100 and are
`the customers to the location-based service applications 108.
`Users 140 communicate with the location broker 104, usually
`also over the network 116, and through a user interface 144 of
`the location broker 104. The location broker 104 further
`includes a user location update application programming
`interface (API) 148 to update a location stored in the location
`broker 104 for each user 140 based on one or more location
`inputs from the location-providing applications. A user loca
`tion export API 152 then communicatively interfaces with the
`location-based service applications 108 to provide updates of
`the users’ locations upon request, or periodically, as an inte
`gral part of the services provided to the users 140.
`To ensure attention to privacy on a need-to-know basis, the
`user 140 may, through the user interface 144 and in conjunc
`tion with a user permission and privacy manager 156 (vari
`ably referred to as “privacy manager 156”), con?gure a loca
`tion granularity for reads and writes by applications 108 and
`112, respectively, which participate in the system 100. The
`location granularity includes at least a level of location pre
`cision, which may include, but is not limited to, a street
`address, a Zip code, a city, a state, a country, and a latitude/
`longitude coordinate set. While a current location as updated
`in the location broker 104 may be provided down to the street
`address, a given application 108, 112 may only be afforded
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US 8,045,995 B2
`
`5
`
`20
`
`25
`
`30
`
`5
`access, as con?ned by the user 140, to a Zip code or a city. In
`such a case, only the Zip code or the city Will be provided to
`the application 108, 112 upon request by the application 108,
`112. In addition, the applications 108, 112 may also be cut off
`completely from any location information access, eg from
`reading and Writing, respectively.
`Location granularity control may also be a Way by Which
`the users 140 may adjust sensitivity to the reads or Writes of
`their location, thereby also affecting accuracy of their loca
`tion, as desired. The natural consequence of such control is
`that sometimes a user 140 Will choose to prioritize privacy
`over accuracy. In this manner, the location broker 104 acts as
`a centraliZed interface for updating and exporting a user’s
`location in accordance With the location granularity dictated
`by a user 140. The system 100 thus facilitates the creation,
`adoption, and Wide-spread use of location-based services.
`The location-providing applications 112 may ef?ciently
`update the location of a user 140 and location-based service
`applications 108 may reliably receive the location of a user. In
`addition, the user 140 remains in control over the level of
`location precision distributed to the service providers.
`FIG. 2 is a more detailed diagram of the system 100 dis
`played in FIG. 1, With a focus on the location broker 104. A
`plurality of location-based service applications 108 are des
`ignated as Q1, Q2, .
`.
`. On, and a plurality of location
`providing applications 112 are designated as U1, U2, .
`.
`. Un,
`all able to communicate through the netWork 116 With the
`location broker 104. The location broker 104 includes, as
`before, the user interface 144, the user location update API
`148, the user location export API 152, and the userpermission
`and privacy manager 156.
`Additionally, the location broker 104 may further include a
`processor 160, a memory 164, a location inputs database 168,
`and a service data database 172. One of skill in the art Will
`appreciate that the databases 168 and 172 may be integrated
`in the memory 164 on a single server acting as a location
`broker 104, or may be located remotely across the netWork
`116. One of skill in the art Will also appreciate that the pro
`cessor 160 may include hardWare and/or softWare operatively
`executed on hardWare, and may integrate one or more of the
`user location update API 148, the user location export API
`152, the user permission and privacy manager 156, and the
`user interface 144.
`To use the system 100, a user 140 signs up for one or more
`applications 108, 112 and authoriZes them to, respectively,
`update their location and query their location at a certain
`location granularity. Again, the privacy manager 160 Will
`facilitate this interaction by the user 140, providing the user
`140 With con?guration access to a current list of applications
`108, 112. The users 140 are provided a username and pass
`Word in order to identify themselves to the location broker
`104 for future access. The users 140 are also issued an appli
`cation token (or “userid”) that the applications 108, 112 use to
`identify the user 140 in the system 100.
`The applications 108, 112 may communicate With the loca
`tion broker 104 through an authenticated API (148 and/or
`152). The applications 108, 112 use this token (referred to in
`the API as an appid) and an application-speci?c secret to
`
`35
`
`40
`
`45
`
`50
`
`6
`identify themselves to the location broker 104 When reading
`or Writing user location data. The authentication Works simi
`lar to a hash-based message authentication code in Which
`submitted API parameters are combined With a shared secret
`(betWeen the location broker 104 and each application 108,
`112) by a one-Way hash algorithm to generate a signature
`Which ensures that API calls actually originate from an appli
`cation 108, 112 that knoWs the secret (veri?ed by encrypting
`the parameters and secret sent by the API With the same
`one-Way hash algorithm and comparing this value to the
`submitted signature). The hash-based authentication code
`Works as a unique signature, Which can only be produced by
`introduction of the proper secret.
`Additionally, a timestamp parameter may be required to
`prevent replaysithat is, each application 108, 112 cannot
`query or update a user’s location With a smaller timestamp
`value than has been previously supplied by that application
`108, 112. Without knoWledge of the shared secret, an attacker
`cannot formulate a request containing an updated timestamp;
`checking the timestamp ensures than a request intercepted by
`an attacker and sent unmodi?ed Will be rejected after the
`timestamp has expired (i.e. a request cannot be “replayed”).
`Username, passWords, tokens, secrets, and other account
`speci?c information for users 140 and applications 108, 112
`are stored in the services data database 172.
`The location broker 104 stores in the location inputs data
`base 168 the most recent location supplied by each location
`providing application 108 for each user 140, and in accor
`dance With the location granularity speci?ed by each user
`140. The location-providing applications 108 can specify
`location in a number of Ways, Which include, but are not
`limited to: a latitude/longitude coordinate set, a postal code, a
`street address, a GSM cell toWer identi?er, a Bluetooth iden
`ti?er, a user-speci?ed identi?er or location, and an identi?er
`from an external system (PlaZes®, Upcoming.org, etc.). See
`also Table 1 below, Which provides an exemplary manner of
`storing location data in the location inputs database 168.
`One location per user-application pair is stored in the loca
`tion inputs database 168, thus the location broker 104 gener
`ally provides access to a user’ s current location, not a location
`history of user locations. When a user’s location is requested,
`the location broker 104 combines location information (raW
`data from database 168) for that user 140 into a current
`estimate of the user’s location, Which is returned in extensible
`markup language @(ML) or another compatible format,
`Which provides a standardized location-reporting format With
`Which to export to location-based applications 108. To do so,
`the raW location inputs are jointly processed by at least the
`user location export API 152 and possibly also via otherAPIs
`(not shoWn) internal to the location broker 104 and Which
`may be integrated as part of the user location update API 148
`or the processor 160. One embodiment of such processing
`includes use of a set of softWare objects that are mapped to
`various input type parameters, such as shoWn in Table 1,
`wherein each object is accessed in turn according to prece
`dence until the closest estimate of a user’s location is
`achieved. The ordering of precedence as indicated is exem
`plary only, and is not intended to limit the scope of hoW raW
`location inputs are processed.
`
`TABLE 1
`
`Map of Objects to Processing Precedence
`
`Parameter Required
`
`Format Description
`
`Precedence
`
`Formatted Address
`
`addr
`
`(+city or
`postal)
`
`String
`
`Street address (e. g. 1350
`University) — requires city or
`
`7
`
`po stal
`
`Ruiz Food Products, Inc.
`Exhibit 1011
`
`

`

`US 8,045,995 B2
`
`TABLE l-continued
`
`Map of Obiects to Processing Precedence
`
`Parameter Required
`
`Format Description
`
`Precedence
`
`city
`
`state
`postal
`
`country
`lat
`lon
`mnc
`mcc
`lac
`cellid
`loc
`
`(+state,
`country,
`or postal)
`N
`N (need + country
`if not US)
`N
`1
`1
`3
`3
`3
`3
`N
`
`name
`
`N
`
`GPS
`
`GSM
`
`Free-form
`
`External Identi?er
`
`Street Intersection
`
`N
`woeid
`plaZesid N
`ylocalid N
`upvenueid N
`street1
`2 (+postal
`or city)
`2
`
`street2
`
`String
`
`City name — requires state,
`country or postal
`
`String
`String
`
`State name
`Postal code
`
`String
`Float
`Float
`Int
`Int
`Int
`Int
`String
`
`String
`
`Int
`String
`Int
`Int
`String
`
`String
`
`Country
`Latitude (decimal degrees)
`Longitude (decimal degrees)
`Mobile Network Code
`Country Code
`LAC (Location Area Identi?er)
`Cell ID (identi?er)
`Free-form location — the system
`100 makes a best guess
`translation
`POI/AOI (area or person of
`interest) name or 3-letter
`Airport code — may include a
`user-speci?ed identi?er
`Where on Earth ID
`PlaZes ® PlaZe key
`Y! ® Local ID
`Upcoming.org venue ID
`Street name 1 for intersection
`lookup
`Street name 2 for intersection
`lookup
`
`11
`
`12
`10
`
`13
`1
`1
`9
`9
`9
`9
`14
`
`6
`
`2
`5
`3
`4
`8
`
`8
`
`Note that Table 1 is in abstract form and is for exemplary
`purposes only to show one way that location inputs of differ
`ent types may be stored and processed to produce a single
`location output. If the location broker 104 ?nds a valid loca
`tion from precedence 1, the location broker 104 uses that
`location; if not, the location broker 104 moves on to location
`input data with precedence 2, etc. In the “Required” column,
`corresponding numbers indicate that the parameters must all
`be present if any are present. Note also that while location
`inputs based on Wi-Fi access point MAC addresses is not
`included in Table 1, they could be, and such inputs are also
`available though the PlaZes® system (among others) from
`which the location broker 104 accepts PlaZe identi?ers.
`Additionally, in some embodiments, a user location that is
`sent by the location broker 104 in response to a location-based
`service application 108 query may also include other loca
`tion-sensitive metadata, such as the nearest metro station,
`current weather forecast, and current local time. Also, such
`metadata (or other message included with the response from
`the location broker 104) may include a note that speci?es the
`types of location inputs that were available and used in esti
`mating the location or the user 140, including what method of
`processing was used to combine location inputs. An example
`of how the system 100 works in conjunction with the process
`ing of raw location inputs may be helpful.
`FIGS. 3A and 3B are examples of how various location
`input types are processed together to best estimate a location
`or area where a user 140 is currently located. Assume a user
`140 has authorized two location-providing app

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket