IP Library › Granted Patent US 12,293,205
Granted Patent B2
US 12,293,205 · App. 17/446,840 · Granted May 6, 2025

System and methods for provisioning different versions of a virtual application

Inventors: Nabeel Youakim (Lauderdale by the Sea, FL); P. J. Hough (Mountain View, CA)
G06F9/45558G06F8/65G06F8/71G06F2009/45595
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 12,293,205
App. No.
17/446,840
Filed
Sep 3, 2021
Granted
May 6, 2025
Kind
B2
Art Unit
2199
USPC
718/1
Abstract

A computing device may include a memory and a processor cooperating with the memory and configured to provide first and second application layers that include different versions of a virtual application accessible by a client device. The first and second versions of the virtual application are isolated from each other in their respective application layers, each with separate application libraries.

Claims (30)

1. A computing device comprising:

a memory and a processor cooperating with the memory and configured to:

provide a first application layer stored on a first virtual disk and a second application layer stored on a second virtual disk separate from the first virtual disk, the first and second application layers including different versions of an application accessible by a client device, the first application layer including a first version of the application and the second application layer including a second version of the application; and

execute the first version of the application and the second version of the application simultaneously on a single virtual machine;

wherein the first and second versions of the application are isolated from each other in their respective application layers, each with separate application libraries,

wherein the first application layer further includes at least one macro compatible with the first version of the application and incompatible with the second version of the application,

wherein the processor is configured to initially provide the first or second application layer for the client device at logon based upon a macro preference.

2. The computing device of claim 1 wherein all application files and associated macros of the first application layer are locked to prevent updates thereto.

3. The computing device of claim 1 wherein the first and second application layers are containerized.

4. The computing device of claim 1 wherein the second version of the application is generated after the first version of the application.

5. A method comprising:

at a computing device,

providing a first application layer stored on a first virtual disk, the first application layer including a first version of an application accessible by a client device,

providing a second application layer stored on a second virtual disk separate from the first virtual disk, the second application layer including a second version of the application different than the first version of the application and also accessible by the client device, and

executing the first version of the application and the second version of the application simultaneously on a single virtual machine,

wherein the first and second versions of the application are isolated from each other in their respective application layers, each with separate application libraries,

wherein the first application layer further includes at least one macro compatible with the first version of the application and incompatible with the second version of the application,

wherein the first or second application layer is initially provided for the client device at logon based upon a macro preference.

6. The method of claim 5 wherein all application files and associated macros of the first application layer are locked to prevent updates thereto.

7. The method of claim 5 wherein the first and second application layers are containerized.

8. The method of claim 5 wherein the second version of the application is generated after the first version of the application.

9. A non-transitory computer-readable medium having computer-executable instructions for causing a computing device to perform steps comprising:

providing a first application layer stored on a first virtual disk, the first application layer including a first version of an application accessible by a client device,

providing a second application layer stored on a second virtual disk separate from the first virtual disk, the second application layer including a second version of the application different than the first version of the application and also accessible by the client device, and

executing the first version of the application and the second version of the application simultaneously on a single virtual machine,

wherein the first and second versions of the application are isolated from each other in their respective application layers, each with separate application libraries,

wherein the first application layer further includes at least one macro compatible with the first version of the application and incompatible with the second version of the application,

wherein the first or second application layer is initially provided for the client device at logon based upon a macro preference.

10. The non-transitory computer-readable medium of claim 9 wherein all application files and associated macros of the first application layer are locked to prevent updates thereto.

11. The non-transitory computer-readable medium of claim 9 wherein the first and second application layers are containerized.

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 3, 2021
From: YOUAKIM, NABEEL; HOUGH, P.J.
To: CITRIX SYSTEMS, INC.
Reel/Frame 057381/0697 →
Continuity (2)
Continuation 16585173 · Sep 27, 2019
Related Publication 20210397472A1 · Dec 23, 2021
References Cited (24)
US 8904081B1 · Kulkarni · 2014 [cited by examiner]
US 9117079B1 · Huang · 2015 [cited by examiner]
US 9489516B1 · Lu · 2016 [cited by examiner]
US 9753759B2 · Dhawan et al. · 2017 [cited by applicant]
US 10025927B1 · Khalid et al. · 2018 [cited by applicant]
US 20050172279A1 · Cook · 2005 [cited by examiner]
US 20060005132A1 · Herdeg, III · 2006 [cited by examiner]
US 20080313257A1 · Allen · 2008 [cited by examiner]
US 20160191645A1 · Hayton et al. · 2016 [cited by applicant]
US 20170090960A1 · Anderson et al. · 2017 [cited by applicant]
US 20170168861A1 · Dhawan et al. · 2017 [cited by applicant]
US 20170200122A1 · Edson · 2017 [cited by examiner]
US 20200026540A1 · Venkatesh · 2020 [cited by examiner]
US 20200349019A1 · Dawkins · 2020 [cited by examiner]
CN 104111966 · 2014 [cited by applicant]
CN 107003862 · 2017 [cited by applicant]
CN 109614165 · 2019 [cited by applicant]
JP 2001022734 · 2001 [cited by applicant]
JP 201384235 · 2014 [cited by applicant]
JP 2017534107 · 2017 [cited by applicant]
Margaret Rouse SearchVirtualDesktop.com—Citrix App Layering (formerly Citrix AppDisk) https://searchvirtualdesktop.techtarget.com/definition/Citrix-AppDisk?vgnextfmt=print; Citrix Synergy 2018 conference coverage; Retre… [cited by applicant]
Rouse et al. “application containerization (app containerization)” https://searchitoperations.techtarget.com/definition/application-containerization-app-containerization?vgnextfmt=print; This content is part of the Esse… [cited by applicant]
Dirk Merkel “Docker: Lightweight Linux Containers for Consistent Development and Deployment” Linux Journal, vol. 2014 Issue 239, Mar. 2014, Mar. 1, 2014; retrieved on Feb. 20, 2015 pp. 76-91. ***See U.S. Appl. No. 16/58… [cited by applicant]
Anonymous “A detailed comparison between the functionality of PHP 4 and PHP 5” Retrieved from the nternet: RL: http://web.archive.org/web/0150926163955/ ttps//www.ntchosting. com/encyclopedia/scripting-and-programming /… [cited by applicant]