IP Library Granted Patent US 8,589,947
Granted Patent B2
US 8,589,947 · App. 13/104,246 · Granted Nov 19, 2013

Methods, systems, and media for application fault containment

Inventors: Shaya Joseph Potter (New York, NY); Jason Nieh (New York, NY)
Assignee: The Trustees of Columbia University in the City of New York
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,589,947
App. No.
13/104,246
Granted
Nov 19, 2013
Kind
B2
Abstract

Methods, systems; and media for application fault containment are provided. In accordance with some embodiments, a method for application fault containment is provided, the method comprising: determining a plurality of applications associated with a processing device; isolating each of the plurality of applications into an application container; receiving a user selection of one of the plurality of applications; and creating the application container of a container type for the user selected application in response to receiving the user selection; wherein, upon determining that the container type is a persistent container, configuring the created application container to maintain state information across executions of the user selected application, and wherein, upon determining that the container type is an ephemeral container, configuring the created application container to be removed after a single execution of the user selected application.

Claims (51)

1. A method for application fault containment, the method comprising:

determining a plurality of applications associated with a processing device;

isolating each of the plurality of applications into an application container;

receiving a user selection of one of the plurality of applications;

determining a container type for the user selected application, wherein the container type is one of a persistent container and an ephemeral container; and

creating the application container of the container type for the user selected application in response to receiving, the user selection;

wherein:

upon determining that the container type is the persistent container, configuring the created application container to maintain state information across executions of the user selected application; and

upon determining that the container type is the ephemeral container, configuring the created application container to be removed after a single execution of the user selected application.

2. The method of claim 1 , wherein each application is isolated into the application container by providing at least one of programs and system services needed to execute the application.

3. The method of claim 1 , wherein the container type is predetermined and, in response to receiving the user selection, the application container is created having the predetermined container type.

4. The method of claim 1 , further comprising inhibiting the application container from accessing user data stored on the processing device.

5. The method of claim 1 , further comprising monitoring the application executing within the ephemeral container to determine when to remove the ephemeral container.

6. The method of claim 1 , further comprising providing an integrated display that includes the created application container and other created application containers.

7. The method of claim 6 , further comprising providing a virtual display component for generating the integrated display, wherein the virtual display component provides a virtual display server and viewer for the application container and displays an application window corresponding to the application container.

8. The method of claim 1 , wherein the application container is created using a daemon component, wherein the daemon component manages the application container and a lifetime associated with the application container.

9. The method of claim 1 , wherein a plurality of shared software layers are stored in the processing device and wherein each of the plurality of shared software layers is a read-only layer that stores a program.

10. The method of claim 9 , wherein the application container has a corresponding file system and wherein the file system is created by dynamically selecting one or more software layers from the plurality of shared software layers.

11. The method of claim 10 , wherein the dynamically selected software layers are designated read-only and wherein the corresponding file system further comprises a private layer that is designated read-write for storing modifications to the file system.

12. The method of claim 1 , further comprising:

receiving a request from the user selected application to instantiate a second application in another application container; and

in response to receiving the request, creating a child ephemeral container that executes the second application.

13. A system for application fault containment, the system comprising:

a processor that:

determines a plurality of applications associated with a processing device;

isolates each of the plurality of applications into an application container;

receives a user selection of one of the plurality of applications;

determines a container type for the user selected application, wherein the container type is one of a persistent container and an ephemeral container; and

creates the application container of the container type for the user selected application in response to receiving the user selection;

wherein the processor is further configured to:

configure the created application container to maintain state information across executions of the user selected application upon determining that the container type is the persistent container; and

configure the created application container to be removed after a single execution of the user selected application upon determining that the container type is the ephemeral container.

14. The system of claim 13 , wherein the processor is further configured to monitor the application executing within the ephemeral container to determine when to remove the ephemeral container.

15. The system of claim 13 , wherein the processor is further configured to provide an integrated display that includes the created application container and other created application containers.

16. The system of claim 13 , further comprising a virtual display component that provides a virtual display server and viewer for the application container and displays an application window corresponding to the application container.

17. The system of claim 13 , further comprising a daemon component that creates the application container, wherein the daemon component is configured to manage the application container and a lifetime associated with the application container.

18. The system of claim 13 , wherein the processor is further configured to store a plurality of shared software layers, wherein each of the plurality of shared software layers is a read-only layer that stores a program.

19. The system of claim 18 , wherein the application container has a corresponding file system and wherein the processor is further configured to create the file system by dynamically selecting one or more software layers from the plurality of shared software layers.

20. The system of claim 19 , wherein the dynamically selected software layers are designated read-only and wherein the processor is further configured to provide a private layer that is designated read-write for storing modifications to the file system.

21. The system of claim 13 , wherein the processor is further configured to:

receive a request from the user selected application to instantiate a second application in another application container; and

in response to receiving the request, create a child ephemeral container that executes the second application.

22. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for application fault containment, the method comprising:

determining a plurality of applications associated with a processing device;

isolating each of the plurality of applications into an application container;

receiving a user selection of one of the plurality of applications; and

determining a container type for the user selected application, wherein the container type is one of a persistent container and an ephemeral container; and

creating the application container of the container type for the user selected application in response to receiving the user selection;

wherein:

upon determining that the container type is the persistent container, configuring the created application container to maintain state information across executions of the user selected application; and

upon determining that the container type is the ephemeral container, configuring the created application container to be removed after a single execution of the user selected application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: POTTER, SHAYA JOSEPH; NIEH, JASON
To: THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK
Reel/Frame 031661/0310 →
CONFIRMATORY LICENSE Recorded Aug 17, 2011
From: COLUMBIA UNIVERSITY NEW YORK MORNINGSIDE
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 026764/0102 →
Continuity (2)
Provisional Application 61333518 · May 11, 2010
Related Publication 20120210333A1 · Aug 16, 2012