IP Library Granted Patent US 11,575,743
Granted Patent B1
US 11,575,743 · App. 17/468,759 · Granted Feb 7, 2023

Peer-to-peer software distribution

Inventor: Pranav Ashok Shenoy (Bangalore, IN)
Assignee: VMWARE, INC.
H04L67/1074H04L67/1042
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,575,743
App. No.
17/468,759
Granted
Feb 7, 2023
Kind
B1
Abstract

Systems and methods are described for performing peer-to-peer software distribution in a Unified Endpoint Management environment. In an example, an unenrolled user device can request enrollment from an enrollment server. The enrollment server can send a list of resources to the unenrolled user device that the unenrolled user device needs based on a group that the unenrolled user device is assigned to. The unenrolled user device can send an identifier of the group to a notification server, and the notification server can respond with an ordered list of enrolled user devices that the unenrolled user device can retrieve the resources from. The unenrolled user device can request the resources from the enrolled user devices on the list until the unenrolled user device receives all the resources from the resource list. The unenrolled user device can then install the resources to complete enrollment.

Claims (52)

1. A method for performing peer-to-peer software distribution in a Unified Endpoint Management (“UEM”) system, comprising:

sending, by an unenrolled user device that is not enrolled with the UEM system, an enrollment request to a UEM server, wherein enrollment grants administrative access of the unenrolled user device to the UEM server;

receiving, by the unenrolled user device, a list of resources from the UEM server, wherein the resources in the list are based on a group that the unenrolled device is assigned to in the UEM system;

receiving, by the unenrolled user device, network information of enrolled user devices assigned to the group;

requesting, by the unenrolled user device, the resources from a first enrolled user device of the enrolled user devices using the network information; and

in an instance where the first enrolled user device rejects the resource request:

adding a number to a counter that indicates a number of rejected resource requests by the unenrolled user device;

requesting, by the unenrolled user device, the resources from a second enrolled user device of the enrolled user devices using the network information, wherein the request includes the counter number; and

receiving, from the first enrolled user device, the requested resources.

2. The method of claim 1 , wherein, in an instance where the first enrolled user device includes an outdated version of a first resource from the resource list, the unenrolled device receives, from the first enrolled user device, resources from the resource list having current versions, and wherein the method further comprises:

requesting, by the unenrolled user device and from a third enrolled user device, the first resource; and

in an instance where the third user device includes a current version of the first resource;

receiving from the third user device, the current version of the first resource.

3. The method of claim 1 , wherein the network information received by the unenrolled user device is formatted as a prioritized list based on a priority score assigned to each of the enrolled user devices.

4. The method of claim 3 , wherein the priority score for each enrolled user device is based on at least one of a number of resource requests being executed, available central processing unit power, available network bandwidth, available memory, remaining battery power, and a subnet of the enrolled user device.

5. The method of claim 1 , wherein the network information received by the unenrolled device is the network information of a first subset of enrolled user devices assigned to the group.

6. The method of claim 5 , wherein, in an instance where the all the enrolled user devices in the first subset reject the resource request of the unenrolled device, the method further comprises receiving, by the unenrolled device, network information for a second subset of enrolled user devices.

7. A non-transitory, computer-readable medium containing instructions that are executed by a hardware-based processor to perform stages for performing peer-to-peer software distribution in a Unified Endpoint Management (“UEM”) system, the stages comprising:

sending, by an unenrolled user device that is not enrolled with the UEM system, an enrollment request to a UEM server, wherein enrollment grants administrative access of the unenrolled user device to the UEM server;

receiving, by the unenrolled user device, a list of resources from the UEM server, wherein the resources in the list are based on a group that the unenrolled device is assigned to in the UEM system;

receiving, by the unenrolled user device, network information of enrolled user devices assigned to the group;

requesting, by the unenrolled user device, the resources from a first enrolled user device of the enrolled user devices using the network information; and

in an instance where the first enrolled user device rejects the resource request:

adding a number to a counter that indicates a number of rejected resource requests by the unenrolled user device;

requesting, by the unenrolled user device, the resources from a second enrolled user device of the enrolled user devices using the network information, wherein the request includes the counter number; and

receiving, from the first enrolled user device, the requested resources.

8. The non-transitory, computer-readable medium of claim 7 , wherein, in an instance where the first enrolled user device includes an outdated version of a first resource from the resource list, the unenrolled device receives, from the first enrolled user device, resources from the resource list having current versions, and wherein the stages further comprise:

requesting, by the unenrolled user device and from a third enrolled user device, the first resource; and

in an instance where the third user device includes a current version of the first resource;

receiving from the third user device, the current version of the first resource.

9. The non-transitory, computer-readable medium of claim 7 , wherein the network information received by the unenrolled user device is formatted as a prioritized list based on a priority score assigned to each of the enrolled user devices.

10. The non-transitory, computer-readable medium of claim 7 , wherein the priority score for each enrolled user device is based on at least one of a number of resource requests being executed, available central processing unit power, available network bandwidth, available memory, remaining battery power, and a subnet of the enrolled user device.

11. The non-transitory, computer-readable medium of claim 7 , wherein the network information received by the unenrolled device is the network information of a first subset of enrolled user devices assigned to the group.

12. The non-transitory, computer-readable medium of claim 11 , wherein, in an instance where the all the enrolled user devices in the first subset reject the resource request of the unenrolled device, the method further comprises receiving, by the unenrolled device, network information for a second subset of enrolled user devices.

13. A system for performing peer-to-peer software distribution in a Unified Endpoint Management (“UEM”) system, comprising:

a memory storage including a non-transitory, computer-readable medium comprising instructions; and

a computing device including a hardware-based processor that executes the instructions to carry out stages comprising:

sending, by an unenrolled user device that is not enrolled with the UEM system, an enrollment request to a UEM server, wherein enrollment grants administrative access of the unenrolled user device to the UEM server;

receiving, by the unenrolled user device, a list of resources from the UEM server, wherein the resources in the list are based on a group that the unenrolled device is assigned to in the UEM system;

receiving, by the unenrolled user device, network information of enrolled user devices assigned to the group;

requesting, by the unenrolled user device, the resources from a first enrolled user device of the enrolled user devices using the network information; and

receiving, from the first enrolled user device, the requested resources, wherein, in an instance where the first enrolled user device includes an outdated version of a first resource from the resource list, the unenrolled device receives, from the first enrolled user device, resources from the resource list having current versions, and

wherein the stages further comprise:

requesting, by the unenrolled user device and from a third enrolled user device, the first resource; and

in an instance where the third user device includes a current version of the first resource, receiving, from the third user device, the current version of the first resource.

14. The system of claim 13 , wherein, in an instance where the first enrolled user device rejects the resource request, the stages further comprising:

adding a number to a counter that indicates a number of rejected resource requests by the unenrolled user device;

requesting, by the unenrolled user device, the resources from a second enrolled user device of the enrolled user devices using the network information, wherein the request includes the counter number; and

receiving, from the first enrolled user device, the requested resources.

15. The system of claim 13 , wherein the network information received by the unenrolled device is the network information of a first subset of enrolled user devices assigned to the group.

16. The system of claim 13 , wherein the network information received by the unenrolled user device is formatted as a prioritized list based on a priority score assigned to each of the enrolled user devices.

17. The system of claim 16 , wherein the priority score for each enrolled user device is based on at least one of a number of resource requests being executed, available central processing unit power, available network bandwidth, available memory, remaining battery power, and a subnet of the enrolled user device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2021
From: SHENOY, PRANAV ASHOK
To: VMWARE, INC.
Reel/Frame 057408/0103 →
Priority Claims (1)
IN 202141033154 · Jul 23, 2021 · national