`Evans et al.
`
`USOO6327535B1
`(10) Patent No.:
`US 6,327,535 B1
`(45) Date of Patent:
`Dec. 4, 2001
`
`(54)
`
`(75)
`
`(73)
`
`(21)
`(22)
`(51)
`(52)
`
`(58)
`
`(56)
`
`LOCATION BEACONING METHODS AND
`SYSTEMS
`
`Inventors: Stephen S. Evans, Redmond; Gopal
`Parupudi, Issaquah; Burdette J.
`Holtgrewe, Bellevue; Edward F. Reus,
`Woodinville; Gregory Burns, Seattle,
`all of WA (US)
`Assignee: Microsoft Corporation, Redmond, WA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Notice:
`
`Appl. No.: 09/543,646
`Filed:
`Apr. 5, 2000
`Int. Cl. .................................................... G06F 17/10
`U.S. Cl. .......................... 701/300; 701/207; 701/214;
`701/216; 342/357.09
`Field of Search ..................................... 701/200, 201,
`701/202, 206, 207,214, 216, 300; 379/220,
`221; 342/357.01, 357.02, 357.08, 357.09
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,499,032 * 3/1996 Kelley et al. ........................ 701/207
`5,806,017 * 9/1998 Hancock ........
`... 701/209
`5,917,911 * 6/1999 Dabbish et al. ....................... 380/21
`6,028,551 * 2/2000 Schoen et al. .
`... 342/357.16
`6,216,087 * 4/2001 Want et al. .......................... 701/207
`* cited by examiner
`Primary Examiner William A. Cuchlinski, Jr.
`ASSistant Examiner Gertrude Arthur
`
`(74) Attorney, Agent, or Firm-Lee & Hayes, PLLC
`(57)
`ABSTRACT
`Context-aware computing Systems and methods are
`described. In particular embodiments, location aware Sys
`tems and methods are described. In the described
`embodiments, hierarchical tree Structures are utilized to
`ascertain a device context or location. The tree Structures can
`be Stored on or accessible to mobile computing devices. So
`that the devices can determine their own particular context
`or location. In one embodiment, one of the tree Structures
`comprises a Master World tree structure that contains nodes
`that represent geographical divisions of the Earth. Another
`of the tree Structures can comprise a So-called Secondary
`World that contains nodes that represent physical or logical
`entities that are organization or company Specific views of
`the World. A computing device can automatically determine
`its context or location by ascertaining a node on one or more
`of the tree Structures and then traversing the tree Structure to
`ascertain the complete context. A unique device architecture
`is described that permits context aware computing. The
`device architecture comprises a context Service module, a
`common interface, and one or more context providers. The
`context providers provide information, through the common
`interface, that pertains to the context of a device, and the
`context Service module processes the information to device
`the device's context. An application program interface
`(API)/events layer is provided through which various appli
`cations can call the device to ascertain the device's location
`So that location dependent goods or Services can be ren
`dered. A privacy manager is also provided in Some embodi
`ments to enforce privacy thereby protecting the granularity
`of the location information that is provided to the applica
`tions. In addition, unique location beacons are described that
`transmit information that can be used by the computing
`device to ascertain its location.
`
`53 Claims, 9 Drawing Sheets
`
`
`
`132
`
`172
`
`Wideo
`Adapter
`
`
`
`
`
`
`
`
`
`Application
`Programs 160
`
`(other Program
`Modules 162
`
`Program Data
`164
`
`
`
`Other
`Operating Application
`System,
`Programs, Modules
`158
`160
`
`Program
`Data
`162
`
`^- 164
`
`Keyboard
`
`Application
`Programs
`
`Exhibit 1007
`IPR2022-0427
`Page 1 of 26
`
`
`
`U.S. Patent
`U.S. Patent
`
`Dec. 4, 2001
`Dec. 4, 2001
`
`Sheet 1 of 9
`Sheet 1 of 9
`
`US 6,327,535 B1
`US 6,327,535 B1
`
`
`
`ealy|b907
`
`LOMION
`
`OSPlA
`
`pueoghey
`
`esnow/
`
`
`
`Soe}Ha}u|
`
`sng
`
`9€1
`
`
`
`pseoqhey
`
`MOMIONSS)__|Pavepm,wonon
`pee
`
`seydepyBuijesedo
`
`cLL
`
`cel
`
`bZLyunBuissadol¢sateendtcahaemmmmeeemerermee
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`851+wajsks
`
`O09bswebog
`
`uonealiddy
`
`
`
`ZO}sainpoyy
`
`
`
`wesboldgJeuUIO
`
`791
`
`ejeqweibold
`
`Exhibit 1007
`IPR2022-0427
`Page 2 of 26
`
`Exhibit 1007
`IPR2022-0427
`Page 2 of 26
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 2 of 9
`
`US 6,327,535 B1
`US 6,327,535 B1
`
`sesndweg
`
`sbulpying
`
`SUOISIAIG
`
`suoibey
`
`SWUOOY
`
`$JOO|4
`
`902
`
`Auedwoy
`voz—*
`
`
`
`DHOAAAiepuosas
`
`00z—”207
`
`DONJoIseyy
`
`Yes
`
`SUB9DOYS}UBUI}UOD
`
`
`
`suoieco|jeolsAyd-uoN
`
`
`
`S80kIdpeyejndoy
`
`
`
`SOPO4D|e}SOq
`
`
`
`SUONDSSIB]U]PEOY
`
`
`
`SOIE|dIIIGQNd
`
`SOUOZSUI]
`
`soujunoy
`
`suoibey
`
`SsapoydBay
`
`sanunoy
`
`SO}E}S
`
`
`
`Exhibit 1007
`IPR2022-0427
`Page 3 of 26
`
`Exhibit 1007
`IPR2022-0427
`Page 3 of 26
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 3 of 9
`
`US 6,327,535 B1
`US 6,327,535 B1
`
`JOO}LPAS gzBuipying
`
`400|}Pug
`
`pcBuipling
`
`OSPIA
`
`Joyoaloud
`
`90UBJ9JU04
`
`CVE|WOO
`
`QOUBIOJUO
`
`ELLEWool
`
`ZS086=IZ
`
`Exhibit 1007
`IPR2022-0427
`Page 4 of 26
`
`YOSOIOI||
`
`Aen
`
`puolpey
`
`sndwey
`
`
`
`
`
`Aisepuoosas
`
`zoe—*PHOM
`PLOJ9}SeW
`
`Y – 009
`
`“—00€
`
`Exhibit 1007
`IPR2022-0427
`Page 4 of 26
`
`
`
`
`
`
`ProsJBYJOUBJOSPOUBO}SPOUSUOYU
`
`ZOSSUIJEPOFUONELUIOJU!SSBDOJd
`
`00SJJNAU!SAISIOY
`
`
`
`gonos&WOjNdulsAlaoe
`
`BINIONYSGo}JBOIYOJeJIIY
`
`BINIONIS99}|BOYOJEJIIY
`
`
`ZOPQUILUIZJEP0}SEPOUBICNINWBsJEAes|
`
`
`98}[EOIYDIBIAIUPUODES/ISII]SSBD0V/
`
`007
`
`sainionis
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Dec. 4, 2001
`Dec. 4, 2001
`
`Sheet 4 of 9
`Sheet 4 of 9
`
`US 6,327,535 B1
`US 6,327,535 B1
`
`
`
`1X9]U09
`
`Exhibit 1007
`IPR2022-0427
`Page 5 of 26
`
`Exhibit 1007
`IPR2022-0427
`Page 5 of 26
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 5 of 9
`
`US 6,327,535 B1
`US 6,327,535 B1
`
`
`
`aseISU
`
`énoA
`
`
`
`
`
`
`
`
`
`
`
`
`©
`
`009
`
`uoneayddy
`
`uoneoiddy
`
`SPLOAAaAuepuooas~~©209
`Je\sew©90IA0qBunndwog
`
`vosSIBPIAOI}X9}U0D
`
`
`—>einpow
`
`
`
`e,009
`
`BIIAIOBS}X9]UND
`
` NN809
` NS809
`
`UONEWJOJU|
`
`UOI}ELWUOJU|
`
`UONEWIOJU|
`
`1x9]U0D)
`
`g0JNOS
`
`}X9]U0D
`
`g0uNOS
`
`1x9]U0D
`
`g0JNOS
`
`909
`
`Exhibit 1007
`IPR2022-0427
`Page 6 of 26
`
`uoneoddy
`
`809
`
`Exhibit 1007
`IPR2022-0427
`Page 6 of 26
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 6 of 9
`
`US 6,327,535 B1
`
`SepAOI uOleOO
`
`‘OSIC]
`
`809
`
`809
`
`80 9
`
`90/
`
`
`
`00980/
`
`
`
`
`
`
`
`uOSJewuOO uOleOO
`
`Exhibit 1007
`IPR2022-0427
`Page 7 of 26
`
`
`
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 7 of 9
`
`US 6,327,535 B1
`
`
`
`—8L8
`
`
`
`
`
`pose}X9]U00SuIWW38}9q\
`
`}X9]U09JUuaIINDajepdn
`
`
`
`UOI}BWUOJU!}Xx9}U09UCdN
`
`
`
`SJOPIAOIGJXO}UOWO
`
`Exhibit 1007
`IPR2022-0427
`Page 8 of 26
`
`
`
`Ps1IOD9gO}SIBSAGEJX9]U0D
`
`
`
`TONEUWJOJU!JX9}UD
`
`}SNJ]JO|2AS|Peueped
`
`IMS}OIYJUOSAuy
`
`
`YIMSJOPIAOICJO9|9S1X9]UOD
`
`
`
`clL8vL8
`
`
`
`SJOPIAOIC1X9}U09
`
`
`
`
`
`plleApukesaljoeJOPIO
`
`
`
`
`
`SJBPIAOIC}xX9}UODPI|BA
`
`
`
`
`
`puesAnoeJuauNosUlLa}aq
`
`
`
`
`}X9]UODJUAN19HNO
`
`
`
`008
`
`c08
`
`
`
`SISPIAOIII
`
`é£8anoeul
`
`
`ulBdUapyUCSeseeioaqNS908
`
`
`
`
`
`
`OUI}JOAO}X9]UODJUSUND
`
`
`
`
`
`USINGJOUJSUM
`
`
`
`
`
` SUILUIS}9}yyey|19dole’tL°§:eo
`
`Exhibit 1007
`IPR2022-0427
`Page 8 of 26
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Dec. 4, 2001
`
`Sheet 8 of 9
`
`US 6,327,535 B1
`
`(9/
`: 624
`
`
`
`No. ovou
`
`No.zlow
`
`006
`
`Z06
`
`906
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Exhibit 1007
`IPR2022-0427
`Page 9 of 26
`
`
`
`(
`
`©o
`
`O—
`—
`
`Exhibit 1007
`IPR2022-0427
`Page 10 of 26
`
`
`
`1
`LOCATION BEACONING METHODS AND
`SYSTEMS
`TECHNICAL FIELD
`This invention relates to generally to the area of context
`aware computing or ubiquitous computing.
`BACKGROUND
`The World Wide Web (WWW) was created to make
`content available from any Source in any location around the
`world. Users of the Web are able to generally access a
`seemingly infinite number of resources via the Web. The
`Web has been highly successful in this regard. Yet, with the
`evolution of the Web, certain needs remain largely unmet.
`Specifically, people continue to have a need to acceSS
`information that has a contextual aspect to it. That is, often
`times, individuals will find themselves in a computing
`environment that carries with it a certain context. Yet, the
`context of the environment cannot be easily incorporated
`into the present computing environment. As an example,
`consider the context of location. People generally have a
`need to access information, data, resources and the like, that
`have geographic dimensions to them. For example, indi
`viduals may desire to take advantage of Services or products
`that are close in proximity to where they currently are
`located. In this regard, it is desirable to understand the
`individual's contextual location So that Services, goods and
`the like can be made available to the individual. AS “eCom
`merce' continues to grow in importance, the necessity of
`bringing people, places, Services and goods together in an
`efficient manner will become critically important.
`To date, many attempts have been made to bring people,
`places, Services and goods together. These various attempts
`have generally approached the problem from different direc
`tions in an often times incompatible manner. As an example,
`consider the context of location. Some Services have
`attempted to bring people and Services together by defining
`large databases that maintain information about the Services.
`For example, a list of restaurants may be maintained in a
`web accessible database where each restaurant is associated
`with a zip code in which the restaurant is located. When a
`user desires to locate a particular restaurant, they might
`Simply enter the Zip code where they are located to See a list
`of corresponding restaurants in that Zip code. From the list
`of restaurants, they might be able to Select one or two
`restaurants of interest. This approach is undesirable for a
`number of reasons. First, the operation of the System is
`dependent upon a central Server that is responsible for
`receiving user queries and executing the queries to return the
`information to the user. In the event the Server fails, So too
`does the Service. In addition, this particular Service might be
`Suited to finding restaurants, but possibly not other busi
`nesses. In addition, the granularity with which the results are
`returned to the user may foist Some of the Search burden on
`the user (i.e. the user gets a list of restaurants in a nearby Zip
`code, but has to further explore the list to select which ones
`are of interest). Further, the list of restaurants may include
`Some restaurants that are blocked by Some type of a physical
`barrier (i.e. a river, mountain, etc.) that makes the distance,
`as the crow flies, unroutable.
`Providers of services and products want to be connected
`to nearby end-users. End-users want to consume these
`Services and goods at the closest and most convenient
`location. Acquiring the Services of a dentist or a plumber that
`lives Somewhere “out on the net' is not appropriate if you
`need them to fill a cavity or unclog a sink. Looking for the
`nearest hotdog while in a Stadium requires you to stay in the
`Stadium.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,327,535 B1
`
`2
`There is an unsolved need to be able to create context
`aware computing in which computing devices can partici
`pate in their particular context. In Specific circumstances,
`there are needs to provide relational position awareness
`among physical locations in both public and private views of
`the World. To date, however, there is no one Standardized
`view of the world that would unlock the potential of context
`aware computing. Context-aware computing is much more
`than just position awareneSS-although this is a very big
`field in and of itself.
`This invention arose out of concerns associated with
`developing a Standardized, context-aware infrastructure and
`related Systems to unlock the potential of context-aware
`computing.
`
`SUMMARY
`Context aware computing Systems and methods are
`described. In the described embodiment, one or more hier
`archical tree Structures are defined that uniquely identify
`geographical divisions of the Earth and/or physical or logi
`cal entities. Each tree has multiple nodes and at least one
`node from each tree is linked. Goods and Services can be
`asSociated with individual nodes on the tree, the nodes
`providing a universal reference when attempting to locate or
`consume the goods or Services.
`In one embodiment, a computing device (Such as a
`Stationary or mobile computing device) has access to one or
`more of the tree Structures and can utilize the tree Structures
`to ascertain its current context. The device determines its
`context by traversing one or more of the tree Structures to
`ascertain information that is associated with the individual
`nodes of the tree Structure. In a particular embodiment, the
`context is the device location and the device is capable of
`autonomously determining its location within a Master
`World and one or more Secondary worlds. Once the com
`puting device has determined its location, it can then take
`part in location-dependent Scenarios.
`In one embodiment a Master World is defined and is a
`hierarchical tree Structure that represents a universally
`acceptable description of the World. One or more Secondary
`Worlds can be defined and constitute company- or
`organization-specific views of the world that link with the
`Master World. A Secondary World can describe the location
`tree of an organization.
`In one embodiment, a device architecture includes a
`common interface, a location Service module, a plurality of
`location providers, and an application program interface
`(API) or events layer. Various location providers can call the
`common interface with location information that is pro
`cessed by the location Service module to ascertain the
`device's current location. The location providers provide
`hints about the current location and the location Service
`module turns the hints into a nodal location on one or more
`of the hierarchical tree Structures. The location Service then
`traverses one or more of the tree Structures to ascertain a
`complete device location. Various applications can call the
`API layer to ascertain location information from the location
`Service module. By knowing where a device is located
`within a hierarchical Structure, the applications can present
`location-dependent goods or Services to the user. Thus, a
`user is able to actively participate in their current computing
`environment.
`In other embodiments, the location Service module is able
`to determine, to a degree of certainty, the location of the
`device. It does So through the use of confidence and accu
`racy parameters that are assigned to the information that is
`
`Exhibit 1007
`IPR2022-0427
`Page 11 of 26
`
`
`
`US 6,327,535 B1
`
`3
`provided by the location providers. Additionally, a trust
`parameter can be assigned by the location Service module to
`the location providers and provides a measure of the trust
`that is associated with a particular location provider. The
`location Service module can then consider all of the param
`eters in deciding which location information to use and how
`to use it in determining a device location.
`In another embodiment, privacy issues are addressed by a
`privacy manager that functions to modulate the information
`that is provided to the various applications as a function of
`the applications identities and Security policies on the
`device.
`In yet another embodiment, a unique beacon provider is
`described. A beacon can be located in various places and
`transmits context information that (in the case of location
`information) can be directly used to ascertain the devices
`location relative to a tree Structure node. This provides direct
`information about the device's location within the defined
`hierarchical infrastructure.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a diagram of an exemplary computing device
`that can be used in accordance with the described embodi
`mentS.
`FIG. 2 is a conceptual diagram of an exemplary Master
`World and an exemplary Secondary World in accordance
`with the described embodiment.
`FIG. 3 is an exemplary specific view of a Master World
`and a Secondary World and their relation to one another.
`FIG. 4 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`FIG. 5 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`FIG. 6 is a high level diagram of an exemplary computing
`device architecture.
`FIG. 7 is a somewhat more specific view of an exemplary
`computing device architecture.
`FIG. 8 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`FIG. 9 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`FIG. 10 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`FIG. 11 is a side elevational view of an exemplary
`location beacon in accordance with one embodiment.
`
`DETAILED DESCRIPTION
`
`Overview
`To provide a Standardized Solution, embodiments
`described just below provide a uniform definition of the
`world. The uniform definition is defined in terms of a
`hierarchical tree of nodes, where each node represents. Some
`aspect of the World. Each node is connected to at least one
`other node by a branch. An exemplary classification of nodes
`takes place on a physical level (e.g. physical locations Such
`as political entities, infrastructure entities and public places),
`as well as a non-physical level (e.g. military APOs). This
`hierarchical nodal structure is referred to as the Master
`World, and is a standardized view worldwide. Each node of
`the Master World has various attributes associated with it
`that assist in context-aware computing. Exemplary attributes
`include a unique ID, name, geographic entity class, latitude/
`longitude, relative importance, contextual parents to name
`just a few. The Master World is useful because it can be used
`
`4
`to determine the relative location of a place anywhere in the
`World and at any definable granularity.
`Once an individual’s location or a place an individual is
`interested in is determined, various Services that reference
`the location can be offered to the individual based on their
`location. That is, value is provided by the Master World
`model in the ability to tie Services to nodal locations in the
`Master World.
`Building on this concept, two additional concepts add
`value-the concept of so-called Secondary Worlds and a
`"geoZone.”
`A Secondary World is a powerful computing mechanism
`whereby individual entities (such as businesses or
`organizations) can define their own particular worlds that
`need not necessarily conform to the Master World view of
`the world. That is, while the Master World is essentially a
`physical hierarchical representation of the World, the Sec
`ondary Worlds can be physical and/or logical representa
`tions of each individual entities world view. One particu
`larly useful aspect of the Secondary World is that it links, at
`at least one point, into the Master World. Thus, within any
`Secondary World, a user's location not only within the
`Secondary World, but the Master World as well can be
`determined. Various Services can be attached to the nodes of
`the Secondary World. Based upon a user's calculated
`position, these various Services that are associated with
`Secondary World nodes can be offered to the user. In
`addition, because the user's context is determined relative to
`the Master World, other services that may not be associated
`with a particular Secondary World can be offered.
`A geoZone is essentially a Spatial indexing mechanism by
`which the Master World is Subdivided into individual Zones.
`In the described embodiment, the Zones are subdivided
`through the use of a quadtree algorithm that is dependent on
`a density function (although many other spatial index
`approaches can also be used). Once a desired density level
`is achieved (density might be defined in terms of points of
`interest per Zone), each node on the Master World is
`assigned a particular geoZone. GeoZones enable proximity
`calculations to be computed in a fast and Straight forward
`C.
`A useful aspect of the Master and Secondary Worlds are
`that they are “reachable' from various computing devices
`Such as Stationary (i.e. desktop devices) or mobile comput
`ing devices (i.e. cellphones, laptops etc.). That is, the Master
`World (or at least a portion of it) and one or more Secondary
`Worlds can be either locally maintained on the computing
`device, or accessed, e.g. via the Web or Some other
`mechanism, So that a user can derive their context. For
`example, the Secondary World can be downloaded onto the
`computing device So that a user can derive their context
`within the Secondary World. Once a user's context is
`determined from the Master World and one or more Sec
`ondary Worlds, a various robust collection of context-aware
`Solutions become available to the user. For example, Specific
`Secondary World Services can be offered or Master World
`services can be offered. Additionally, services from other
`Secondary Worlds might also be offered since the user's
`location may be known (or made known) to these other
`Secondary Worlds. In this way, the Master World can link
`two or more Secondary Worlds together.
`Another aspect is that the described embodiments harneSS
`the computing power of each computing device in deter
`mining the device's location. Here, by virtue of having the
`Master World and one or more Secondary Worlds reachable
`by the device (and possibly locally maintained on the
`device), the device itself determines its own context.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Exhibit 1007
`IPR2022-0427
`Page 12 of 26
`
`
`
`S
`One embodiment provides a client side device that is
`configured to utilize the context-aware structures that are
`discussed above, i.e. the Master and one or more Secondary
`Worlds. The Master World or a portion thereof can be locally
`available on the device or can be accessible at another
`location, e.g. via the Web. In this embodiment, the client
`device has a location service embodied thereon. The
`described location Service is a Software module that can
`determine the location of the device and can answer queries
`from various applications (either executing on the device or
`off the device). The location service determines the location
`of the device by using the Master World and one or more
`Secondary Worlds. The applications query the location Ser
`Vice through one or more Application Program Interfaces
`(APIs) or Events to get location information that is used by
`the applications to render a Service.
`The location Service makes use of one or more location
`providers that convey information to the device. This infor
`mation can be information that is specific to the location
`provider, or can be information that can be mapped directly
`into a node of the Master World or Secondary Worlds.
`Exemplary location providers can include Global Position
`ing Service (GPS) providers, cell phone providers (cell
`providers), Bluetooth providers, a user interface provider
`and the like. The location providers provide information that
`gives Some aspect of a device's current location. This
`information is used by the location Service to ascertain the
`location of the device.
`One particularly advantageous feature of the client device
`is a Standard or common location provider interface. The
`location provider interface enables the various location
`providers to provide information to the location Service So
`that the location Service can use the information to deter
`mine its location. Essentially, the multiple location provider
`interface is a common interface that enables multiple dif
`ferent location providers to provide location information (or
`hints) about location to a location Service that is on a device.
`The location providers can provide the location information
`constantly, at intervals, or when polled by the device. The
`location information can be provided with confidence and
`accuracy estimates to enable the location Service to evaluate
`the relative quality of the information before it is used. The
`various providers also have the ability to self-monitor them
`selves which assists in the providers’ ability to intelligently
`convey information to the location Service. By having a
`common interface, the collection of location providers is
`dynamically extensible-that is location providers can be
`added or removed from the collection of location providers
`without any interference of the functionality performed by
`the location Service or device. The location providers can be
`added or removed while the device is operating. This is
`particularly useful in accommodating location providers that
`are developed in the future. In this particular embodiment,
`two levels of abstraction are provided i.e. (1) the provider
`interface that receives information from the location pro
`viders and (2) the API/events layer that enables applications
`to get at the various information.
`One focus of this embodiment is a device that can collect
`context information (e.g. location information) from a vari
`ety of different Sources, determine the device's current
`context from that information, and provide the current
`context at Some level to one or more applications that can
`use the device's context to render a Service or enable the
`device to participate in its context environment.
`In the described embodiment, the device receives location
`information or hints about its location. This information is
`collated and mapped by the location Service into a node in
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,327,535 B1
`
`6
`the Master World and/or Secondary World. The hierarchical
`trees can then be traversed to determine the device's accu
`rate location in both the Secondary World and the Master
`World. At this point, the device has determined its context.
`The information that is collected can be subject to arbitration
`to ensure that only highly trusted information is used to
`determine context. The location information can be cached
`to provide “current location information” which, for a defin
`able period of time will be accurate to Some degree. Thus,
`if for Some reason other location providers are unavailable,
`the cache can be used to ascertain location.
`Once a device's location is determined, the device can
`apply a Security policy to the information. Once this is done,
`the device can begin to answer queries from various appli
`cations.
`One aspect of the described embodiment is a “favorite
`locations” aspect in which the device can be automatically
`configured, when it determines its context, So that it can
`adjust to the different locations.
`Further, various types of location providers can convey
`different types of information. For example, a so-called “thin
`provider” provides location information that is translated by
`the location Service into the appropriate node information. A
`So-called “thick provider' includes logic that takes location
`information and provides it in a form that can map directly
`into the Master World or Secondary World.
`In another embodiment location translation Services are
`provided that are directed to determining, as accurately as
`possible, the context or location of the device. In this
`embodiment, information is received from the various loca
`tion providers. This information includes location, accuracy
`and confidence (all of which are provided by the location
`provider), trust (which is assigned to a location provider by
`the device or a user) and a timestamp (which helps to age the
`location information). The location translation processing
`involves determining which of the location providers are
`valid and active. The location providers can be ranked in
`accordance with the confidence and trust levels. This defines
`an ordered list of location providers. Provision is made for
`a situation in which all of the location providers may go
`inactive. If So, a “current location' is used as a location
`provider whose confidence decreases over time.
`In the event that information from two or more of the
`location providers conflicts, then measures can be taken to
`use information for which there is a higher level of trust. The
`information that is provided by all of the location providers
`(assuming no conflict) can then be used to determine a tree
`structure and a node's entity ID (EID). The tree might be the
`Master World and the EID is a node on the Master World.
`The tree might also be a Secondary World and the EID (or
`location unique indentifier or “LUID") is a node on the
`Secondary World. Once this information is collected, com
`plete location information can be determined by Simply
`traversing the tree(s). Once a devices location is
`determined, a cache can be updated with the current location
`(including a time stamp).
`In another embodiment, privacy issues in the context
`aware computing environment are addressed. In this
`embodiment, the location Service has acquired location
`information that pertains to the location of a particular
`device. A privacy manager determines what level of infor
`mation to provide to applications that might request the
`information. The privacy manager can reside on the com
`puting device itself, or can be proxied by a trusted third
`party.
`According to this embodiment, a Scale of privacy levels
`are defined. Each level is defined to include more or less
`
`Exhibit 1007
`IPR2022-0427
`Page 13 of 26
`
`
`
`US 6,327,535 B1
`
`15
`
`25
`
`35
`
`40
`
`7
`Specific information about the location of a particular
`device. A user is able to assign a privacy level to entities that
`might request location information. Additionally, each node
`of the Master World and a Secondary World can have a
`privacy level associated with it. When a query from an
`application is received, the privacy manager first determines
`who the query is from and the privacy level associated with
`the application or entity. The privacy manager then evaluates
`one or more of the Master World and the Secondary World
`to find a node that has a corresponding privacy level. When
`a corresponding node is found, information at that particular
`granularity is provided to the requesting application or
`entity.
`In another embodiment Systems and methods of providing
`a location provider in the form of a location beacon are
`described. In this embodiment, a location beacon is provided
`that can be mounted in various areas (public/private areas)
`to beacon the location to any computing devices within
`transmission range. The information that is transmitted
`enables a device to determine its location or context. The
`location beacon can transmit information that is specific to
`the location Service that uses the information. Transmitted
`information can include an EID/URL pair, and a LUID/URL
`pair. The EID gives the node identification of a node in the
`Master World; and, the associated URL gives a protocol to
`communicate with the Master World. The URL might, for
`instance, link to a server that can provide additional context
`information that uses the EID. The indicates a node on a
`Secondary World that corresponds to a current location; and
`the URL gives a protocol to communicate with the Second
`ary World. For example, the URL can link with a server that
`is hosting the Secondary World. This server can then be
`queried to discover more information about the Secondary
`World (i.e. Secondary World tree structure, location of
`associated resources, etc.) With the EID and LUID (along
`with the URLs), a device can now traverse the Master World
`or Secondary World to determine its location. Various tech
`nologies can be used to implement the beacon (wireless, RF,
`IR). The beacon can be a “program once” device to deter
`tampering. Programmable beacons can, however, be pro
`vided. Security can also be provided in the form of a
`verifiable signature that is provided with the beacon infor
`mation to assure the Veracity of the transmitted information.
`A useful context-aware computing aspect of the beacon is
`the concept of “location-enabled access'. That is, in addition
`to (or separately from) receiving location information, a
`beacon can transmit code download pointers that enable
`Smart devices to acceSS Software code that allows the device
`to participate in its current context.
`Exemplary Computing System
`In the context of this document, the term “computing
`device' is used to refer generally to any type of computing
`device. Characteristics of exemplary computing devices are
`that they typically include one or more processors,
`computer-readable media (Such as Storage devices and
`memory), and So