IP Library Granted Patent US 7,836,191
Granted Patent B2
US 7,836,191 · App. 10/826,268 · Granted Nov 16, 2010

Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,836,191
App. No.
10/826,268
Granted
Nov 16, 2010
Kind
B2
Abstract

An apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server. The apparatus is implemented within an interface unit connecting a plurality of servers and an on-hold server to the Internet, which is connected to a plurality of clients. According to one aspect of the invention, the method includes the steps of opening a connection between a client and the interface unit; determining which server the client desires a page from; determining the current response time of the requested server; if the response time is acceptable then opening a connection between the interface unit and the requested server if no free connection is open between the interface unit and the requested server; allowing the client to access information on the requested server via the connections; and closing the connection between the client and the interface unit while keeping open the connection between the interface unit and the requested server. Alternatively, if the response time is not acceptable, then putting the client on-hold by redirecting the client to an on-hold server until the response time of the requested server becomes acceptable. According to a “on-hold distribution” aspect of the invention, the interface unit determines the on-hold preference of the client and selects the server hosting that on-hold preference. According to another aspect of the invention, instead of utilizing the interface unit, each server has the intelligence to put the client on-hold when applicable.

Claims (36)

1. A method executed by an interface unit for putting a client on hold, the method comprising:

(a) intercepting, by an interface unit, a request from a client to access a requested server;

(b) determining, by the interface unit, that a response time of the requested server exceeds a threshold by calculating an estimated future response time based on (i) a weighted average of a previous measured response time and a current measured response time, and (ii) a correction factor proportional to the difference between a previously calculated estimated, response time and a corresponding previously measured response time;

(c) putting the client on-hold, by the interface unit, in response to the determination that the response time exceeds the threshold;

(d) establishing, by the interface unit, a waiting time for the client; and

(e) transmitting, by the interface unit, an on-hold request to an on-hold server based upon the waiting time.

2. The method of claim 1 , wherein step (b) comprises evaluating, by the interface unit, if the determined response time exceeds a guaranteed client-server response time established by the requested server.

3. The method of claim 1 , wherein step (d) comprises determining, by the interface unit, an approximate waiting time for the client based upon the estimated current response time of the requested server.

4. The method of claim 1 , wherein step (d) comprises delegating, by the interface unit, establishment of the waiting time to an executable code on an on-hold page provided to the client, the executable code corrects the waiting time based upon a round trip time and a response time provided by the interface unit.

5. The method of claim 1 , wherein step (d) comprises providing, by the interface unit, an executable code to the client, the executable code receives a preferred wait time or on-hold preference from a user of the client.

6. The method of claim 1 , wherein step (e) comprises selecting, by the interface unit, the on-hold server from a plurality of on-hold servers based upon the waiting time or an on-hold preference.

7. The method of claim 1 , wherein step (e) comprises generating, by the interface unit, an on-hold request for a web page of the on-hold server.

8. The method of claim 1 , wherein step (e) comprises identifying a web page from a plurality of web pages, each of the plurality of web pages providing different content according to different wait times.

9. The method of claim 1 further comprising maintaining, by the interface unit, the client on hold until the response time of the requested server is less than a desired response time specified by a user of the client.

10. The method of claim 1 further comprising:

receiving, by the interface unit, an indication that the user of the client is finished with the on-hold server; and

taking the client off on-hold.

11. A system for putting a client on hold, the system comprising:

an interface unit intercepting a request from a client to access a requested server,

determining that a response time of the requested server exceeds a threshold by calculating an estimated future response time based on (i) a weighted average of a previous measured response time and a current measured response time, and (ii) a correction factor proportional to the difference between a previously calculated estimated response time and a corresponding previously measured response time, and

putting the client on-hold in response to the determination that the response time exceeds the threshold, wherein

the interface unit establishes a waiting time for the client and transmits an on-hold request to an on-hold server based upon the waiting time.

12. The system of claim 11 , wherein the interface unit determines an approximate waiting time for the client based upon the estimated current response time of the requested server.

13. The system of claim 11 , wherein the interface unit delegates establishment of the waiting time to an executable code on an on-hold page provided to the client, the executable code corrects the waiting provided by the interface unit.

14. The system of claim 11 , wherein the interface unit provides an executable code to the client, the executable code receives a preferred wait time or on-hold preference from a user of the client.

15. The system of claim 11 , wherein the interface unit selects the on-hold server from a plurality of on-hold servers based upon the waiting time or an on-hold preference.

16. The system of claim 11 , wherein the interface unit generates an on-hold request for a web page of the on-hold server.

17. The system of claim 11 , wherein the interface unit identifies a web page from a plurality of web pages, each of the plurality of web pages providing different content according to different wait times.

18. The system of claim 11 wherein the interface unit further maintains the client on hold until the response time of the requested server is less than a desired response time specified by a user of the client.

19. The system of claim 11 wherein the interface unit further receives an indication that the user of the client is finished with the on-hold server, and takes the client off on-hold.

20. A computer usable storage device having computer readable program code means embodied therein for putting a client on hold, comprising:

(a) means for intercepting, a request from a client to access a requested server;

(b) means for determining, that a response time of the requested server exceeds a threshold by calculating an estimated future response time based on (i) a weighted average of a previous measured response time and a current measured response time, plus (ii) a correction factor proportional to the difference between a previously calculated estimated response time and a corresponding previously measured response time;

(c) means for putting the client on-hold, in response to the determination that the current response time exceeds the threshold;

(d) means for establishing, a waiting time for the client; and

(e) means for transmitting, an on-hold request to an on-hold server based upon the waiting time.

Assignments (11)
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: CITRIX APPLICATION NETWORKING, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 030265/0903 →
MERGER Recorded Jan 19, 2006
From: NETSCALER, INC.
To: NCAR, LLC
Reel/Frame 017034/0431 →
CHANGE OF NAME Recorded Jan 19, 2006
From: NCAR, LLC
To: CITRIX APPLICATION NETWORKING, LLC
Reel/Frame 017034/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2004
From: SUSAI, MICHEL K.; SHETTY, ANIL; BAO, WANQUN; RAPHEL, JOSE K.; SINHA, RAJIV; BOTLAGUDURU, VENUGOPAL; UDUPA, SIVAPRASAD R.; KORRAPATI, VAMISIMOHAN; VERZUNOV, SERGEY
To: NETSCALER, INC
Reel/Frame 015956/0866 →
Continuity (2)
Continuation 0950674700 · Feb 18, 2000
Related Publication 20040199646A1 · Oct 7, 2004