-
2015-09-08
14/551,595
2014-11-24
US 9,130,995 B1
2015-09-08
-
-
Richard G Keehn | Mohammed Ahmed
Molly L. Sauter | Smith & Hopen, P.A.
2034-11-24
Smart Summary: A new system allows multiple servers to work together in a decentralized way to provide location-based services. Each server, called a peer, can send messages to communicate with other peers and includes information about its location. These messages help the peers understand their coverage area and connect with clients in that area. The system uses electronic maps to show where each peer is located and how far their services reach. Overall, this setup improves scalability and efficiency for location-aware services by using a network of servers instead of relying on a single server. ๐ TL;DR
Provided is a distributed and decentralized location-aware system. The system includes a number of peers, each in communication with other peers and adapted to communicate PING, PONG, and ALERT messages. Each of the messages has a header that includes location information. Also provided is a method of communication between two peers in the system. In addition, the present invention includes a method of rendering the system. In the method, a communication link between an electronic map and a number of peers is provided. The location information and the covering distance of each of the peers is obtained and used to plot the location and render the covering distance of each peer on the electric map. A communication link between an electronic control device and the electronic map is also provided.
Get notified when new applications in this technology area are published.
H04L67/104 » CPC further
Network arrangements or protocols for supporting network services or applications; Protocols in which an application is distributed across nodes in the network Peer-to-peer [P2P] networks
H04L67/107 » CPC further
Network arrangements or protocols for supporting network services or applications; Protocols in which an application is distributed across nodes in the network; Peer-to-peer [P2P] networks using node-based peer discovery mechanisms; Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
H04N2201/3253 » CPC further
Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof; Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device; Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document Position information, e.g. geographical position at time of capture, GPS data
H04W4/021 » CPC further
Services specially adapted for wireless communication networks; Facilities therefor; Services making use of location information Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
H04W4/023 » CPC further
Services specially adapted for wireless communication networks; Facilities therefor; Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
H04W68/00 » CPC further
User notification, e.g. alerting and paging, for incoming communication, change of service or the like
G06F15/16 IPC
Digital computers in general ; Data processing equipment in general Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
G06F15/177 IPC
Digital computers in general ; Data processing equipment in general; Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs Initialisation or configuration control
G06F15/173 IPC
Digital computers in general ; Data processing equipment in general; Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs; Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
H04W4/02 IPC
Services specially adapted for wireless communication networks; Facilities therefor Services making use of location information
This application claims priority to currently co-pending U.S. patent application Ser. No. 12/843,143, filed Jul. 26, 2010, which claims priority to U.S. Provisional Patent Application 61/228,376, filed Jul. 24, 2009, both of which are herein incorporated by reference.
This invention relates to a location-based services (LBS) system and more specifically to the decentralization of an LBS system.
In the past, location based services (LBS) systems traditionally consisted of one server controlling a series of field client devices in the same geography.
Accordingly, what is needed in the art is a location bases services (LBS) system that provides for the use of multiple servers and a series of field client devices in a common geographic area.
This invention includes system-wide scalability of massive location-aware systems. The present invention allows the LBS system to have many servers and shows the network of servers in a single view from where to send ALERT messages to other servers (and their clients) and also zoom in to see the internal network of a particular server. This new network of servers has been implemented using a distributed protocol.
The present invention includes a distributed and decentralized location-aware system. The system includes a number of peers (e.g. LBS servers). Each of the plurality of peers is in communication with the other peers. Each of the plurality of peers is also adapted to communicate a PING message, a PONG message, and an ALERT message. Each of the messages has a header that includes location information. The location information may include latitude and longitude data of the peer or the covering distance of the respective peer.
The peers may also have peer tables. Peer tables include a list of a peer's peers that are online.
Each peer may be in communication with one or more field clients. The covering distance of the peer will expand and contract according to the distance of the field client located farthest from the peer.
Also included is a method of communication between two peers in a distributed location-aware system. The method begins by transmitting a PING message from the first peer to the second peer. The PING message includes a header and a payload. The header of the PING message includes location information and the payload indicates the listening port of the first peer. In response to the PING message, the second peer transmits a PONG message back to the first peer. The PONG message includes a header having location information and a payload indicating the listening port of the second peer, the number of field clients connected to the second peer, and the last message received from the first peer. The first peer transmits an ALERT message to the second peer. The ALERT message includes a header having location information and a payload including an alert message. The location information may include latitude and longitude data of the peer or the covering distance of the respective peer.
Another method of communication in a distributed location-aware system is also included. Here, a peer transmits a PING message. The PING message has a header and a payload. The header contains location information and the payload indicates the peer's listening port. The peer then receives a PONG message. The PONG message also has a header and a payload. The header contains location information and the payload indicates the listening port of another peer, the number of field clients connected to the other peer, and the last message received by the other peer from the original peer. The peer then transmits an ALERT message. The ALERT message includes a header a payload. The header contains location information and the payload includes the alert message. The location information may include latitude and longitude data of the peer or the covering distance of the respective peer.
In addition, the present invention includes a method of rendering a distributed location-aware system. In the method, a communication link between an electronic map and a number of peers is provided. The location information and the covering distance of each of the peers is obtained and used to plot the location and render the covering distance of each peer on the electronic map. A communication link between an electronic control device, such a computer or a smart phone, and the electronic map is additionally provided.
The method may further include receiving a selection of a peer-of-interest and changing the viewing perspective of the electronic map according to the location of the peer-of-interest. This allows a user to view the network of peers from the perspective of the peer-of-interest even when the user is remotely located. In some embodiments, the electronic map is a web-based electronic map, such as Googleยฎ Earth. The covering distance may be the area covered by a circle having the location information as the center and a radius given by the distance of the farthest client connected to the peer.
For a fuller understanding of the invention, reference should be made to the following detailed description, taken in connection with the accompanying drawings, in which:
THE FIGURE is a screen shot of a web interface showing the overlay network of LBS servers in accordance with an embodiment of the present invention.
In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings, which form a part hereof, and within which are shown by way of illustration specific embodiments by which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the invention.
The present invention includes a protocol that interconnects several location-based services (LBS) servers. This allows for the scaling and decentralization of LBS systems. The main idea is that field clients are assigned to a particular LBS server and the server represents a group of users to be tracked in some geographical area. Because several (or many) servers could be installed in many different places, a way to create a complete picture of the entire system of servers while not over utilizing the communication lines and the servers was needed. To provide this complete visualization, a decentralized system architecture where all of the servers are interconnected and a new communication protocol to allow for the exchange of required information was created. The visualization can be displayed on any electronic map. Ideally, the electronic map is a web-based electronic map, such as a Googleยฎ Earth map. The visualization includes a map of the location, the interconnection of all of the servers and the area that each server is currently tracking. By selecting a desired server through the visualization, the system can connect the desired server and visualize that particular system as if the control station were in that particular place. The connectivity among servers has been developed by a novel protocol, which is described below.
The novel protocol interconnects LBS servers, which may also be referred to herein as peers. To facilitate this, the message headers of the protocol contain location information.
There are three classes of messages in the protocol, which are referred to herein as PING, PONG, and ALERT messages. The first two types of messages, PING and PONG, keep the state of the system and the last peer to broadcast a geographically aware ALERT. The system also provides reliability of the messages by asking a receiving peer to acknowledge a message that has been sent to it. This is because the implementation of the messages uses an unreliable transport layer protocol (e.g. UDP).
Message Header
The message header of the protocol contains the location (latitude, longitude) of the peer that sends a message. An exemplary header is shown in Table 1 below. The fields of the header are described in Table 2 below.
| TABLE 1 |
| Protocol Header |
| pay- | time- | tra- | pay- | |||||
| mess- | load | to | versed- | load |
| id | type | live | hops | size | flags | lat | lng | covdist | |
| byte | 0-7 | 8-11 | 12-15 | 16-19 | 20-23 | 24-27 | 28-35 | 36-43 | 44-52 |
| TABLE 2 |
| Header Field Descriptions |
| Field Name | Description |
| messid | This is the message ID of the header. Each header sent |
| by a peer has a unique message ID. This number is a | |
| long integer and is generated using the timestamp in | |
| milliseconds of when it was generated. | |
| payloadtype | This field identifies the type of message: |
| PING message, | |
| PONG message, or | |
| ALERT message | |
| timetolive | This field identifies the total number of hops the message |
| can traverse before being discarded. When a message is | |
| received and it has to be forwarded to another peer, this | |
| value is decremented. When a message arrives with this | |
| field having a zero (0) value, the message is discarded. | |
| traversedhops | The number of peers a message has traversed. |
| flags | This field is used to provide a certain quality of service |
| to the message. In this system, there are two services, | |
| which are a reliable and an unreliable delivery. | |
| A value of zero (โ0โ) in this field indicates that the | |
| message does not need to be confirmed for | |
| delivery. (unreliable service) | |
| A value of one (โ1โ) indicates that the message has | |
| to be acknowledged. (reliable service) | |
| A value of two (โ2โ) indicates that the message | |
| received is an acknowledgment and the payload of | |
| the message is the ID of the message to be | |
| acknowledged. | |
| lat | This field identifies the latitude of the peer sending the |
| message. | |
| lng | This field identifies the longitude of the peer sending the |
| message. | |
| covdistance | This field identifies the covering distance of the peer |
| sending the message. The covering distance of a peer is | |
| defined as the distance of the farthest field client | |
| connected to the peer. | |
PING Message
A PING message sent by a peer initializes a node in the peer network through a node discovery process. A PING message also serves as a keep alive message for indicating that the node sending the PING is active.
A PING message is responded to by a PONG message. An initial PING message is defined by the header and a payload of four bytes that indicates the port the peer sending the message uses for listening for responses. The PING message sets the payload type field of the header to zero (โ0โ), the time to live field to one (โ1โ), and the traversed hops to zero (โ0โ).
PONG Message
A PONG message is sent by a peer upon receipt of a PING message. A PONG message contains information about a peer currently connected to the overlay network. A PONG message sets the payload type field of the header to one (โ1โ), the time to live field to one (โ1โ), and the traversed hops to 0.
An exemplary PONG message is shown in Table 3 below. The fields of a PONG message are described in Table 4 below.
| TABLE 3 |
| PONG Message |
| port | ipaddress | active_ses | lat | lng | covdist | last_update | |
| byte | 0-3 | 4-7 | 8-11 | 12-19 | 20-27 | 28-35 | 35-42 |
| TABLE 4 |
| PONG Message Field Descriptions |
| Field | |
| Name | Description |
| port | The listening port of a peer connected in the overlay. |
| Ipaddress | The ip address of the peer in the overlay. |
| active_ses | The number of active fieldclient sessions that are connected to |
| that peer. | |
| lat | Latitude of the peer. |
| lng | Longitude of the peer. |
| covdist | The covering distance of the peer (it is defined the same was as |
| for the PING). | |
| last_update | This field identifies the last message received from this |
| particular peer. When a peer receives the PONG message, it | |
| updates its table only if this field is newer than the last | |
| information received from/about the peer the PONG message | |
| represents. This field is the header id of the last message | |
| received from the peer represented by this particular PONG. | |
ALERT Message
The ALERT message delivers geographically localized messages. An ALERT message sets the flag of the header to one (โ1โ), indicating that this is a message that must be acknowledged. An exemplary ALERT message is shown in Table 5 below. The fields of an ALERT message are described in Table 6 below.
| TABLE 5 |
| ALERT Message |
| messid | lat | lng | covdist | mes_size | message | |
| byte | 0-3 | 4-7 | 8-11 | 12-19 | 20-27 | 28-35 |
| TABLE 6 |
| ALERT Message Field Descriptions |
| Field | |
| Name | Description |
| messid | This field identifies an ALERT message. It is the timestamp |
| in milliseconds when the message was generated. | |
| lat | Latitude of the center of the area where the geographically |
| located message is sent. | |
| lng | Longitude of the center of the area where the geographically |
| located message is sent. | |
| covdist | The radius of the geographically located message. The (lat, |
| lng) and the covdist define a circumference where all of the | |
| field clients that are within the server's control are located | |
| and must be notified. | |
| mes_size | The length of the message sent. A message must have at least |
| one character and less than 1000 characters. | |
| message | The contents of the ALERT message. |
Exemplary Protocol Implementation
In an exemplary embodiment, the novel protocol was implemented using UDP as the transport layer protocol.
The protocol keeps a fully connected topology that is maintained by enforcing peers to send messages, at most, once every forty-five seconds. Suppose Peer A has Peer B in its peer table. If no messages from Peer B are received by Peer A in forty-five seconds, Peer A issues a PING message to Peer B and waits for a response. If no PONG response is received in the next twenty seconds, Peer A deletes Peer B from its peer table.
When an ALERT message needs to be sent, the system performs a geographical query over its peer list. The ALERT message is then sent to those peers that comply with one or more of the two following conditions:
Once each of the selected peers receives the ALERT message, they execute intraALERT procedures, which send the message to all of a peer's field client devices. The system allows any control station (computer) connected to the Internet to connect to any of the servers. Once connected to one particular server, the system displays the overlay network, or the network of servers in the electronic map (e.g. a Google Earth map), each peer in its respective real location, including the area each peer covers. The area covered by each peer is shown as a circumference centered at the server and having a radius equal to the distance of the user located the farthest from the peer. From this map interface, several functions can be performed, as shown in THE FIGURE, and explained in Table 7 below.
| TABLE 7 |
| Interface Functions |
| Function | Description |
| Edit Local | Allows the user to edit the location of the local server |
| Server: | (the server the user is currently connected to). |
| Ping Server | Issues a PING message to connect and discover peers. |
| Once the peer is added to the peer list, its location and | |
| current covering area are shown in the map interface. | |
| Zoom to | Zooms to a server chosen from the active server list. |
| Server | This option changes the map interface and brings the |
| interface that the user of the control station of that | |
| particular server would see locally. | |
| Send GeoAlert | Issues a geographically located ALERT message. |
| Connect to | Opens a new window and connects to the map interface |
| Server | (login window) of the selected server from the active |
| server list. | |
THE FIGURE shows two peers in the system. There are two circumferences that describe the current covering area of each of the peers. In the FIGURE, peer 131.247.3.140 has a greater area than the other peer. This is because there is at least one user that is within that area. This area contracts and expands as field clients, which are connected to that particular peer, move.
It will be seen that the advantages set forth above, and those made apparent from the foregoing description, are efficiently attained and since certain changes may be made in the above construction without departing from the scope of the invention, it is intended that all matters contained in the foregoing description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
It is also to be understood that the following claims are intended to cover all of the generic and specific features of the invention herein described, and all statements of the scope of the invention which, as a matter of language, might be said to fall there between.
1. A method of rendering a distributed location-aware system comprising a plurality of peers, the method comprising
providing a communication link between a first peer, a second peer and a third peer of a plurality of peers, wherein providing a communication link further comprises;
transmitting, from the first peer, a PING message including an application layer header having location information, a covering distance and a payload indicating a listening port of the first peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the first peer;
receiving, at the first peer, a PONG message including an application layer header having location information, a covering distance and a payload indicating the listening port of the second peer, the number of field clients connected to the second peer and the last message received by the second peer from the first peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the second peer;
transmitting, from the second peer, a PING message including an application layer header having location information, a covering distance and a payload indicating a listening port of the second peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the second peer;
receiving, at the second peer, a PONG message including an application layer header having location information, a covering distance and a payload indicating the listening port of the third peer, the number of field clients connected to the third peer and the last message received by the second peer from the third peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the third peer;
transmitting an ALERT message, from the first peer to the second peer, wherein the ALERT message includes an application layer header having location information, a covering distance and a payload including an alert message, wherein an ALERT coverage area is defined by the area covered by a circle having a center given by the location information and a radius equal to the covering distance of the ALERT message, wherein the ALERT message is transmitted to the second peer if the second peer is within the ALERT message coverage area or if the covering distance of the second peer at least partially overlaps with the ALERT message coverage area;
transmitting the ALERT message from the second peer to the third peer if the third peer is within the covering distance of the second peer;
providing a communication link between an electronic map and the first peer, the second peer and the third peer of the plurality of peers;
plotting the location of the first peer, the second peer and the third peer of the plurality of peers on the electronic map using the location information of the first peer, the location information of the second peer and the location information of the third peer;
rendering the covering distance of the first peer, the covering distance of the second peer and the covering distance of the third peer on the electronic map; and
providing a communication link between an electronic control device and the electronic map.
2. The method of claim 1, further comprising:
receiving a user-selected peer-of-interest from the plurality of peers;
obtaining a location of the peer-of-interest; and
changing a viewing perspective of the electronic map according to the location of the peer-of-interest.
3. The method of claim 1, wherein the electronic map is a web-based electronic map.
4. The method of claim 1, wherein the electronic control device is a computer.
5. The method of claim 1, wherein the electronic control device is a smart phone.
6. The method of claim 1, wherein the location information includes the latitude and longitude of the peer.
7. The method of claim 1, wherein the covering distance of the second peer overlaps with the ALERT message coverage area if the second peer lies within a circle having a center equal to the ALERT message location information and a radius equal to the summation of the radius of the ALERT message and the radius given by the distance of the farthest field client connected to the second peer.
8. A distributed location-aware system, the system comprising:
a plurality of peers, a first peer of the plurality of peers adapted to transmit a PING message to a second peer of the plurality of peers, wherein the PING message includes an application layer header having location information, a covering distance and a payload indicating the listening port of the first peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the first peer;
the second peer adapted to transmit a PONG message to the first peer, in response to receipt of the PING message at the second peer, wherein the PONG message includes an application layer header having location information, a covering distance and a payload indicating the listening port of the second peer, the number of field clients connected to the second peer and the last message received from the first peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the second peer, and the second peer further adapted to transmit a PING message to a third peer, wherein the PING message includes an application layer header having location information, a covering distance and a payload indicating a listening port of the second peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the second peer;
the third peer adapted to transmit a PONG message to the second peer, in response to receipt of the PING message at the third peer, wherein the PONG message includes an application layer header having location information, a covering distance and a payload indicating the listening port of the third peer, the number of field clients connected to the third peer and the last message received by the second peer from the third peer, wherein the covering distance is the area covered by a circle having a center given by the location information and a radius given by the distance of a farthest field client connected to the third peer;
the first peer further adapted to transmit an ALERT message, from the first peer to the second peer, wherein the ALERT message includes an application layer header having location information, a covering distance and a payload including an alert message, wherein an ALERT coverage area is defined by the area covered by a circle having a center given by the location information and a radius equal to the covering distance of the ALERT message, wherein the first peer is adapted to transmit the ALERT message to the second peer if the second peer is within the ALERT message coverage area or if the covering distance of the second peer at least partially overlaps with the ALERT message coverage area;
the second peer adapted to transmit the ALERT message from the second peer to the third peer if the third peer is within the covering distance of the second peer;
a communication link between an electronic map and the first peer, the second peer and the third peer,
an electronic map adapted for plotting the location of the first peer, the second peer and the third peer using the location information of the first peer, the location information of the second peer and the location information of the third peer and for rendering the covering distance of the first peer, the covering distance of the second peer and the covering distance of the third peer on the electronic map; and
a communication link between an electronic control device and the electronic map.
9. The system of claim 8, wherein the electronic control device is configured for receiving a user-selected peer-of-interest from the plurality of peers, obtaining a location of the peer-of-interest and changing a viewing perspective of the electronic map according to the location of the peer-of-interest.
10. The system of claim 8, wherein the electronic map is a web-based electronic map.
11. The system of claim 8, wherein the electronic control device is a computer.
12. The system of claim 8, wherein the electronic control device is a smart phone.
13. The system of claim 8, wherein the location information includes the latitude and longitude of the peer.
14. The system of claim 8, wherein the covering distance of the second peer overlaps with the ALERT message coverage area if the second peer lies within a circle having a center equal to the ALERT message location information and a radius equal to the summation of the radius of the ALERT message and the radius given by the distance of the farthest field client connected to the second peer.