IP Library Granted Patent US 10,868,855
Granted Patent B2
US 10,868,855 · App. 16/371,383 · Granted Dec 15, 2020

File containerization and management

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 10,868,855
App. No.
16/371,383
Filed
Apr 1, 2019
Granted
Dec 15, 2020
Kind
B2
Art Unit
2448
USPC
709/203
Abstract

This disclosure is directed to embodiments of systems and methods for containerizing files and managing policy data applied to the resulting containers. In some of the disclosed embodiments, a computing system determines that a file stored in storage medium is to be included in a container to be sent to at least one computing component associated with a device including a user interface. The computing system determines that the file is of a particular type and also determines code that can be used to access files of the particular type. The computing system combines the file and the code into the container such that container is configured to be executed by the at least one computing component so as to cause content of the file to be presented by the user interface. The computing system then sends the container to the at least one computing component. In some implementations, the container may further include policy information defining at least one of whether, how, where, when, or by whom the file can be accessed using the code. A communication link may be established between the computing system and the container at the at least one computing component and an instruction may be sent via the communication link that causes a change to the policy information.

Claims (79)

1. A method, comprising:

determining, by a computing system, that a file stored in storage medium is to be included in a container to be sent to at least one computing component associated with a device including a user interface, the at least one computing component being remote from the computing system;

determining, by the computing system, that the file is of a particular type;

determining, by the computing system, code that can be used to access files of the particular type;

combining, by the computing system, the file and the code into the container, the container configured to be executed by the at least one computing component so as to cause content of the file to be presented by the user interface;

further including in the container information defining at least one of whether, how, where, when, or by whom the file can be accessed using the code;

sending, by the computing system, the container to the at least one computing component; and

sending, by the computing system, an instruction via a communication link between the computing system and the container at the at least one computing component, the instruction configured to cause a change to the information included in the container.

2. The method of claim 1 , wherein the at least one computing component is included in the device.

3. The method of claim 1 , wherein the at least one computing component is located remote from the device.

4. The method of claim 1 , wherein:

the method further comprises determining, by the computing system, an operating system of the at least one computing component; and

determining the code is further based at least in part on the operating system.

5. The method of claim 1 , further comprising:

further including in the container a virtual operating system configured to execute the code.

6. The method of claim 1 , further comprising:

encrypting the file prior to combining the file and the code into the container;

after sending the container to the at least one computing component, receiving, by the computing system and from the at least one computing component, a request for access to the file;

after receiving the request for access, determining, by the computing system, that a user of the device is authorized to access the file; and

based at least in part on the user being authorized to access the file, sending, by the computing system and to the at least one computing component, a key for decrypting the file.

7. The method of claim 1 , further comprising:

determining, by the computing system, that a user of the device is authorized to edit the file;

wherein including the information in the container comprises including, based at least in part on the user being authorized to access the file, first information in the container that allows the code to edit the file based on input via the user interface.

8. The method of claim 7 , further comprising:

receiving, by the computing system and from the at least one computing component, a modified version of the container that includes an edited version of the file based on input via the user interface;

separating, by the computing system, the edited version of the file from the modified version of the container; and

storing, by the computing system, the edited version of the file.

9. A system, comprising:

at least one processor; and

at least one computer-readable medium encoded with instructions which, when executed by the at least one processor, cause the system to:

determine that a file stored in storage medium is to be included in a container to be sent to at least one computing component associated with a device including a user interface, the at least one computing component being remote from the system,

determine that the file is of a particular type,

determine code that can be used to access files of the particular type,

combine the file and the code into the container, the container configured to be executed by the at least one computing component so as to cause content of the file to be presented by the user interface,

further include in the container information defining at least one of whether, how, where, when, or by whom the file can be accessed using the code,

send the container to the at least one computing component, and

send an instruction via a communication link between the system and the container at the at least one computing component, the instruction configured to cause a change to the information included in the container.

10. The system of claim 9 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

determine an operating system of the at least one computing component; and

determine the code based at least in part on the operating system.

11. The system of claim 9 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

further include in the container a virtual operating system configured to execute the code.

12. The system of claim 9 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

encrypt the file prior to combining the file and the code into the container;

after sending the container to the at least one computing component, receive, from the at least one computing component, a request for access to the file;

after receiving the request for access, determine that a user of the device is authorized to access the file; and

based at least in part on the user being authorized to access the file, send a key for decrypting the file to the at least one computing component.

13. The system of claim 9 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

determine that a user of the device is authorized to edit the file; and

include the information in the container at least in part by including in the container first information that allows the code to edit the file based on input via the user interface.

14. The system of claim 13 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

receive, from the at least one computing component, a modified version of the container that includes an edited version of the file based on input via the user interface;

separate the edited version of the file from the modified version of the container; and

store the edited version of the file.

15. At least one computer-readable medium encoded with instructions which, when executed by at least one processor of a system, cause the system to:

determine that a file stored in storage medium is to be included in a container to be sent to at least one computing component associated with a device including a user interface,

determine that the file is of a particular type,

determine code that can be used to access files of the particular type,

combine the file and the code into the container, the container configured to be executed by the at least one computing component so as to cause content of the file to be presented by the user interface,

further include in the container information defining at least one of whether, how, where, when, or by whom the file can be accessed using the code,

send the container to the at least one computing component, and

send, over a network, an instruction to the container at the at least one computing component, the instruction configured to cause a change to the information included in the container.

16. The at least one computer-readable medium of claim 15 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

encrypt the file prior to combining the file and the code into the container;

after sending the container to the at least one computing component, receive, from the at least one computing component, a request for access to the file;

after receiving the request for access, determine that a user of the device is authorized to access the file; and

based at least in part on the user being authorized to access the file, send a key for decrypting the file to the at least one computing component.

17. The at least one computer-readable medium of claim 15 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

determine an operating system of the at least one computing component; and

determine the code based at least in part on the operating system.

18. The at least one computer-readable medium of claim 15 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

further include in the container a virtual operating system configured to execute the code.

19. The at least one computer-readable medium of claim 15 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

determine that a user of the device is authorized to edit the file; and

include the information in the container at least in part by including in the container first information that allows the code to edit the file based on input via the user interface.

20. The at least one computer-readable medium of claim 19 , wherein the at least one computer-readable medium is encoded with additional instructions which, when executed by the at least one processor, further cause the system to:

receive, from the at least one computing component, a modified version of the container that includes an edited version of the file based on input via the user interface;

separate the edited version of the file from the modified version of the container; and

store the edited version of the file.

Assignments (16)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Dec 26, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 069784/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2024
From: CITRIX SYSTEMS, INC.
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 069618/0836 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 067662/0568 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0525 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062112/0262 Recorded Nov 2, 2024
From: BANK OF AMERICA, N.A.
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0492 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062079/0001 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 069291/0536 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 063340/0164 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0503 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062113/0470 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0514 →
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 Apr 1, 2019
From: ACHYUTH, NANDIKOTKUR; VANAHALLI, SATISH; AKHOURY, ARNAV
To: CITRIX SYSTEMS, INC.
Reel/Frame 048756/0069 →