`
`Exhibit 2
`
`
`
`USOO7383.316B2
`
`(12) United States Patent
`Koch et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,383,316 B2
`Jun. 3, 2008
`
`(54) SYSTEM AND METHOD FOR PROVIDING
`DYNAMIC LOCATION INFORMATION
`
`(75) Inventors: Zeke Koch, Seattle, WA (US); David
`Edward Stewart, Seattle, WA (US)
`(73) 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 638 days.
`(21) Appl. No.: 10/295,303
`
`(*) Notice:
`
`(22) Filed:
`
`Nov. 15, 2002
`
`(65)
`
`Prior Publication Data
`US 2004/0098464 A1
`May 20, 2004
`
`(51) Int. Cl.
`(2006.01)
`G06F 5/16
`(52) U.S. Cl. ....................................... 709/217, 709/217
`(58) Field of Classification Search ........ 709/227 229,
`709/230, 217
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`2/2000 Eitzenberger ............... 340.988
`6,023,232 A
`6,480,146 B1 * 1 1/2002 Ferrandis et al. ...... 342.357.06
`2001/0047407 A1
`11/2001 Moore et al. ............... 709,223
`2002/0156917 A1* 10/2002 Nye ........................... TO9,238
`2002fO188689 A1* 12, 2002 Michael ...
`... TO9,206
`2002fO198824 A1* 12/2002 Cook ..........
`... TOS/38
`2003, OOO3988 A1* 1/2003 Walker et al. ......
`... 463/21
`2003/0222005 A1 12/2003 Polizzotto et al. .......... 210,143
`
`FOREIGN PATENT DOCUMENTS
`
`WO
`
`WO O1/33825 A1
`
`5, 2001
`
`OTHER PUBLICATIONS
`
`Supporting location-Awareness in open Distributed Systems, Ulf
`Leonhardt, Imperial college of Science, Technology and
`Medicin, University of London, May 1998.*
`Hideki Shimada et al., “Evaluation of a Location Management
`System for Wireless Communicating Mobile Computers,” Springer
`Verlag, 2002 (13 pages).
`Gurushyam Hariharan et al., “Location-based Retrieval Frame
`work.” SPIE, 2003 (11 pages).
`Yongbo Niu et al., Enabling Web-Based Location-Dependent Infor
`mation Services in Mobile Environments, Springer-Verlag, 2003 (7
`pages).
`Jivodar B. Tchakarov et al., “Efficient Content Location in Wireless
`Ad Hoc Networks,” IEEE, 2004 (14 pages).
`* cited by examiner
`Primary Examiner Jason Cardone
`Assistant Examiner Mitra Kianersi
`(74) Attorney, Agent, or Firm Merchant & Gould P.C.;
`Ryan T. Grace
`
`(57)
`
`ABSTRACT
`
`A system and method for providing the dynamic geographic
`location of a computing device to location aware applica
`tions. This system and method enables the location aware
`applications to enhance the user experience by taking the
`dynamic geographic location of a user into account in its
`operations. Location providers associated with the comput
`ing device provide dynamic geographic data associated with
`the geographic location of the user. The dynamic geographic
`data is converted to a common format that is recognized by
`the location aware applications. The location aware appli
`cations incorporate the dynamic location in presenting infor
`mation to the user.
`
`33 Claims, 8 Drawing Sheets
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 2 of 18 PageID #: 2276
`
`
`
`Obtain dynamic
`geographical data
`
`r
`
`730
`
`---
`
`Prompt user for
`permission
`
`
`
`735
`
`Provide
`rformatio
`
`M
`
`Convertgeographic
`data and accuracy data
`
`
`
`Provide convertex
`geographic data and
`accuracy data
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 1 of 8
`
`US 7,383,316 B2
`
`
`
`102
`
`COMPUTING DEVCE
`
`central processing unit
`
`112
`
`operating
`system
`
`applications
`
`Location engine
`
`Location-aware
`applications
`
`network
`interface
`unit
`
`Location
`providers
`
`|O
`interface
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 3 of 18 PageID #: 2277
`
`FIGURE 1
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 2 of 8
`
`US 7,383,316 B2
`
`o
`
`230
`
`Location aware applications
`234
`236
`
`stant
`messaging
`
`
`
`Driving
`direction
`
`Internet
`broSWer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LOCATION ENGINE
`
`216
`
`ACCuracy
`manager
`
`Security
`manager
`
`
`
`User
`interface
`component
`
`Location providers
`254
`
`User-based
`location
`
`GPS
`
`Cellular
`
`
`
`Network
`location
`
`FIGURE 2
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 4 of 18 PageID #: 2278
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 3 of 8
`
`US 7,383,316 B2
`
`
`
`iSettings
`location
`
`9:57 o
`
`Automatically carried to available location
`powicers in the order listed below
`Device Narne
`.
`NMEA corn patible GPS
`GPRS (cellular modern)
`Sierra liter 40
`PocketStreets
`
`310
`
`315
`
`332
`
`
`
`Provices
`
`
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 5 of 18 PageID #: 2279
`
`334
`
`336
`
`300
`
`320
`
`FIGURE 3
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 4 of 8
`
`US 7,383,316 B2
`
`410
`
`400
`
`415
`
`415
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 6 of 18 PageID #: 2280
`
`Online
`d Danny Falkov (Away)
`d Dave Stewart (Away)
`jennifer
`lose furia
`R Michael Wyman
`Phil
`d Sonbal Boantjies (Away)
`Not Online
`Dave g work
`S Friedicus Rediculous
`Jane
`John Lemire
`kathne(shotmail.com
`Tools ghats to it. --
`
`430
`
`
`
`450
`
`Online
`di Danny Falkov (15 miles away)
`o Dave Stewart (e. 125 meters away)
`jennifer (Cambridge, MA)
`Jose Furia (cannot locate)
`R. Michael Wyman (in Redmond, WA)
`Phil (locating.)
`a Sonbal Boantjies (in Berkeley, CA)
`Not online
`Dawe () work
`Friedicus Rediculous
`are
`i John Lenire
`Rkathne?ghotmail.com
`Tools Chats . F. ..
`430
`
`FIGURE 4
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet S of 8
`
`US 7,383,316 B2
`
`510
`
`400
`
`SN Messenge
`in
`
`(g 12:37 (x)
`
`Dawe work
`Dawe Stewart
`
`usy
`Be Right Back
`AWay
`On The Phone
`Out Te lunch
`Appear Offline
`
`515
`
`Ph.d
`a. Sortal Bosities Away
`the stranger (Away)
`Not Online
`Frieticus Rediculous
`Tools Chats
`...
`
`
`
`550
`
`K& 12:38 x
`MSN Messenge
`Christopher. Chin (online)
`tline
`d Bret (Away)
`a Danny Falkoy (Away)
`Dawe (3) Work
`Dawestewart
`. er-rfer
`d Jose Furie (Away)
`Fairhsel sy, mirr, f its ar.
`sedar restart Message
`send Mail (nysa 4-hotmail.co)
`Display Map
`Display Driving Directions
`Block
`Delete Contact
`
`f
`
`565
`
`FIGURE 5
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 7 of 18 PageID #: 2281
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 6 of 8
`
`US 7,383,316 B2
`
`600
`
`
`
`6OO
`
`
`
`615
`
`MSN Messenger
`
`< 10:53 G
`
`location Privacy
`O Never reveal my location
`O Reveal ray location to everyone
`C Only reveal my location to certain people
`
`
`
`
`
`
`
`
`
`
`
`MSN Messenger
`--
`Lotatio Pernissir List
`Black
`
`All other t.
`Christopher
`Danny Falkoy
`Dave work
`Daye Stewart
`Friedius Re,...,
`are
`Jenifer
`John Lemire
`
`650
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 8 of 18 PageID #: 2282
`
`
`
`655
`
`670
`
`660
`
`FIGURE 6
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 7 of 8
`
`US 7,383,316 B2
`
`700
`
`Obtain dynamic
`geographical data
`
`Determine accuracy
`
`710
`
`720
`
`
`
`
`
`
`
`730
`
`Prompt user for
`permission
`
`
`
`
`
`
`
`735
`
`Yes
`
`Provide
`information?
`
`NO
`
`740
`
`750
`
`Convert geographic
`data and accuracy data
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 9 of 18 PageID #: 2283
`
`Provide Converted
`geographic data and
`aCCuracy data
`
`End
`
`FIGURE 7
`
`
`
`U.S. Patent
`
`Jun. 3, 2008
`
`Sheet 8 of 8
`
`US 7,383,316 B2
`
`800
`
`Receive geographic
`data and accuracy
`information
`
`810
`
`Calculate distance
`
`815
`
`
`
`825
`
`Greater
`than the
`accuracy?
`
`
`
`
`
`NO
`
`
`
`Present information as
`less than the accuracy
`
`Greater
`than minimum
`distance?
`
`Present information as
`city/state
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 10 of 18 PageID #:
`2284
`
`
`
`Present distance as
`calculated distance
`
`FIGURE 8
`
`
`
`US 7,383,316 B2
`
`1.
`SYSTEMAND METHOD FOR PROVIDING
`DYNAMIC LOCATION INFORMATION
`
`BACKGROUND OF THE INVENTION
`
`10
`
`Today's computing devices can perform more tasks than
`ever before. Manufactures and software developers continue
`to find new uses for computing devices. For example, with
`the properhardware and Software components, a computing
`device can serve as a communication device for communi
`cating with friends and family. A popular type of commu
`nication application is instant messaging (IM). A local user
`may log on to an IM server using an appropriate application.
`Once the local user is logged on to the IM server, the local
`user may communicate with remote users located at different
`geographic locations. IM has been popular among users of
`desktop computing devices for some time now. Recently, IM
`has also become increasingly popular among users of mobile
`computing devices.
`In conventional IM systems, a local user can usually
`determine whether a remote user is available for communi
`cation or chatting. Some IM systems also allow the local
`user to enter a particular profile for viewing by remote users.
`However, the user-entered profiles are static in nature and
`could not be updated automatically. Thus, although IM
`25
`allows users to communicate with one another, the user
`experience is somewhat limited in scope.
`
`15
`
`SUMMARY OF THE INVENTION
`
`2
`FIG. 2 is a functional block diagram illustrating compo
`nents of a location providing system in which the present
`invention may be implemented.
`FIG. 3 is an exemplary screenshot of a user interface for
`interacting with location providers associated with a location
`engine.
`FIG. 4 illustrates two exemplary screenshots of a user
`interface associated with an instant messaging application.
`FIG. 5 illustrates another two exemplary screenshots of
`the user interface shown in FIG. 4.
`FIG. 6 illustrates yet another two exemplary screenshots
`of the user interface shown in FIG. 4.
`FIG. 7 is an operational flow diagram that shows an
`exemplary process for providing dynamic geographic data
`related to the geographic location of a computing device.
`FIG. 8 is an operational flow diagram that shows an
`exemplary process for providing location information to the
`USC.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`The inventors of the present invention have appreciated
`that a variety of applications can benefit from knowing the
`dynamically updated geographic locations of computing
`devices that are in communication with each other. Thus, the
`present invention focuses on presenting dynamic location
`information to the user. In one embodiment, the present
`invention provides dynamic geographic data to an instant
`messaging application. Using the dynamic geographic data,
`the instant messaging application presents to a user location
`information related to the relative geographic locations of
`remote parties with whom the user may exchange data
`messages. The dynamic geographic data may be provided to
`the instant messaging application along with accuracy infor
`mation related to the accuracy of the dynamic geographic
`data. The accuracy information allows the instant messaging
`application to present the location information to the user in
`a meaningful manner. These and other aspects of the inven
`tion will become apparent after reading the following
`detailed description.
`FIG. 1 and the following discussion are intended to
`provide a brief general description of a Suitable computing
`environment in which the invention may be implemented.
`Although not required, this invention will be described in the
`general context of computer-executable instructions, such as
`program modules, being executed by a computing device.
`Generally, program modules include routines, programs,
`objects, components, data structures and the like that per
`form particular tasks or implement particular abstract data
`types.
`Moreover, those skilled in the art will appreciate that this
`invention may be practiced with a variety of computer
`system configurations, including mobile computing devices,
`personal computers, wireless mobile phones, multi-proces
`sor Systems, microprocessor-based or programmable con
`Sumer electronics, network PCs, minicomputers, mainframe
`computers and the like. The invention may also be practiced
`in distributed computing environments where tasks are
`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.
`FIG. 1 is an exemplary computing device 102 that may be
`included in a system implementing this invention, according
`to one embodiment of the invention. In other configurations,
`computing device 102 may include many more components
`
`Briefly stated, the present invention is directed at a system
`and method for providing the dynamic geographic location
`of a computing device to an application. This system and
`method enables the application to enhance the user experi
`ence by taking the computing device's geographic location
`into account in its operations. Location providers associated
`with the computing device provide dynamic geographic data
`associated with the geographic location of the user. The
`dynamic geographic data are converted to a common format
`that is recognized by applications executing on the computer
`40
`device. The application incorporates the dynamic geo
`graphic data in presenting information to the user.
`In one embodiment, the present invention is directed at a
`computer-implemented method for an instant messaging
`application to present location information to the user. The
`45
`method determines a remote party that is capable of
`exchanging instant messages with the user and receives
`geographic data associated with the remote party. The
`method also determines geographic data associated with the
`user. Based on the geographic data associated with the
`remote party and the user, the method presents location
`information about the remote party to the user.
`In another aspect, the computing device is directed at a
`computing device for providing information to a user. The
`computing device includes a processor, a location provider,
`a network interface for data communication through a
`network, and a memory into which computer executable
`components are loaded. The computer executable compo
`nents includes a computer executable component that is
`configured to presenting location information to the user
`based on geographic data associated with a remote party and
`the user.
`
`30
`
`35
`
`50
`
`55
`
`60
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 11 of 18 PageID #:
`2285
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is an exemplary computing device that may be
`included in a system implementing this invention.
`
`65
`
`
`
`US 7,383,316 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`3
`than those shown. Computing device 102 may include
`processing unit 112, display adapter 114, location providers
`250, network interface unit 110, mass memory, all in com
`munication with each other via bus 122. The mass memory
`may include RAM 116, ROM 132, and one or more perma
`nent mass storage devices. The mass memory stores oper
`ating system 120 for controlling the operation of computing
`device 102. A general-purpose operating system may be
`employed. Basic input/output system (“BIOS) 118 is also
`provided for controlling the low-level operation of comput
`ing device 102.
`Location providers 250 are electronic components that are
`configured to obtain dynamic geographic data related to the
`dynamically updated geographic location of computing
`device 102. Location providers 250 may be completely or
`partially incorporated into computing device 102. Location
`providers 250 may provide the dynamic geographic data to
`application executing in computing device 102 by interact
`ing with location engine 210.
`As illustrated in FIG. 1, computing device 102 may
`include network interface 110 for connecting to one or more
`networks such as a wireless mobile phone network, a local
`area network (LAN), a wide area network (WAN), such as
`the Internet, or any other network. Network interface 110
`may be constructed for use with various communication
`protocols. Communication media between computing
`device 102 and a network typically embodies computing
`readable instructions, 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 signal” 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, not limitation, communication media includes
`wired media such as a wired network or direct-wired con
`nection, and wireless media Such as acoustic, RF, infrared
`and other wireless media. Combinations of any of the above
`should also be included within the scope of computing
`device readable media. Computing device 102 also includes
`input/output interface 124 for communicating with external
`devices, such as a touch-screen, keypad, keyboard, mouse,
`scanner, or other input devices not shown in FIG. 1.
`The mass memory as described above illustrates another
`type of computing-readable media, namely computing
`device storage media. Computing-readable storage media
`45
`may include Volatile and nonvolatile, removable and non
`removable media implemented in any method or technology
`for storage of information, such as computing device read
`able instructions, data structures, program modules, or other
`data. Examples of computing device storage media include
`RAM, ROM, EEPROM, flash memory or other memory
`technology, CD-ROM, digital versatile disks (DVD) or other
`optical 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 be accessed by a computing device.
`The mass memory may store program code and data for
`computing applications 130. Such as location engine 210 and
`location-aware applications 230. Location engine 210, loca
`tion-aware applications 230, and related components will be
`described in detail in conjunction with FIG. 2. Briefly stated,
`location engine 210 provides dynamic geographic data to
`applications executing on computing device 102. Location
`aware applications 230 are applications that are capable of
`incorporating dynamic geographic data into their operations.
`As shown in the figure, the location-aware applications 230
`may include instant messaging application 232.
`
`55
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 12 of 18 PageID #:
`2286
`
`50
`
`60
`
`65
`
`4
`FIG. 2 is a functional block diagram illustrating compo
`nents of a location providing system 200 in which the
`present invention may be implemented. Location providing
`system 200 is part of a computing device that may be a
`personal computer, mobile communication device, or the
`like. Shown in FIG. 2 is location engine 210, which may
`interact with location-aware applications 230 and location
`providers 250. In operation, location engine 210 obtains
`dynamic geographic data and other related data from loca
`tion provider 250 and provides the dynamic geographic data
`and the related data to location aware applications 230.
`Location engine 210 is a computer-executable component
`configured to provide dynamic geographic data to applica
`tions executing in a computer device. In one aspect, location
`engine 210 may be configured to function as a common
`application user interface that serves as an intermediary
`between location-aware applications and location providers
`250. With location engine 210 so configured, location-aware
`applications 230 are not required to have knowledge of any
`of the location providers 250 in order to obtain and use the
`dynamic geographic data. As shown in the figure, location
`engine 210 may include accuracy manager 214, Security
`manager 216, and user interface component 225.
`User interface component 225 enables location engine
`210 to interact with users. In particular, user interface
`component 225 provides a user interface for a user to control
`various aspects of location engine 210. An exemplary
`screenshot of the user interface provided by location engine
`210 will be shown in FIG. 3.
`Accuracy manager 214 is a component of location engine
`210 that determines the accuracy associated with the
`dynamic geographic data provided by location providers
`250. Accuracy manager 214 may determine the accuracy in
`a variety of ways. For example, location providers 250 may
`simply provide the accuracy along with the dynamic geo
`graphic data. If the accuracy is not provided along with the
`dynamic geographic data, accuracy manager 214 may cal
`culate the accuracy with data from other sources or obtain
`the accuracy from user input.
`Security manager 216 is a component of location engine
`210 that controls certain operations of location engine 210 to
`obtain a desire level of security. For example, security
`manager 216 may require authorization from the user before
`sending dynamic geographic data to location aware appli
`cations 230. Security manager 216 may enable the user to set
`a different level of security for each of the location aware
`applications 230. It is to be understood that the security
`measures taken by security manager 216 are independent of
`security measures provided by location aware applications
`23O.
`Location providers 250 are components of location pro
`viding system 200 that are configured to provide dynamic
`geographic data for applications executing in the computing
`device. Each of the location providers 250 may obtain the
`dynamic geographic data using a different mechanism.
`Location provides 250 may be external devices that are
`electronically connected to the computing device. Location
`providers 250 may also be implemented as components
`within the computing device.
`As shown in FIG. 2, location providers 250 may include
`Global Position System (GPS) device 252 that obtains
`dynamic geographic data from analyzing signals from GPS
`satellites. Location providers 250 may also include cellular
`device 254 that obtains dynamic geographic data from a
`wireless carrier. Network location device 256 that obtains
`dynamic geographic data by analyzing network related data
`may also be included. In addition to dynamic geographic
`
`
`
`6
`munication devices, and other devices that are capable of
`connecting to a network on which non-voice data messages
`may be sent and received.
`Instant messaging application 232 is configured to obtain
`dynamic geographic data and, if selected by the user, to
`incorporate the geographic data in presenting to the user
`location information of remote parties with whom the user
`is exchanging non-voice data messages. In one embodiment
`of the invention, instant messaging application 232 is con
`figured to send dynamic geographic data of the user to the
`remote parties. Instant messaging application 232 may also
`be configured to determine geographic data of a remote
`party, to calculate the distance between the user and a remote
`party, and to display the calculated distance to the user.
`Instant messaging application 232 may select a display
`format for displaying the calculated distance based on the
`accuracy of the geographic data associated with the user and
`the remote party.
`Instant messaging application 232 may be further config
`ured to implement security measures that are selected by the
`user. For example, the user may select to send geographic
`data only to certain remote parties that are connected to the
`instant messaging network. These measures may be in
`addition to those implemented by the location engine 210.
`FIG. 3 is an exemplary screenshot of a user interface 300
`for interacting with location providers associated with a
`location engine. As shown in the figure, user interface 300
`includes a device display area 310. Information about the
`location providers is displayed in two columns in device
`display area 310. Device information column 315 shows the
`names of location providers that may be available to provide
`geographic data to the location engine. The accuracy of each
`of the location providers displayed in the device information
`column 315 is displayed in accuracy information column
`32O.
`User interface 300 also enables a user to set a priority
`associated with the location providers. According to the
`priority, the location engine may determine from which
`location provider it should obtain geographic data. The user
`may select a particular location provider on device display
`area 310. Then, the user may active the move-up trigger 332
`or a move-down trigger 334 to modify the priority of the
`selected location provider.
`User interface 300 also enables a user to control other
`properties associated the location providers. For example,
`the user may modify the accuracy, the security settings, and
`other properties associated with a particular location pro
`vider. The user may select the properties window trigger 336
`to display a window with controls for modifying the prop
`erties of the currently selected location provider.
`FIG. 4 illustrates two exemplary screenshots of a user
`interface 400 associated with an instant messaging applica
`tion. The instant messaging application is executing on a
`computing device that is connected to a network. A user of
`the computing device may use the instant messaging appli
`cation to exchange data messages with remote parties
`through the network. For example, the computing device
`may interact with a server on the network that provides
`instant messaging services. The user may log on the server
`and exchange data messages with remote parties who are
`also logged on to the server.
`As illustrated in screenshot 410, user interface 400
`includes a user display area 415 for displaying the names of
`the user and remote parties with whom the user could
`exchange data messages. The user may configure the instant
`messaging application so that only remote parties with
`whom the user is interested in exchanging data messages are
`
`Case 2:21-cv-00072-JRG-RSP Document 87-2 Filed 06/15/21 Page 13 of 18 PageID #:
`2287
`
`45
`
`55
`
`60
`
`65
`
`US 7,383,316 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`5
`data, location providers 250 may also provide the accuracy
`associated with the dynamic geographic data.
`As a default method, a user-based location component
`258 may be used where the user inputs static geographic
`data. The user may enter the static geographic data in a
`variety of ways. Such as picking a location from a map.
`providing an address, geographic coordinates, telephone
`number, and the like.
`Location-aware applications 230 are configured to incor
`porate, dynamic geographic data into the applications
`operations for enhancing the user experience. In this regard,
`location-aware applications 230 are configured to receive
`dynamic geographic data related to the geographic location
`of the computing device from location engine 210. Loca
`tion-aware applications 230 are also configured to obtain
`geographic data related to the geographic locations of
`remote devices that are in communication with the comput
`ing device. As shown in the figure, location-aware applica
`tion 230 may include instant messaging application 232,
`map application 234, driving direction application 236.
`internet browser application 238, and the like.
`Internet browser application 238 is an application that
`enables a user to browser websites on the Internet. Using
`dynamic geographic data received from location engine 210,
`Internet browser application 238 may take the user's loca
`tion into account in configuring the websites for displaying
`to and use by the user. For example, Internet browser 238
`may select content of the website, populate input fields, or
`perform other actions based on the dynamic geographic
`data.
`Map application 234 is an application that provides a map
`associated with a particular geographic location. Typically, a
`user may select the scale associated with the map (e.g.
`Zoom-in, Zoom-out). Map application 234 may be config
`ured to display a map associated with the dynamic geo
`graphic data provided by location engine 210 or one of the
`location-aware applications. Map application 234 may also
`display the map with a scale that is meaningful to the user
`40
`by taking the accuracy associated with the dynamic geo
`graphic data into account. For example, map application 234
`may select a scale that is of the same order of magnitude as
`the accuracy of the dynamic geographic data.
`Driving direction application 226 is an application that
`provides instructions for traveling from one specified loca
`tion to another specified location. The instructions are typi
`cally presented in a table showing one or more legs of travel
`along with the distance of each leg. The instructions may
`also include in a map for illustration. Driving direction
`application 226 is configured to use dynamic geographic
`data for presenting the instructions to the user. For example,
`driving direction application 226 may receive dynamic
`geographic data associated with two locations. One of the
`locations may be associated with the user while the other
`location may be associated with a remote party with which
`the user is in communication. Driving direction application
`226 may be configured to provide instructions for traveling
`between the user and the remote party. Driving direction
`application 226 may also be configured to provide the
`instructions in a meaningful manner based on the accuracy
`associated with the dynamic geographic data.
`Instant messaging application 232 is an application that
`allows a user to interactively communicate with remote
`parties in a communication network using non-voice data
`messages. Instant messaging application 232 may be used
`for communication among personal computers, mobile com
`
`50
`
`
`
`US 7,383,316 B2
`
`10
`
`15
`
`25
`
`30
`
`40
`
`45
`
`50
`
`7
`displayed. In the user display area 415, the user's name is
`displayed with a status indicator in parenthesis that shows
`status of the user (e.g. available or not available to exchange
`data messages).
`The names of the remote parties are grouped according to
`whether they are online or not. For remote parties who are
`online, each of their names may be displayed with location
`information. Location information may include geographic
`data, distance from the user, and the like. The user interface
`400 may be configured to offer the user a selection whether
`to display the location information. In screenshot 410.
`location information is not displayed. The user may select
`the option to display the location information by activating
`the location information display trigger 430.
`Screenshot 450 shows user display area 415 when the
`location information display trigger 430 is activated. As
`shown in screenshot 450, location information is displayed
`in parenthesis next to names of the remote parties that are
`online. In one embodiment, the location information of a
`particular party being displayed is the distance between the
`user and the party. The distance may be calculated based on
`the users and the party's geographic locations. To enhance
`usability, the display format of location information associ
`ated with a particular remote party may be based on the
`calculated distance between the user and the remote party
`and the accuracy associated with geographic data associated
`with the user and the remote party. For example, if the
`calculated distance is more than the diameter of the user's
`city, the location information may be displayed as the city
`and state of where the remote party is located. On the other
`hand, if the calculated distance is less than the accuracy
`associated with the geographic data of either the user or the
`remote party, the distance may simply be displayed as less
`than the accuracy.
`FIG. 5 illustrates another two exemplary screenshots of
`35
`the user interface 400 shown in FIG. 4. User interface 400
`is now configured to enable the user to select various options
`of the instant messaging application. As shown in screenshot
`510, user interface 400 displays the names of the user, online
`remote parties, and offline remote parties associated with a
`instant messaging server. Each of the names may be
`selected. When the name of the user is selected, a user option
`menu 515 may appear. User option menu 515 may enable
`the user to select how a status indicator next to the user's
`name is displayed. For examp