Claims
- 1. In a networked communication system that does not require reliable networking connections and which includes a first communication node and a second communication node, wherein the communication nodes employ wireless communication when within communication range, a method for replicating data by employing opportunistic data transfer between the communication nodes to propagate redundant copies of the data, the method comprising the steps for:
using a first monitor at the first node and a second monitor at the second node to determine when the first and second nodes are within communication range, wherein at least one of the first and second nodes is mobile; creating a dynamic connection between the first and second nodes while in communication range; and replicating data across the dynamic connection.
- 2. A method as recited in claim 1, wherein the step for replicating includes comparing data stored locally at the first node with data stored locally at the second node.
- 3. A method as recited in claim 2, wherein if the data stored at the first node includes information that is not stored at the second node, the step for replicating includes storing a copy of the non-stored information at the second node.
- 4. A method as recited in claim 3, wherein the non-stored information includes an instruction to delete information.
- 5. A method as recited in claim 4, wherein the non-stored information includes an instruction to modify information.
- 6. A method as recited in claim 2, wherein the first node includes a first opportunistic data transfer protocol component and the second node includes a second opportunistic data transfer protocol component.
- 7. A method as recited in claim 6, wherein the first and second opportunistic data transfer components perform the steps for using the first and second monitors and for creating the dynamic connection.
- 8. A method as recited in claim 7, further including the steps for:
using the first and second monitors and a third monitor at a third node to determine when the first, second and third nodes are within communication range, wherein the third node includes a third opportunistic data transfer protocol component, and wherein at least one of the first, second and third nodes is mobile; and including the third node in the dynamic connection.
- 9. A method as recited in claim 8, wherein the step for replicating data includes replicating data among the first, second and third nodes.
- 10. A method as recited in claim 9, wherein when at least one ofthe first, second and third nodes is no longer within communication range, excluding the at least one node from the dynamic connection.
- 11. A method as recited in claim 10, wherein when the at least one node is again within communication range, including the at least one node in the dynamic connection and continuing to replicate data with the at least one node across the dynamic connection.
- 12. A method as recited in claim 7, wherein when the dynamic connection is disconnected and the first node is within communication range of a fourth node that includes a fourth opportunistic data transfer component and a fourth monitor, performing the steps for:
creating a second dynamic connection between the first and fourth nodes while the nodes are within communication range; and replicating data across the second dynamic connection.
- 13. A method as recited in claim 12, wherein the fourth node is an intended archival system that includes a storage device.
- 14. A method as recited in claim 13, wherein if the data stored at the first node includes information that is not preserved at the fourth node, the step for replicating includes storing an archival copy of the non-preserved information at the fourth node, and wherein when the non-preserved information is stored at the fourth node, initiating instructions from the fourth node to the first node to deleted the non-preserved information.
- 15. A method as recited in claim 14, wherein the fourth node is mobile.
- 16. A method as recited in claim 15, wherein when the first and fourth nodes are no longer within communication range, disconnecting the second dynamic connection.
- 17. A method as recited in claim 16, wherein when the first node is within communication range with a fifth node that includes a fifth monitor and a fifth opportunistic data transfer protocol component, performing the steps for:
creating a third dynamic connection between the first and fifth nodes while in communication range; and replicating data across the third dynamic connection, including deleting any non-preserved information at the fifth node.
- 18. A method as recited in claim 17, wherein the second and fifth nodes are the same node.
- 19. A dynamically mobile data communication system for use in moving data and facilitating the arrival of data at an intended archival location, the system comprising:
a plurality of communication nodes capable of employing wireless communication, wherein at least one of the nodes is mobile; a storage device located at each of the nodes; and an opportunistic data transfer protocol component located at each of the nodes, wherein when two or more of the nodes are within communication range, the component at each of the two or more nodes creates a dynamic connection for communication among the two or more nodes so long as the two or more nodes are within communication range.
- 20. A dynamically mobile data communication system as recited in claim 19, wherein at least one of the plurality of communication nodes is an intended archival system.
- 21. A dynamically mobile data communication system as recited in claim 20, wherein at least one of the plurality of communication nodes gathers data.
- 22. A dynamically mobile data communication system as recited in claim 21, wherein when the dynamic connection is created between at least two nodes of the plurality of nodes, data is replicated among the at least two nodes to provide a redundant copy of data at each of the at least two nodes.
- 23. A dynamically mobile data communication system as recited in claim 22, wherein the data is transmitted in segments.
- 24. A dynamically mobile data communication system as recited in claim 22, wherein the intended archival system propagates an instruction to one or more nodes of the plurality of nodes to delete data from each of the one or more nodes.
- 25. A dynamically mobile data communication system as recited in claim 24, wherein the instructions to delete are propagated upon creating a subsequent dynamic connection between two or more nodes of the plurality of nodes, wherein at least one of the two or more nodes includes the instruction to delete and issues the instruction to each of the two or more nodes of the subsequent dynamic connection.
- 26. A dynamically mobile data communication system as recited in claim 25, wherein when high priority data is gathered, transmitting the high priority data to a desired location through the use of a secure link.
- 27. A dynamically mobile data communication system as recited in claim 26, wherein the secure link includes one of a cellular link and a satellite link.
- 28. A dynamically mobile data communication system as recited in claim 27, wherein the high priority data is transferred in real-time.
- 29. A computer program product for implementing a method of opportunistic data transfer in a dynamically networked system, the computer program product comprising:
a computer-readable medium carrying computer executable instructions for performing the method, wherein the method comprises the steps for:
determining whether a first communication node and a second communication node are within communication range, wherein if the first and second nodes are within communication range, performing the steps for:
creating a dynamic network between the first and second nodes; determining whether the first and second nodes are privileged for data replication; if the first and second nodes are determined to be privileged for data replication, performing the steps for:
comparing data stored at the first node with data stored at the second node; if the data stored at the first node includes information that is not stored at the second node, replicating the non-stored information for storage at the second node; and if the data stored at the second node includes information not included in the data stored at the first node, transferring the non-included information for storage at the first node; and if the first and second nodes are not determined to be privileged for data exchange, performing the step for disconnecting the dynamic network.
- 30. A computer program product as recited in claim 29, wherein the non-stored information and the non-included information include one or more commands to modify data.
- 31. A computer program product as recited in claim 30, wherein the commands to modify include one or more commands to delete data.
- 32. A computer program product as recited in claim 31, wherein the step for comparing data includes comparing data headers.
- 33. A computer program product as recited in claim 31, wherein the step for comparing data includes comparing file directory information.
- 34. A computer program product as recited in claim 31, wherein the method further comprises the steps for:
determining whether data is high priority data; and if the data is high priority data, using a secure link to transmit the high priority data to an intended location.
- 35. A computer program product as recited in claim 34, wherein the secure link includes one of a cellular link, and a satellite link.
- 36. In a dynamic communication system that includes a plurality of communication nodes, where at least one of the nodes is mobile, a method for replicating data by employing opportunistic data transfer, the method comprising the acts of:
determining whether a first communication node and a second communication node are within communication range, wherein the first communication node is mobile; and wherein if the first and second nodes are within communication range, performing the acts of:
creating a dynamic network between the first and second nodes; determining whether the first and second nodes are privileged for data replication; if the first and second nodes are determined to be privileged for data replication, performing the acts of:
comparing data stored at the first node with data stored at the second node; if the data stored at the first node includes information that is not stored at the second node, replicating the non-stored information for storage at the second node; and if the data stored at the second node includes information not included in the data stored at the first node, transferring the non-included information for storage at the first node; and if the first and second nodes are not determined to be privileged for data exchange, performing the act of disconnecting the dynamic network.
- 37. A method as recited in claim 36, wherein the non-stored information and the non-included information include one or more commands to modify data.
- 38. A method as recited in claim 37, wherein the one or more commands to modify data include one or more commands to delete data.
- 39. A method as recited in claim 38, wherein the step for comparing data includes comparing data headers.
- 40. A computer program product as recited in claim 39, wherein the method further comprises the steps for:
determining whether data is high priority data; and if the data is high priority data, using a secure link to transmit the high priority data to an intended location.
- 41. A computer program product as recited in claim 40, wherein the secure link includes one of a cellular link, and a satellite link.
CONTRACTUAL ORIGIN OF THE INVENTION
[0001] This invention was made with United States Government support under Contract No. DE-AC07-94ID13223, now Contract No. DE-AC07-99ID13727 awarded by the United States Department of Energy. The United States Government has certain rights in the invention.