IP Library Granted Patent US 10,749,949
Granted Patent B2
US 10,749,949 · App. 16/195,433 · Granted Aug 18, 2020

Dynamic content distribution protocol for an enterprise environment

Inventors: Marc E. Mosko (Santa Cruz, CA); Ehsan Hemmati (Campbell, CA)
Assignee: Palo Alto Research Center Incorporated
H04L67/104H04L63/102H04L67/42
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,749,949
App. No.
16/195,433
Granted
Aug 18, 2020
Kind
B2
Abstract

Embodiments described herein provide a system for facilitating dynamic content distribution in an enterprise environment. During operation, the system receives, from a controller of the enterprise environment, an instruction for downloading a piece of content from one or more peers of a peer-to-peer protocol. The instruction can include a file descriptor that indicates a set of blocks the piece of content is divided into. The system can receive an offer for a first block of the set of blocks from a first peer of the one or more peers and determine whether the system is in a full peer relationship with a second peer of the one or more peers. The full peer relationship indicates that the second peer and the system are clients and servers of each other. If the system is in a full peer relationship, the system elects, between the second peer and the system, a sender for a first request that responds to the first offer.

Claims (50)

1. A method for facilitating dynamic content distribution in an enterprise environment, comprising:

receiving, by a computing device from a controller of the enterprise environment, an instruction for downloading a piece of content from one or more peers of a peer-to-peer protocol, wherein the instruction comprises a file descriptor that indicates a set of blocks the piece of content is divided into;

receiving an offer for a first block of the set of blocks from a first peer of the one or more peers;

determining whether the computing device is in a full peer relationship with a second peer of the one or more peers, wherein the full peer relationship indicates that the second peer and the computing device are clients and servers of each other; and

in response to determining that the computing device is in a full peer relationship, electing, between the second peer and the computing device, a sender for a first request that responds to the first offer.

2. The method of claim 1 , further comprising sending a subscription request for the piece of content to the one or more peers based on the instruction.

3. The method of claim 1 , wherein in response to determining that the computing device is not in a full peer relationship, the method further comprises:

determining a first priority value associated with a peer relationship with the first peer; and

in response to the first priority value being lower than a threshold, backing off from sending the first request for a predetermined period of time.

4. The method of claim 3 , further comprising:

determining whether a second offer for the first block from a third peer has been received within the predetermined period of time;

determining whether a second priority value of the second offer is greater than the first priority value; and

in response to the second priority value being greater than the first priority value, sending a second request that responds to the second offer.

5. The method of claim 4 , wherein in response to not receiving the second offer or the second priority value not being greater than the first priority value, the method further comprises sending the first request.

6. The method of claim 1 , wherein in response to the computing device being elected as the sender, the method further comprises:

sending the first request to the first peer and sending a download notification message to the second peer; and

receiving the first block from the first peer.

7. The method of claim 6 , further comprising:

sending a third offer for the first block to the second peer; and

sending the first block to the second peer in response to receiving a third request that responds to the third offer.

8. The method of claim 1 , wherein in response to the second peer being elected as the sender, the method further comprises waiting for a predetermined period of time for a download notification message from the second peer.

9. The method of claim 8 , further comprising:

receiving a fourth offer for the first block from the second peer; and

sending a fourth request that responds to the fourth offer.

10. The method of claim 1 , further comprising determining whether the first peer is authorized to send an offer for the first block based on the file descriptor and an authorizations table, wherein the authorizations table maintains permissions for operations and resources of the enterprise environment.

11. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating dynamic content distribution in an enterprise environment, the method comprising:

receiving, by a computing device from a controller of the enterprise environment, an instruction for downloading a piece of content from one or more peers of a peer-to-peer protocol, wherein the instruction comprises a file descriptor that indicates a set of blocks the piece of content is divided into;

receiving an offer for a first block of the set of blocks from a first peer of the one or more peers;

determining whether the computing device is in a full peer relationship with a second peer of the one or more peers, wherein the full peer relationship indicates that the second peer and the computing device are clients and servers of each other; and

in response to determining that the computing device is in a full peer relationship, electing, between the second peer and the computing device, a sender for a first request that responds to the first offer.

12. The computer-readable storage medium of claim 11 , wherein the method further comprises sending a subscription request for the piece of content to the one or more peers based on the instruction.

13. The computer-readable storage medium of claim 11 , wherein in response to determining that the computing device is not in a full peer relationship, the method further comprises:

determining a first priority value associated with a peer relationship with the first peer; and

in response to the first priority value being lower than a threshold, backing off from sending the first request for a predetermined period of time.

14. The computer-readable storage medium of claim 13 , wherein the method further comprises:

determining whether a second offer for the first block from a third peer has been received within the predetermined period of time;

determining whether a second priority value of the second offer is greater than the first priority value; and

in response to the second priority value being greater than the first priority value, sending a second request that responds to the second offer.

15. The computer-readable storage medium of claim 14 , wherein in response to not receiving the second offer or the second priority value not being greater than the first priority value, the method further comprises sending the first request.

16. The computer-readable storage medium of claim 11 , wherein in response to the computing device being elected as the sender, the method further comprises:

sending the first request to the first peer and sending a download notification message to the second peer; and

receiving the first block from the first peer.

17. The computer-readable storage medium of claim 16 , wherein the method further comprises:

sending a third offer for the first block to the second peer; and

sending the first block to the second peer in response to receiving a third request that responds to the third offer.

18. The computer-readable storage medium of claim 11 , wherein in response to the second peer being elected as the sender, the method further comprises waiting for a predetermined period of time for a download notification message from the second peer.

19. The computer-readable storage medium of claim 18 , wherein the method further comprises:

receiving a fourth offer for the first block from the second peer; and

sending a fourth request that responds to the fourth offer.

20. The computer-readable storage medium of claim 11 , wherein the method further comprises determining whether the first peer is authorized to send an offer for the first block based on the file descriptor and an authorizations table, wherein the authorizations table maintains permissions for operations and resources of the enterprise environment.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073562/0677 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2018
From: MOSKO, MARC E.; HEMMATI, EHSAN
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 047620/0136 →
Continuity (1)
Related Publication 20200162543A1 · May 21, 2020