`
`(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2002/0095486 A1
`
`Bahl
`(43) Pub. Date:
`Jul. 18, 2002
`
`(54)
`
`SYSTEMS AND METHODS FOR LOCATING
`MOBILE COMPUTER USERS IN A
`WIRELESS NETWORK
`
`<76)
`
`Inventor: Paramvir Bahl, Issaquah, WA (US)
`
`Correspondence Address:
`LEE & HAYES PLLC
`421 W RIVERSIDE AVENUE SUITE 500
`SPOKANE, WA 99201
`
`(21)
`
`Appl. No.:
`
`09/760,180
`
`(22)
`
`Filed:
`
`Jan. 12, 2001
`
`Publication Classification
`
`(51)
`(52)
`
`Int. Cl.7 ................................................... G06F 15/173
`US. Cl.
`.............................................................. 709/223
`
`ABSTRACT
`(57)
`System and methods for locating a computer user are
`described wherein the computer either periodically updates
`a network server with its location, or updates the network
`server when asked by the server to do so. The network server
`can be a mobile computer. The user’s computer determines
`its physical location using a location tracker service and then
`transmits this location information to the server, which
`stores it in its memory. The information stored includes the
`physical location of the computer, the time when the location
`was identified, a name identifying the user of the computer,
`and an indicator, which indicates whether or not the user was
`active on the computer during a specified time interval prior
`to the transmission. The location of the user is deemed to be
`the last known location of the computer used by the user. If
`the user is logged onto more than one computer, the location
`of the user is deemed to be the last known location of the
`computer that indicates the user as being active.
`
`
`
`300 \ MOBILE A DETERMINE
`LOCATION
`
`
`
`302 _,
`
`MOBILE A DETERMINES
`SYSTEM TIME
`
`
`
`
`MOBILE A
`ACTIVE?
`
`306 —\
`
`
` SEND NAME,
`I
`SEND NAME, LOC,
`LOCATION & TIME
`I TIME & ACTIVE To
`To SERVER
`
`SERVER
`
`
`
`LYFT 1052
`
`LYFT 1052
`
`1
`
`
`
`Patent Application Publication
`
`Jul. 18, 2002 Sheet 1 0f 4
`
`US 2002/0095486 A1
`
`SYSTEM MEMORY
`1.2.2
`
`MOBILE PERSONAL COMPUTER
`fl
`
`100
`
`r
`
`
`
`”
`
`
`
`(ROM) m
`
`BIOS
`
`12—6
`
`(RAM) fl
`OPERATING
`SYSTEM
`fl
`
`l
`
`
`
`VIDEO
`ADAPTER
`Jfl
`m
`
`W IRE LESS
`
`N ETWORK
`|/F
`APPLICATION
`fl
`PROGRAM
`
`1E
`
`OTHER
`SERIAL PORT
`HARD DISK FLOPPY DISK
`OPTICAL
`PROGRAM
`MODULES
`fl
`PROGRAM
`DATA
`m
`
`PROCESSING
`UNIT
`‘
`‘ m
`
`,
`
`MONITOR
`
`I/F
`1%
`
`151
`
`F/I
`
`DRIVE I/F
`DRIVE I/F
`DRIVE l/F
`m
`131
`m
`
`
`H
`D
`
`
`
`ASENEISK
`DISK DRIVE
`
`
`
`
`fl
`Efi
`‘
`
`
`
`OPERATING
`SYSTEM
`E
`
`APPLICATION
`PROGRAMS
`m
`
`OTHER
`PROGRAM
`MODULES
`Jfl,
`
`BASE
`STATION
`m
`
`
`
`
`REMOTE SERVER
`
`149
`
`MEMORY STORAGE DEVICE
`
`
`1.5_0
` RESOURCE DATABASE
`162
`
`£8.
`
`USER DATABASE
`
`fl
`
`COPIER
`166
`
`SCANNER
`M
`
`PRINTER
`
`APPLICATION PROGRAMS
`Jéfi
`
`
`
`
`
`2
`
`
`
`Patent Application Publication
`
`Jul. 18, 2002 Sheet 2 0f 4
`
`US 2002/0095486 A1
`
`
`MOBILE A
`
`E
`
`
`MEMORY
`
`m
`
`
`
`
`LOCATION MANAGER
`
`&
`
`
`
`
`NETWORK
`I
`LOCATION
`
`COMMUNICAT'ON
`TRACKING SERVICE
`
` &
`PROTOCOL(S)
`I
`234
`
`
`
`
`
`
`
`
`Fig. 2
`
`200
`
`fi
`’
`
`WIRED NETWORK
`(OPTIONAL)
`
`
`
`m
`
`
`
`
`2Q
`
`
`
`MEMORY
`
`
`
`M
`
`USER DATABASE
`
`2%
`
`
`
`
`
`
`
`
`
`m
`
`
`
`ACT
`USER
`KL ‘ TIME
`
`m‘m‘
`
`
`
`WIRELESS ACCESS POINT
`
`fl
`
`
`&L
`
`
`
`
`
`MOBILE C
`MOBILE B
`
`&
`2.22
`
`Loc MGR
`
`LOC MGR
`L38.
`
`WIRELESS NETWORK INTERFACE
`22§
`
`3
`
`
`
`Patent Application Publication
`
`Jul. 18, 2002 Sheet 3 0f 4
`
`US 2002/0095486 A1
`
`MOBILE A DETERMINES
`LOCATION
`
`300
`
`
`302 \FMISBILE A DETERMINES fl
`
`SYSTEM TIME
`
`306
`
`
` SEND NAME,
`SEND NAME, LOC,
`\ TIME & ACTIVE T0
`LOCATION & TIME
`
`TO SERVER
`SERVER
`
`
`
`308
`
`Fig. 3
`
`4
`
`
`
`Patent Application Publication
`
`Jul. 18, 2002 Sheet 4 0f 4
`
`US 2002/0095486 A1
`
`
`
`400
`
`REQUEST USER A
`LOCATION
`
`
`
`402
`
`
`
`USER A IN
`DATABASE?
`
`
`"USER NOT
`FOUND" MSG
`
`F
`
`
`
`404
`
`406
`
`>1 ENTRY?
`
`
`/ FIND ACTIVE ENTRY
`
`
`
`CALCULATE TIME DIFF
`
`412
`
`
`TIME DIFF <
`
`Fig. 4
`
`408
`
`410
`
`416
`
`418
`
`
`/
`
`
`
`
`
`
`
`INVOKE LTS OF MOBILE A
`
`
`
`UPDATE DB
`
`
`
`L00. OF USER A IS LAST
`KNOWN LOC. FROM
`DATABASE
`
`
`
`5
`
`
`
`US 2002/0095486 A1
`
`Jul. 18, 2002
`
`SYSTEMS AND METHODS FOR LOCATING
`MOBILE COMPUTER USERS IN A WIRELESS
`NETWORK
`
`TECHNICAL FIELD
`
`[0001] This invention relates to locating users logged onto
`a network and, more particularly, to locating mobile users
`logged onto a wireless network.
`
`BACKGROUND OF THE INVENTION
`
`[0002] The proliferation of lightweight, portable comput-
`ing devices and highspeed wireless local area networks
`(LANs) has enabled users to remain connected and be able
`to compute while on the move inside buildings and on
`campus areas around buildings. This new paradigm has
`given birth to a new class of applications that are “location
`aware.” The goal of mobile computing in many instances is
`to enable a user to interact effectively with his or her
`physical surroundings. One example of such an interaction
`is to track physical locations of network users, particularly
`mobile users. Doing so allows one network user to query the
`network for a location of another network user and to receive
`a reasonably accurate response.
`
`[0003] One component of these systems is the actual
`tracking system, which determines the user’s location. The
`Global Positioning System (GPS) is one example of a
`technology, which enables the creation of inexpensive and
`portable systems that can help locate and track users. GPS
`systems currently are used to provide direction to drivers
`through an in—vehicle system; provide location and tracking
`information for marine navigation; and allow shipping com-
`panies to locate and track individual shipments. However,
`the GPS system relies on an unobstructed view of several
`satellites, making its use for tracking users who are indoors
`ineffective.
`
`To overcome this obstacle, alternate technologies
`[0004]
`have been developed to locate and track users or objects in
`an indoor environment. One such system uses tags placed on
`the items that are to be tracked. In an electronic sense, the
`tags can be either active or passive, and they communicate
`with base stations. The base stations are physically linked
`together through a wired or wireless network. Each tag
`transmits a unique code to identify itself. The location of the
`tag can thereby be determined to be in the vicinity of the
`base station with which the tag last communicated.
`
`Such tag-based tracking and location systems
`[0005]
`require a significant installation of specialized base stations.
`A tag-based system can only determine the location of the
`tags as being “near” a particular base station. As a result, a
`large number of base stations must be installed to achieve a
`sufliciently high resolution. Furthermore, obtrusive tags
`have to be placed on every item that is to be tracked or
`located, and in the case of infrared tags, the system operates
`only when there is a line of sight between the tag and a base
`station. For these reasons, tag-based systems have shown
`very limited success.
`
`[0006] Another technology has been developed which
`uses radio frequency transmissions from base stations and
`mobile units to track the location of mobile units. This
`technology is described in US. patent application Ser. No.
`
`09/
`, entitled “Using a Derived Table of Signal
`
`Strength Data to bocate and Track a User In a Wireless
`
`Network, and in US. patent application Ser. No. 09/
`, entitled “Locating and Tracking a User in a Wireless
`Network Through Environmentally Profiled Data.”
`
`In this system, a Wireless Local Area Network
`[0007]
`(WLAN) is utilized for locating and tracking users. A
`WLAN consists of base stations connected to a wired
`network, and mobile devices that are “connected” to the
`WLAN through radio frequency signals with the base sta-
`tions. The signal sensing ability of both the base station and
`the mobile device are used to determine the location of the
`mobile device, and thus the location of the user of the mobile
`device. In particular, the strength of the signals received
`from several base stations is measured by the mobile device.
`The mobile device then compares the signal strength from
`each of the base stations to a pre-computed table containing
`the base stations” signal strength at various known locations
`of the mobile device. From this comparison, the mobile
`device determines its location. Alternatively,
`the signal
`strength from the mobile device can be measured at a
`number of base stations. This signal strength is then com-
`pared by a central computer to a pre-computed table con-
`taining the mobile computer’s signal strength at the base
`stations for various known locations. From this table, the
`central computer determines the location of the mobile
`computer.
`
`[0008] Although the mobile computer can identify its
`location using this system, a problem remains as to how one
`user, say User A, who is logged onto a network on a fixed
`or mobile computer can locate another mobile computer or,
`more likely, the person using the mobile computer, say User
`B. This problem has been solved for finding stationary users,
`since the requesting user, User A, can simply determine the
`location of a network access point to which the stationary
`user’s, User B’s, computer is connected and use that location
`to infer his or her location. But since, by definition, a mobile
`user can be physically located Virtually anywhere within the
`coverage of the network, the problem becomes significantly
`more difficult to solve.
`
`[0009] Yet another problem exists when one user is logged
`onto more than one computer in a network. Current systems
`and methods don’t allow for distinguishing between the
`computers to identify where the user may be physically
`located.
`
`SUMMARY OF THE INVENTION
`
`[0010] Systems and methods are described that enable a
`network user to query the network for the location of another
`network user, particularly a mobile user. If the mobile user
`is logged onto more than one computer on the network, the
`requesting user can determine which of the computers the
`mobile user is currently using.
`
`[0011] The mobile user periodically updates a local server
`database with the location coordinates of the mobile user
`
`and the time at which each update is received. A user name
`identifying the mobile user is associated with the location
`and time of update.
`
`[0012] When another user wants to find the mobile user,
`the other user invokes a location manager to search a server
`database for a user name identifying the user. If the last
`update from the mobile user was made within a certain
`
`6
`
`
`
`US 2002/0095486 A1
`
`Jul. 18, 2002
`
`threshold of the query, the last known location stored on the
`server is immediately sent to the other user as the current
`location of the mobile user. This option requires very little
`overhead.
`
`performed by remote processing devices that are linked
`through a communications network. In a distributed com-
`puting environment, program modules may be located in
`both local and remote memory storage devices.
`
`If the last update from the mobile user was made a
`[0013]
`while ago (i.e., outside the threshold),
`then the system
`invokes a location tracking service to determine the mobile
`user’s location. By including periodic updates to the server,
`the user’s computer enables the location manager to locate
`users using their computers even when they are not mobile
`and when they are not wirelessly connected.
`
`[0014] The mobile computer is also configured to transmit
`an “active” signal if the mobile computer has been used
`within a specified time period. For example, if the mobile
`computer has been actively used within the two minutes
`prior to the latest update, the active signal is transmitted
`together with the location (and other) information. There-
`fore, when a user is logged onto multiple machines, it is
`possible to determine on which machine the user was most
`recently active. The location of the active machine is
`deemed to be the location of the user.
`
`[0015] Additional features and advantages of the inven—
`tion will be made apparent from the following detailed
`description of illustrative implementations, which proceeds
`with reference to the accompanying figures.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0016] A more complete understanding of the various
`methods and arrangements of the present invention may be
`had by reference to the following detailed description when
`taken in conjunction with the accompanying drawings,
`wherein:
`
`[0017] FIG. 1 is a block diagram generally illustrating an
`exemplary computer system on which the present invention
`resides.
`
`[0018] FIG. 2 is a block diagram of a wireless network
`system including a server and three mobile computers.
`
`[0019] FIG. 3 is a flow diagram of client-side operations
`in a method for locating a mobile user within a wireless
`network.
`
`[0020] FIG. 4 is a flow diagram of server-side operations
`in a method for locating a mobile user within a wireless
`network.
`
`DETAILED DESCRIPTION
`
`[0021] The invention is illustrated in the drawings as being
`implemented
`in
`a
`suitable
`computing
`environment.
`Although not required, the invention will be described in the
`general context of computer-executable instructions, such as
`program modules, to be executed by a personal computer.
`Generally, program modules include routines, programs,
`objects, components, data structures, etc. that perform par-
`ticular tasks or implement particular abstract data types.
`Moreover, those skilled in the art will appreciate that the
`invention may be practiced with other computer system
`configurations, including hand-held devices, multi-proces-
`sor systcms, microproccssor based or programmablc con-
`sumer electronics, network PCs, minicomputers, mainframe
`computers, and the like. The invention may also be practice
`in distributed computing environments where tasks are
`
`[0022] With reference to FIG. 1, an exemplary wireless
`network system 100 for
`implementing the
`invention
`includes a general purpose computing device in the form of
`a conventional mobile personal computer 120, including a
`processing unit 121, a system memory 122, and a system bus
`123 that couples various system components including the
`system memory to the processing unit 121. The system bus
`123 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. The
`system memory includes read only memory (ROM) 124 and
`random access memory (RAM) 125. A basic input/output
`system (BIOS) 126, containing the basic routines that help
`to transfer information between elements within the mobile
`personal computer 120, such as during start—up, is stored in
`ROM 124. The mobile personal computer 120 further
`includes a hard disk drive 127 for reading from and writing
`to a hard disk 160, a floppy disk drive 128 for reading from
`or writing to a removable magnetic disk 129, and an optical
`disk drive 130 for reading from or writing to a removable
`optical disk 131 such as a CD ROM or other optical media.
`
`[0023] The hard disk drive 127, floppy disk drive 128, and
`optical disk drive 130 are connected to the system bus 123
`by a hard disk drive interface 132, a floppy disk drive
`interface 133, and an optical disk driver interface 134,
`respectively. The drives and their associated computer-
`readable media provide non-volatile storage of computer-
`readable instructions, data structures, program modules and
`other data for the mobile personal computer 120. Although
`the exemplary environment described herein employs a hard
`disk 160, a removable magnetic disk 129, and a removable
`optical disk 131, it will be appreciated by those skilled in the
`art that other types of computer-readable media which can
`store data that is accessible by a computer, such as magnetic
`casscttcs, flash memory cards, digital video disks, Bcrnoulli
`cartridges, random access memories, read only memories,
`and the like may also be used in the exemplary operating
`environment.
`
`[0024] A number of program modules may be stored on
`the hard disk 160, magnetic disk 129, optical disk 131, ROM
`124 or RAM 125, including an operating system 135, one or
`more application programs 136, other program modules 137,
`and a program data 138. A user may enter commands and
`information into the mobile personal computer 120 through
`input devices such as a keyboard 140 and a pointing device
`142. Other input devices (not shown) may include a micro-
`phone, joystick, game pad, satellite dish, scanner, or the like.
`These and other input devices are often connected to the
`processing unit 21 through a serial port interface 146 that is
`coupled to the system bus, but may be connected by other
`interfaces, such a parallel port, game port or universal serial
`bus (USB). Amonitor 147 or other type of display device is
`also connected to the system bus 123 via an interface, such
`as a video adapter 148. In addition to the monitor, personal
`computers typically include other peripheral output devices,
`not shown, such as speakers and printers.
`
`[0025] The mobile personal computer 120 may operate in
`a networked environment using logical connections to one
`
`7
`
`
`
`US 2002/0095486 A1
`
`Jul. 18, 2002
`
`or more remote computers, such as a server 149. 'lhe remote
`server 149 may be another type of remote computer, such as
`another personal computer, 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 mobile personal computer 120, although only
`a memory storage device 150 has been illustrated in FIG. 1.
`The logical connections depicted in FIG. 1 include a Wire-
`less Local Area Network (W'LAN) 151 and a wide area
`network (WAN) 152. Such networking environments are
`commonplace in offices, enterprise-wide computer net-
`works, intranets and the Internet.
`
`[0026] When used in a WLAN networking environment,
`the mobile personal computer 120 is connected to the local
`network 151 through a wireless network interface or adapter
`153. The wireless interface 153 transmits packets wirelessly
`to a base station 161. The base station 161 can then retrans-
`mit the packets, either through a wired or wireless network
`to the remote server 149. When used in a WAN networking
`environment, the personal computer 120 typically includes
`a modem 154 or other means for establishing communica-
`tions over the WAN 152. The modem 154, which may be
`internal or external, is connected to the system bus 123 via
`the serial port interface 146. In a networked environment,
`program modules depicted relative to the mobile personal
`computer 120, or portions thereof, may be stored in the
`remote memory storage device. 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.
`
`[0027] FIG. 1 also shows several fixed network resources,
`such as a printer 162, a scanner 164 and a copier 166.
`Information about
`the fixed resources 162, 164, 166 is
`contained in a resource database 168 stored in the memory
`storage device 150. Information contained included infor-
`mation regarding location of each fixed resource and prop-
`erties of each fixed resource. It is noted that, while only a
`few fixed resources are shown, any number of fixed
`resources may be logically or directly connected to the
`remote server 149. Other resources are not necessarily
`connected to the remote server 149. Though not shown or
`discussed in the present example, other examples of fixed
`resources
`include
`an office,
`files, documents, e-mail
`addresses, databases, users, distributed components, and the
`like.
`
`[0028] The memory storage device 150 also includes a
`user database 170 that stores information about users con-
`nected to the network 100. Such information includes, but is
`not limited to, user name, last known location, time of last
`location update and an activity indicator. This information
`will be discussed in greater detail below.
`
`In the description that follows, the invention will
`[0029]
`be described with reference to acts and symbolic represen-
`tations of operations that are performed by one or more
`computers, unless indicated otherwise. As such, it will be
`understood that such acts and operations, which are at times
`referred to as being computer-executed, include the manipu-
`lation by the processing unit of the computer of electrical
`signals representing data in a structured form. This manipu-
`lation transforms the data or maintains it at locations in the
`memory system of the computer, which reconfigures or
`otherwise alters the operation of the computer in a manner
`
`will understood by those skilled in the art. 'lhe data struc-
`tures where data is maintained are physical locations of the
`memory that have particular properties defined by the format
`of the data. However, while the invention is described in the
`foregoing context, it is not meant to be limiting as those of
`skill in the art will appreciate that various acts and opera—
`tions described hereinafter may also be implemented in
`hardware.
`
`[0030] FIG. 2 depicts a wireless network system 200
`similar to the system 100 shown in FIG. 1 but shown, in
`part, in greater detail. The wireless network system 200
`includes a server 202 having memory 204 in which a user
`database 206 is stored. The user database 206 includes
`
`records having various fields. A user field 208 stores an
`identifier associated with a particular user of the system 200.
`Such an identifier is commonly referred to as a user name.
`A last known location field 210 stores a location of a
`
`computing unit determined and transmitted to the server 202
`by the computing unit. The location stored in the last known
`location field 210 may be described in terms of absolute
`coordinates (latitude, longitude and/or altitude), coordinates
`relative to a known, fixed location (x meters, y meters from
`the front door of Building A), or a geographical unit (Room
`2216, Conference Room A, etc.). Alternatively, the location
`may be the location of a network node, or access point, to
`which the computing unit is connected.
`
`[0031] A time field 212 stores a time at which the last
`known location was transmitted. An active field 214 is
`included in the user database 206 and contains an indicator
`to indicate if the computing unit associated with a particular
`active field 214 was in use for a specific period of time prior
`to the transmission of the location information. For example,
`if a computing unit has not received any actuations by a user
`for, say, three minutes before a location update is transmitted
`to the server 202, a value of the active field 214 will indicate
`that the computing unit is not active. If, on the other hand,
`the computing unit was in use at the time the location update
`was transmitted to the server 202, the value of the active
`field 214 will indicate that the computing unit is active. The
`implications of the active field 214 and its indications will be
`discussed in greater detail, below.
`
`[0032] The user database 206 also contains an OK field
`215. The OK field 215 is is used to store a list of users that
`a user identified in the user field 208 has authorized to
`
`receive the identified user’s location. Initially, the OK filed
`215 is set to a default that allows any requesting user to find
`out where the identified user (the user identified in the user
`field 208) is located. However,
`the identified user may
`update the OK field 215 so that only those user authorized
`by the identified user can locate the identified user.
`
`[0033] The server 202 is connected to a wireless access
`point 216. The wireless access point 216 may or may not be
`integrated into the server 202 itself.
`'lhe wireless access
`point 216, as the name implies, serves as a reception point
`for wireless transmissions directed to the server 202. The
`
`server 202 may also be connected to a wired network 218,
`though this is not required if the network 200 is strictly for
`wireless users.
`
`[0034] Several mobile computers are shown in communi-
`cation with the wireless access point 216 of the network 200.
`Mobile A 218 is a mobile computer that is a part of the
`wireless network 200. Mobile B 220 and Mobile C 222 are,
`
`8
`
`
`
`US 2002/0095486 A1
`
`Jul. 18, 2002
`
`likewise, connected within the wireless network 200. It is
`noted that, although only three mobile computers are shown
`in FIG. 2, the wireless network 200 can comprise virtually
`any number of mobile computers,
`limited only by the
`physical constraints of the system.
`
`[0035] Mobile A218 includes memory 224 and a wireless
`network interface 226, which is used to communicate with
`the wireless access point 216 to access the wireless network
`200. Mobile A 218 also includes a clock 228 that provides
`a time stamp for location transmissions from Mobile A218.
`The memory 224 of Mobile A218 stores a location manager
`230, network communication protocol(s) 232 used by
`Mobile A 218 to communicate with the wireless network
`
`200, and a location tracking service 234, which is configured
`to identify a location of Mobile A 218 upon request. When-
`ever the location manager 230 requires the location of
`Mobile A 218, it queries the location tracking service 234.
`The location tracking service 234 places the mobile’s wire-
`less network hardware in promiscuous receive mode so that
`it can receive beacons from all nearby base stations. Using
`the signal strength of the beacon packets with an appropri-
`ate, previously established radio map of the area or building,
`Mobile A 218 calculates its position. Alternatively,
`the
`location tracking service 234 in Mobile A218 may simply
`query its wireless network interface 226 to determine the
`address of the wireless access point 216 to which it is
`connected. It may then either transmit this address to the
`server 202 which does a look up to determine the location of
`the wireless access point 216 or the Mobile A218 may itself
`determine the location of the wireless access point 216 using
`a map of the area or building and transmit that location to the
`server 202. This location is then considered by the server
`202 as the location of the Mobile A218 and stored in the last
`known location 210 field.
`
`In some implementations, it may be desirable to
`[0036]
`encrypt the location information before it is transmitted to
`the server 202. For instance, if a user of Mobile A218 does
`not want users outside the system to determine the location
`of Mobile A 218, then the location data can be encrypted
`prior to transmitting the location data to the server 202. Also,
`a feature is described below, wherein a user of Mobile A218
`can identify users that are authorized to determine the
`location of Mobile A 218. In that case, it is important to
`encrypt the location information so only the authorized users
`can determine the location of Mobile A218.
`
`[0037] Although the location tracking service 234 is
`described as utilizing a radio frequency (RF) system that
`determines the location of Mobile A 218 by detecting RF
`signals transmitted from a number of base stations, it is
`noted that the location tracking service 234 may use any
`available method to identify the location of Mobile A 218,
`such as a GPS system, an IR-based system, a tag-based
`system, etc.
`
`[0038] Mobile B 220 includes a location manager 236 and
`Mobile C 222 includes a location manager 238. Location
`manager 236 of Mobile B 220 and location manager 238 of
`Mobile C 222 are similar to location manager 230 of Mobile
`A 218, even though the only functionality described herein
`for location managers 236, 238 is a function that requests the
`location of Mobile A 218. These and other elements shown
`in FIG. 2 will be discussed in greater detail, below, with
`reference to FIG. 3 and FIG. 4.
`
`[0039] FIG. 3 is a flow chart depicting client-side opera-
`tions in a method for locating a mobile user in a wireless
`network. At block 300, Mobile A218 determines its location
`from analysis of various radio frequency signal transmitted
`from known locations. The location may be determined in
`absolute (latitude,
`longitude, altitude) coordinates or in
`coordinates relative to a known absolute location (X meters,
`y meters from front door of Building A). If the wireless
`network system information is organized in a directory
`structure that associates a geographical region with each
`directory level (state, county, city, building, office, etc.), the
`location may be determined as a geographical unit, e.g.,
`office 2216, Building A, etc. Such a geographically based
`information management system is described in US. patent
`
`application Ser. No. 09/
`, entitled “Information Man-
`agement and Processing In a Wireless Network.”
`
`[0040] Mobile A218 then determines a system time at step
`302. This is accomplished by accessing the system time of
`the server 202 to which Mobile A218 is connected.
`
`[0041] At block 304, Mobile A 218 determines if a user
`has been active on Mobile A218 for a specified time period
`prior to the location determination block 300. For instance,
`if the specified time period is two minutes, then Mobile A
`218 is deemed to be active if a user operation has occurred
`in the two minutes prior to the determination block 300. If
`so (“Yes” branch, block 304), then a user name of a user on
`Mobile A218, is transmitted to the server 202 together with
`the location coordinates, the time of the location determi-
`nation, and an active signal indicating that Mobile A 218 is
`active (block 306). If the user has not operated Mobile A218
`during the specified time period (“No” branch, block 304),
`the active signal is not transmitted. In that case, only the user
`name, location coordinates and time of the location deter-
`mination are transmitted to the server 202 at block 308.
`When the active signal is received at the server 202, the
`server 202 indicates in the user database 206 that Mobile A
`
`218 is active. Contemporaneously therewith, the server 202
`clears any other active signal that may be present for a
`computer used by the user logged onto Mobile A218, since
`only one computer can be active for a user at any given time.
`
`In an alternative implementation, Mobile A 218
`[0042]
`does not periodically update its location with the server 202.
`This may be preferable in a situation where a user of Mobile
`A 218 wishes to conserve battery power or network band-
`width. In such an implementation, Mobile A 218 initially
`registers with the server 202 when Mobile A 218 becomes
`active. Thereafter, Mobile A 218 only updates its location
`when it receives a request to do so from the server 202. The
`server 202 makes such a request in the event that it receives
`a request from another user to locate Mobile A 218.
`
`[0043] FIG. 4 is a flow chart depicting server-side opera-
`tions in a method for locating a mobile user in a wireless
`network. At block 400, the server 202 receives a request
`from a computing unit (such as Mobile B 220 or Mobile C
`222) for a location of a specific user. For the present
`discussion, assume that Mobile C 222 submits a request to
`the server 202 for the location of “Victor,” who is logged
`onto the network on Mobile A 218. Also assume that
`
`“Victor” is a unique user name. When the request for
`“Victor” is received, the server 202 searches for any entry in
`the user database 206 having “Victor” in the user field 208.
`
`9
`
`
`
`US 2002/0095486 A1
`
`Jul. 18, 2002
`
`lf “Victor” is not found in the user database 206 ("‘No”
`branch, block 402), a “User Not Found” message is sent to
`Mobile C 222 at block 404.
`
`If “Victor” is found in the user database 206 (“Yes”
`[0044]
`branch, block 402), then the server 202 continues to search
`the user field 208 of the user database 206 for other “Victor”
`entries at block 406. If at least one other “Victor” entry is
`found (“Yes” branch, block 406),
`the server locates the
`“Victor” entry that indicates an “active” status in the active
`field 214 (block 408). Block 408 is not performed if no other
`“Victor" entry is found.
`
`[0045] At block 410, a time differential is calculated by
`finding the difference between the time of the last location
`update (time field 212) and a current time. The time differ-
`ential is compared to a pre-defined threshold at block 412.
`If the time differential is within the threshold ("‘Yes” branch,
`block 412),
`then the location stored in the last known
`location field 210 of the user database 206 is deemed to be
`
`the location of “Victor,” the user of Mobile A 218 (block
`418). If the time differential is greater than the threshold
`(“No” branch, block 412), then a signal is transmitted to the
`location manager 230 of Mobile A218 requesting a location
`update, which causes the location manager 230 to invoke the
`location tracking service 234 at block 414 to determine the
`current location of Mobile A 218. The current
`location
`information is then transmitted to the server 202 at block
`416, where it is stored in the user database 206. Then, at
`block 418, the current location (which is now stored in the
`last known location field 210) is deemed to be the locatio