IP Library Granted Patent US 8,924,592
Granted Patent B2
US 8,924,592 · App. 12/893,080 · Granted Dec 30, 2014

Synchronization of server-side cookies with client-side cookies

Inventor: Robert Jakubowski (Pompano Beach, FL)
Assignee: Citrix Systems, Inc.
H04L67/1095H04L67/2814H04L67/02H04L67/2876
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,924,592
App. No.
12/893,080
Filed
Sep 29, 2010
Granted
Dec 30, 2014
Kind
B2
Art Unit
2456
USPC
709/248
Abstract

Described are methods and systems for synchronizing client-side cookies with server-side cookies. A control that executes on a client computer within the context of a remote application, receives control input that is generated by a remote control that executes on a server within the remote application. In response to receiving the control input, the control generates a content request and forwards the content request to a synchronization agent that executes on the client computer. In many instances, the content request is a request for a cookie. Upon receiving the content request, the synchronization agent determines the type of content requested and responsively issues a synchronization request to a remote synchronization agent that executes on the server. The remote synchronization agent retrieves the requested content from the server and transmits the requested content to the synchronization agent. Upon receiving the requested content, the synchronization agent returns the content to the control.

Claims (45)

1. A method for synchronizing server-side cookies with client-side cookies, the method comprising:

receiving, by a plugin executing on a client computer, a control input generated by a remote plugin executing on a server;

determining, by the plugin executing on the client computer, a permission level associated with the remote plugin, wherein the permission level is identified in a permission table;

generating, by the plugin executing on the client computer, responsive to receiving the control input and according to the permission level associated with the remote plugin, a request for HTTP content;

intercepting, by a synchronization agent executing on the client computer, the request for HTTP content;

determining, by the synchronization agent executing on the client computer, a type of HTTP content requested by the plugin executing on the client computer;

issuing, by the synchronization agent executing on the client computer responsive to determining the type of HTTP content, a synchronization request to a remote synchronization agent executing on the server;

retrieving, by the remote synchronization agent executing on the server responsive to the synchronization request, from the client computer, a listing of HTTP content stored on the client computer;

performing, by the remote synchronization agent executing on the server, a comparison of the listing of HTTP content stored on the client computer to a listing of HTTP content stored on the server;

receiving, by the synchronization agent executing on the client computer, based on a result of the comparison, the requested HTTP content from the remote synchronization agent executing on the server; and

returning, by the synchronization agent executing on the client computer, the received HTTP content to the plugin executing on the client computer.

2. The method of claim 1 , wherein issuing the synchronization request further comprises forwarding the HTTP content request generated by the plugin executing on the client computer to the remote synchronization agent executing on the server.

3. The method of claim 1 , wherein receiving the control input further comprises receiving control input from the remote plugin corresponding to the plugin executing on the client computer.

4. The method of claim 1 , wherein the plugin executing on the client computer comprises a FLASH plugin.

5. The method of claim 1 , further comprising retrieving, by the remote synchronization agent responsive to receiving the synchronization request from the synchronization agent executing on the client computer, the requested HTTP content.

6. The method of claim 5 , wherein retrieving the requested HTTP content further comprises retrieving the requested HTTP content from a storage repository on the server.

7. The method of claim 5 , further comprising transmitting, by the remote synchronization agent, the retrieved HTTP content to the client computer.

8. The method of claim 1 , wherein receiving a request for HTTP content further comprises receiving a request for cached data.

9. The method of claim 1 , wherein receiving a request for HTTP content further comprises receiving a request for cookies.

10. The method of claim 1 , further comprising storing the received HTTP content in a storage repository on the client computer.

11. A system for synchronizing server-side cookies with client-side cookies, the system comprising:

a client computer communicating with a server over a virtual channel;

a remote application executing on the server to generate application output, the application output remotely displayed on the client computer;

a remote plugin executing on the server within the remote application;

a plugin executing on the client computer within a context of the remote application to:

receive control input generated by the remote plugin, and

determine a permission level associated with the remote plugin, wherein the permission level is identified in a permission table;

generate, responsive to receiving the control input and according to the permission level associated with the remote plugin, a request for HTTP content; and a synchronization agent executing on the client computer to:

intercept the HTTP content request from the plugin executing on the client computer,

determine, based on the HTTP content request, a type of HTTP content requested by the plugin executing on the client computer,

issue, based on the type of HTTP content, a synchronization request to a remote synchronization agent executing on the server,

receive, based on a result of a comparison of a listing of HTTP content stored on the client computer to a listing of HTTP content stored on the server, the requested HTTP content from the remote synchronization agent, and

return the received HTTP content to the plugin executing on the client computer; and

the remote synchronization agent executing on the server to:

retrieve, based on the synchronization request, from the client computer, the listing of HTTP content stored on the client computer;

perform the comparison of the listing of HTTP content stored on the client computer to the listing of HTTP content stored on the server.

12. The system of claim 11 , wherein the synchronization request further comprises the HTTP content request generated by the plugin executing on the client computer.

13. The system of claim 11 , wherein the remote plugin executing on the server corresponds to the plugin executing on the client computer.

14. The system of claim 11 , wherein the plugin executing on the client computer comprises a FLASH plugin.

15. The system of claim 11 , wherein the remote synchronization agent retrieves the requested HTTP content responsive to receiving the synchronization request from the synchronization agent executing on the client computer.

16. The system of claim 15 , wherein the remote synchronization agent retrieves the requested HTTP content from a storage repository on the server.

17. The system of claim 15 , wherein the remote synchronization agent transmits the retrieved HTTP content to the client computer.

18. The system of claim 11 , wherein the HTTP content comprises cached data.

19. The system of claim 11 , wherein the HTTP content comprises cookies.

20. The system of claim 11 , wherein the synchronization agent stores the received HTTP content in a storage repository on the client computer upon receiving the HTTP content from the remote synchronization agent.

Assignments (9)
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: 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 Sep 30, 2010
From: JAKUBOWSKI, ROBERT
To: CITRIX SYSTEMS, INC.
Reel/Frame 025065/0817 →
Continuity (2)
Provisional Application 61246710 · Sep 29, 2009
Related Publication 20110078333A1 · Mar 31, 2011