Claims
- 1. A method of managing connections between a server and a plurality of clients at a connection management device, the connection management device being interposed between the server and the plurality of clients on a computer network, the method comprising:
maintaining at least one connection to the server; receiving requests from the clients; transmitting the requests to the server; receiving responses to the requests from the server; and monitoring a server response time for a selected request sent to the server, the server response time for the selected request being the time elapsed between transmitting the selected request to the server and receiving a corresponding response from the server.
- 2. The method of claim 1, wherein maintaining at least one connection to the server includes maintaining a number of connections to the server, further comprising basing the number of connections to the server on the server response time.
- 3. The method of claim 1, further comprising changing the number of connections to the server if the server response time falls outside of a predetermined range of times.
- 4. The method of claim 1, further comprising seeking a selected connection with no pending requests before transmitting a received request to the server via the selected connection.
- 5. The method of claim 4, further comprising opening a new connection for transmission of the received request if no connection with no pending requests is found.
- 6. The method of claim 1, wherein maintaining at least one connection to the server includes maintaining a number of connections to the server, and wherein monitoring the server response time includes monitoring a performance indicator that is correlated to the server response time.
- 7. The method of claim 6, the performance indicator having a value, further comprising changing the number of connections to the server if the value of the performance indicator falls outside a determined range of values.
- 8. The method of claim 7, further comprising continuously updating the determined range of values by periodically correlating the server response time to the performance indicator.
- 9. The method of claim 6, wherein the performance indicator is selected from the group consisting of a rate of formation of new client connections to the connection management device, a rate of client requests received, a type of request received, a client type, a client bandwidth, a resource URL, and a resource type requested.
- 10. A method of optimizing communication between a plurality of clients and a server at a connection management device, the connection management device being configured to connect to the clients and to the server to facilitate resource transfer between the clients and the server, the method comprising:
maintaining a plurality of connections to the server; receiving a request from a selected client; examining the connections to the server to identify a selected connection with no pending requests; and sending the request to the server on the selected connection.
- 11. The method of claim 10, further comprising opening a new connection to the server and sending the request to the server on the new connection if a connection with no pending requests cannot be identified.
- 12. The method of claim 10, wherein a server response time elapses between sending the request to the server and receiving a corresponding response from the server, further comprising monitoring the server response time and changing the number of connections to the server if the server response time falls outside of a predetermined range of times.
- 13. The method of claim 12, wherein a connection is closed if the server response time is faster than the predetermined range of times.
- 14. The method of claim 12, wherein a connection is opened if the server response time is slower than the predetermined range of times.
- 15. The method of claim 10, wherein a server response time elapses between sending the request to the server and receiving a corresponding response from the server, further comprising continuously monitoring a performance indicator correlated to the server response time.
- 16. The method of claim 15, the performance indicator having a value, further comprising changing the number of connections to the server if the value of the performance indicator falls outside a desired value range.
- 17. The method of claim 16, wherein the performance indicator is selected from the group consisting of a rate of formation of new client connections to the connection management device, a rate of client requests received, a type of request received, a client type, a client bandwidth, a resource URL, and a resource type requested.
- 18. The method of claim 16, further comprising continuously updating the desired value range by periodically correlating the server response time to selected values of the performance indicator.
- 19. The method of claim 18, wherein periodically correlating the server response time to selected values of the performance indicator includes calculating a historical average of server response times for selected values of the performance indicator.
- 20. The method of claim 10, the connection management device being configured to receive a plurality of requests from the clients and forward the plurality of requests to the server, wherein sending the request to the server includes storing information regarding the request to help identify a corresponding response from the server.
- 21. A connection management device configured to manage connections between at least one client and a server, the connection management device being configured to be disposed on a computer network between the client and the server, the connection management device including a controller having a processor and volatile memory, a network interface configured to interface the connection management device to the computer network, and non-volatile memory, the non-volatile memory containing a communications program executable by the controller to:
maintain a number of connections to the server; receive requests from the clients; transmit the requests to the server; receive responses to the requests from the server; and monitor a server response time for a selected request sent to the server, the server response time for the selected request being the time elapsed between transmitting the selected request to the server and receiving a corresponding response from the server.
- 22. The connection management device of claim 21, wherein the communications program is executable by the controller to base the number of connections to the server upon the server response time.
- 23. The connection management device of claim 21, wherein the communications program is executable by the controller to periodically monitor a plurality of server response times for a plurality of requests, and to adapt the number of connections to the server based upon changes in the server response times.
- 24. The connection management device of claim 23, wherein the communications program is executable by the controller to decrease the number of connections to the server when a selected server response time is shorter than a predetermined range of response times.
- 25. The connection management device of claim 21, wherein the communications program is executable by the controller to increase the number of connections to the server when a selected server response time is longer than a predetermined range of response times.
- 26. The connection management device of claim 25, wherein the communications program is executable by the controller to correlate a performance indicator to the server response times.
- 27. The connection management device of claim 26, the performance indicator having a value, wherein the communications program is executable by the controller to base the number of connections to the server upon the value of the performance indicator.
- 28. The method of claim 26, wherein the performance indicator is selected from the group consisting of a rate of formation of new client connections to the connection management device, a rate of client requests received, a type of request received, a client type, a client bandwidth, a resource URL, and a type of resource requested.
- 29. The method of claim 26, wherein the communications program is executable by the controller to continuously update the correlation of the performance indicator to the server response times.
- 30. A system configured to be connected to a computer network for providing a world wide web resource to a client over the computer network, the system comprising:
a server configured to store the web resource and to respond to client requests for the web resource by serving the web resource to the client; and a connection management device connected to the server and disposed on the network between the client and the server, the connection management device being configured to maintain a number of connections to the server, to receive requests from the client, to forward the requests to the server, to receive responses to the requests from the server, to monitor an elapsed server response time between forwarding a selected request to the server and receiving a corresponding response from the server, and to adapt the number of connections to the server based upon the server response time.
- 31. A storage medium having stored thereon instructions that, when executed by a computer connection management device disposed on a computer network between a server and a client, result in the computer connection management device having the capability to facilitate resource transfer between the client and the server by performing the steps of:
receiving a request from the client; transmitting the request to the server; receiving a response to the request from the server; monitoring a server response time, the server response time being the time elapsed between transmitting the request and receiving the response; and selecting a number of connections to maintain to the server based upon the server response time.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from U.S. Provisional Patent Applications Serial No. 60/239,071, filed on Oct. 5, 2000, and No. 60/308,234, filed on Jul. 26, 2001, the disclosures of which are hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60239071 |
Oct 2000 |
US |
|
60308234 |
Jul 2001 |
US |