Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISTRIBUTED LOCATION ENGINE FOR WIRELESS CLIENTS
Document Type and Number:
WIPO Patent Application WO/2019/145752
Kind Code:
A1
Abstract:
In this invention we have a distributed location engine which receives location feeds or feed objects sourced from wireless access points or a controller machine managing those access points, and queues these location feeds in different queues maintained per site. Then various worker processes or threads for different queues pick up location feeds or feed objects push them to a distributed hash table such that the insertion order of location feeds is maintained and the key for the distributed hash table is the client mac address and the value is the linked list of the location feeds or feed objects in insertion order. While iterating through the entries of the distributed hash table to compute the location of the client, we also consider the timestamp when the first location feed or feed object was pushed for that entry.

Inventors:
SHARMA PRATIK (IN)
Application Number:
PCT/IB2018/050462
Publication Date:
August 01, 2019
Filing Date:
January 25, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SHARMA PRATIK (IN)
International Classes:
H04W88/08; H04B17/00
Domestic Patent References:
WO2016093860A12016-06-16
Foreign References:
US9668233B12017-05-30
Download PDF:
Claims:
Claims

Following are the claims in this invention: -

1. The novel technique by which the location feeds or feed objects sourced from the controller machine managing the wireless access points or the access points themselves are aggregated into queues maintained per site. Also here depending upon the rate of arrival of location feeds from different sites and the platform capacity of the location engine server, there can be one or more sites handled by the location engine server.

2. Also the novel technique by which the aggregated feeds per site are distributed on a per client basis and how they are considered for computing the location of the client itself. The aggregated feeds on a per site basis in the queue are picked up by various worker processes or threads for different queues and are pushed to a distributed hash table such that the insertion order of location feeds is

maintained and the key for the distributed hash table is the client mac address(or unique label for client) and the value is the linked list of the location feeds or feed objects in insertion order. Also there can be a single distributed hash table if all servers computing the location of the client from the feed object has the access to information of all the sites or we can have several instances of distributed hash table per site if certain set of servers have access to information of a particular site only. While iterating through the entries of the distributed hash table to compute the location of the client, we also consider the timestamp when the first location feed or feed object was pushed for that entry. We calculate the difference between current time and the timestamp for that entry and if it is greater than or equal to the threshold set for calculating the location of the client like say 10 seconds then we delete the corresponding entry from the distributed hash table and calculate the location of the client using algorithms like trilateration, triangulation, etc. which might require minimum three location feeds or feed objects(in that case delete or disregard entries with less than 3 location feed or feed objects) in the threshold window set for calculating the location of the client. If the difference between the current time and timestamp of the entry in the distributed hash table is less than the threshold set for calculating the location of the client then we stop iteration of the subsequent entries of the distributed hash table as for subsequent entries the difference will be even smaller and start again from the first entry of the distributed hash table thereby maintaining insertion order for calculating the location of the client as well.

Description:
Distributed Location Engine for wireless clients

In a network of wireless access points, location feeds are sourced from a controller machine managing these access points or from the access points themselves. These location feeds contain information like RSSI(Received Signal Strength Indicator) respectively for different clients(who have their unique mac address or unique labels), mac address of the client, mac address of the Access Point, etc. These location feeds or feed objects sourced either from the controller machine managing the access points or the access point to the location engine server are pushed to different queues based on the site(one queue per site) from where the location feed or feed object is coming from, assuming that there is one controller per site in the case of location feeds being sourced from the controller machine. Here depending upon the rate of arrival of location feeds from different sites and the platform capacity of the location engine server, there can be one or more sites handled by the location engine server. Also here site implies where the wireless access points are deployed and site may contain buildings, which in turn can have several floors where the access points are deployed. Typically each floor has a floor map with their respective dimensions where after computing the location of the client, we can plot the respective location on the user interface taking into account the scale of the map or the ratio of distance on the map to the corresponding distance in real time. Then various worker processes or threads for different queues pick up location feeds or feed objects and push them to a distributed hash table such that the insertion order of location feeds is maintained and the key for the distributed hash table is the client mac address(or unique label for client) and the value is the linked list of the location feeds or feed objects in insertion order. Also there can be a single distributed hash table if all servers computing the location of the client from the feed object has the access to information of all the sites or we can have several instances of distributed hash table per site if certain set of servers have access to information of a particular site only. While iterating through the entries of the distributed hash table to compute the location of the client, we also consider the timestamp when the first location feed or feed object was pushed for that entry. We calculate the difference between current time and the timestamp for that entry and if it is greater than or equal to the threshold set for calculating the location of the client like say 10 seconds then we delete the corresponding entry from the distributed hash table and calculate the location of the client using algorithms like trilateration, triangulation, etc. which might require minimum three location feeds or feed objects(in that case delete or disregard entries with less than 3 location feed or feed objects) in the threshold window set for calculating the location of the client. If the difference between the current time and timestamp of the entry in the distributed hash table is less than the threshold set for calculating the location of the client then we stop iteration of the subsequent entries of the distributed hash table as for subsequent entries the difference will be even smaller and start again from the first entry of the distributed hash table thereby maintaining insertion order for calculating the location of the client as well.