`
`17
`service module can use the information to determine a
`current device context.
`In the case where the context of the device is the device’s
`location, sources 606 provide various information to the
`location providers 604 that pertains to the device’s current
`location. As an example, the sources of the information can
`include various information transmitters such as a GPS
`system, cell phone or cell ID, wireless transmitters that
`transmit
`location information,
`location beacons, 802.11
`transmitters and various other sources of information. The
`sources of information can also include other computing
`devices that might, for example, provide location informa-
`tion through Bluetooth technology. In addition, a source of
`information 606 might include a person who, for example,
`physically enters location information into the device 600 so
`that the device can process the information to determine its
`location.
`When the device 600 receives the location information
`
`from the sources 606, it processes the information with the
`location providers 604 and provides the information to the
`location service module 602. The location service module
`602 processes the location information and determines a
`particular node on one or more of the hicrarchical tree
`structures to which it has access which correspondsto its
`current location. The location service module 602 can then
`traverse the tree structures to determine a complete location
`for the device. Once the complete location is determined, the
`device 600 can begin to interact with one or more applica-
`tions 608 that can query the device about
`its particular
`location so that one or more location-dependent services can
`be rendered to the device. In this example, the applications
`608areillustrated as being separate from the device. It is to
`be understood, however,
`that
`the applications could be
`executing on the device, e.g. a browser application.
`As shown, the applications 608 can make calls to the
`device to ask the device where it is located. The device is
`configured to receive the calls and respond in an appropriate
`manner to the application. Once the application has the
`device’s location information,
`it can then render location
`specific services to the device.
`Consider the following example: You are a traveler and
`have a hand-held mobile computing device thal contains a
`Master World tree and a Secondary World tree for SeaTac
`International Airport. You are scheduled to depart on a plane
`for China from Concourse C. SeaTac International Airport
`has designed its Secondary World to have the following
`nodes: “Arrivals”, “Departures”, “Concourses”, “Airlines”,
`“Gates assigned to Airlines”, and “Gate Location”. When
`you arrive at
`the airport, as you enter the airport your
`computing device receives location information from dif-
`ferent sources and with that information your device deter-
`mines that your location is in the Arrivals node. SeaTac
`International has bank of servers that are executing appli-
`cations to assist you while you are in the airport. There are
`applications that can help you find services, locate facilities
`(e.g. coffee shops, restaurants), give directions (e.g. how to
`get to your departure gate), update you onthestatus of your
`flight, and even check you in automatically for your flight.
`Consider also that as you walk through the airport your
`location changes. Your computing device, however, can
`receive continuous location information updates so that it
`can continue to determine its location as you movethrough
`the airport. At one point, as you pass a Starbucks coffee
`shop, your hand held device notifies you that if you purchase
`a latte at Starbucks and present your hand held device, you
`will receive a 50 cent discount on yourlatte. In this example,
`the utility of the Secondary World is demonstrated. By
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`18
`knowing where its particular customers are in its facility,
`SeaTac International is able to provide a host of services that
`were not possible before.
`Assume further that you are in the airport and your flight
`is canceled. You must find a place to stay for the night.
`Accordingly, you wish to determine the closest Double Tree
`hotel because you really like the warm chocolate chip
`cookies they give you when you check in. You execute a
`search engine on your computing device to find the nearest
`Double Tree hotel. The search engine applicationfirst deter-
`mines your current location in the Master World as indicated
`by the EID of the Master World node that corresponds to
`your location. Executing a search, the search engine appli-
`cation looks for a Double Tree hotel that has an attribute that
`
`includes an EID that matches your EID. If it finds one, it
`simply indicates for you the result. If it does not find one
`with the corresponding EID, it can use an adjacent geozone
`to search for a Double Tree hotel. It may also provide driving
`directions to the hotel. The search engine application was
`able to do this because it was able to ascertain your location
`in the Master World. It did this quickly and automatically
`with little or no effort from you.
`Consider further that as you are driving from the airport
`to the hotel you decide that you want to find the nearest
`Kinko’s so that you can print 100 copies of a presentation
`that you are to give in the morning. Consider that your
`hand-held computing device is a cellular phone and that
`Sprint is the carrier. Sprint has defined its own Secondary
`World that might, for example, be designated in termsof cell
`nets. By virtue of having Sprint’s Secondary World on your
`computing device, you are able to ascertain your location in
`Sprint’s Secondary World and, accordingly, your location in
`the Master World. Consider that Kinko’s also has a Second-
`ary World that links with the Master World. By executing a
`search application on your device, you are able to ascertain
`the location of the nearest Kinko’s as well as driving
`directions thereto. All of this is possible because your device
`has access to the Master World and one or more Secondary
`Worlds.
`In this example,
`the Master World provides a
`mechanism to daisy chain two or more Secondary Worlds
`together.
`‘This is possible because the Secondary Worlds
`have at least one reference or link into the Master World.
`
`Exemplary Device Architecture
`FIG. 7 shows computing device 600 in somewhat more
`detail. In this particular embodiment, device 600 comprises
`an architecture that includes the following components: a
`location service module 602, a location provider interface
`700, an application program interface (API)/Events module
`702, a privacy manager 704 a location conversion module
`706, onc or more applications 608 and onc or more location
`providers 606. Also included in the architecture is an active
`directory 708, Web service 710, location database 712, and
`personal places 714. The architecture can be implemented in
`any suitable hardware, software, firmware or combination
`thereof. The architecture mentioned above is advantageous
`in that it enables each computing device to determine its own
`context or location.
`Common Location Provider Interface
`
`One particularly advantageous aspect of the described
`embodimentis that it employs a commoninterface 700 that
`provides a standard interface through which the location
`providers 606 communicate. By having a commoninterface,
`the location providers are extensible (to support future
`providers) in that they can be dynamically added or removed
`fromthe collection of location providers. All that is required
`of a particular location provider 606 is that it be written to
`support the commoninterface.
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0019
`EXHIBIT 1006 - PAGE 0019
`
`
`
`US 6,327,535 B1
`
`19
`In this example, there are several location providers 606.
`These location providers provide location information in
`different forms. For example, a GPS location provider might
`provide location information that is GPS specific. Similarly,
`an IP/Subnet location provider might provide information
`that is specific to an Internet Protocol. A mobile phone
`location provider might provide location information in the
`form of a cell ID. In addition, a location User Interface (UI)
`might provide location information in the form of a user
`entry that specifies a city, street or building. All of the
`location information that is provided by the various location
`providersis processed by the location service module 602 so
`that a current device location can be determined. To deter-
`mine the current device location, the location service mod-
`ule 602 may have to consult with an active directory 708, a
`Web service 710, or a location database 712. In the illus-
`trated example, the active directory 708 might, for example,
`maintain a secondary world and other networking metadata
`such as subnet and “site” information that can help deter-
`mine location based on networking connectivity. Web ser-
`vice 710 can hold the master or secondary worlds,
`the
`attributes of which can be usedto find location. For example,
`if a cell phone knowsits cell tower ID, then the location
`provider can query the sccondary world to ascertain the
`nodes that match that cell tower ID. Location database 712
`
`is basically a version of the web service that is hosted or
`cached locally.
`Location Providers
`
`10
`
`15
`
`As indicate above, the architecture contemplates multiple
`different location providers that can provide location infor-
`mationto the location service module 602. This information
`
`30
`
`can come in many different forms and quality levels. The
`information is then processedbythe location service module
`602 to determine a current device location. To do this, the
`service module 602 ascertains from the location information
`a particular node ID (EID and/or LUID) and a URLthatis
`associated with the tree structure with which the node is
`associated. Once the location service module ascertains a
`node ID,
`it can then query the tree structure (or more
`accurately a server that managesthetree structure) using the
`URLto ascertain more information about the tree structure.
`For example, if the location service module 602 ascertains
`a LUID from a particular Secondary World, it might then
`query an active directory 708 (or an Intranet server—which
`is another location database) to discover the parents and the
`children of the node. This would then enable the location
`
`service module to build the Secondary World.
`The location providers 606 can provide the location
`information to the location service module 602 in many
`different ways. For example, some location providers 606
`may continuously provide information (e.g. the GPS pro-
`vider may continuously provide GPS coordinates).
`Alternately, the location providers can periodically provide
`location information such as at specific times or on the
`occurrence of definable events. For example, a user may
`define specific times when the location information should
`be updated. Alternately, the location information might be
`updated only when a device’s location changes (ie.
`a
`location change event). Additionally, the location providers
`might provide location information when polled by the
`location service module 602. For example,
`the location
`service module 602 can call the location provider interface
`700 and request location information from one or more of
`the location providers.
`One specific location provider 606 is shown as a cache.
`The cache provider essentially maintains a current device
`contextor location. That is, once the location service module
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`20
`602 has ascertained its current location, it writes this loca-
`tion to a cache. This enables the device 600 to ascertain its
`
`location with a degree of confidence in the eventall of the
`other location providers are not able to provide location
`information (e.g. the GPS provider may not receive GPS
`information because the GPS transmitter that supplies it with
`the information is unable to contact a requisite number of
`satellites).
`Confidence and Accuracy Parameters
`One important and useful
`feature of the described
`embodiment is that one or more ofthe location providers are
`configured to assign confidence parameters and/or accuracy
`parameters to the information that
`they provide to the
`location service module 602. Confidence parameters provide
`a measure of a provider’s confidence in the information that
`it provides to the location service module 602. For example,
`assume that a GPS transmitter must receive information
`from five or more satellites in order to provide highly
`confident information. Assume that only three satellites are
`available at
`the time. The GPS transmitter would then
`
`transmit its information based only on the three satellites.
`The GPS provider would then know that the information it
`receives from the GPS transmitter was based only on three
`satellites rather than the desired five or more. In this case, the
`GPSprovider can set a confidence parameteron the location
`informationthat indicates that it has a lower confidence level
`than if the information were based on the desired five or
`moresatellites. In this case, the location service module 602
`can take the confidence parameters for all of the location
`providers into account when determining the location of the
`device. This is discussed in more detail below.
`
`With respect to the accuracy parameters, considerthat the
`location information that
`is received from the location
`providers is accurate to varying degrees. Some information
`may be accurate to within one mile, while other information
`may be accurate to within 100 feet. The location providers
`are desirably configured to assign accuracy parametersto the
`location information that they provide to the location service
`module 602. The accuracy parameters give the location
`service module an indication of the accuracy of the infor-
`mation.
`
`Whenthe confidence and accuracy parameters are used by
`the location service module 602,
`the module can make
`decisions on how to use the location informationit receives
`
`from each provider. For example, the location service mod-
`ule 602 might disregard completely any information that has
`a low confidence parameter. It might, on the other hand,
`strike a balance between the accuracy of the information and
`its confidence. For example,
`the module 602 might be
`programmed to use information with lower levels of accu-
`racy only whenthere is a high level of confidence in the
`information. The module 602 mightutilize the parameters to
`assign weights to the information so that the location is
`calculated as a weighted function of the confidence and
`accuracy of the information.
`Another use of the confidence parameters is as follows:
`Assumethat the location service module has determined a
`device location and has written that location to a cache. At
`the time whenthe location is written to a cache, it is assigned
`perhaps a high confidence level. Assume further that all of
`the other location providers are unavailable to provide
`location information. For a period of time,
`the location
`service module 602 can use the cache location as a current
`
`its information is
`that
`location and be fairly confident
`generally accurate. In this case, the location service module
`might assign a linearly decreasing confidence level to the
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0020
`EXHIBIT 1006 - PAGE 0020
`
`
`
`US 6,327,535 B1
`
`21
`information over time so that at some point, it ceases to use
`the information or informs the user that the information
`
`cannot be guaranteed.
`Location, Trust, and Timestamp
`Whenthe location providers provide their information to
`the location service module 602,
`the information can
`include,
`in addition to the confidence and accuracy
`parameters,
`the actual
`location information in a known
`format, a trust parameter and a imestamp. The trust param-
`eter is a metric that
`is assigned by the location service
`module 602 to one or more of the location providers and
`defines the trust that the location service module hasfor the
`
`particular location provider. The timestamp is a metric that
`defines the time whenthe location information was provided
`by the location provider. This assists the location service
`module 602 in ascertaining whether information is stale and
`might need refreshed.
`Once the location service module 602 has all of the
`
`location information, it can then set about determining the
`location of the device.
`
`FIG. 8 is a flow diagram that describes steps in a method
`of determining a device context which, in this example, is
`the device location. These steps are implemented by the
`location service module 602.
`
`Step 800 gets the current device context. The current
`context can be the last calculated device context that is
`stored in the cache. Step 802 determines whether any of a
`numberof context providersare available to provide context
`information. The location service module might do this by
`polling the context providers to ascertain which of the
`providersare active and valid. Step 804 determines whether
`all of the providers are inactive. If all of the providers are
`inactive, step 806 decreases the confidence in the current
`context over time and uses the current context as the device
`
`context. Step 802 then continues to monitor for current
`active and valid providers. If step 804 determines that one or
`more of the context providers are active,
`then step 808
`orders the active and valid context providers. When the
`location service module 602 orders or sorts the context
`providers, it does so as a function of the confidence of the
`provider’s information and/or the trust
`that
`the location
`service module has in the location provider. This provides a
`ranked list of the location providers. Step 810 checks to
`ascertain whether the context information appears to be
`correct. For example, where the contextis the location of the
`device, the location service module 602 might knowthatfive
`seconds ago the current
`location was Redmond, Wash.
`Accordingly, location information that indicates that
`the
`current location is Beijing, China would be incorrect. Step
`812 then determines whether any of the context information
`conflicts with either the device’s current context or the
`
`context information from other providers. For example, the
`location service module 602 can compare the context infor-
`mation from each of the context providers with the infor-
`mation in the cache. If any of the information conflicts with
`the cached information,
`then the information from that
`context provider can be discarded. Similarly,
`if context
`information varies inordinately as between the context
`providers, then step 814 can select the context providers
`having a predefined level of trust and perhaps use just their
`information (Step 816 ). If there are no conflicts, then step
`816 determines the current context based upon the informa-
`tion that is provided byall of the context providers. In the
`described embodiment, this step is implemented by using,
`the information to map to a particular node in one or more
`of the hierarchical tree structures mentioned above. For
`
`22
`example, the location of the device can be ascertained by
`mapping the information to a particular node, and then
`completely traversing the tree structure until the root node is
`reached. Step 818 then updates the current context by
`perhaps writing it to the cache and returns to step 802 to
`determine the active and valid context providers.
`‘The method described above provides a way for the
`location service module to receive location information and
`use only the location information that appears mostly likely
`to represent a current location. Conflicting information can
`be discounted or disregarded thereby assuring that only the
`most trusted, accurate and confident information is utilized
`to determine the device’s current location.
`
`Self Monitoring
`In addition to the confidence and accuracy parameters,
`one or more of the location providers are advantageously
`programmedto self monitor their own operation for various
`irregularities that can occur. On the occurrence of an
`iregularity, the location providers are configured to notify
`the location service module 602. For example, the source
`from which the location provider receives its information
`may go off line for a period of time so that the location
`provider is unable to reccive any additional information. In
`this case, the location provider might generate a “provider
`out” message and sendit to the location service module 602.
`Whenthe location service module 602 receives the “pro-
`vider out” message, it can then take steps to exclude the
`location information from that provider from any location
`calculations that it performs. When the location provider’s
`source comes back online, it can generate a “provider on”
`message that informs the location service module 602 that it
`is able to transmit location information to the module. Of
`course, the location service module can be notified by the
`location providers on the occurrence of other operational
`wregularities, with the above example constituting but one
`specific case.
`Applications
`Oncethe location service module 602 has determined the
`device’s location, it can receive queries from one or more
`applications 608. In the FIG. 7 example, the applications
`include a web site application, an Outlook application, and
`a service discovery application. In the present example, the
`web site application can be any web site application that is
`capable of rendering location-specific services. For
`example, the user of the device 602 might access Amazon-
`.com’s web site to buy a favorite book. When the user
`purchases their book, Amazon.com must now compute the
`taxes that the user must pay. In this example, a script
`executing on Amazon.com’s website might query device
`602 to learn of the user’s location. In this particular example,
`the device might respond to the query by returning the state
`in which the user is making the purchase. Amazon.com can
`then assess the tax automatically. Amazon.com might also
`desire to know where the individual is located so that they
`can select an optimal shipping method (UPS or Express
`Mail). Depending on where the individual is located, one
`method may be preferred over the other. The Outlook
`application might query the location service module to
`ascertain the location because it (or the operating system,
`e.g. Windows) may change device settings based on the
`location of the computing device. For example, the user may
`print on one particular printer while at work, and another
`particular printer when at home. When the Outlook appli-
`cation determines that the user has gone home for the day,
`it can automatically change the device settings for the printer
`at the user’s home. It might acquire the print settings from
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0021
`EXHIBIT 1006 - PAGE 0021
`
`
`
`US 6,327,535 B1
`
`24
`The privacy manager 704 addresses privacy concernsthat
`are associated with the information that is collected by the
`computing device. Specifically, the location service module
`can calculate detailed information regarding the location of
`the computing device.
`It may be desirable,
`in some
`instances, to filter the information that is provided to various
`applications. Thatis, it is entirely likely that a user may not
`want
`their specific location information provided to
`untrusted applications. In these instances a user might just
`desire for location service module 602 to inform such
`
`applications that the user is in the State of Washington.
`FIG. 10 shows a flow diagram that describes steps in a
`privacy protection method in accordance with the described
`embodiment. These steps can be implementedby the privacy
`manager 704.
`Step 1000 definesa plurality of privacy levels. Exemplary
`privacy levels are set forth in the table immediately below:
`
`23
`a personal places data store 714. Thus, the device is auto-
`matically configured for use depending on the user’s loca-
`tion. The service discovery application might query the
`device to determine ils location so that
`it can render a
`particular service depending on where the deviceis located.
`For example, if the user asks the application to locate the
`nearest color printer, the service discovery application might
`query the location service module to ascertain the device’s
`current location so that it can use this information and find
`the nearest color printer. Consider also that the Outlook
`application could configure itself email to a work location
`(whenan individual is at work) or to a home location (when
`an individual is at home). In addition, the Outlook calendar
`can become location aware, e.g. when you change time
`zones, your appointments would showupin the proper time
`slots.
`
`As one can imagine, the possibilities are seemingly end-
`less. This functionality is made possible through the use of
`the Master World and one or more Secondary Worlds.
`Application Program Interface/Events
`In the described embodiment, the applications 608 com-
`municate with the location service module 602 through one
`or more application program interfaces (APIs) and/or
`events. The applications can make function calls on the API
`to query the location service module as to its current
`location. Similarly, the applications can register for location
`notifications by using an events registration process. For
`example, an application mayregisterfor a notification when
`the user changes their location. Consider the case where an
`application requests to be notified when the user arrives at
`work or at home so that the application can change the
`device’s configuration (such as printer configuration).
`FIG. 9 is a flow diagram that describes steps in a method
`1n accordance with the described embodiment. Thesteps that
`are described are implemented by device 600. Step 900
`receives information that pertains to the current context of
`the device.
`In this particular example, a portion of the
`information is received from one or more context providers
`which, in this case, are location providers. Step 902 pro-
`cesses the information on and with the device to ascertain
`the current context of the device. In the illustrated example,
`the device maintains (or has access to) one or more of the
`Master World and one or more Secondary Worlds. When the
`device receives all of the location information, it maps the
`information to a particular node in the hierarchical tree
`structure that defines the Worlds. It then traverses the tree
`structures to ascertain the complete context (i.e. location) of
`the device. Step 904 receives calls from one or more
`applications that request information that pertains to the
`device’s current context or location.
`In the illustrated
`
`the applications can call one or more APIs to
`example,
`request the information or the applications can register for
`event notifications. Step 906 then supplies the applications
`with at lcast some information that pertains to the current
`device location. As will be discussed below,a security policy
`or privacy policy can be applied to the information before it
`1s returned to the applications.
`Privacy Manager
`In one embodiment, a privacy manager 704 (FIG. 7) is
`provided. Although the privacy manager is illustrated as
`being incorporated on the device, it could be implemented
`by a trusted entity such as a trusted server that is not part of
`the mobile computing device. The privacy manager can be
`implemented in any suitable hardware, software, firmware
`or combination thereof.
`In the illustrated example,
`the
`privacy manager comprises a software module that is incor-
`porated in the mobile computing device.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Privacy Level
`0
`
`10
`2
`30
`40
`50
`
`60
`
`70
`
`80
`90
`
`100,000 Km
`1,000 Km
`100 Km
`10-100 Km
`10 Km
`
`1 Km
`
`Approximate Scale Level of Revelation
`_
`No location intormation
`is returned.
`Planet/Continent
`Country
`State
`City & County or Region
`Postal Code & Phone
`Area Code
`Full Postal Code (Zip +
`4) & Area Code and
`Exchange
`Phone Number &
`Building/Floor
`Room #
`Exact Coordinates
`
`100 m
`
`10 m
`im
`
`In the illustrated table, 10 different privacy levels are
`defined and each has an associated approximate scale. For
`example, a privacy level of 0 means that no location
`information is returned. A privacy level of 90 means that
`very detailed location information is returned.
`Step 1002 assigns various privacy levels to the individual
`nodes in one or more hierarchical
`tree structures. For
`example, each node of the Master World and the Secondary
`Worlds can have a privacy level associated with it. The root
`node of the Master World tree structure might have a privacy
`level of 10, while the node that represents a current location
`in a Secondary World might have a privacy level of 90. Step
`1004 determines the context of the computing device. In the
`present example,
`the context is the device location and
`examples of how this is done are given above. Individual
`applications that call the location service module can have
`privacy levels associated with them. These privacy levels
`can be assigned by individual users. For example, a trusted
`application might have a privacy level of 90, while an
`untrusted application might havea privacylevel of 30. Step
`1006 receives context queries from one or more applica-
`tions. Iere, an application calls the location service module
`602 (FIG. 7) to ascertain the location of the device. Step
`1008 determines the privacy level associated with the appli-
`cation or applications. For example, if a untrusted applica-
`tion calls to request location information, the privacy man-
`ager 704 would determine that the application has a privacy
`level of 30. The privacy manager then traverses (step 1010
`) one or more hierarchical tree structures to find a node with
`a corresponding privacy level so that
`it can select
`the
`information that
`is associated with that node.
`In this
`
`example,
`
`the traversal might
`
`involve jumping from the
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0022
`EXHIBIT 1006 - PAGE 0022
`
`
`
`US 6,327,535 B1
`
`25
`Secondary World to the Master World to find the node that
`corresponds to the state in which the user is located. Once
`the corresponding node is found, step 1012 returns the
`context information (e.g. location information) associated
`with the node. In this case, the location service module
`would inform the application that the user’s location is the
`State of Washington.
`As an example, consider the following: Thereis a website
`that gives up to the minute weather of various locations.
`Accordingly, you might assign this web site a privacy level
`of 60 so that you can receive weather information for the
`geographical area that corresponds to your present full
`postal code. Another web site might be a corporation intranet
`web site that is a trusted web site. Thus, any applications
`associated with this web site can be assigned a privacy level
`of 90 so that you can give them precise location information
`as to your whereabouts.
`Thus,
`in the present example, the computing device is
`able to determine the source (i.e. application) ofits queries
`and modulate the information that is returned to the appli-
`cation as a function of the application’s identity. The com-
`puting device is able to do this because it has access to the
`Master World and one or more Secondary Worlds. The
`above description constitutes but one exemplary way of
`accomplishing this feat.
`Location Beacons as a Location Provider
`
`In one embodiment, one of the location providers com-
`prises a location beacon that beaconsor transmits informa-
`tion to enable a computing device to actively participate in
`its current context. Location beacons can comprise standa-
`lone devices that can be retrofitted onto existing
`infrastructures, e.g. a smoke detector or wall outlet in order
`for the device to have a power source.
`FIG. 11 showsan exemplary beacon 1100that is mounted
`on a structure 1102. Structure 1102 can be any suitable
`structure such as a wall in a conference room or public place,
`a smokedetector, an electrical socket and the like. In the
`described embodiment, the location beacons are small inex-
`pensive devices that can be permanently mounted in special
`locations such as conference rooms, building lobbies, airport
`gates, public places and the like. The beacons announce the
`physical location in the form of an EID and/or LUID to all
`mobile devices that are within range, such as laptops, tablet
`PCs, hand held computers, mobile phones, wearable com-
`puters and the like.
`In the described embodiment, the location beacon can
`identify the particular locations by beaconing standard infor-
`mation that will be understood by the mobile computing
`devices. In the present example, the beacons can transmit
`one or two location identifier pairs comprising an EID/URL
`pair and a LUID/URLpair. The beacon mightalso transmit
`multiple LUIDs. The EID and LUID give t