`(12) Patent Application Publication (10) Pub. No.: US 2004/0236850 A1
`(43) Pub. Date:
`Nov. 25, 2004
`Krumm et al.
`
`US 20040236850A1
`
`(54) CLIENT PROXIMITY DETECTION METHOD
`AND SYSTEM
`(75) Inventors: John C. Krumm, Redmond, WA (US);
`Susan D. Woolf, Seattle, WA (US);
`Roland Fernandez, Woodinville, WA
`(US); David J. Marsh, Sammamish,
`WA (US); Albert D. Jee, Sammamish,
`WA (US); Wayne G. King, Kirkland,
`WA (US)
`Correspondence Address:
`Law Offices of Albert S. Michalik, PLLC
`Suite 193
`704-228th Avenue NE
`Sammamish, WA 98.074 (US)
`CORPORATION,
`(73) Assignee: MICROSOFT
`REDMOND, WASHINGTON
`(21) Appl. No.:
`10/677,125
`(22) Filed:
`Sep. 30, 2003
`Related U.S. Application Data
`(60) Provisional application No. 60/471,982, filed on May
`19, 2003.
`
`Publication Classification
`
`(51) Int. Cl. ................................................. G06F 15/173
`(52) U.S. Cl. ............................................ 709/224; 370/913
`
`(57)
`
`ABSTRACT
`
`A System and method in a wireleSS network for discovering
`which resources (e.g., other wireless computing devices) are
`proximate a user's wireleSS computing device. WireleSS
`Signal Strengths with respect to various base Stations are
`compared with the Signal Strengths of other network devices
`or resources, to determine which devices are experiencing
`Similar Signal Strengths. Devices with Similar Signal
`Strengths are deemed proximate. Each participating comput
`ing device may send its signal Strength reports to a proximity
`Server, which distributes proximity data to network clients.
`Each client may receive and process the Signal Strength data
`for determining which other clients/resources are proximate,
`or the Server can perform proximity computations and return
`a list of proximate clients. Once computed, the identities of
`the proximate clients can be used to query for additional data
`about the clients, Such as the names and other details of their
`owners, or information about the resource.
`
`Send Averaged
`Signal Strengths
`
`ine to
`Receive
`Data
`
`Query Server for
`Data, receive
`Response
`
`Process Data,
`Update Display
`(as needed)
`
`Notify Server
`(if needed)
`
`
`
`Close
`Program
`
`Obtain Current
`Signal Strengths,
`Average Results
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 1 of 17
`
`SAMSUNG EX-1030
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 1 of 6
`
`US 2004/0236850 A1
`
`S6L
`
`Ost
`
`
`
`
`961jessydiiad
`[ssi|"\
`
`YIOMJANBaly[2907]
`bLLaoejapU]
`$8}NOILVOIIdd¥
`
`__SWWe50ud
`YIOMJONBAlyOPINZL}
`
`cbpueoqhey9bou
`Lory
`asnowC9}y001
`
`3LOWSY
`
`LI
`
`WVYSOud
`
`sa1ndow
`
`aoejazU
`
`usal2g
`
`eeu]
`sIeLa}uU]
`
`yndjno
`
`-yonoL
`
`OaPlA
`
`wun
`
`sngwa}sks
`
`YIOMION
`
`43sn
`
`ynduy
`
`aoeyezu|
`
`aIqeAoWway
`3|QeAouay-UON
`
`*JOA-UON
`
`Asowaw
`
`sdeLS}U]
`
`
`
`Soepa}U}
`
`Alowa"|OA-UON
`
`WYeSOud
`
`PerW3LSAS
`
`ONILVESdO
`
`Zeb(Wve)
`
`StrSWVeDONd
`NOILVOMddV
`
`
`
`WYYSO0udYSHLO
`
`TEP(IwOU)
`
`Page 2 of 17
`
`Page 2 of 17
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 2 of 6
`FIG. 2
`
`
`
`US 2004/0236850 A1
`
`
`
`Base
`Station2
`
`f 2022
`
`
`
`
`
`Mobile
`Device - B
`
`C
`
`Base
`Stations
`
`N
`
`208
`
`206
`
`Base
`Station
`
`CD
`s
`
`Page 3 of 17
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 3 of 6
`
`US 2004/0236850 A1
`
`
`
`
`
`	
`
`909809
`
`Page 4 of 17
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 4 of 6
`
`US 2004/0236850 A1
`
`F.G. 4
`
`400
`
`\
`
`4021
`
`\
`\
`V
`
`
`
`/
`/
`
`420
`
`\
`
`v
`
`Fixed
`Resource
`(pre-calibrated)
`
`
`
`422
`
`Fixed
`Resource
`(pre-calibrated)
`
`/ O
`Base
`Station2
`
`4022
`
`410
`
`Fixed
`Device - X
`
`NO
`
`Base
`Station3
`
`V 412
`
`4023
`Fixed
`\ Device - Y
`N
`\
`C
`
`4024
`
`Base
`Station
`
`406
`
`402
`
`Base
`Station
`
`Page 5 of 17
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 5 of 6
`
`US 2004/0236850 A1
`
`500
`
`
`
`SUMMAGENOA
`
`Ameritade , Harrisdirect
`Trade of Saeet
`TD Waterhouse
`ke
`last
`MSFT
`. ii. . ; Update
`.
`.
`.
`. . .
`.
`.
`Market Report News Top 10
`
`SNECelts
`& Algeria quake toll grows
`U.N. lifts sanctions against
`rac
`NBC's Today doney for
`We
`
`s
`
`Recreates
`3 Thursday. Light Rain (65.52)
`s Friday. Fostly Cloudy (7454)
`
`& Saturday. Showers (65.50)
`
`"The Agile Business: Balancing Strategy and Execution"
`
`DAY ONE: Wednesday, May 21st, 2003
`
`8:00a
`
`Talet PC Session
`
`SOa
`
`Welcome Keynote
`Microsoft Corporation
`
`10:30am
`
`introduction
`Business strategist and author
`
`11:00a
`
`Break
`
`11:30a
`
`Real Business Value of Technology
`Panel moderator
`Chairman ad CEO
`
`
`
`12:30pm
`
`inch
`
`7
`Rsssf.gfins
`Microsoft Corp.
`
`Garfish
`Microsoft Corp.
`Tech Specialist.
`
`Crstate Mesage
`
`Ysultige GPC
`
`es
`
`KAAinslows
`
`rtrustPosy
`Cedits
`
`Page 6 of 17
`
`
`
`Patent Application Publication Nov. 25, 2004 Sheet 6 of 6
`
`US 2004/0236850 A1
`
`Obegin 9
`
`FIG. 6
`
`6OO
`
`Participation
`
`No
`
`
`
`ime to
`Receive
`Data
`
`Send Averaged
`Signal Strengths
`
`608
`
`Query Server for
`Data, Receive
`Response
`
`Process Data,
`Update Display
`(as needed)
`
`to Scan
`p
`
`Yes
`
`614
`
`Obtain Current
`Signal Strengths,
`Average Results
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`616
`
`618
`
`Notify Server
`(if needed)
`
`Close
`Program
`
`Page 7 of 17
`
`
`
`US 2004/0236850 A1
`
`Nov. 25, 2004
`
`CLIENT PROXMITY DETECTION METHOD AND
`SYSTEM
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`0001. The present invention claims priority to U.S. pro
`visional patent application Ser. No. 60/471,982, filed May
`19, 2003 and herein incorporated by reference.
`
`FIELD OF THE INVENTION
`0002 The invention relates generally to computer sys
`tems and networks, and more particularly to computer
`Systems employing wireleSS communications.
`
`BACKGROUND OF THE INVENTION
`0003) When in unfamiliar settings, it would be very
`useful for a person to be able to automatically discover who
`else was nearby, and also what other resources were near that
`perSon. For example, at conferences, meetings and other
`Social engagements, people interact with one another fairly
`regularly, and often see the Same people at many Such
`events. One of the most awkward and difficult things that
`occurs for an individual is to See Someone that he or she
`should know fairly well from a previous encounter, yet be
`unable to remember the name and other details of that
`perSon. Some people may go So far as to attempt to avoid
`Such a perSon until they can recall at least the name, or
`otherwise find out who that person is.
`0004.
`In addition to discovering other people, many
`individuals would benefit from being able to discover other
`resources that are nearby. For example, a user of a mobile
`computing device may need to print a document, Such as
`when out of the office, and would thus benefit from being
`able to detect the nearest available printer. AS another
`example, a user may misplace a mobile computing device,
`Such as by leaving a pocket-sized digital assistant in Some
`one else's office or under a pile of papers, and would benefit
`from being able to discover the location of the misplaced
`device. AS other examples, a perSon may want to find the
`nearest elevator, bathroom, or vending machine, even
`though these devices are not part of any computer network.
`0005 What is needed is a way for a user of a computing
`device to be able to detect or otherwise discover people and
`other resources that are nearby the user's computing device.
`The method and system should be reliable, flexible, and
`extensible, as well as easy to use and understand for even
`non-Sophisticated computer users.
`
`SUMMARY OF THE INVENTION
`0006 Briefly, the present invention provides a system
`and method in a wireleSS network for discovering via a
`network-capable device (Such as a computing device) which
`other wireleSS network devices and other transmitters of
`network information are proximate the network device. With
`this information, information about another resource (e.g.,
`biographical data about a computing device's owner, or its
`device capabilities and/or location) may be looked up or
`otherwise provided to a network device for presentation to
`a user of that device.
`0007 To discover which other resources such as wireless
`network devices are proximate, the System and method
`
`gather wireless signal strengths (with respect to various base
`Stations, or access points or the like) from participating
`resources Such as network devices, and then compare those
`Signal Strengths to determine which devices are experiencing
`Similar Signal Strengths. Those with Similar signal Strengths
`are determined to be in proximity to one another.
`0008. In one implementation, each participating comput
`ing device (proximity client) is responsible for Sending
`Signal Strength reports for the various base Stations that it can
`See to a proximity Server. A client can also optionally register
`with the Server, Supplying data Such as a name String and an
`expiration time. In an alternative implementation, clients can
`provide Signal Strengths to one another in a peer-to-peer data
`eXchange model. In a client-Server model, the Server can
`distribute (e.g., when queried or periodically) the signal
`Strength information to the clients, or the Server can perform
`computations to determine which participating clients are
`proximate any given client, as determined based on Similar
`Signal Strength reports. A list of Such other clients may be
`provided to each client, possibly including other informa
`tion. For example, if the client does not compute proximity
`on its own, then the list can include information about the
`other clients Such as biographical data of its associated user,
`or the client can otherwise obtain the information, Such as by
`querying a database.
`0009 If the client does its own proximity computations,
`then the client queries the server (or other clients) for signal
`Strength reports, or receives them in Some other manner Such
`as periodically, usually going back in time Some limited
`amount. Once computed, the client list can be used as a basis
`for querying a database as needed to obtain additional data
`about the other clients, Such as the names and other details
`of their owners, or information about the resource (e.g., a
`printer and its intended location, Such as at an information
`booth).
`0010. A client can be set up to report its signal strengths
`and present lists of nearby clients on demand. The on
`demand (manual) mode is useful for obtaining a one-time
`list of nearby users, for example at the beginning of a
`meeting. Alternatively, the client can be set up to perform the
`reporting function periodically (or on Some occasional
`basis). Such a periodic mode is useful if users are frequently
`moving from place to place, when their Signal Strengths and
`proximity relations will also change frequently. The report
`ing can be Some combination of these mechanisms, e.g.,
`Switch from an on-demand reporting mode to a periodic
`reporting mode when a client's own average Signal Strengths
`with respect to base Stations Start varying beyond Some
`threshold, which would be indicative of the client moving.
`0011. In a client-server model, the proximity server col
`lects signal Strength data from each mobile client and
`distributes the Signal strengths and/or proximity data (Such
`as a list of clients) back to those mobile clients. The
`proximity Server is a central computer that Stores signal
`Strength data reports contributed by the participating mobile
`proximity clients. In one implementation, each report com
`prises a Set of ordered pairs, with each ordered pair giving
`a base Station identifier and the Signal Strength from that base
`Station as measured on the client. The proximity Server
`tracks the data in association with the identity of the report
`ing mobile device, and adds a time Stamp that indicates
`when the report was received.
`
`Page 8 of 17
`
`
`
`US 2004/0236850 A1
`
`Nov. 25, 2004
`
`0012 Proximity clients may query data from the prox
`imity Server. For example, if a client performs its own
`proximity computations, then that client will request signal
`Strength reports from the Server, usually going back in time
`by an amount specified by the client. This “look back' time
`acts as a filter on the data So only recent Signal Strength data
`may be considered, as older data may have come from
`locations that the clients are no longer near. Other Smoothing
`and filtering operations are feasible. Other clients, Such as
`those that do not perform their own proximity computations,
`may request that the Server Send back a list of other nearby
`clients.
`0013 The proximity information, whether calculated
`from obtained signal Strength data or obtained from the
`Server, can be used to access one or more databases (e.g., a
`database of biographical data built during conference reg
`istration Such as including a picture, name and facts),
`whereby information about a nearby individual or device is
`readily available to a participating client computer.
`0.014
`Proximity to non-networked or non-electronic
`resources Such as Stairways or bathrooms can be computed
`by representing each Such device as a Set of Signal Strengths
`in the database. These signal Strengths are measured in a
`calibration Step in which a user visits the resource's actual
`location while carrying a wireleSS device. The resources
`Signal Strengths are measured with the WireleSS devices and
`reported to the database. In this way, any resource can be
`tagged with Signal Strengths and then participate in proxim
`ity queries.
`0.015. Other advantages will become apparent from the
`following detailed description when taken in conjunction
`with the drawings, in which:
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0016 FIG. 1 is a block diagram generally representing a
`computer System into which the present invention may be
`incorporated;
`0017 FIG. 2 is a block diagram generally representing a
`network, including a plurality of base Stations having wire
`leSS connections to a plurality of network devices, config
`ured to use Signal Strength data in accordance with an aspect
`of the present invention;
`0.018
`FIG. 3 is a block diagram generally representing
`another network, including a plurality of base Stations hav
`ing wireleSS connections to a plurality of network devices,
`configured to use signal Strength data in accordance with an
`0.019
`FIG. 4 is a block diagram generally representing a
`network including fixed and wireleSS devices, configured to
`use Signal Strength data in accordance with an aspect of the
`present invention;
`0020 FIG. 5 is a representation of a program display
`showing one example of how Signal Strength data may be
`used to present a computer user with information based on
`proximity data of other network devices, in accordance with
`an aspect of the present invention; and
`0021
`FIG. 6 is flow diagram generally representing
`operation of a client program to use Signal Strength data to
`present a computer user with information based on proxim
`ity data of other network devices, in accordance with an
`aspect of the present invention.
`
`DETAILED DESCRIPTION
`0022 Exemplary Operating Environment
`0023 FIG. 1 illustrates an example of a suitable com
`puting system environment 100 on which the invention may
`be implemented. The computing system environment 100 is
`only one example of a Suitable computing environment and
`is not intended to Suggest any limitation as to the Scope of
`use or functionality of the invention. Neither should the
`computing environment 100 be interpreted as having any
`dependency or requirement relating to any one or combina
`tion of components illustrated in the exemplary operating
`environment 100.
`0024. The invention is operational with numerous other
`general purpose or Special purpose computing System envi
`ronments or configurations. Examples of well known com
`puting Systems, environments, and/or configurations that
`may be suitable for use with the invention include, but are
`not limited to, personal computers, Server computers, hand
`held or laptop devices, tablet devices, multiprocessor Sys
`tems, microprocessor-based Systems, Set top boxes, pro
`grammable
`consumer
`electronics,
`network
`PCs,
`minicomputers, mainframe computers, distributed comput
`ing environments that include any of the above Systems or
`devices, and the like.
`0025 The invention may be described in the general
`context of computer-executable instructions, Such as pro
`gram modules, being eXecuted by a computer. Generally,
`program modules include routines, programs, objects, com
`ponents, data Structures, and So forth, that perform particular
`tasks or implement particular abstract data types. The inven
`tion may also be practiced in distributed computing envi
`ronments where tasks are performed by remote processing
`devices that are linked through a communications network.
`In a distributed local and remote computer Storage media
`including memory Storage devices.
`0026. With reference to FIG. 1, an exemplary system for
`implementing the invention includes a general purpose
`computing device in the form of a computer 110. Compo
`nents of the computer 110 may include, but are not limited
`to, a processing unit 120, a System memory 130, and a
`System buS 121 that couples various System components
`including the System memory to the processing unit 120.
`The system bus 121 may be any of several types of bus
`Structures including a memory bus or memory controller, a
`peripheral bus, and a local bus using any of a variety of bus
`architectures. By way of example, and not limitation, Such
`architectures include Industry Standard Architecture (ISA)
`bus, Micro Channel Architecture (MCA) bus, Enhanced ISA
`(EISA) bus, Video Electronics Standards Association
`(VESA) local bus, and Peripheral Component Interconnect
`(PCI) bus also known as Mezzanine bus.
`0027. The computer 110 typically includes a variety of
`computer-readable media. Computer-readable media can be
`any available media that can be accessed by the computer
`110 and includes both volatile and nonvolatile media, and
`removable and non-removable media. By way of example,
`and not limitation, computer-readable media may comprise
`computer Storage media and communication media. Com
`puter Storage media includes both volatile and nonvolatile,
`removable and non-removable media implemented in any
`method or technology for Storage of information Such as
`
`Page 9 of 17
`
`
`
`US 2004/0236850 A1
`
`Nov. 25, 2004
`
`computer-readable instructions, data structures, program
`modules or other data. Computer Storage media includes, but
`is not limited to, RAM, ROM, EEPROM, flash memory or
`other memory technology, CD-ROM, digital versatile disks
`(DVD) or other optical disk storage, magnetic cassettes,
`magnetic tape, magnetic disk Storage or other magnetic
`Storage devices, or any other medium which can be used to
`Store the desired information and which can accessed by the
`computer 110. Communication media typically embodies
`computer-readable instructions, data structures, program
`modules or other data in a modulated data Signal Such as a
`carrier wave or other transport mechanism and includes any
`information delivery media. The term "modulated data Sig
`nal” means a signal that has one or more of its characteristics
`Set or changed in Such a manner as to encode information in
`the Signal. By way of example, and not limitation, commu
`nication media includes wired media Such as a wired net
`work or direct-wired connection, and wireleSS media Such as
`acoustic, RF, infrared and other wireleSS media. Combina
`tions of the any of the above should also be included within
`the Scope of computer-readable media.
`0028. The system memory 130 includes computer stor
`age media in the form of Volatile and/or nonvolatile memory
`such as read only memory (ROM) 131 and random access
`memory (RAM) 132. A basic input/output system 133
`(BIOS), containing the basic routines that help to transfer
`information between elements within computer 110, such as
`during start-up, is typically stored in ROM 131. RAM 132
`typically contains data and/or program modules that are
`immediately accessible to and/or presently being operated
`on by processing unit 120. By way of example, and not
`limitation, FIG. 1 illustrates operating System 134, applica
`tion programs 135, other program modules 136 and program
`data 137.
`0029. The computer 110 may also include other remov
`able/non-removable, Volatile/nonvolatile computer Storage
`media. By way of example only, FIG. 1 illustrates a hard
`disk drive 141 that reads from or writes to non-removable,
`nonvolatile magnetic media, a magnetic disk drive 151 that
`reads from or writes to a removable, nonvolatile magnetic
`disk 152, and an optical disk drive 155 that reads from or
`writes to a removable, nonvolatile optical disk 156 Such as
`a CD ROM or other optical media. Other removable/non
`removable, Volatile/nonvolatile computer Storage media that
`can be used in the exemplary operating environment
`include, but are not limited to, magnetic tape cassettes, flash
`memory cards, digital versatile disks, digital Video tape,
`Solid state RAM, Solid state ROM, and the like. The hard
`disk drive 141 is typically connected to the system bus 121
`through a non-removable memory interface Such as interface
`140, and magnetic disk drive 151 and optical disk drive 155
`are typically connected to the System buS 121 by a remov
`able memory interface, such as interface 150.
`0030 The drives and their associated computer storage
`media, discussed above and illustrated in FIG. 1, provide
`Storage of computer-readable instructions, data Structures,
`program modules and other data for the computer 110. In
`FIG. 1, for example, hard disk drive 141 is illustrated as
`Storing operating System 144, application programs 145,
`other program modules 146 and program data 147. Note that
`these components can either be the same as or different from
`operating System 134, application programs 135, other pro
`gram modules 136, and program data 137. Operating System
`
`144, application programs 145, other program modules 146,
`and program data 147 are given different numbers herein to
`illustrate that, at a minimum, they are different copies. A user
`may enter commands and information into the computer 110
`through input devices Such as a tablet (electronic digitizer)
`164, a microphone 163, a keyboard 162 and pointing device
`161, commonly referred to as mouse, trackball or touchpad.
`Other input devices (not shown) may include a joystick,
`game pad, Satellite dish, Scanner, or the like. These and other
`input devices are often connected to the processing unit 120
`through a user input interface 160 that is coupled to the
`System bus, but may be connected by other interface and bus
`Structures, Such as a parallel port, game port or a universal
`serial bus (USB). A monitor 191 or other type of display
`device is also connected to the System buS 121 via an
`interface, Such as a video interface 190. The monitor 191
`may also be integrated with a touch-screen panel 193 or the
`like that can input digitized input Such as handwriting into
`the computer System 110 via an interface, Such as a touch
`Screen interface 192. Note that the monitor and/or touch
`Screen panel can be physically coupled to a housing in which
`the computing device 110 is incorporated, Such as in a
`tablet-type personal computer, wherein the touch Screen
`panel 193 essentially serves as the tablet 164. In addition,
`computerS Such as the computing device 110 may also
`include other peripheral output devices such as speakers 195
`and printer 196, which may be connected through an output
`peripheral interface 194 or the like.
`0031. The computer 110 may operate in a networked
`environment using logical connections to one or more
`remote computers, Such as a remote computer 180. The
`remote computer 180 may be a personal computer, a Server,
`a router, a network PC, a peer device or other common
`network node, and typically includes many or all of the
`elements described above relative to the computer 110,
`although only a memory Storage device 181 has been
`illustrated in FIG. 1. The logical connections depicted in
`FIG. 1 include a local area network (LAN) 171 and a wide
`area network (WAN) 173, but may also include other
`networkS. Such networking environments are commonplace
`in offices, enterprise-wide computer networks, intranets and
`the Internet.
`0032. When used in a LAN networking environment, the
`computer 110 is connected to the LAN 171 through a
`network interface or adapter 170, and particularly may
`include one configured for wireleSS networking. When used
`in a WAN networking environment, the computer 110 may
`also include a modem 172 or other means for establishing
`communications over the WAN 173, Such as the Internet.
`The modem 172, which may be internal or external, may be
`connected to the System buS 121 via the user input interface
`160 or other appropriate mechanism. In a networked envi
`ronment, program modules depicted relative to the computer
`110, or portions thereof, may be stored in the remote
`memory Storage device. By way of example, and not limi
`tation, FIG. 1 illustrates remote application programs 185 as
`residing on memory device 181. It will be appreciated that
`the network connections shown are exemplary and other
`means of establishing a communications link between the
`computerS may be used.
`0033 Client Proximity Detection
`0034. The present invention, in part, directed towards a
`method and System that use radio signal Strengths from a
`
`Page 10 of 17
`
`
`
`US 2004/0236850 A1
`
`Nov. 25, 2004
`
`wireleSS computer network to estimate which other mobile,
`wireless devices (and possibly their owners) are in physical
`proximity. While the examples herein generally refer to
`mobile network devices in the form of portable computer
`Systems. Such as tablet personal computers, it should be
`understood that Virtually any device capable of transmitting
`information to a wireleSS network can participate in the
`proximity detection Schemes described herein. Moreover,
`Sources other than radio waves can be used to detect
`proximity of devices having Suitable Sensors, Such as Sound
`waves and light patterns. In general, anything that can be
`Sensed by Some mechanism that has characteristics local to
`Some area may be used to compute (or help compute)
`proximity. Thus, although radio is primarily described
`herein, proximity detection based on the principles of the
`present invention may apply to many other concepts, and
`thus the term "network” need not be an actual computer
`network, the terms "signal” and “signal Strength' are
`intended to encompass any Sensed information that varies
`based on location, and “base station' or “base stations”
`represent any signal Source or Sources from which data can
`be sensed.
`0.035 Moreover, participation need not be symmetrical,
`in that, for example, a device can transmit its signal Strength
`data for proximity detection purposes without receiving
`Similar data from other devices, in essence describing its
`location but not concerning itself with the location of other
`devices. Thus, for example, an individual can wear a Small
`transmitting device that essentially announces the individu
`als location but does not process data related to detecting
`other devices in proximity. Conversely, a device can receive
`proximity-related data of other network devices without
`transmitting its signal Strength data, however participation is
`generally desirable, as will be readily apparent. Also, for
`non-networked or non-electronic resources, the resource
`may be represented by a Set of Signal Strengths that were
`measured only once in a calibration Step. Note that as used
`herein, although much of the description exemplifies the use
`of wireleSS computing devices, the term “resource” includes
`the concept of Such a wireleSS device and/or any other type
`of computing device, as well as Some non-networked or
`even non-electronic devices. In general, a resource thus can
`be anything that has associated Signal Strength data, Such as
`actual, current Signal Strength data of a mobile computing
`device, or pre-measured data Stored for a fixed resource or
`the like.
`0.036 AS generally represented in FIG. 2, a wireless
`network 200 is normally composed of multiple, statically
`mounted, wireless base stations (five are shown in FIG. 2,
`labeled 202-202s, although it is understood that any prac
`tical number may be present) that simultaneously commu
`nicate over radio frequencies to wireless devices (four are
`shown, 204A-204, which can again be any practical num
`ber) and over network cables with a wired network. When in
`range, each mobile device can “see' (receive signals from)
`one or more of these base Stations, and measure the Strength
`of the radio signal it is receiving from these base Stations.
`This measurement is often referred to as “RSSI,’ for
`“Received Signal Strength Indicator.” Note that the mea
`sured RSSI of a base station varies from place to place due
`to the natural attenuation of radio Signals with distance as
`well as the reflection, refraction, diffraction, and attenuation
`caused by the physical environment, like walls, floors,
`
`ceilings, and furniture. Thus, the RSSI that a mobile device
`measures is Sensitive to that device's location.
`0037. In one implementation, the present invention
`detects the proximity of two or more devices connected to a
`wireleSS network by examining the Signal Strengths that
`802.11 clients measure from statically mounted 802.11
`access points, (wherein 802.11 specifies well-known wire
`less communications standards based on IEEE 802.11 speci
`fications). In general, when the Signal strengths are similar
`enough, the clients are declared to be in proximity. Note that
`802.11 coverage and the number of 802.11-enabled devices
`are becoming prevalent, and in Such an environment the
`present invention enables 802.11 clients to see which other
`802.11 clients are nearby, using the existing infrastructure.
`As will be understood, this detection enables a wide variety
`of applications, including automatically showing a list of
`nearby friends, displaying information about unknown
`people Standing nearby in a Social Setting, advertising the
`proximity of nearby 802.11-connected devices, Such as
`wireleSS printers, finding nearby resources, and So forth.
`Notwithstanding, the present invention is not limited to any
`particular applications, communications Standards, frequen
`cies, protocols or the like.
`0038. In general, an implementation of the present inven
`tion operates by comparing a pair of wireless network (e.g.,
`Wi-Fi) client devices, (or simply clients). Each network
`device Scans internally for a list of “visible” access points,
`and obtains the signal Strengths from each of those access
`points. For example, in FIG.2, the mobile device 204 scans
`for and obtains the Signal Strengths for three access points,
`namely the base station 202, the base station 202 and the
`base station 202. Each of the devices then transmits this
`data to a central server 206 (or set of servers) which
`compares the Signal Strengths and returns an inference on
`whether or not any two devices are in proximity. When there
`are more than two clients, the Server compares each possible
`pair of clients to produce a proximity inference for each pair.
`After the Server has made proximity inferences, it transmits
`a list of proximal clients to each client. Alternatively, the
`central Server can provide Signal Strength data to the clients,
`which can then perform their own proximity calculations. AS
`can be readily appreciated, other alternatives, Such as a
`peer-to-peer model which needs no base Stations and no
`Server by considering peers with the Strongest Signals to be
`the closest, are also capable of enabling proximity detection
`in accordance with the present invention.
`0039) To determine the signal strengths, the clients (e.g.,
`204-204) each assemble an array of MAC addresses, one
`unique address for each access point Seen. Each client also
`assembles a corresponding array of Signal Strengths from
`each of the visible access points. In the client-Server model,
`these arrays are transmitted by each of the clients to the
`server 206. For any two clients, the server 206 may compare
`the arrays, to extract which access points the two clients can
`See in common, as described below. The list of access points
`Seen in common is often a Subset of each client's visible list,
`because often the two clients cannot see the exact same Set
`of access points. The server 206 may then construct a
`numerical proximity Score based on