IP Library Granted Patent US 8,856,279
Granted Patent B2
US 8,856,279 · App. 11/439,003 · Granted Oct 7, 2014

Method and system for object prediction

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,856,279
App. No.
11/439,003
Granted
Oct 7, 2014
Kind
B2
Abstract

A method including communicating with a content server, wherein the communication includes transmitting request data to the content server and receiving first response data associated with the request data; identifying response object data within the first response data; determining whether the response object data is to be downloaded; querying the content server for second response data that corresponds to the response object data based on the determination; transmitting the first response data to a user agent; and storing the second response data, wherein the second response data can be provided to the user agent in a subsequent request.

Claims (89)

1. A method comprising:

receiving request data comprising request object data;

transmitting the request data to a content server and receiving first response data associated with the request data;

identifying response object data within the received first response data;

acquiring mapping data from a DNS server and storing the mapping data at a DNS cache if the identified response object data includes a fully qualified domain name (FQDN) different from an FQDN of the request object data;

determining whether the identified response object data is to be downloaded to a user agent;

querying the content server for second response data that corresponds to the identified response object data based on the determination; and

transmitting the received first response data along with the queried second response data to a client device having the user agent.

2. The method of claim 1 , further comprising determining whether the identified response object data matches the request object data.

3. The method of claim 2 , further comprising indicating that the identified response object data is to be downloaded if the identified response object data does not match the request object data.

4. The method of claim 2 , further comprising determining whether the request object data is fresh or stale if the identified response object data matches the request object data.

5. The method of claim 4 , further comprising indicating that the identified response object data can be deleted if the request object data is fresh.

6. The method of claim 4 , further comprising determining whether the content server verified that the request object data was fresh or stale if the request object data is stale.

7. The method of claim 6 , further comprising indicating that the identified response object data is to be downloaded if the content server verifies that the matching request object data is stale.

8. The method of claim 6 , further comprising indicating that the identified response object data is not to be downloaded if the content server verifies that the matching request object data is fresh.

9. The method of claim 8 , further comprising updating a freshness cache so that the client device can notify the user agent that subsequent request object data that is marked as stale is fresh.

10. The method of claim 8 , further comprising updating content data from stale to fresh at a data cache of the user agent.

11. The method of claim 1 , further comprising receiving subsequent request data and identifying subsequent request object data within the subsequent request data.

12. The method of claim 11 , further comprising determining whether the identified subsequent request object data corresponds to the queried second response data.

13. The method of claim 12 , further comprising transmitting the stored second response data to the user agent if the identified subsequent request object data corresponds to the stored second response data.

14. The method of claim 12 , further comprising transmitting the identified subsequent request object data to the content server if the identified subsequent request object data does not correspond to the stored second response data.

15. The method of claim 1 , wherein querying the content server includes:

constructing request data corresponding to the identified response object data based on the determination;

transmitting the constructed request data to the content server; and

receiving the second response data, wherein the second response data is associated with the constructed request data.

16. A method comprising:

receiving optimized data associated with a request for a web page, wherein the received optimized data includes first response data associated with the request and an object list providing object data;

after receiving the optimized data, querying a user agent by a client device comprising the user agent to determine whether the object data is marked as fresh in the user agent;

providing the received first response data to the user agent;

constructing request data corresponding to the object data based on the determination;

transmitting the constructed request data to an optimization server configured to query a content server for second response data;

receiving, by the client device, the second response data from the optimization server, wherein the second response data is associated with the constructed request data; and

storing the received second response data, wherein the received second response data can be provided to the user agent in a subsequent request.

17. The method of claim 16 , further comprising receiving subsequent request data and identifying subsequent request object data within the received subsequent request data.

18. The method of claim 17 , further comprising determining whether the identified subsequent request object data corresponds to the stored second response data.

19. The method of claim 18 , further comprising transmitting the stored second response data to the user agent if the identified subsequent request object data corresponds to the stored second response data.

20. The method of claim 18 , further comprising transmitting the identified subsequent request object data to the content server if the identified subsequent request object data does not correspond to the stored second response data.

21. The method of claim 16 , further comprising separating the received optimized data into mapping data that is stored at a DNS cache, wherein the mapping data assists in constructing the request data corresponding to the object data.

22. The method of claim 16 , further comprising separating the received optimized data into freshness data of stale request object data that has been determined to be fresh, wherein the freshness data notifies the user agent that the stale request object data is fresh.

23. A method comprising:

receiving response data associated with a request for a web page;

generating a response object list that identifies the response object data within the received response data;

determining whether the identified response object data is to be downloaded to a user agent;

updating the generated response object list based on the determination;

transmitting, to a mobile device having the user agent, optimized data that includes received response data and the updated response object list, wherein the identified response object data within the updated response object list is used to construct request data that provides a predicted response data based on the determination, wherein the predicted response data can be provided to the user agent in a subsequent request, and wherein the request data comprises a request object list identifying request object data; and

acquiring mapping data from a DNS server and storing the mapping data at a DNS cache if the response object data includes a fully qualified domain name (FQDN) different from an FQDN of the request object data.

24. The method of claim 23 , further comprising determining whether the identified response object data matches the identified request object data.

25. The method of claim 24 , further comprising indicating that the identified response object data is to be downloaded if the identified response object data does not match the identified request object data.

26. The method of claim 24 , further comprising determining whether the identified request object data is fresh or stale if the identified response object data matches the identified request object data.

27. The method of claim 26 , further comprising verifying with the content server that the identified request object data was fresh or stale if the identified request object data is stale.

28. The method of claim 27 , further comprising indicating that the identified response object data is to be downloaded if the identified request object data has been verified to be stale.

29. The method of claim 27 , further comprising indicating that the identified response object data is not to be downloaded if the identified request object data has been verified to be fresh.

30. The method of claim 24 , further comprising indicating that the identified request object data can be deleted if the identified request object data is fresh.

31. A method comprising:

receiving response data from a content server, wherein the response data corresponds to request data received from a client device;

identifying response object data within the response data;

determining whether the identified response object data includes a fully qualified domain name (FQDN) different from an FQDN of request object data, wherein the request object data is associated with the request data received from the client device;

receiving any existing mapping data based on the determination, wherein the mapping data corresponds to the FQDN of the response object data;

storing any existing mapping data into a DNS cache, wherein the mapping data can assist in constructing predicted request data;

determining whether the identified response object data is to be downloaded to a user agent; and

querying the content server for second response data that corresponds to the identified response object data based on the determination.

32. The method of claim 31 , further comprising determining whether mapping data exists at the DNS cache when the mapping data of the request object data is requested.

33. The method of claim 32 , further comprising constructing the predicted request data with the mapping data stored at the DNS cache if the mapping data exists at the DNS cache.

34. The method of claim 31 , wherein the mapping data is an IP address of the FQDN of the response object data.

35. A system comprising:

a client device comprising a user agent, the client device configured to receive request data from the user agent and transmit the request data, wherein the request data corresponds to a request for a web page; and

an optimization server configured to receive the request data, communicate with a content server, wherein the communication includes the ability to transmit the request data to the content server and receive first response data associated with the request data, generating a response object list that identifies the response object data of the received first response data, and transmit the received first response data and the generated response object list to the client device,

wherein the client device is configured, after receiving the response object list, to query the user agent to determine whether the response object data of the received first response data is marked as fresh in the user agent, provide the received first response data to the user agent, construct request data that is associated with the response object data based on the determination, transmit the constructed request data to the optimization server, receive second response data associated with the constructed request data, and store the received second response data, wherein the received second response data can be provided to the user agent in a subsequent request.

36. The system of claim 35 , wherein the client device is configured to receive mapping data from the optimization server and store the mapping data, which can assist in constructing the request data that is associated with the response object data.

37. A system comprising:

a client device configured to receive request data from a user agent and transmit the request data, wherein the request data corresponds to a request for a web page; and

an optimization server configured to receive the request data, communicate with a content server, wherein the communication includes the ability to transmit the received request data to the content server and receive first response data associated with the received request data, identify response object data of the received first response data, acquire mapping data from a DNS server and store the mapping data at a DNS cache if the identified response object data includes a fully qualified domain name (FQDN) different from an FQDN of the request object data, determine whether the identified response object data is to be downloaded to the user agent, query the content server for second response data corresponding to the identified response object data based on the determination, and transmit to the client device the received first response data along with the queried second response data,

wherein the client device is configured to provide the transmitted first response data to the user agent and store the queried second response data, which can be provided to the user agent in a subsequent request, and

wherein determining whether the identified response object data is to be downloaded to the user agent comprises determining whether the identified response object data matches the identified request object data and whether the identified request object data is fresh or stale.

38. A non-transitory computer-readable storage device that stores a set of instructions that are executable by a client device causing the client device to perform a method, the method comprising:

receiving optimized data associated with a request for a web page, wherein the received optimized data includes first response data associated with the request and an object list providing object data;

after receiving the optimized data, querying a user agent to determine whether the provided object data is marked as fresh in the user agent, wherein the client device comprises the user agent;

providing the received first response data to the user agent;

constructing request data corresponding to the provided object data based on the determination;

transmitting the constructed request data to an optimization server configured to query a content server for second response data;

receiving the second response data from the optimization server, wherein the received second response data is associated with the constructed request data; and

storing the received second response data, wherein the received second response data can be provided to the user agent in a subsequent request.

39. A non-transitory computer-readable storage device that stores a set of instructions that are executable by an optimization server causing the optimization server to perform a method, the method comprising:

receiving response data associated with a request for a web page;

generating an object list that identifies the object data within the received response data;

determining whether the identified object data is to be downloaded to a user agent;

updating the generated object list based on the determination; and

transmitting, to a mobile device having the user agent, optimized data that includes received response data along with the updated object list, wherein the identified object data within the updated object list can be used to construct request data that provides a predicted response data based on the determination, wherein the provided predicted response data can be transferred to the user agent in a subsequent request, and wherein the request data comprises a request object list identifying request object data; and

acquiring mapping data from a DNS server and storing the mapping data at a DNS cache if the object data includes a fully qualified domain name (FQDN) different from an FQDN of the request object data.

Assignments (18)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
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: 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 →
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 →
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 May 11, 2022
From: BYTEMOBILE INNOVATIONS, LLC
To: CITRIX SYSTEMS, INC.
Reel/Frame 059894/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
RELEASE OF SECURITY INTEREST Recorded Feb 20, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: BYTEMOBILE, INC.
Reel/Frame 034991/0891 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
SECURITY AGREEMENT Recorded Dec 22, 2011
From: BYTEMOBILE, INC.
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 027438/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2006
From: STAVRAKOS, NICHOLAS; MONKS, JEFF; KOOPMANS, FRED; KOOPMANS, CHRIS; DAKHANE, KAPIL
To: BYTEMOBILE, INC.
Reel/Frame 018041/0101 →