Load-balanced, persistent connection techniques
First Claim
1. A system comprising:
- one or more processors; and
one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising;
receiving, from a client device, a first request to connect to one or more of multiple server instances;
establishing a first connection between the client device and a first server instance of the multiple server instances at least partly in response to receiving the first request;
dropping the first connection at least partly based on an amount of data transferred between the client device and the first server instance over a period of time;
receiving, from the client device, a second request to connect to one or more of the multiple server instances; and
establishing a second connection, between the client device and a second server instance of the multiple server instances, based at least partly on dropping the first connection.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for creating a persistent connection between client devices and one or more remote computing resources, which may form a portion of a network-accessible computing platform. This connection may be considered “permanent” or “nearly permanent” to allow the client device to both send data to and receive data from the remote resources at nearly any time. In addition, both the client device and the remote resources may establish virtual channels over this single connection. If no data is exchanged between the client device and the remote computing resources for a threshold amount of time, then the connection may be severed and the client device may attempt to establish a new connection with the remote computing resources.
28 Citations
20 Claims
-
1. A system comprising:
-
one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising; receiving, from a client device, a first request to connect to one or more of multiple server instances; establishing a first connection between the client device and a first server instance of the multiple server instances at least partly in response to receiving the first request; dropping the first connection at least partly based on an amount of data transferred between the client device and the first server instance over a period of time; receiving, from the client device, a second request to connect to one or more of the multiple server instances; and establishing a second connection, between the client device and a second server instance of the multiple server instances, based at least partly on dropping the first connection. - View Dependent Claims (2, 3, 4)
-
-
5. One or more computing devices comprising:
-
one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising; receiving, from a client device, a request to connect to one or more of multiple server instances; routing the request such that the client device establishes a first connection with a first server instance of the multiple server instances; severing the first connection based on at least one of a property of the first connection, a property of the first server instance, or a property of the client device; and establishing a second connection, between the client device and a second server instance of the multiple server instances, based at least partly on severing the first connection. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
receiving, by a computing device and from a client device, a request to connect to one or more of multiple server instances; at least partly in response to receiving the request, establishing, by the computing device, a first connection between the client device and a first server instance of the multiple server instances; dropping, by the computing device, the first connection based on at least one of a property of the first connection, a property of the first server instance, or a property of the client device; and based at least in part on dropping the first connection, establishing a second connection between the client device and a second server instance of the multiple server instances different from the first server instance, wherein the second server instance is selected for establishing the second connection to substantially balance a processing load across the multiple server instances. - View Dependent Claims (17, 18, 19, 20)
-
Specification