IP Library Granted Patent US 10,609,134
Granted Patent B2
US 10,609,134 · App. 15/080,067 · Granted Mar 31, 2020

Providing application virtualization using a peer-to-peer model

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,609,134
App. No.
15/080,067
Granted
Mar 31, 2020
Kind
B2
Abstract

Virtualized applications can be delivered using a peer-to-peer model. Each client in a virtual desktop infrastructure environment can function as both a server and a client for purposes of distributing and receiving application layers. A server component on each client can advertise any application layers that the client maintains in its local storage and can receive and service streaming requests from other clients. A client component on each client can discover each application layer that is available within its location including which client provides each application layer. The client component can therefore also be configured to request application layers from the appropriate clients. This peer-to-peer model eliminates the need to provide a dedicated server at each location. Also, because a server component on the client will only be tasked with streaming to a limited number of clients, virtually any client can function as the source of an application layer.

Claims (46)

1. A method for providing application virtualization using a peer-to-peer model, the method comprising:

sending, by a discovery service on a client device, a communication to an advertising service on each of a number of other client devices, the communication requesting an identification of any application layers that the other client device maintains, wherein each application layer is a virtual disk file or a folder that contains at least one application;

receiving, from the advertising services on each of a number of other client devices, an identification of each application layer that the corresponding client device maintains;

based on the received identifications, maintaining a map of which application layers are available on which other client devices;

in response to a request to access an application on the client device, accessing the map to identify which other client device maintains an application layer containing the application;

requesting the application layer from the identified other client device;

receiving the application layer from the identified other client device thereby causing the application layer to be stored on the client device; and

after the application layer is stored on the client device, mounting the application layer on the client device to thereby cause the application contained on the application layer to become accessible as part of a file system such that the application contained on the application layer becomes executable on the client device as a result of the mounting of the stored application layer.

2. The method of claim 1 , wherein the application layer that is mounted on the client device is a folder that contains the at least one application.

3. The method of claim 1 , wherein the application layer that is mounted on the client device is a virtual disk file that contains the at least one application.

4. The method of claim 1 , wherein each of the application layers is a virtual disk file.

5. The method of claim 1 , wherein each of the client devices is part of the same LAN or subnet.

6. The method of claim 1 , wherein the request to access the application on the client device comprises logging in to the client device.

7. The method of claim 1 , wherein the request to access the application on the client device comprises a request to open a file having a file type associated with the application.

8. The method of claim 1 , wherein mounting the application layer comprises causing contents of the application layer to appear as if the contents were part of a local file system.

9. The method of claim 1 , further comprising:

sending, by the discovery service on the client device, a communication to an advertising service on the client device, the communication requesting an identification of any application layers that the client device maintains.

10. The method of claim 1 , further comprising:

receiving, by an advertising service on the client device, a communication from a discovery service on at least one of the other client devices, the communication requesting an identification of any application layers that the client device maintains; and

sending, to the discovery service on the at least one other client device, an identification of each application layer that the client device maintains.

11. The method of claim 10 , further comprising:

for each of the at least one other client device, determining which application layers the other client device should have access to;

wherein sending an identification of each application layer that the client device maintains comprises sending an identification of each application layer that the client device maintains and that the other client device should have access to.

12. The method of claim 10 , wherein each application layer that the client device maintains is received from a server.

13. One or more computer storage media storing computer executable instructions which when executed implement a layering module on a client device, the layering module including:

a server component comprising:

an advertising service that is configured to identify which application layers are stored locally on the client device and to respond to requests from other client devices to provide an identification of the locally stored application layers, wherein each application layer is a virtual disk file or a folder that contains at least one application;

a streaming service that is configured to deliver the application layers to the other client devices; and

a client component comprising:

a discovery service that is configured to communicate with the advertising service on the other client devices to discover which application layers are locally stored on which other client devices; and

one or more layer drivers that are configured to communicate with the streaming service on the other client devices to retrieve application layers stored locally on the other client devices and to mount a retrieved application layer to provide the one or more applications contained in the retrieved application layer as virtualized applications on the client device, wherein each retrieved application layer is stored on the client device and then mounted on the client device to thereby cause any content stored on the retrieved application layer including the at least one application to become accessible as part of a file system such that the at least one application becomes executable on the client device as a result of the mounting of the stored application layer.

14. The computer storage media of claim 13 , wherein the discovery service is also configured to communicate with the advertising service on the client device to discover which application layers are locally stored on the client device.

15. The computer storage media of claim 13 , wherein each application layer is a vDisk.

16. The computer storage media of claim 15 , wherein the one or more layer drivers are configured to cause contents of a mounted application layer to appear as if the contents were part of a local file system.

17. The computer storage media of claim 13 , wherein the server component is further configured to initially obtain the application layers from a central server prior to the streaming service delivering the application layers to the other client devices.

18. The computer storage media of claim 13 , wherein the client device and the other client devices are part of the same LAN or subnet.

19. The computer storage media of claim 13 , wherein the discovery service is configured to generate a map defining which application layers are available from which client devices, and the one or more layer drivers are configured to employ the map to identify from which client device to obtain a particular application layer.

20. A system for providing application virtualization using a peer-to-peer distribution model, the system comprising:

a plurality of client devices, each client device including:

a server component comprising:

an advertising service that is configured to identify which application layers are stored locally on the client device and to respond to requests from other client devices to provide an identification of the locally stored application layers, wherein each application layer is a virtual disk file or a folder that contains at least one application; and

a streaming service that is configured to deliver the application layers to the other client devices; and

a client component comprising:

a discovery service that is configured to communicate with the advertising service on the other client devices to discover which application layers are locally stored on which other client devices; and

one or more layer drivers that are configured to communicate with the streaming service on the other client devices to retrieve application layers stored locally on the other client devices and to mount a retrieved application layer to provide the one or more applications contained in the retrieved application layer as virtualized applications on the client device, wherein each retrieved application layer is stored on the client device and then mounted on the client device to thereby cause any content stored on the retrieved application layer including the at least one application to become accessible as part of a file system such that the at least one application becomes executable on the client device as a result of the mounting of the stored application layer; and

a central server configured to initially distribute the application layers among the plurality of client devices.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →