Claims
- 1. A method for scheduling a transfer in a communications network, said method comprising the steps of:
(a) receiving a scheduling request at a first node for a transfer of data from a second node for a third node; and (b) determining, at said first node, whether sufficient resources exist at said second node for transmitting said data.
- 2. A method according to claim 1, wherein said first node is a virtual node corresponding to said second node, wherein said first node stores information about said second node corresponding to resource available at said second node.
- 3. A method according to claim 2, wherein said information includes data storage available at said second node and bandwidth available at said second node.
- 4. A method according to claim 3, wherein said bandwidth includes receive bandwidth and transmit bandwidth.
- 5. A method according to claim 1, wherein said step (b) includes the step of:
(1) generating, at said first node, a send bandwidth schedule that said second node can employ to transfer said data.
- 6. A method according to claim 5, wherein said send bandwidth schedule is generated in said step (b)(1), based, at least in part, on at least one constraint associated with said second node and a scheduling request bandwidth schedule associated with said scheduling request.
- 7. A method according to claim 6, wherein said at least one constraint includes a constraint bandwidth schedule.
- 8. A method according to claim 7, wherein said constraint bandwidth schedule specifies a limit on transferring data.
- 9. A method according to claim 5, wherein said method further includes the step of:
(c) said first node instructing said second node to reserve bandwidth for transmitting said data according to said send bandwidth schedule.
- 10. A method according to claim 1, wherein said method further includes the step of:
(d) determining, at said first node, whether said second node is able to obtain said data.
- 11. A method according to claim 10, wherein said step (d) includes the step of:
(1) said first node issuing a second scheduling request for a data source to transfer said data to said second node.
- 12. A method according to claim 11, wherein said data source has a corresponding second virtual node and said method further includes the step of:
(e) said second virtual node receiving said second scheduling request.
- 13. A method according to claim 12, wherein said method further includes the steps of:
(f) said second virtual node generating a second send bandwidth schedule for said data source to provide said data to said second node; and (g) said data source transmitting said data to said second node.
- 14. A method according to claim 13, wherein said data source transmits said data according to said second send bandwidth schedule generated by said second virtual node.
- 15. A method according to claim 11, wherein said second scheduling request is issued to a proxy.
- 16. A method according to claim 15, wherein said proxy is a forward proxy associated with said data source.
- 17. A method according to claim 15, wherein said proxy is a reverse proxy associated with said data source.
- 18. A method according to claim 11, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 19. A method according to claim 11, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from a second virtual node corresponding to said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 20. A method according to claim 11, wherein said step (d) further includes the step of:
(5) determining, at said first node, whether sufficient resources exist at said second node for receiving said data.
- 21. A method according to claim 20, wherein said step (d) further includes the step of:
(6) receiving, at said first node, an acceptance of said second scheduling request.
- 22. A method according to claim 21, wherein said step (d) further includes the step of:
(7) said first node instructing said second node to reserve bandwidth for receiving said data.
- 23. A method according to claim 11, wherein said step (d) further includes the step of:
(8) receiving, at said first node, a rejection to said second scheduling request; and (9) determining, at said first node, whether a lower priority request can be preempted to accommodate said second scheduling request.
- 24. A method according to claim 1, wherein said method further includes the step of:
(h) said first node informing said third node that said scheduling request is accepted.
- 25. A method according to claim 24, wherein said method further includes the step of:
(j) said first node informing said third node to reserve bandwidth for receiving said data.
- 26. A method according to claim 25, wherein said method further includes the step of:
(k) reserving bandwidth at said third node for receiving said data in response to said step (j); and (l) receiving said data.
- 27. A method according to claim 1, wherein said method further includes the step of:
(m) transmitting said data from said second node according to a bandwidth schedule generated by said first node.
- 28. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method for scheduling a transfer in a communications network, said method comprising the steps of:
(a) receiving a scheduling request at a first node for a transfer of data from a second node for a third node; and (b) determining, at said first node, whether sufficient resources exist at said second node for transmitting said data.
- 29. One or more processor readable storage devices according to claim 28, wherein said first node is a virtual node corresponding to said second node, wherein said first node stores information about said second node corresponding to resource available at said second node.
- 30. One or more processor readable storage devices according to claim 29, wherein said information includes data storage available at said second node and bandwidth available at said second node.
- 31. One or more processor readable storage devices according to claim 30, wherein said bandwidth includes receive bandwidth and transmit bandwidth.
- 32. One or more processor readable storage devices according to claim 28, wherein said step (b) includes the step of:
(1) generating, at said first node, a send bandwidth schedule that said second node can employ to transfer said data.
- 33. One or more processor readable storage devices according to claim 32, wherein said send bandwidth schedule is generated in said step (b)(1), based, at least in part, on at least one constraint associated with said second node and a scheduling request bandwidth schedule associated with said scheduling request.
- 34. One or more processor readable storage devices according to claim 33, wherein said at least one constraint includes a constraint bandwidth schedule.
- 35. One or more processor readable storage devices according to claim 32, wherein said method further includes the step of:
(c) said first node instructing said second node to reserve bandwidth for transmitting said data according to said send bandwidth schedule.
- 36. One or more processor readable storage devices according to claim 28, wherein said method further includes the step of:
(d) determining, at said first node, whether said second node is able to obtain said data.
- 37. One or more processor readable storage devices according to claim 36, wherein said step (d) includes the step of:
(1) said first node issuing a second scheduling request for a data source to transfer said data to said second node.
- 38. One or more processor readable storage devices according to claim 37, wherein said data source has a corresponding second virtual node.
- 39. One or more processor readable storage devices according to claim 37, wherein said second scheduling request is issued to a proxy.
- 40. One or more processor readable storage devices according to claim 37, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 41. One or more processor readable storage devices according to claim 37, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from a second virtual node corresponding to said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 42. One or more processor readable storage devices according to claim 37, wherein said step (d) further includes the step of:
(5) determining, at said first node, whether sufficient resources exist at said second node for receiving said data.
- 43. One or more processor readable storage devices according to claim 42, wherein said step (d) further includes the step of:
(6) receiving, at said first node, an acceptance of said second scheduling request.
- 44. One or more processor readable storage devices according to claim 43, wherein said step (d) further includes the step of:
(7) said first node instructing said second node to reserve bandwidth for receiving said data.
- 45. One or more processor readable storage devices according to claim 37, wherein said step (d) further includes the step of:
(8) receiving, at said first node, a rejection to said second scheduling request; and (9) determining, at said first node, whether a lower priority request can be preempted to accommodate said second scheduling request.
- 46. One or more processor readable storage devices according to claim 28, wherein said method further includes the step of:
(e) said first node informing said third node that said scheduling request is accepted.
- 47. One or more processor readable storage devices according to claim 46, wherein said method further includes the step of:
(f) said first node informing said third node to reserve bandwidth for receiving said data.
- 48. An apparatus comprising:
one or more communications interfaces; one or more storage devices; and one or more processors in communication with said one or more storage devices and said one or more communication interfaces, said one or more processors perform a method for scheduling a transfer in a communications network, said method comprising the steps of: (a) receiving a scheduling request at a first node for a transfer of data from a second node for a third node; and (b) determining, at said first node, whether sufficient resources exist at said second node for transmitting said data.
- 49. An apparatus according to claim 48, wherein said first node is a virtual node corresponding to said second node, wherein said first node stores information about said second node corresponding to resource available at said second node.
- 50. An apparatus according to claim 48, wherein said step (b) includes the step of:
(1) generating, at said first node, a send bandwidth schedule that said second node can employ to transfer said data.
- 51. An apparatus according to claim 50, wherein said send bandwidth schedule is generated in said step (b)(1), based, at least in part, on at least one constraint associated with said second node and a scheduling request bandwidth schedule associated with said scheduling request.
- 52. An apparatus according to claim 50, wherein said method further includes the step of:
(c) said first node instructing said second node to reserve bandwidth for transmitting said data according to said send bandwidth schedule.
- 53. An apparatus according to claim 48, wherein said method further includes the step of:
(d) determining, at said first node, whether said second node is able to obtain said data.
- 54. An apparatus according to claim 53, wherein said step (d) includes the step of:
(1) said first node issuing a second scheduling request for a data source to transfer said data to said second node.
- 55. An apparatus according to claim 54, wherein said second scheduling request is issued to a proxy.
- 56. An apparatus according to claim 54, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 57. An apparatus according to claim 54, wherein said step (d) further includes the steps of:
(2) receiving a reverse proxy from a second virtual node corresponding to said data source; (3) updating a redirection table based on said reverse proxy; and (4) issuing a third scheduling request to said reverse proxy for said data to be transferred to said second node.
- 58. An apparatus according to claim 54, wherein said step (d) further includes the step of:
(5) determining, at said first node, whether sufficient resources exist at said second node for receiving said data.
- 59. An apparatus according to claim 58, wherein said step (d) further includes the steps of:
(6) receiving, at said first node, an acceptance of said second scheduling request; and (7) said first node instructing said second node to reserve bandwidth for receiving said data.
- 60. An apparatus according to claim 54, wherein said step (d) further includes the step of:
(8) receiving, at said first node, a rejection to said second scheduling request; and (9) determining, at said first node, whether a lower priority request can be preempted to accommodate said second scheduling request.
- 61. An apparatus according to claim 48, wherein said method further includes the step of:
(e) said first node informing said third node that said scheduling request is accepted.
- 62. An apparatus according to claim 61, wherein said method further includes the step of:
(f) said first node informing said third node to reserve bandwidth for receiving said data.
- 63. A method for scheduling a transfer in a communications network, said method comprising the steps of:
(a) a first node issuing a scheduling request for a second node to transfer data to a third node, wherein said first node is a virtual node corresponding to said third node; and (b) receiving said data at said third node.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This Application is related to the following Applications:
[0002] U.S. patent application Ser. No. 09/853,816, entitled “System and Method for Controlling Data Transfer Rates on a Network,” filed May 11, 2001;
[0003] U.S. patent application Ser. No. 09/935,016, entitled “System and Method for Scheduling and Executing Data Transfers Over a Network,” filed Aug. 21, 2001;
[0004] U.S. patent application Ser. No. 09/852,464, entitled “System and Method for Automated and Optimized File Transfers Among Devices in a Network,” filed May 9, 2001; and
[0005] U.S. patent application Ser. No.______, entitled “Scheduling Data Transfers for Multiple Use Requests,” Attorney Docket No. RADI-01000US0, filed on the same day as the present application.
[0006] Each of these related Applications is incorporated herein by reference.