Additional visible network for syncing local search results
By acquiring visible network data on the client device and generating integrated request packets, the problems of location information acquisition delay and high power consumption in the prior art are solved, and more efficient and accurate location information acquisition is achieved.
Patent Information
- Application Number
- CN202210831332.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-03-10
- Filing Date
- 2017-10-24
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2037-10-24
AI Technical Summary
The prior art has problems with delay and high power consumption when providing location information, especially in insufficient GPS signals or indoor environments.
By determining on the client device whether the threshold condition of location information is satisfied, if it is satisfied, visible network data will be obtained from the wireless communication module, and an integration request packet including the data will be generated, and sent to the server for location analysis and search results will be generated.
It reduces latency and the use of network resources, and improves the efficiency and accuracy of location information acquisition.
Smart Images

Figure CN115348533B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the application date of October 24, 2017, application number 201780086964.4, and invention name "Attaching a visible network for synchronizing local search results".
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application is a continuation of U.S. application No. 15 / 455,529 filed on March 10, 2017, the entire disclosure of which is incorporated herein by reference. Technical Field
[0004] The present application relates to a query processing method and a client device. Background Art
[0005] In order to provide meaningful search results and other information to users of mobile wireless devices, it is necessary to identify the location of the device - or at least an approximate location. A baseline measurement of the location estimate can be made using GPS coordinates, but this can be problematic when there are not enough visible GPS satellites or the device is indoors. In addition, this approach can have high latency while the GPS receiver acquires satellite signals, and can also suffer from power loss due to high battery usage. Information about cellular networks and wireless access points can also be used to obtain a location estimate. Here, resolving the location of the device can include accessing a network-side database that stores geolocated wireless network information including cellular tower and WiFi access point information. Such a database can be used to geocode scans of visible networks. Summary of the invention
[0006] Aspects of the present technology relate to a single, integrated request and response method between a mobile device and a network. This is particularly beneficial when a request is sent shortly after the mobile device has been booted up, or when a user first grants location permissions on the device to an application such as a search application. By way of example, two usage scenarios are as follows. One is when the location cached in the device is too early to be relied upon (expired) or is unavailable. The other is when a user activates or otherwise authorizes a location enablement setting for an application on a client device, but the client device does not have time to acquire a location before a search or other query is initiated by the application.
[0007] According to aspects of the present technology, a method includes: determining, by one or more processors of a client device, whether a threshold condition corresponding to current location information of the client device has been met, and obtaining, by the processor, visible network data from a wireless communication module of the client device when the threshold condition corresponding to the current location information of the client device has been met. The method also includes generating an integrated request packet including at least some of the obtained visible network data and a client query, sending the integrated request packet to a server, receiving a location-enabled response to the client query based on a resolution of a location of at least some of the obtained visible network data, and generating a result including the received location-enabled response for presentation to a user of the client device.
[0008] The integrated request and response approach according to various implementations reduces latency and reduces usage of network (and client device) resources compared to existing systems.
[0009] In one scenario, the threshold condition is a change in location permissions for an application executable by the client device. Here, the change in location permissions may include authorization to use information associated with at least one of a WiFi network and a cellular network for location services.
[0010] According to one example, the threshold condition is determining that there has been a change in network connectivity. In another example, the method further includes: before determining that the threshold condition corresponding to the current location information of the client device has been met, pre-calculating at least one of WiFi access point and cellular base station information of the network for connection. In yet another example, the visible network data includes at least one of an access point ID, a base station ID, and received signal strength information.
[0011] In another alternative, obtaining the visible network data from the wireless communication module of the client device includes: selecting a subset of the visible network elements from among all the visible network elements, and obtaining the visible network data from the wireless communication module for the subset of the visible network elements. According to another example, determining whether a threshold condition corresponding to the current location information of the client device has been met includes determining whether the location information stored on the client device is older than a predetermined amount of time. And in yet another example, generating the result includes providing an electronic map for presentation on a display of the client device.
[0012] According to other aspects of the present technology, a client device is provided, comprising: a user interface module, the user interface module including one or more user input devices configured to receive user queries; a processing module including one or more processors; a memory module having one or more memories configured to store data and instructions for execution by the processing module; and a communication module including a wireless transceiver configured for bidirectional communication with one or more remote devices. The processing module is operably coupled to the communication module and is configured to determine whether a threshold condition corresponding to the current location information of the client device has been met. Upon determining that the threshold condition corresponding to the current location information of the client device has been met, the processing module is configured to obtain visible network data from the wireless transceiver, generate an integrated request packet including at least some of the obtained visible network data and the client query, and cause the communication module to send the integrated request packet to a remote server. The device is also configured to receive a location-enabled response to the client query according to the resolution of the location of at least some of the obtained visible network data, and generate a result including the received location-enabled response for presentation to a user of the client device.
[0013] In one example, the threshold condition is a change in location permissions for an application executable by the client device. In another example, the change in location permissions includes authorization for location services using information associated with at least one of a WiFi network and a cellular network. According to yet another example, the processing module is further configured to pre-calculate at least one of WiFi access point and cellular base station information for a connected network before determining that the threshold condition corresponding to the current location information of the client device has been met. And in another example, the processing module is configured to determine whether the threshold condition corresponding to the current location information of the client device has been met by determining whether the location information stored on the client device is older than a predetermined amount of time.
[0014] According to other aspects of the present technology, a method is provided, the method comprising: receiving, by one or more processing devices, an integrated request from a client device, the integrated request comprising location scan information and a query; analyzing the received location scan information from the integrated request; and resolving the location of the client device by comparing the location scan information with a set of stored geographic location data. The method also includes applying the resolved location to the query to obtain a set of location-related search results responsive to the query, and sending the location-related search results to the client device for presentation to a user of the client device.
[0015] In one scenario, the method further includes providing the analyzed location scan information to a location service to resolve the location of the client device. Here, the method may also include the location service providing the resolved location to the application service to obtain a set of location-related search results responsive to the query.
[0016] In another example, analyzing the received location scan information from the integrated request includes passing the location scan information to the location service in parallel and passing the query to the application service. This can also include the application service initiating a first search phase using only the query to identify a set of possible search results. And, alternatively, applying the resolved location to the query can include using the resolved location in a second phase of refining the search to obtain a set of location-related search results.
[0017] More specifically, an embodiment of the present invention discloses a method, comprising: receiving, by one or more processing devices, an integrated request from a client device, the integrated request comprising location scan information and a query; analyzing the received location scan information from the integrated request; resolving, by one or more processing devices, the location of the client device by comparing the location scan information with a set of stored geographic location data; applying, by one or more processing devices, the resolved location to the query to obtain a set of location-related search results in response to the query; and sending the set of location-related search results to the client device for presentation to a user of the client device. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Accompanying this specification is a set of drawings that illustrate various features and aspects of the present technology. In the drawings, the same reference numerals represent the same elements. A brief discussion of each of the drawings is provided below.
[0019] Figure 1A The location request and query process is shown.
[0020] Figure 1B An exemplary integrated request and response process according to aspects of the present disclosure is shown.
[0021] Figure 2 is an example client communication device configured to implement an integrated request and response process according to aspects of the present disclosure.
[0022] Figure 3 An example network according to aspects of the present disclosure is shown.
[0023] Figure 4 A process of combining visible network information with a query according to aspects of the present disclosure is shown.
[0024] Figure 5A process for resolving locations and responding to queries according to aspects of the present disclosure is shown.
[0025] The following description is based on the claimed embodiments and should not be considered limiting the claims with respect to alternative embodiments not explicitly described herein. DETAILED DESCRIPTION
[0026] Overview
[0027] The integrated approach discussed herein includes appending network scan information to a query sent to a web server or other entity. In one instance, the server provides both a location identification service and a search service, and the received information can be separated accordingly between these elements of the server in an efficient manner that minimizes data transfer and latency. However, from the perspective of the client device, only one query is sent. The client device quickly receives relevant location-based results. This can not only reduce system latency and power consumption, but also reduce network overhead by eliminating unnecessary packet transmissions.
[0028] This method and Figure 1A This is in contrast to the traditional query process shown in . Here, location information is sent from the client device to the network where it is routed from an interface web server to a location service. The location service calculates the location and returns the result to the client device via the interface web server. Based on this information, the client device is able to send the resolved location along with the query to the network application service. This information passes through the interface web server again before being received by the application service, which generates search results based on the resolved location. The results are then provided back to the client device via the web server.
[0029] Latency can be a problem with this approach for different reasons. As mentioned above, there can be latency on the client side as the onboard GPS receiver acquires satellite signals. And there can also be transmission latency between the client device and the network, as well as possible backend latency between different elements of the network.
[0030] Figure 1B An example of an integrated approach is shown in . Here, as discussed in more detail below, the obtained visible network data is attached to a query that is subsequently sent to the network. The interface web server provides the visible network data to the location service of the network to resolve the location. This information is passed to the relevant application service that generates search results related to the location. This information is returned to the client device through the interface web server. The integration of information reduces the above-mentioned delays and helps to ensure that the response to the query is based on the accurate location.
[0031] Example layout
[0032] Figure 2An example client device 200 that can be used with the technology disclosed herein is shown. As shown, the device 200 includes a processing module 202 having one or more computer processors (such as a central processing unit 204 and / or a graphics processor 206), and a memory module 208 configured to store instructions 210 and data 212. The processors may or may not operate in parallel and may include ASICs, controllers, and other types of hardware circuits. The processor is configured to receive information from a user through a user interface module 214 and present the information to the user on a display device having a display module 216 of a display interface.
[0033] The user interface module 214 can receive commands from the user via user input and convert them to submit to a given processor. The user input can include one or more of a touch screen, a keypad, a mouse, a stylus, a microphone, or other types of input devices. The display module 216 can include appropriate circuits for driving a display device to present graphics and other information to the user. As an example, the graphics information can be generated by (multiple) graphics processors 206, while the CPU 204 manages the overall operation of the client device 200.
[0034] The memory module 208 may be implemented as one or more of a computer-readable medium, one or more volatile memory units, or non-volatile memory units. The memory module 208 may include, for example, flash memory and / or NVRAM, and may be embodied as a hard drive or a memory card. Alternatively, the memory module 208 may also include a DVD, a CD-ROM, a writable, and a read-only memory. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions (such as instructions 210) that, when executed by one or more processors, perform one or more methods such as those described herein. The information carrier is a computer or machine-readable medium, such as the memory module 208. Although Figure 2 The processor(s), memory modules, and other elements of the device 200 are shown functionally as being within the same integral block, but these components may or may not be stored within the same physical housing. For example, some or all of the instructions and data may be stored on an information carrier that is a removable storage medium (e.g., an optical drive or USB drive), and others may be stored within a read-only computer chip.
[0035] The processor may retrieve, store, or modify data 212 according to instructions 210. For example, the data may be stored in a computing device register, in a relational database, as a table with multiple different fields and records, an XML document, or a flat file, although the claimed subject matter is not limited to any particular data structure. The data may also be formatted in any computing device readable format.
[0036] Instructions 210 may be any set of instructions executed by a processor(s) directly (such as machine code) or indirectly (such as a script). For example, instructions may be stored as computing device code on a computing device readable medium. In this regard, the terms "instructions" and "programs" may be used interchangeably herein. Instructions may be stored in an object code format for direct processing by a processor(s), or in any other computing device language, including scripts or sets of independent source code modules that are interpreted on demand or pre-compiled. The functions, methods, and routines of instructions are explained in more detail below.
[0037] Also like Figure 2 As shown, the client device 200 includes a communication module 218 for communicating with other devices and systems. The communication module 218 includes a wireless transceiver; alternatively, the module may include a wired transceiver. The client device 200 may communicate with other remote devices via the communication module 218 using a variety of configurations and protocols, including short-range communication protocols (such as near field communication, Bluetooth, etc.). TM ,Bluetooth TM Low Energy (LE)), or other ad-hoc networks, the Internet, an intranet, a virtual private network, a wide area network, a local network, a private network using one or more company-proprietary communication protocols, Ethernet, WiFi and HTTP, and combinations of the foregoing.
[0038] In addition, the client device 200 as shown includes one or more position and orientation sensors 220. The position and orientation sensor 220 is configured to determine the position and orientation of the client computing device 100. For example, these components may include a GPS receiver for determining the latitude, longitude and / or altitude of the device, and an accelerometer, gyroscope or another direction / speed detection device. The client device 200 may also include one or more cameras 222 for capturing still images and recording video streams, (multiple) speakers 224 and a power module 226, and an actuator (not shown) for providing tactile feedback or other information to the user.
[0039] Figure 3 An example arrangement is shown in which different client devices 300 (e.g., 3001, 3002, 3003, and 3004) can request content or other information from a server 320 via a communication system 310. The client devices 300 may include some or all of the components discussed above with respect to the client device 200. The client device may include a laptop computer (3001), a tablet computer (3002), a cellular phone or PDA (3003), or a desktop PC (3004). However, other client devices may also be employed, including wearable electronic devices (such as smart watches). Any such client device may be used as described above. Figure 1B Shown is sending a request and receiving a target result from a network based on the resolved location of the client device.
[0040] By way of example only, the request may be parsed and routed to one or more services on the network. This may include a location service associated with server 3201 and an application service associated with server 3202. Although multiple separate servers 320 are shown, the functionality of the location and application services may be performed by one or more servers or other computer systems (such as a cloud computing network). The request, data, and corresponding response may be communicated via bus 330. The service may use one or more databases 340 to resolve the client device location and / or provide relevant results based on the resolved location information.
[0041] Example methods and use cases
[0042] As mentioned above, the features of the technology can be implemented in different use cases. Examples of several use cases are discussed below.
[0043] In one use case, a user may request information via an application on a client device. For example, the information may be about points of interest, such as restaurants, coffee shops, car dealerships, museums, etc. Other use cases may involve online shopping or other order placement. Nonetheless, the technology is query-agnostic. For example, a user may request information about bus schedules, house rentals, tourist attractions, menus, etc.
[0044] about Figure 4 Flowchart 400 of FIG. 4 shows an example scenario. Here, in block 402, the process pre-computes network information. For example, the communication module 218 ( Figure 2 ) can scan wireless networks continuously or intermittently. WiFi access point and / or cellular base station information can be collected for remote devices to which the client device is connected via a communication link or other devices that the client device is "visible" when scanning available frequencies and communication bands. This operation occurs automatically at the client device without user interaction. However, in order to save battery life, scanning can be intermittent, for a limited number of remote devices, and / or include other constraints that limit the feasibility of the network information obtained.
[0045] Once a user has initiated a query, for example via Figure 2By typing, tapping, or speaking a request into the user interface module 214 of the client device, the system can determine whether any location information is available for the client device. For example, in box 404, the system determines whether a location setting change has been requested or whether some other threshold condition is met. Here, the location setting change can occur by the application requesting to enable location services. Or the system can determine that the obtained network information is not feasible because it is out of date, for example, too early to provide a useful location within a certain accuracy. For example, if the pre-computed network information is more than 1 minute old, it can be considered out of date. The time can alternatively be 30 seconds, 10 minutes, or longer or shorter.
[0046] In some scenarios, the default scenario is that location services on the client device are not enabled without explicit authorization by the user. Here, the application can prompt the user to grant location permission to the application. This can involve turning on one or more specific location services, including cellular and WiFi networks. In some cases, the user may be asked to indicate which specific location services to activate. In other cases, the user may authorize the activation of all applicable location services in order to obtain location-related query results.
[0047] At the time that location permission has been granted and location service(s) have been enabled, the client device may not yet have a highly accurate location signal. For example, there may be no device location, or an inaccurate IP geolocation or historical location signal set. In this case, once the user grants location permission, the system can immediately trigger a (re)load of location information. This occurs in block 406, where the system (e.g., using communication module 218) obtains visible network data.
[0048] Some of this data may still be available even before the setting is changed, in which case it will be precomputed. Unfortunately, it may take some time to get useful location information after permission is granted. For example, it may take 5-500ms or more to update the cellular and / or WiFi network data with current information.
[0049] Visible network data may include some or all of the following. For WiFi networks, the BSSID, SSID, and signal strength of the access point may be collected. And for cellular networks (e.g., CDMA, GSM, LTE, WCDMA), the information may include the cell ID, location area code, mobile country code, mobile network code, and primary scrambling code. Other types of data may also be collected, such as information about ad-hoc or near-field connections, and other types of wireless scan information.
[0050] At the client device, it is beneficial to track visible networks in a passive manner to minimize the impact on battery drain. Even if device location is not enabled, the system will have some information about actively connected networks. Updating information about such connected networks can be much faster than obtaining information about all visible access points and cell towers. In one example, calculating visible networks will not trigger a WiFi scan; instead, the system can read the latest WiFi scan information available from the device.
[0051] Furthermore, while it is possible to resolve the location at the client device, this can be computationally intensive and time consuming. It can also increase battery drain. Therefore, the methods discussed herein reduce the burden on the client device and allow the network to resolve the location in an efficient manner.
[0052] Due to latency and / or power limitations on the client device side, it may not be possible to append a full scan of WiFi and cell data. In one example, data may be provided only for actively connected WiFi access points and / or cell base stations. In another example, data for a subset of visible but unconnected WiFi access points and / or cell base stations may be provided, either alone or together with data for actively connected devices. The subset of visible devices may be on the order of 2-5 devices. Alternatively, the system may attempt to collect scan data for any device within communication range.
[0053] To avoid returning results based on expired or outdated locations, when location permission is granted, the system is configured to generate an integrated location scan and request (query) sent to the network. The location scan ideally includes WiFi and cell scan information, but as described above, various types of network information may be included. An integrated location scan and (multiple) request data packets are generated at box 408. By way of example only, a processor such as CPU 204 may merge the network location scan information with a search or other query received via user interface module 214 to create an integrated request. At box 410, the integrated request is sent to the network. Then in response, one or more location-related results are received from the network in response to the query at box 412.
[0054] Figure 5 An example process 500 is shown in which a network receives and processes an integrated request. As shown in block 502, an integrated location scan and request packet(s) are received from a client device. In accordance with aspects of the present disclosure, scan data received by the network is not logged. On the network side, a server such as an interface web server or equivalent receives the integrated information. The server identifies the received packet(s) including the query and scan data, parses the scan data and sends it to a location service to resolve the location at block 504. For example, the scan data may be provided to a client device. Figure 3At block 506, the location service may resolve the client device location by accessing a geolocation database such as database 340. This may involve matching WiFi and / or cellular signal information with corresponding information in the geolocation database. In one implementation, the resolved location information will be added to the requested location context in the server and recorded as the usual device location.
[0055] After resolution, the network uses the resolved location when answering the request. Here, at block 508, the resolved location is applied to the received query or other request to obtain search results. As an example, with Figure 3 The application service associated with the server 3202 of the can use the resolved location to identify a subset of possible search results, or otherwise rank the results relative to the location. Once the location-related results have been obtained, they are returned to the client device at box 510.
[0056] Returning to step 504, once the system determines that the received request is an integrated request, the interface web server may first pass the scan data to the location service and wait for the results, and then pass the information to the application service. Alternatively, the interface web server may simultaneously pass the scan data to the location service and pass the query to the application service. This further minimizes the delay caused by communication within the network. Here, the application service may start the first stage of the search to obtain a first set of results. And when it receives the resolved location, it may use the location information to perform a second stage of refined search to produce the final results. These results are then returned to the client device.
[0057] Unless explicitly stated, the logic and process flows depicted in the drawings and described herein are not limited to a particular order or sequence. In addition, other steps may be provided, or steps may be eliminated from the described flows, and other components may be added to or removed from the described systems.
[0058] Although the technology herein has been described with reference to specific embodiments, it should be understood that these embodiments are merely illustrative of the principles and applications of the technology. Therefore, it should be understood that numerous modifications may be made to the illustrative embodiments and other arrangements may be designed without departing from the spirit and scope of the technology as defined by the appended claims.
[0059] The present technology enjoys broad industrial applicability, including but not limited to personal computing devices and systems, including systems that provide location-based services.
Claims
1. A query processing method, comprising: receiving, by the interface web server from a client device, an integrated request, the integrated request including location scan information and a query; The interface web server analyzes the received location scan information from the integrated request, wherein analyzing the received location scan information from the integrated request includes simultaneously passing the location scan information to a location service and passing a query to an application service; resolving, by the location service, the location of the client device by comparing the location scan information to a set of stored geo-location data to provide a resolved location; The resolved location of the client device is provided by the location service to the application service; applying, by the application service, the resolved location to the query to obtain a set of search results responsive to the query based on the client's location; and The set of search results is sent by the application service to the client device for presentation to a user of the client device.
2. The method of claim 1, wherein: The location scan information includes at least one of WiFi or cell scan information.
3. The method of claim 2, wherein: The location service performs resolution of the location of the client device by matching the location scan information with corresponding information in a geolocation database that maintains the set of stored geolocation data.
4. The method of claim 1, wherein: The method also includes the application service initiating a first search phase using only the query to identify a set of possible search results.
5. The method of claim 4, wherein applying the resolved location to the query comprises using the resolved location in a second stage refined search to obtain a set of search results based on the location of the client.
6. A server system for query processing, comprising: a location database configured to store a collection of geographic location data; as well as The interface web server, application service and location service are operably coupled to the location database and are configured to: receiving, by the interface web server from a client device, an integrated request, the integrated request including location scan information and a query; The interface web server analyzes the received location scan information from the integrated request, wherein analyzing the received location scan information from the integrated request includes simultaneously passing the location scan information to a location service and passing a query to an application service; resolving, by the location service, the location of the client device by comparing the location scan information to a set of stored geo-location data to provide a resolved location; The resolved location of the client device is provided by the location service to the application service; applying, by the application service, the resolved location to the query to obtain a set of search results responsive to the query based on the client's location; and The set of search results is sent by the application service to the client device for presentation to a user of the client device.
7. The server system according to claim 6, wherein: The location scan information includes at least one of WiFi or cell scan information.
8. The server system according to claim 7, wherein: The location service is configured to perform resolution of the location of the client device by matching the location scan information with corresponding information in a location database maintaining the set of stored geographic location data.
9. The server system of claim 6, further comprising an application service, wherein the application service is configured to initiate a first search phase using only a query to identify a set of possible search results.
10. The server system according to claim 9, wherein: The application service is configured to apply the resolved location to the query by using the resolved location in a second stage refined search to obtain a set of search results based on the location of the client.
11. A non-transitory computer-readable recording medium having stored thereon instructions, which, when executed by one or more processors interfacing a web server, an application service, and a location service, cause the one or more processors to perform a method comprising: receiving, by the interface web server from a client device, an integrated request, the integrated request including location scan information and a query; The interface web server analyzes the received location scan information from the integrated request, wherein analyzing the received location scan information from the integrated request includes simultaneously passing the location scan information to a location service and passing a query to an application service; resolving, by the location service, the location of the client device by comparing the location scan information to a set of stored geo-location data to provide a resolved location; The resolved location of the client device is provided by the location service to the application service; applying, by the application service, the resolved location to the query to obtain a set of search results responsive to the query based on the client's location; and The set of search results is sent by the application service to the client device for presentation to a user of the client device.
12. The non-transitory computer-readable recording medium of claim 11, wherein: The location scan information includes at least one of WiFi or cell scan information.
Citation Information
Patent Citations
Systems and methods for location based Internet search
US20090138439A1