IP Library Granted Patent US 11,263,004
Granted Patent B2
US 11,263,004 · App. 15/785,849 · Granted Mar 1, 2022

Out of band layer scrubbing

Inventors: John Webb (Sutton, MA); Christopher W. Midgley (Marlborough, MA); Robert Oakes (Somerville, MA); Bill Buckley (West Roxbury, MA)
Assignee: CITRIX SYSTEMS, INC.
G06F8/76G06F8/61G06F16/174G06F16/188
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 11,263,004
App. No.
15/785,849
Filed
Oct 17, 2017
Granted
Mar 1, 2022
Kind
B2
Art Unit
2166
USPC
707/692
Abstract

Application layering is a technology that separates applications from an operating system image. In some cases, information inside an application layer needs to be modified when that layer is delivered to a computer to be executed correctly in a specific environment. Described is a technique to allow those operations to be defined and executed outside of the operating system that will be running the application layer, so that a single application layer can be delivered to heterogeneous end points without the need to take up additional computation on the guest machine it is being delivered to, to ensure application compatibility when applications reside in more than one layer, to install applications into a layer without knowledge of a specific platform, and to modify the image to provide the required drivers and services to support any platform.

Claims (37)

1. A computer processing system comprising:

a processor to operate in a first computing environment and configured to perform the following:

create within the computer processing system a new application layer having file system objects and registry objects associated therewith, with a portion of the file system objects and registry objects being specific to the first computing environment,

scrub the new application layer in response to a recipe associated with the new application layer, with the recipe having a machine readable format specifying scrubbing functions to be performed to remove the file system objects and registry objects specific to the first computing environment so as to create a generic application layer, and

create within the computer processing system a single composited layered image by merging the generic application layer with at least one other application layer having file system objects and registry objects associated therewith.

2. The computer processing system according to claim 1 wherein the single composited layered image is to be delivered to an end point computer processing system operating in the first computing environment, and processor is further configured to scrub the single composited layered image by modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the first computing environment.

3. The computer processing system according to claim 1 wherein the single composited layered image is to be delivered to an end point computer processing system operating in a second computing environment that is different from the first computing environment, and wherein said processor is further configured to scrub the single composited layered image by modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the second computing environment.

4. The computer processing system according to claim 1 wherein the recipe specifies the scrubbing functions to be performed at specific event points in a life cycle of the generic application layer, and wherein the specific event points include when the new application layer is created and when the single composited layered image is created.

5. The computer processing system according to claim 4 wherein the scrubbing functions specified by the recipe include functions to add, delete, remove or merge the file system objects or registry objects associated with the generic application layer and the single composited layered image.

6. The computer processing system according to claim 4 wherein the generic application layer and the at least one other application layer have specific layer information associated therewith, and wherein a portion of the scrubbing functions specified by the recipe are conditional on the specific layer information.

7. The computer processing system according to claim 4 wherein the single composited layered image is to be delivered to a target environment, and wherein a portion of the scrubbing functions specified by the recipe are conditional on the target environment.

8. The computer processing system according to claim 4 wherein said processor comprises:

a life cycle module configured to detect when one of the specific event points has been reached by the generic application layer; and

a recipe module configured to run the recipe based on said life cycle module detecting that one of the specific event points has been reached.

9. A method for operating a processor within a computer processing system operating in a first computing environment, and comprising:

creating within the computer processing system a new application layer having file system objects and registry objects associated therewith, with a portion of the file system objects and registry objects being specific to the first computing environment;

scrubbing the new application layer in response to a recipe associated with the new application layer, with the recipe having a machine readable format specifying scrubbing functions to be performed to remove the file system objects and registry objects specific to the first computing environment so as to create a generic application layer; and

creating within the computer processing system a single composited layered image by merging the generic application layer with at least one other application layer having file system objects and registry objects associated therewith.

10. The method according to claim 9 wherein the single composited layered image is to be delivered to an end point computer processing system operating in the first computing environment, and further comprising:

scrubbing the single composited layered image by

modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the first computing environment.

11. The method according to claim 9 wherein the single composited layered image is to be delivered to an end point computer processing system operating in a second computing environment that is different from the first computing environment, and further comprising:

scrubbing the single composited layered image by modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the second computing environment.

12. The method according to claim 9 wherein the recipe specifies the scrubbing functions to be performed at specific event points in a life cycle of the generic application layer, and wherein the specific event points include when the new application layer is created and when the single composited layered image is created.

13. The method according to claim 12 wherein the scrubbing functions specified by the recipe include functions to add, delete, remove or merge the file system objects or registry objects associated with the generic application layer and the single composited layered image.

14. The method according to claim 12 wherein the generic application layer and the at least one other application layer have specific layer information associated therewith, and wherein a portion of the scrubbing functions specified by the recipe are conditional on the specific layer information.

15. The method according to claim 12 wherein the single composited layered image is to be delivered to a target environment, and wherein a portion of the scrubbing functions specified by the recipe are conditional on the target environment.

16. A non-transitory computer readable medium for a computing device operating in a first computing environment, with the non-transitory computer readable medium having a plurality of computer executable instructions for causing a processor within the computing device to perform steps comprising:

creating within the computing device a new application layer having file system objects and registry objects associated therewith, with a portion of the file system objects and registry objects being specific to the first computing environment;

scrubbing the new application layer in response to a recipe associated with the new application layer, with the recipe having a machine readable format specifying scrubbing functions to be performed to remove the file system objects and registry objects specific to the first computing environment so as to create a generic application layer; and

creating within the computing device a single composited layered image by merging the generic application layer with at least one other application layer having file system objects and registry objects associated therewith.

17. The non-transitory computer readable medium according to claim 16 wherein the single composited layered image is to be delivered to an end point computer processing system operating in the first computing environment, and further comprising:

scrubbing the single composited layered image by modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the first computing environment.

18. The non-transitory computer readable medium according to claim 16 wherein the single composited layered image is to be delivered to an end point computer processing system operating in a second computing environment that is different from the first computing environment, and further comprising:

scrubbing the single composited layered image by modifying the file system objects and registry objects to include file system objects and registry objects that are specific to the second computing environment.

19. The non-transitory computer readable medium according to claim 16 wherein the recipe specifies the scrubbing functions to be performed at specific event points in a life cycle of the generic application layer, and wherein the specific event points include when the new application layer is created and when the single composited layered image is created.

20. The non-transitory computer readable medium according to claim 19 wherein the scrubbing functions specified by the recipe include functions to add, delete, remove or merge the file system objects or registry objects associated with the generic application layer and the single composited layered image.

Assignments (11)
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 →
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 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 →
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 →
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 Nov 30, 2017
From: UNIDESK CORPORATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 044263/0446 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 043892 FRAME: 0173. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 20, 2017
From: MIDGLEY, CHRIS; BUCKLEY, BILL; WEBB, JOHN; OAKES, ROBERT
To: UNIDESK CORPORATION
Reel/Frame 044243/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: MIDGLEY, CHRIS; BUCKLEY, BILL; WEBB, JOHN; OAKES, ROBERT
To: CITRIX SYSTEMS, INC.
Reel/Frame 043892/0173 →
Continuity (2)
Provisional Application 62411461 · Oct 21, 2016
Related Publication 20180113705A1 · Apr 26, 2018