IP Library Granted Patent US 12,093,723
Granted Patent B2
US 12,093,723 · App. 17/343,567 · Granted Sep 17, 2024

Dynamically assigning applications to workspaces based on context

Inventors: Gokul Thiruchengode Vajravel (Bangalore, IN); Vivek Viswanathan Iyer (Austin, TX)
Assignee: Dell Products L.P.
G06F9/4856G06F9/542
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,093,723
App. No.
17/343,567
Granted
Sep 17, 2024
Kind
B2
Abstract

Applications can be dynamically assigned to workspaces based on context. As a user uses applications on a computing device, the context of the computing device can be monitored. When the context changes, it can be determined, for each application, which workspace is relevant to the application based on the changed context. If the relevant workspace is different from a current workspace, the application can be dynamically reassigned to the relevant workspace. As part of reassigning an application to a workspace, the application's dependencies may be updated and the application's context may be preserved.

Claims (50)

1. A method for dynamically assigning an application to a workspace based on context, the method comprising:

detecting, by an agent executing on a computing device, that a plurality of workspaces are available on the computing device;

registering, by the agent, with one or more sources of events to be notified when events occur on the computing device;

identifying, by the agent, a plurality of containers that are available on the computing device;

identifying, by the agent and for each of the plurality of containers, one of the plurality of workspaces that the respective container implements, including determining that a first container of the plurality of containers implements a first workspace of the plurality of workspaces and that a second container of the plurality of containers implements a second workspace of the plurality of workspaces;

detecting that a context of a computing device has changed while a first application is running on the computing device in the first container that implements the first workspace;

based on the changed context, determining that a second workspace of the plurality of workspaces is relevant to the first application;

causing the first application to stop running in the first container that implements the first workspace; and

causing the first application to be run in the second container that implements the second workspace.

2. The method of claim 1 , wherein the first container that implements the first workspace is deployed on the computing device.

3. The method of claim 2 , wherein the second container that implements the second workspace is deployed on the computing device.

4. The method of claim 2 , wherein the second container that implements the second workspace is deployed on a separate computing device.

5. The method of claim 1 , wherein detecting that the context of the computing device has changed comprises detecting an event on the computing device based on a notification received from the one or more sources of events.

6. The method of claim 1 , further comprising:

capturing a context of the first application in the first container that implements the first workspace; and

restoring the context of the first application in the second container that implements the second workspace.

7. The method of claim 1 , further comprising:

creating a bundle that includes the first application and one or more dependencies;

wherein causing the first application to be run in the second container that implements the second workspace comprises causing the bundle to be deployed in the second container that implements the second workspace.

8. The method of claim 1 , wherein a second application is running on the computing device in the first container or a different container that implements the first workspace when the context change is detected, the method further comprising:

based on the changed context, determining that the first workspace is relevant to the second application and that one or more dependencies of the second application should be changed; and

causing the one or more dependencies of the second application to be changed in the first container or the different container that implements the first workspace.

9. The method of claim 8 , wherein causing the one or more dependencies of the second application to be changed in the first container or the different container that implements the first workspace comprises one or more of adding a driver or removing a driver.

10. The method of claim 1 , wherein the first container that implements the first workspace is implemented with a software container and the second container that implements the second workspace is implemented with a hardware container.

11. The method of claim 1 , wherein an orchestrator that is located remote to the computing device determines that the second workspace is relevant to the first application based on the changed context.

12. The method of claim 1 , wherein causing the first application to be run in the second container that implements the second workspace comprises providing, by the agent, a bundle containing the first application to a container service running inside a container.

13. One or more computer storage media storing computer executable instructions which when executed by one or more processors implement a method for dynamically assigning an application to a workspace based on context, the method comprising:

detecting, by an agent executing on a computing device, that a plurality of workspaces are available on the computing device;

registering, by the agent, to be notified of events that occur on the computing device;

identifying, by the agent, a plurality of containers that are available on the computing device;

identifying, by the agent and for each of the plurality of containers, one of the plurality of workspaces that the respective container implements, including determining that a first container of the plurality of containers implements a first workspace of the plurality of workspaces and that a second container of the plurality of containers implements a second workspace of the plurality of workspaces;

in response to being notified of an event, sending, by the agent, a representation of the event to an orchestrator;

in response to sending the representation of the event to the orchestrator, receiving, by the agent and from the orchestrator, a bundle for a first application that was running in the first container that implements the first workspace when the event occurred; and

deploying the bundle to the second container that implements the second workspace on the computing device to thereby cause the first application to be run in the second container that implements the second workspace.

14. The computer storage media of claim 13 , wherein the first container that implements the first workspace is implemented on the computing device.

15. The computer storage media of claim 13 , wherein the first container that implements the first workspace is implemented on a separate computing device.

16. The computer storage media of claim 13 , wherein deploying the bundle to the second container that implements the second workspace comprises restoring a context of the first application in the second container that implements the second workspace.

17. The computer storage media of claim 13 , wherein the orchestrator runs on a separate computing device.

18. The computer storage media of claim 13 , wherein the bundle includes one or more updates to dependences of the first application.

19. A method for dynamically assigning an application to a workspace based on context, the method comprising:

detecting, by an agent executing on a computing device, that a plurality of workspaces are available on the computing device;

registering, by the agent, with one or more sources of events to be notified when events occur on the computing device;

identifying, by the agent, a plurality of containers that are available on the computing device;

identifying, by the agent and for each of the plurality of containers, one of the plurality of workspaces that the respective container implements, including determining that a first container of the plurality of containers implements a first workspace of the plurality of workspaces and that a second container of the plurality of containers implements a second workspace of the plurality of workspaces;

detecting that a context of the computing device has changed while a first application is running on the computing device in the first container that implements the first workspace;

based on the changed context, determining that a second workspace is relevant to the first application; and

causing the first application to be reassigned to the second container that implements the second workspace.

20. The method of claim 19 , wherein causing the first application to be reassigned to the second container that implements the second workspace comprises:

causing the first application to stop running in the first container that implements the first workspace; and

causing the first application to start running in the second container that implements the second workspace.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2021
From: VAJRAVEL, GOKUL THIRUCHENGODE; IYER, VIVEK VISWANATHAN
To: DELL PRODUCTS L.P.
Reel/Frame 056491/0416 →
Continuity (1)
Related Publication 20220398126A1 · Dec 15, 2022