Claims
- 1. A method of tracking content in networks having transient network communities where a collection of the nodes making up the network may change over time, comprising steps of:
using a persistent node identifier for each node in the network, even though a different network address may be assigned to the node upon entering the network multiple times; creating a mapping between the persistent node identifier of each node and a current network address used by that node; and associating the persistent node identifier with content resources of nodes in the network.
- 2. The method according to claim 1, further comprising the step of using directed graphs to represent network traversal paths of the content resources.
- 3. The method according to claim 2, wherein nodes of each of the directed graphs represent nodes of the network through which one of the content resources has passed and arcs of the directed graphs represent the content resource passing from one node of the network to another.
- 4. The method according to claim 1, further comprising the step of storing meta-data for each content resource, wherein the meta-data comprises a persistent identifier of the content resource.
- 5. The method according to claim 4, wherein the meta-data further comprises information pertaining to creation of the content resource.
- 6. The method according to claim 5, wherein the information further comprises a creator of the content resource and a date and time of the creation.
- 7. The method according to claim 1, wherein the meta-data further comprises information pertaining to entry of the content resource into the network and a date and time of the entry into the network.
- 8. The method according to claim 4, wherein the meta-data further comprises a description of the content resource.
- 9. The method according to claim 8, wherein the description is provided to a user who evaluates whether the content resource is desired.
- 10. The method according to claim 3, further comprising the step of storing the directed graphs for the content resources in a traversal repository.
- 11. The method according to claim 3, further comprising the step of adding a node and arc to the directed graph each time one of the content resources is forwarded from one node of the network to another.
- 12. The method according to claim 3, wherein a structured markup language notation is used to specify the directed graph for each content resource.
- 13. The method according to claim 10, wherein the directed graphs are specified using endpoints of their arcs.
- 14. The method according to claim 13, wherein Xlink notation is used to specify the endpoints of each arc.
- 15. The method according to claim 3, further comprising the step of storing a content mapping which maps between a current location of a particular content resource and a persistent identifier of the content resource.
- 16. The method according to claim 15, wherein the persistent identifier of the content resource is stored as meta-data associated with the content resource and further comprising the step of using the persistent identifier in the associated meta-data to determine the current location of the content resource.
- 17. The method according to claim 13, further comprising the step of including, in each message that forwards content resources, a reference to the directed graphs for the forwarded content resources.
- 18. The method according to claim 17, further comprising steps of:
receiving, at a requesting node, a selected content resource and the reference to its directed graph; locating the directed graph using the included reference; and extending the located directed graph to include a final arc representing the node forwarding the selected content resource and the node receiving the selected content resource.
- 19. The method according to claim 18, wherein the final arc further comprises a persistent identifier of the selected content resource, and further comprising the step of storing the received content resource in a local content repository.
- 20. The method according to claim 18, further comprising the step of storing the received content resource in a local content repository.
- 21. The method according to claim 18, wherein the final arc further comprises a persistent identifier of the selected content resource, and further comprising the steps of:
storing the received content resource in a local content repository; and storing a content mapping for the received content resource, wherein the content mapping maps between a location where the received content resource was stored in the local content repository and a persistent identifier of the content resource.
- 22. The method according to claim 1, wherein the network is a peer-to-peer network.
- 23. A method for tracking content in networks having transient network communities where a collection of the nodes making up the network may change over time, comprising steps of:
storing a directed graph to represent a network traversal path of each content resource, wherein each arc of the directed graph represents the content resource traversing from one node of the network to another, and extending the directed graph for each content resource to reflect a subsequent traversal of the content resource from a node holding the content resource to a node receiving the content resource, wherein a persistent identifier is associated with each content resource and wherein each arc of the directed graph for a particular content resource specifies the associated persistent identifier.
- 24. The method according to claim 23, further comprising the step of storing, by each node, a mapping between the persistent identifier of each of the node's locally stored content resources and a current location of each of the locally stored content resources.
- 25. The method according to claim 24, further comprising the steps of:
identifying a selected content resource by its persistent identifier; and using the stored mapping for the selected content resource to determine its current location at a particular node.
- 26. The method according to claim 24, further comprising the steps of:
identifying a selected content resource by its persistent identifier; and using the stored mapping for the selected content resource to determine its network traversal path.
- 27. The method according to claim 23, wherein each node in the network has a persistent node identifier, and wherein the node holding a particular content resource and the node forwarding the particular content resource for each arc of the directed graph are identified using their persistent node identifiers.
- 28. The method according to claim 23, farther comprising the step of broadcasting a message, by each node as it enters the network, thereby advertising what content the node holds.
- 29. The method according to claim 28, further comprising the steps of:
requesting, by a node receiving the broadcast message, a particular content resource from the broadcasting node; receiving the requested content resource at the requesting node, along with a reference to the holding node's directed graph for that content resource; storing the received content resource in a local content repository; and storing a local copy of the directed graph for the received content resource, wherein the local copy includes the extension for traversing from the holding node to the receiving node.
- 30. The method according to claim 23, wherein the content resources comprise files which are available for sharing among nodes of the network.
- 31. The method according to claim 23, wherein the content resources comprise results of services which are available from nodes of the network.
- 32. A system for tracking content in networks having transient network communities where a collection of the nodes making up the network may change over time, comprising:
means for using a persistent node identifier for each node in the network, even though a different network address may be assigned to the node upon entering the network multiple times; means for creating a mapping between the persistent node identifier of each node and a current network address used by that node; means for associating the persistent node identifier with content resources of nodes in the network; and means for using directed graphs to represent network traversal paths of the content resources.
- 33. The system according to claim 32, wherein arcs of each of the directed graphs represent one of the content resources resource passing from one node of the network to another.
- 34. The system according to claim 32, further comprising means for storing meta-data for each content resource, wherein the meta-data comprises a persistent identifier of the content resource, information pertaining to (1) creation of the content resource or (2) entry of the content resource into the network, and a description of the content resource which may be provided to a user who evaluates whether the content resource is desired.
- 35. The system according to claim 34, wherein the information further comprises (1) a creator of the content resource and a date and time of the creation or (2) a date and time of the entry into the network.
- 36. The system according to claim 33, further comprising means for adding an arc to the directed graph each time one of the content resources is forwarded from one node of the network to another.
- 37. The system according to claim 33, further comprising:
means for storing a content mapping which maps between a current location of a particular content resource and a persistent identifier of the content resource, wherein the persistent identifier of the content resource is stored as meta-data associated with the content resource; and means for using the persistent identifier in the associated meta-data to determine the current location of the content resource.
- 38. The system according to claim 33, further comprising means for including, in each message that forwards content resources, a reference to the directed graphs for the forwarded content resources.
- 39. The system according to claim 38, further comprising:
means for receiving, at a requesting node, a selected content resource and the reference to its directed graph; means for locating the directed graph using the included reference; and means for extending the located directed graph to include a final arc representing the node forwarding the selected content resource and the node receiving the selected content resource.
- 40. A computer program product for tracking content in ad hoc networks where a collection of the nodes making up the network may change over time, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for storing a directed graph to represent a network traversal path of each content resource, wherein each arc of the directed graph represents the content resource traversing from one node of the network to another, and computer-readable program code means for extending the directed graph for each content resource to reflect a subsequent traversal of the content resource from a node holding the content resource to a node receiving the content resource, wherein a persistent identifier is associated with each content resource and wherein each arc of the directed graph for a particular content resource specifies the associated persistent identifier.
- 41. The computer program product according to claim 40, further comprising:
computer-readable program code means for storing, by each node, a mapping between the persistent identifier of each of the node's locally stored content resources and a current location of each of the locally stored content resources; computer-readable program code means for identifying a selected content resource by its persistent identifier; and computer-readable program code means for using the stored mapping for the selected content resource to determine its current location at a particular node.
- 42. The computer program product according to claim 40, further comprising:
computer-readable program code means for identifying a selected content resource by its persistent identifier; and computer-readable program code means for using the stored mapping for the selected content resource to determine its network traversal path.
- 43. The computer program product according to claim 40, wherein each node in the network has a persistent node identifier, and wherein the node holding a particular content resource and the node forwarding the particular content resource for each arc of the directed graph are identified using their persistent node identifiers.
- 44. The computer program product according to claim 40, further comprising:
computer-readable program code means for broadcasting a message, by each node as it enters the network, thereby advertising what content the node holds; computer-readable program code means for requesting, by a node receiving the broadcast message, a particular content resource from the broadcasting node; computer-readable program code means for receiving the requested content resource at the requesting node, along with a reference to the holding node's directed graph for that content resource; computer-readable program code means for storing the received content resource in a local content repository; and computer-readable program code means for storing a local copy of the directed graph for the received content resource, wherein the local copy includes the extension for traversing from the holding node to the receiving node.
RELATED INVENTIONS
[0001] The present invention is related to the following commonly-assigned inventions, all of which were filed concurrently herewith and which are hereby incorporated herein by reference: U.S. Pat. No. ______ (Ser. No. ______), titled “Interminable Peer Relationships in Transient Communities”; U.S. Pat. No. ______ (Ser. No. ______), titled “Broadcast Tiers in Decentralized Networks”; U.S. Pat. No. ______ (Ser. No. ______), titled “Providing Management Functions in Decentralized Networks”; U.S. Pat. No. ______ (Ser. No. ______), titled “Persisting Node Reputations in Transient Communities”; and U.S. Pat. No. ______ (Ser. No. ______), titled “Managing Storage Resources in Decentralized Networks”.