Remote device infrastructure
US-2024323248-A1 · Sep 26, 2024 · US
US9756086B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9756086-B1 |
| Application number | US-201313784295-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 4, 2013 |
| Priority date | Mar 4, 2013 |
| Publication date | Sep 5, 2017 |
| Grant date | Sep 5, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Persistent connections between multiple client devices and multiple back-end service components are managed using a consistent hashing-based approach to route distribution. A load balancer distributes the connections across multiple gateway servers. Each connection is associated with a device having an identifier, which can be hashed using a selected hashing algorithm. The gateway servers are assigned values over a hashing range. When a connection is established for a device, the hash value for that device can be mapped to a corresponding gateway server. The primary gateway server establishing the connection can store information (e.g., the port or interface) for the connection, and can send identifying information to the corresponding gateway server determined by the hash value. When a backend service wants to locate the connection, the service hashes the device identifier to determine the corresponding gateway server, which returns the identity of the primary gateway server hosting the connection.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for providing a connection in a network comprising a plurality of gateway hosts, a client device, and a computing environment, comprising: receiving, from the client device, a first request to establish a connection for communication with a service provided using one or more resources of the computing environment, the client device associated with a device identifier; selecting, using a load balancing algorithm, a primary gateway host of the plurality of gateway hosts; enabling the primary gateway host to accept the connection for the client device; performing, using a selected hashing algorithm, a hash of the device identifier to determine a hash key for the connection; causing the primary gateway host to determine a routing gateway host of the plurality of gateway hosts using the hash key, the routing gateway host corresponding to a portion of an entire range of possible hash values; causing the primary gateway host to provide information for the connection to the routing gateway host; causing the routing gateway host to respond to a second request for information about the connection, the second request being received from a component of the computing environment having identified the routing gateway host by applying the selected hashing algorithm to the device identifier to determine the hash key for the connection; causing the routing gateway host to send to the component of the computing environment, identifying information for the primary gateway host; receiving, at the primary gateway host from the component of the computing environment, second information; and causing the primary gateway host to send the second information to the client device. 2. The computer-implemented method of claim 1 , further comprising: determining, from the first request, at least one of a rule or a policy to be used in establishing the connection, wherein the primary gateway host is configured to accept the connection according to the at least one rule or policy. 3. The computer-implemented method of claim 1 , wherein the selected hashing algorithm is a consistent hashing algorithm, and further comprising: assigning hash values for the plurality of gateway hosts, the hash values determining a range of possible hash values for a respective gateway host. 4. The computer-implemented method of claim 1 , further comprising: causing the primary gateway host to store information for at least one of a port or an interface for the connection. 5. A computer-implemented method, comprising: receiving, from a computing device, a first request to establish a persistent connection, the computing device associated with a device identifier; selecting a primary gateway host of a plurality of gateway hosts to maintain the persistent connection; performing a hash of the device identifier using a hashing algorithm to determine a hash key for the persistent connection; sending instructions to the primary gateway host to determine a routing gateway host of the plurality of gateway hosts using the hash key, the routing gateway host corresponding to a portion of an entire range of possible hash values; sending instructions to the primary gateway host to provide information for the persistent connection to the routing gateway host; sending instructions to the routing gateway host to respond to a second request from an entity for information about the persistent connection, the entity having identified the routing gateway host using the hash key; sending instructions to the routing gateway host to provide identifying information for the primary gateway host to the entity; sending instructions to the primary gateway host to receive second information from the entity; and sending instructions to the primary gateway host to send the second information to the computing device. 6. The computer-implemented method of claim 5 , further comprising: receiving the first request to a load balancer, the load balancer configured to select the primary gateway host from the plurality of gateway hosts. 7. The computer-implemented method of claim 5 , further comprising: adding a new gateway host to the plurality of gateway hosts; including the new gateway host in a set of the gateway hosts participating in a hashing ring; assigning a hash range of the hashing ring to the new gateway host; and exposing information for the hash range for the new gateway host. 8. The computer-implemented method of claim 5 , further comprising: determining, from the first request, at least one of a rule or a policy to be used in establishing the persistent connection. 9. The computer-implemented method of claim 8 , wherein the at least one of a rule or a policy specifies one or more characteristics relating to at least one of encryption, authentication, a requested protocol, a type of compression, a power limit, latency, or a throughput requirement. 10. The computer-implemented method of claim 5 , further comprising: sending instructions to the primary gateway host to receive information to be transmitted to the computing device; sending instructions to the primary gateway host to determine at least one of a port or an interface for the persistent connection; and sending instructions to the primary gateway host to forward the information to the computing device over the persistent connection. 11. The computer-implemented method of claim 5 , wherein the persistent connection is one of a WebSocket connection, a SPDY connection, or a bi-directional protocol connection. 12. A computer system, comprising: at least one processor; and a memory device including instructions that, when executed by the at least one processor, cause the computer system to: receive, from a computing device, a first request to establish a persistent connection, the computing device associated with a device identifier; select a primary gateway host of a plurality of gateway hosts to maintain the persistent connection; perform a hash of the device identifier by applying a hashing algorithm to determine a hash key for the persistent connection; send instructions to the primary gateway host to determine a routing gateway host of the plurality of gateway hosts using the hash key, the routing gateway host corresponding to a portion of an entire range of possible hash values; send instructions to the primary gateway host to provide information for the persistent connection to the routing gateway host; send instructions to the routing gateway host to respond to a second request from an entity for information about the persistent connection, the entity having identified the routing gateway host using the hash key; send instructions to the routing gateway host to provide identifying information for the primary gateway host to the entity; send instructions to the primary gateway host to receive second information from the entity; and send instructions to the primary gateway host to send the second information to the computing device. 13. The computer system of claim 12 , wherein the instructions when executed further cause the computer system to: receive the first request to a load balancer, the load balancer configured to select the primary gateway host from the plurality of gateway hosts. 14. The computer system of claim 12 , wherein the instructions when executed further cause the computer system to: determine, from the first request, at least one of a rule or a policy to be used in establishing the persistent connection. 15. The computer system of claim 12 , wherein the instructions when executed further cause th
Session establishment or de-establishment · CPC title
Server selection for load balancing · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.