US8281034B2ActiveUtilityA1

Peer to peer subscription service

67
Assignee: ROY SHAIBALPriority: Jul 13, 2009Filed: Jul 13, 2009Granted: Oct 2, 2012
Est. expiryJul 13, 2029(~3 yrs left)· nominal 20-yr term from priority
Inventors:Shaibal Roy
G06F 15/173G06F 21/335H04L 67/104
67
PatentIndex Score
3
Cited by
18
References
23
Claims

Abstract

Peer-to-peer approaches to servicing subscriptions to information feeds are generally disclosed. Network nodes may exchange information about information feeds that they can provide to other nodes, and other information about information feeds to which they may be interested in subscribing. Any of a variety of techniques may then be applied to allow the nodes to negotiate for feeds to which they may be interested in subscribing. For example, each node may apply algorithms that service feed subscriptions of other nodes on a prioritized basis, prioritized for example based on which other nodes service subscriptions in return.

Claims

exact text as granted — not AI-modified
1. A method for a first device to negotiate servicing of subscriptions to real-time information feeds from a network including peer devices, wherein the real-time information feeds comprise real-time information that is delivered to subscribers on an ongoing basis as such real time information becomes available, the method for the first device comprising:
 identifying a first set of real-time information feeds, wherein the first set of real-time information feeds corresponds to one or more of the real-time information feeds to which the first device is subscribed; 
 distributing the first set of real-time information feeds to the network for reception by one or more of the peer devices; 
 identifying a second set of real-time information feeds for subscription by the first device, wherein the second set of real-time information feeds corresponds to one or more real-time information feeds to which the first device is not subscribed; 
 receiving one or more requests from the network for information feeds from the first set, wherein each request is associated with a peer device; and 
 in response to a received request:
 providing a requested information feed from the first set to the network for reception by a requesting peer device in exchange for a real-time information feed in the second set for a period of time; 
 receiving the real-time information feed in the second set from the requesting peer device during the period of time; 
 determining a value of continued information feed exchange with the requesting peer device as a function of a volume of data transfer corresponding to the real time information feed in the second set per unit of time during the period of time, wherein the function assigns higher values to feeds having larger data volumes per unit of time, and wherein the volume of data transfer per unit of time provides a measure of data transfer demand on the requesting peer device pursuant to servicing a subscription to the real-time information feed in the second set; 
 assigning a priority level to the requesting peer device, wherein the assigned priority level:
 is higher for requesting peer devices having access to one or more real-time information feeds from the second set than for requesting peer devices failing to have access to one or more real-time information feeds in the second set; 
 is assigned at least in part according to the determined value of continued information feed exchange with the requesting peer device; and 
 
 providing requested information feeds from the first set to the network for reception by one or more requesting peer devices based at least in part on assigned priority levels of the one or more requesting peer devices. 
 
 
     
     
       2. The method of  claim 1 , further comprising maintaining a list of peer devices whose subscriptions are serviced unconditionally by the first device, and exempting devices on the list from being assigned a priority level that is lower than a priority level of a requesting peer device determined to have access to one or more real-time information feeds from the second set. 
     
     
       3. The method of  claim 1 , further comprising identifying one of the peer devices as an unprioritized peer device, and providing a requested information feed to the unprioritized peer device in order to determine whether the unprioritized peer device has access to real-time information feeds from the second set. 
     
     
       4. The method of  claim 3 , wherein providing the requested information feeds to the unprioritized peer device is done for a predetermined period of time prior to assigning a priority level to the unprioritized peer device and further comprising assigning a priority level to the unprioritized peer device after the predetermined period of time elapses. 
     
     
       5. The method of  claim 1 , wherein distributing the first set of real-time information feeds to the network comprises exchanging tracking information with one or more of the peer devices. 
     
     
       6. The method of  claim 5 , wherein the exchanging tracking information uses one or more distributed hash tables that are distributed across devices on the network. 
     
     
       7. The method of  claim 5 , wherein the exchanging tracking information comprises exchanging tracking information directly with one or more of the peer devices. 
     
     
       8. The method of  claim 5 , wherein the exchanging tracking information comprises exchanging tracking information with one or more tracking nodes accessible by one or more of the peer devices. 
     
     
       9. The method of  claim 1 , further comprising requiring a selected one of the requesting peer devices to meet a predetermined criteria prior to providing the requested information feed from the first set to the network for reception by the selected one of the requesting peer devices. 
     
     
       10. The method of  claim 1 , further comprising providing a peer device with a security credential to gain access to an information feed comprising confidential or restricted information. 
     
     
       11. The method of  claim 1 , further comprising processing a peer device security credential to determine if the peer device is authorized to access a confidential or restricted information feed. 
     
     
       12. The method of  claim 1 , further comprising:
 distributing, to a network, identifiers of one or more real time information feeds to which the first peer device is subscribed, the one or more real time information feeds comprising at least one confidential or restricted real time information feed; 
 receiving via the network a request for the confidential or restricted real time information feed from a second peer device, the second peer device having a security credential authorizing the second peer device to receive the requested confidential or restricted real time information feed; 
 validating the security credential of the second peer device; and 
 servicing a subscription to the confidential or restricted real time information feed by providing via the network the confidential or restricted real time information feed to the second peer device. 
 
     
     
       13. The method of  claim 12 , further comprising subscribing to the confidential or restricted real time information feed, wherein the subscribing includes presenting a security credential associated with the first peer device to another device via the network. 
     
     
       14. A non-transitory computer readable medium having instructions configured to negotiate servicing, by a first device, subscriptions to real-time information feeds from a network including peer devices, wherein the real-time information feeds comprise real-time information that is delivered to subscribers on an ongoing basis as such real time information becomes available, wherein the instructions comprise:
 identifying a first set of real-time information feeds, wherein the first set of real-time information feeds corresponds to one or more of the real-time information feeds to which the first device is subscribed; 
 distributing the first set of real-time information feeds to the network for reception by one or more of the peer devices; 
 identifying a second set of real-time information feeds for subscription by the first device, wherein the second set of real-time information feeds corresponds to one or more real-time information feeds to which the first device is not subscribed; 
 receiving one or more requests from the network for information feeds from the first set, wherein each request is associated with a peer device; and 
 in response to a received request:
 providing a requested information feed from the first set to the network for reception by a requesting peer device in exchange for a real-time information feed in the second set for a period of time; 
 receiving the real-time information feed in the second set from the requesting peer device during the period of time; 
 determining a value of continued information feed exchange with the requesting peer device as a function of a volume of data transfer corresponding to the real time information feed in the second set per unit of time during the period of time, wherein the function assigns higher values to feeds having larger data volumes per unit of time, and wherein the volume of data transfer per unit of time provides a measure of data transfer demand on the requesting peer device pursuant to servicing a subscription to the real-time information feed in the second set; 
 assigning a priority level to the requesting peer device, wherein the assigned priority level:
 is higher for requesting peer devices having access to one or more real-time information feeds from the second set than for requesting peer devices failing to have access to one or more real-time information feeds in the second set; and 
 is assigned at least in part according to the determined value of continued information feed exchange with the requesting peer device; and 
 
 providing requested information feeds from the first set to the network for reception by one or more requesting peer devices based at least in part on assigned priority levels of the one or more requesting peer devices. 
 
 
     
     
       15. The non-transitory computer readable medium of  claim 14 , wherein the instructions further comprise maintaining a list of peer devices whose subscriptions are serviced unconditionally by the first device, and exempting devices on the list from being assigned a priority level that is lower than a priority level of a requesting peer device determined to have access to one or more real-time information feeds from the second set. 
     
     
       16. The non-transitory computer readable medium of  claim 14 , wherein the instructions further comprise identifying one of the peer devices as an unprioritized peer device, and providing a requested information feed to the unprioritized peer device in order to determine whether the unprioritized peer device has access to real-time information feeds from the second set. 
     
     
       17. A first device configured to negotiate servicing subscriptions to real-time information feeds from a network including peer devices, wherein the real-time information feeds comprise real-time information that is delivered to subscribers on an ongoing basis as such real time information becomes available, the first device comprising:
 a processor and a memory configured to perform operations comprising:
 identifying a first set of real-time information feeds, wherein the first set of real-time information feeds corresponds to one or more of the real-time information feeds to which the first device is subscribed; 
 distributing the first set of real-time information feeds to the network for reception by one or more of the peer devices; 
 identifying a second set of real-time information feeds for subscription by the first device, wherein the second set of real-time information feeds corresponds to one or more real-time information feeds to which the first device is not subscribed; 
 receiving one or more requests from the network for information feeds from the first set, wherein each request is associated with a peer device; and 
 in response to a received request:
 providing a requested information feed from the first set to the network for reception by a requesting peer device in exchange for a real-time information feed in the second set for a period of time; 
 receiving the real-time information feed in the second set from the requesting peer device during the period of time; 
 determining a value of continued information feed exchange with the requesting peer device as a function of a volume of data transfer corresponding to the real time information feed in the second set per unit of time during the period of time, wherein the function assigns higher values to feeds having larger data volumes per unit of time, and wherein the volume of data transfer per unit of time provides a measure of data transfer demand on the requesting peer device pursuant to servicing a subscription to the real-time information feed in the second set; 
 assigning a priority level to the requesting peer device, wherein the assigned priority level:
 is higher for requesting peer devices having access to one or more real-time information feeds from the second set than for requesting peer devices failing to have access to one or more real-time information feeds in the second set; and 
 is assigned at least in part according to the determined value of continued information feed exchange with the requesting peer device; and 
 
 providing requested information feeds from the first set to the network for reception by one or more requesting peer devices based at least in part on assigned priority levels of the one or more requesting peer devices. 
 
 
 
     
     
       18. The first device of  claim 17 , wherein the operations which the processor and memory are configured to perform further comprise maintaining a list of peer devices whose subscriptions are serviced unconditionally by the first device, and exempting devices on the list from being assigned a priority level that is lower than a priority level of a requesting peer device determined to have access to one or more real-time information feeds from the second set. 
     
     
       19. The first device of  claim 17 , wherein the operations which the processor and memory are configured to perform further comprise identifying one of the peer devices as an unprioritized peer device, and providing a requested information feed to the unprioritized peer device in order to determine whether the unprioritized peer device has access to real-time information feeds from the second set. 
     
     
       20. The first device of  claim 17 , wherein distributing the first set of real-time information feeds to the network comprises exchanging tracking information with one or more of the peer devices. 
     
     
       21. The method of  claim 1 , wherein determining the value of the real-time information feed in the second set further comprises determining a number of connections to the real-time information feed in the second set and determining the value at least in part as a function of the number of connections. 
     
     
       22. The non-transitory computer readable medium of  claim 14 , wherein the instructions determining the value of the real-time information feed in the second set further comprise instructions determining a number of connections to the real-time information feed in the second set and determining the value at least in part as a function of the number of connections. 
     
     
       23. The first device of  claim 17 , wherein determining the value of the real-time information feed in the second set further comprises determining a number of connections to the real-time information feed in the second set and determining the value at least in part as a function of the number of connections.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.