IP Library › Granted Patent US 9,451,044
Granted Patent B2
US 9,451,044 · App. 14/259,586 · Granted Sep 20, 2016

Methods and systems for providing a consistent profile to overlapping user sessions

Inventors: Joseph Nord (Lighthouse, FL); Richard Hayton (Cambridge, GB)
Assignee: Citrix Systems, Inc.
H04L67/306
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 9,451,044
App. No.
14/259,586
Filed
Apr 23, 2014
Granted
Sep 20, 2016
Kind
B2
Art Unit
2444
USPC
709/204
Abstract

Just in time delivery of a consistent user profile to overlapping user sessions, where a first user session issues a request for a first file of a user profile to a server agent. Upon receiving the request, the server agent retrieves the first file from a base user profile, and just in time delivers the retrieved first file to the first user session. The user, via a second user session executing simultaneously with the first user session, issues a request to the server agent for the first file and a second file of the user profile. Upon receiving the request, the server agent identifies a modified version of the first file in a provisional user profile, retrieves the modified first file from the provisional user profile and the second file from the base user profile, and just in time delivers both files to the second user session.

Claims (72)

1. A method of just in time delivery of a user profile to overlapping user sessions, the method comprising:

receiving, by a server agent executing on at least one processor of a computer, a request from a first user session for a first file of a user profile of a virtual machine of a user comprising a plurality of files;

retrieving, by the server agent responsive to receiving the first user session request, the first file from a base user profile of the user;

delivering, by the server agent just in time, the first file to the first user session;

receiving, by the server agent, during execution of the first user session, a request from a second user session for the first file and a second file of the plurality of files of the user profile, the second user session and the first user session overlapping;

identifying, by the server agent responsive to receiving the second user session request, a modified version of the first file in a provisional user profile of the virtual machine of the user;

retrieving, by the server agent responsive to identifying the modified first file in the provisional user profile, the modified first file from the provisional user profile and the second file from the base user profile;

delivering, by the server agent just in time, the modified first file and the second file to the second user session;

determining, by the server agent, the first user session and the second user session terminated; and

merging, by the server agent, the provisional user profile with the base user profile to update the base user profile responsive to the first user session and the second user session terminating.

2. The method of claim 1 further comprising:

determining the first user session modified the first file; and

storing, by the server agent, the modified first file in the provisional user profile responsive to the first user session modification of the first file.

3. The method of claim 1 further comprising:

updating the base user profile with the provisional user profile; and

removing, by the server agent, substantially all profile information from the provisional user profile after the updating.

4. The method of claim 1 further comprising:

determining, by the server agent, the first user session and the second user session terminated; and

updating file paths and file names within the base user file based on the provisional file directory.

5. The method of claim 1 further comprising:

responsive to the receiving the request from the first user session for the first file of the user profile, searching the provisional user profile for the first file; and

retrieving the first file from the base user profile based on a determination that the provisional user profile does not include the first file.

6. The method of claim 1 further comprising:

streaming the first file to the first user session.

7. The method of claim 1 further comprising:

monitoring, by the server agent, a list of active user sessions, the list of active user sessions comprising the first user session and the second user session;

receiving, by the server agent, at least one notification indicating that each of the active user sessions in the list terminated; and

merging the provisional user profile and the base user profile responsive to the at least one notification.

8. The method of claim 1 further comprising:

identifying files residing in both the provisional user profile and the base user profile; and

replacing the files in the base user profile with the files in the provisional user profile to update the base user profile responsive to the first user session and the second user session terminating.

9. The method of claim 1 further comprising:

identifying files residing in the provisional user profile and not residing in the base user profile; and

copying the files into the base user profile responsive to the first user session and the second user session terminating.

10. A system for just in time delivery of a user profile to overlapping user sessions, the system comprising:

a user profile of a user;

a base user profile of the user;

a provisional user profile of the user; and

at least one processor configured to execute a server agent, the server agent configured to:

receive a request from a first user session for a first file of a user profile of a virtual machine of a user comprising a plurality of files;

retrieving, responsive to receiving the first user session request, the first file from a base user profile of the user;

deliver, just in time, the first file to the first user session;

receive, during execution of the first user session, a request from a second user session for the first file and a second file of the plurality of files of the user profile, the second user session and the first user session overlapping;

identify, responsive to receiving the second user session request, a modified version of the first file in a provisional user profile of the virtual machine of the user;

retrieve, responsive to identifying the modified first file in the provisional user profile, the modified first file from the provisional user profile and the second file from the base user profile;

deliver, just in time, the modified first file and the second file to the second user session;

determine the first user session and the second user session terminated; and

merge the provisional user profile with the base user profile to update the base user profile responsive to the first user session and the second user session terminating.

11. The system of claim 10 , wherein the server agent is further configured to:

determine the first user session modified the first file; and

store the modified first file in the provisional user profile responsive to the first user session modification of the first file.

12. The system of claim 10 , wherein the server agent is further configured to:

update the base user profile with the provisional user profile; and

remove substantially all profile information from the provisional user profile after the updating.

13. The system of claim 10 , wherein the server agent is further configured to:

determine the first user session and the second user session terminated; and

update file paths and file names within the base user file based on the provisional file directory.

14. The system of claim 10 , wherein the server agent is further configured to:

search, responsive to receiving the request from the first user session for the first file of the user profile, the provisional user profile for the first file; and

retrieve the first file from the base user profile based on a determination that the provisional user profile does not include the first file.

15. The system of claim 10 , wherein the server agent is further configured to:

stream the first file to the first user session.

16. The system of claim 10 , wherein the server agent is further configured to:

monitor a list of active user sessions, the list of active user sessions comprising the first user session and the second user session;

receive at least one notification indicating that each of the active user sessions in the list terminated; and

merge the provisional user profile and the base user profile responsive to the at least one notification.

17. The system of claim 10 , wherein the server agent is further configured to:

identify files residing in both the provisional user profile and the base user profile; and

replace the files in the base user profile with the files in the provisional user profile to update the base user profile responsive to the first user session and the second user session terminating.

18. The system of claim 10 , wherein the server agent is further configured to:

identify files residing in the provisional user profile and not residing in the base user profile; and

copy the files into the base user profile responsive to the first user session and the second user session terminating.

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 Apr 23, 2014
From: NORD, JOSEPH; HAYTON, RICHARD
To: CITRIX SYSTEMS, INC.
Reel/Frame 032740/0270 →
Continuity (3)
Continuation 12772980 · May 3, 2010
Provisional Application 61174996 · May 2, 2009
Related Publication 20140237049A1 · Aug 21, 2014