IP Library Granted Patent US 8,812,703
Granted Patent B2
US 8,812,703 · App. 12/880,645 · Granted Aug 19, 2014

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

Inventors: Michael K. Susai (San Jose, CA); Anil Shetty (Corpus Christi, TX); Wanqun Bao (San Jose, CA); Jose K. Raphel (San Jose, CA); Rajiv Sinha (San Jose, CA); Venugopal Botlaguduru (Newark, CA); Sivaprasad R. Udupa (Sunnyvale, CA); Vamsimohan Korrapati (Trivandrum, IN); Sergey Verzunov (Moscow, RU)
Assignee: Citrix Systems, Inc.
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 8,812,703
App. No.
12/880,645
Granted
Aug 19, 2014
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 (112)

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 calculation of a current response time of the requested server, the calculation including increasing a previously calculated estimated response time by a correction factor, exceeds a threshold;

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

(d) establishing, by the interface unit, a waiting time for the client, responsive to putting the client on-hold; 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 the response time is estimated, by the interface unit, from a recurrence relation

t

(

i

+

1

)

=

(

i

-

1

)

t

(

i

-

1

)

+

it

i

2

i

-

1

+

(

t

i

-

t

i

)

K

where t i denotes the response time at the i th episode, t i ′ denotes the estimated response time at the i th episode, and K is a constant of error correction learned from ongoing traffic.

3. 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.

4. 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.

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

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

7. 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.

8. 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.

9. 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.

10. 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.

11. 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.

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

an interface unit comprising a processor configured for intercepting a request from a client to access a requested server,

determining that a calculation of a current response time of the requested server, the calculation including increasing a previously calculated estimated response time by a correction factor, exceeds a threshold, and

putting the client on-hold in response to the determination, wherein

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

13. The system of claim 12 , wherein the interface unit estimates the response time from the recurrence relation

t

(

i

+

1

)

=

(

i

-

1

)

t

(

i

-

1

)

+

it

i

2

i

-

1

+

(

t

i

-

t

i

)

K

where t i denotes the response time at the i th episode, t i ′ denotes the estimated response time at the i th episode, and K is a constant of error correction learned from ongoing traffic.

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

15. The system of claim 12 , wherein the interface unit delegates establishment of the waiting time to a code on an on-hold page provided to the client, the code corrects the waiting time based upon a round trip time and a response time provided by the interface unit.

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

17. The system of claim 12 , 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.

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

19. The system of claim 12 , 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.

20. The system of claim 12 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.

21. The system of claim 12 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.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: SUSAI, MICHEL K.; SHETTY, ANIL; BAO, WANQUN; RAPHEL, JOSE K.; SINHA, RAJIV; BOTLAGUDURU, VENUGOPAL; UDUPA, SIVAPRASAD R.; KORRAPATI, VAMSIMOHAN; VERZUNOV, SERGEY
To: NETSCALER, INC.
Reel/Frame 030262/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2013
From: CITRIX APPLICATION NETWORKING, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 030262/0611 →
MERGER Recorded Apr 23, 2013
From: NETSCALER, INC.
To: NCAR, LLC
Reel/Frame 030274/0075 →
CHANGE OF NAME Recorded Apr 23, 2013
From: NCAR, LLC
To: CITRIX APPLICATION NETWORKING, LLC
Reel/Frame 030274/0081 →
Continuity (3)
Continuation 10826268 · Apr 19, 2004
Continuation 09506747 · Feb 18, 2000
Related Publication 20110060840A1 · Mar 10, 2011