IP Library Granted Patent US 7,853,699
Granted Patent B2
US 7,853,699 · App. 11/273,861 · Granted Dec 14, 2010

Rules-based transaction prefetching using connection end-point proxies

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,853,699
App. No.
11/273,861
Granted
Dec 14, 2010
Kind
B2
Abstract

Network proxies reduce server latency in response to series of requests from client applications. Network proxies intercept messages clients and a server. Intercepted client requests are compared with rules. When client requests match a rule, additional request messages are forwarded to the server on behalf of a client application. In response to the additional request messages, the server provides corresponding response messages. A network proxy intercepts and caches the response messages. Subsequent client requests are intercepted by the network application proxy and compared with the cached messages. If a cached response message corresponds with a client request message, the response message is returned to the client application immediately instead of re-requesting the same information from the server. A server-side network proxy can compare client requests with the rules and send additional request messages. The corresponding response messages can be forwarded to a client-side network proxy for caching.

Claims (35)

1. A method for accelerating a client-server transaction, the method comprising:

(a) receiving, at a proxy, a first message from a client application, wherein the proxy is distinct from a client executing the client application;

(b) comparing, at the proxy, the first message with a set of rules, and determining whether the first message invalidates previously fetched responses;

(c) forwarding the first message from the proxy to a server application executed by a server and forwarding at least one additional message from the proxy to the server application on the server in response to the first message matching at least one of the set of rules, wherein the at least one additional message is determined at the proxy based on content of the first message and the set of rules applied to the content of the first message and wherein the at least one additional message is creatable in advance of receipt of a response to the first message;

(d) receiving, at the proxy, from the server application at least one response message corresponding with the additional message;

(e) storing in a message cache the response message corresponding with the additional message such that the cached response message remains associated with the additional message;

(f) receiving a second message from the client application;

(g) determining if the second message is similar to the additional message; and

(h) forwarding the response message stored in the message cache to the client application as a response to the second message in response to the second message being similar to the additional message.

2. The method of claim 1 , wherein the proxy is a server-side network proxy and (e), (f), (g), and (h) are performed by a client-side network proxy.

3. The method of claim 2 , wherein (e) further comprises:

sending the at least one response message from the server-side network proxy to the client-side network proxy.

4. The method of claim 3 , wherein sending the response message further comprises wrapping the response message with additional information adapted to indicate to the client-side network proxy that the response message is to be stored in the message cache.

5. The method of claim 4 , wherein the additional information identifies the additional message corresponding with the response message.

6. The method of claim 3 , further comprising:

in response to (e), determining if a cache limit has been reached;

sending, by the client-side proxy, a throttling message to the server-side proxy in response to a determination that the cache limit has been reached; and

suspending the sending of at least one response message from the server-side network proxy to the client-side network proxy in response to the server-side network proxy receiving the throttling message.

7. The method of claim 6 , further comprising, in response to (h):

removing the forwarded response message from the response cache;

determining if the cache storage limit has been reached;

sending by the client-side proxy, an un-throttling message to the server-side proxy in response to a determination the cache storage limit has not been reached; and

resuming the sending of at least one response message from the server-side network proxy to the client-side network proxy in response to the server-side network proxy receiving the un-throttling message.

8. The method of claim 1 , further comprising:

generating a preacknowledgment message corresponding with the first message; and

forwarding the preacknowledgment message to the client application.

9. The method of claim 8 , further comprising:

receiving an acknowledgment message from the server application, wherein the acknowledgment message is a response to the first message;

analyzing a status code of the acknowledgment message;

discarding the acknowledgment message in response to the status code indicating a success condition; and

forwarding a response message indicating a failure condition to the client application following the receipt of the second message from the client application in response to the status code of the acknowledgment message indicating a failure condition.

10. The method of claim 1 , wherein the proxy comprises a server side network proxy.

11. The method of claim 1 , wherein the proxy comprises a client-side network proxy.

12. The method of claim 1 , wherein (b) further comprises:

relaying a result of the determining to the message cache, which purges all or part of the previously fetched responses based on the result.

Assignments (19)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2005
From: WU, DAVID TZE-SI; KESWANI, VIVASVAT; LARSEN, CASE
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 017221/0940 →