Claims
- 1. A computer implemented method for scheduling a transfer in a communications network, said method comprising the steps of:
(a) generating a composite bandwidth schedule using a plurality of bandwidth schedules, wherein said composite bandwidth schedule identifies amounts of data required at a plurality of intervals to satisfy data demands of said plurality of bandwidth schedules; and (b) receiving send data, wherein said send data satisfies said amounts of data required at said plurality of intervals.
- 2. A computer implemented method according to claim 1, wherein said composite bandwidth schedule is a latest possible schedule for obtaining data that satisfies all of said plurality of bandwidth schedules.
- 3. A computer implemented method according to claim 1, wherein said step (a) includes the steps of:
(1) selecting an interval, wherein said plurality of bandwidth schedules have constant values within said interval; and (2) setting at least one bandwidth value for said composite bandwidth schedule within said interval.
- 4. A computer implemented method according to claim 3, wherein said at least one bandwidth value set in said step (a)(2) is based, at least in part, on an amount of cumulative data required by each of said plurality of bandwidth schedules through a time period ending at an end of said interval.
- 5. A computer implemented method according to claim 4, wherein said at least one bandwidth value set in said step (a)(2) causes an amount of cumulative data specified by said composite bandwidth schedule through said interval to be not less than an amount of cumulative data specified by a first bandwidth schedule in said plurality of bandwidth schedules through said interval, wherein said first bandwidth schedule specifies more cumulative data through said interval than any other bandwidth schedule in said plurality of bandwidth schedules.
- 6. A computer implemented method according to claim 5, wherein said at least one bandwidth value set in said step (a)(2) causes said amount of cumulative data specified by said composite bandwidth schedule through said interval to equal said amount of data specified by said first bandwidth schedule through said interval.
- 7. A computer implemented method according to claim 3, wherein:
said plurality of bandwidth schedules includes a first bandwidth schedule and a second bandwidth schedule, a first cumulative amount of data is specified by said first bandwidth schedule through an end of said interval, a second cumulative amount of data is specified by said second bandwidth schedule through an end of said interval, and said step (a)(2) includes the step of:
(i) determining whether cumulative data specified by said first bandwidth schedule and cumulative data specified by said second bandwidth schedule crossover within said interval.
- 8. A computer implemented method according to claim 7, wherein it is determined in said step (a)(2)(i) that said crossover does not occur within said interval and said step (a)(2) further includes the step of:
(ii) setting a single bandwidth value for said composite bandwidth schedule within said interval.
- 9. A computer implemented method according to claim 8, wherein:
said single bandwidth value is equal to a value for said first bandwidth schedule within said interval, if said first cumulative amount of data is greater than said second cumulative amount of data within said interval, and said single bandwidth value is equal to a value for said second bandwidth schedule within said interval, if said second cumulative amount of data is greater than said first cumulative amount of data within said interval.
- 10. A computer implemented method according to claim 7, wherein it is determined in said step (a)(2)(i) that said crossover did occur within said interval and said step (a)(2) further includes the step of:
(iii) identifying an integer crossover point within said interval.
- 11. A computer implemented method according to claim 10, wherein said integer crossover point is an end point in said interval and said step (a)(2) further includes the step of:
(iv) setting two bandwidth values for said composite bandwidth schedule within said interval.
- 12. A computer implemented method according to claim 11, wherein:
said composite bandwidth schedule includes:
a first segment extending from a start of said interval to all time prior to said integer crossover point, and a second segment extending from said integer crossover point to an end of said interval, and said step (a)(2)(vi) includes the steps of:
setting said composite bandwidth schedule equal to said second bandwidth schedule for said first segment, and setting said composite bandwidth schedule equal to a first value for said second segment, wherein said first value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 13. A computer implemented method according to claim 12, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 14. A computer implemented method according to claim 10, wherein said integer crossover point is a start point in said interval and said interval is a single unit and said step (a)(2) further includes the step of:
(v) setting a single bandwidth value for said composite bandwidth schedule within said interval.
- 15. A computer implemented method according to claim 14, wherein said single composite bandwidth value is equal to a second value, wherein said second value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 16. A computer implemented method according to claim 15, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 17. A computer implemented method according to claim 10, wherein said integer crossover point is a start point in said interval and said interval is greater than a single unit and said step (a)(2) further includes the step of:
(vi) setting two bandwidth values for said composite bandwidth schedule within said interval.
- 18. A computer implemented method according to claim 17, wherein:
said composite bandwidth schedule includes:
a first segment extending from said start point to all time prior to said start point plus one unit of time, and a second segment extending from said start point plus one unit of time to an end of said interval, and said step (a)(2)(vi) includes the steps of:
setting said composite bandwidth schedule equal to a third value for said first segment, and setting said composite bandwidth schedule equal to said first bandwidth schedule for said second segment, wherein said third value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 19. A computer implemented method according to claim 18, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 20. A computer implemented method according to claim 10, wherein said step (a)(2) further includes the step of:
(vii) setting three bandwidth values for said composite bandwidth schedule within said interval.
- 21. A computer implemented method according to claim 20, wherein:
said composite bandwidth schedule includes:
a first segment extending from a start point of said interval to all time prior to said integer crossover point, a second segment extending from said integer crossover point to all time prior to said integer crossover point plus one unit of time, and a third segment extending from said integer crossover point plus one unit of time to an end of said interval, and said step (a)(2)(vii) includes the steps of:
setting said composite bandwidth schedule equal to said second bandwidth schedule for said first segment, setting said composite bandwidth schedule equal to a fourth value for said second segment, and setting said composite bandwidth schedule equal to said first bandwidth schedule for said third segment, wherein said fourth value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 22. A computer implemented method according to claim 21, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 23. A computer implemented method according to claim 3, wherein said steps (a)(1) and (a)(2) are performed for each interval in each of said plurality of bandwidth schedules.
- 24. A computer implemented method according to claim 1, wherein said send data is received according to a send bandwidth schedule derived at least in part using said composite bandwidth schedule.
- 25. A computer implemented method according to claim 24, wherein said method further includes the step of:
(c) issuing an external scheduling request for data satisfying said composite bandwidth schedule; and (d) reserving bandwidth according to said send bandwidth schedule for receiving said send data.
- 26. A computer implemented method according to claim 25, wherein said method further includes the step of:
(e) receiving a plurality of scheduling requests for a data transfer; (f) generating said plurality of bandwidth schedules to perform said data transfer in response to said plurality of scheduling requests.
- 27. A computer implemented method according to claim 26, wherein said method further includes the step of:
(g) determining that multiple scheduling requests were received for said data transfer.
- 28. A computer implemented method according to claim 25, wherein said method further includes the steps of:
(h) determining whether sufficient bandwidth exists for transmitting said send data to satisfy said composite bandwidth, schedule; and (j) reserving bandwidth according to said send bandwidth schedule for transmitting said send data.
- 29. A computer implemented method according to claim 28, wherein said send bandwidth schedule is a latest possible schedule for transmitting said send data and satisfying said composite bandwidth schedule without violating at least one constraint.
- 30. A computer implemented method according to claim 28, wherein said step (h) includes the step of:
(1) creating said send bandwidth schedule.
- 31. A computer implemented method according to claim 28, wherein said determination made in said step (h) is made based, at least in part, on said composite bandwidth schedule and a constraint bandwidth schedule.
- 32. A computer implemented method according to claim 31, wherein said step (h) includes the steps of:
(1) selecting an interval, wherein said composite bandwidth schedule and said constraint bandwidth schedule have unchanged values within said interval; and (2) setting at least one bandwidth value for said send bandwidth schedule within said interval.
- 33. A computer implemented method according to claim 32, wherein said step (h)(2) includes the step of:
(i) setting said send bandwidth schedule equal to said constraint bandwidth schedule during said interval.
- 34. A computer implemented method according to claim 33, wherein:
a composite cumulative amount of data is specified by said composite bandwidth schedule in a range spanning a start of said interval through an end of said composite bandwidth schedule, a send cumulative amount of data is specified by said send bandwidth schedule in a range spanning said start of said interval through an end of said composite bandwidth schedule, and said step (h)(2) includes the step of:
(ii) determining whether cumulative data specified by said send bandwidth schedule and cumulative data specified by said composite bandwidth schedule crossover within said interval.
- 35. A computer implemented method according to claim 34, wherein it is determined in said step (h)(2)(ii) that said crossover does not occur within said interval and said constraint bandwidth schedule is not less than said composite bandwidth schedule within said interval, and said step (h)(2) further includes the step of:
(iii) setting a single bandwidth value for said send bandwidth schedule within said interval.
- 36. A computer implemented method according to claim 35, wherein:
said single bandwidth value is equal to a value for said constraint bandwidth schedule within said interval.
- 37. A computer implemented method according to claim 34, wherein it is determined in said step (h)(2)(ii) that said crossover does occur within said interval and said constraint bandwidth schedule is not less than said composite bandwidth schedule within said interval, and said step (h)(2) further includes the step of:
(iv) identifying an integer crossover point within said interval.
- 38. A computer implemented method according to claim 37, wherein said integer crossover point is a start point in said interval and said step (h)(2) further includes the step of:
(v) setting two bandwidth values for said send bandwidth schedule within said interval.
- 39. A computer implemented method according to claim 38, wherein:
said send bandwidth schedule includes:
a first segment extending from a start of said interval to all time prior to said start of said interval plus one unit of time, and a second segment extending from said start of said interval plus one unit of time to an end of said interval, and said step (a)(2)(v) includes the steps of:
setting said send bandwidth schedule equal to a first value for said first segment, and setting said send bandwidth schedule equal to said constraint bandwidth schedule for said second segment, wherein said first value causes said send bandwidth schedule to specify a cumulative amount of data in a range spanning said start of said interval through an end of said composite bandwidth schedule equal to said composite cumulative amount of data.
- 40. A computer implemented method according to claim 37, wherein said integer crossover point is an end point in said interval and said interval is a single unit and said step (h)(2) further includes the step of:
(vi) setting a single bandwidth value for said send bandwidth schedule within said interval.
- 41. A computer implemented method according to claim 40, wherein said single bandwidth value is equal to a second value, wherein said second value causes said send bandwidth schedule to specify a cumulative amount of data in a range spanning said start of said interval through an end of said composite bandwidth schedule equal to said composite cumulative amount of data.
- 42. A computer implemented method according to claim 37, wherein said integer crossover point is an end point in said interval and said interval is greater than a single unit and said step (h)(2) further includes the step of:
(vii) setting two bandwidth values for said send bandwidth schedule within said interval.
- 43. A computer implemented method according to claim 42, wherein:
said send bandwidth schedule includes:
a first segment extending from an end of said interval minus one unit to said end of said interval, and a second segment extending from a start of said interval to all time prior to said end of said interval minus one unit of time, and said step (h)(2)(vii) includes the steps of:
setting said send bandwidth schedule equal to a third value for said first segment, and setting said send bandwidth schedule equal to said composite bandwidth schedule for said second segment, wherein said third value causes said send bandwidth schedule to specify a cumulative amount of data in a range spanning said start of said interval through an end of said composite bandwidth schedule equal to said composite cumulative amount of data.
- 44. A computer implemented method according to claim 37, wherein said step (h)(2) further includes the step of:
(viii) setting three bandwidth values for said composite bandwidth schedule within said interval.
- 45. A computer implemented method according to claim 44, wherein:
said send bandwidth schedule includes:
a first segment extending from a start of said interval to all time prior to said integer crossover point less one unit of time, a second segment extending from said integer crossover point less one unit of time to all time prior to said integer crossover point, a third segment extending from said integer crossover point to said end of said interval, and said step (a)(2)(viii) includes the steps of:
setting said send bandwidth schedule equal to said composite bandwidth schedule for said first segment, setting said send bandwidth schedule equal to a fourth value for said second segment, and setting said send bandwidth schedule equal to said constraint bandwidth schedule for said third segment, wherein said fourth value causes said send bandwidth schedule to specify a cumulative amount of data in a range spanning said start of said interval through an end of said composite bandwidth schedule equal to said composite cumulative amount of data.
- 46. A computer implemented method according to claim 32, wherein said steps (h)(1) and (h)(2) are performed for each interval in said composite bandwidth schedule and said constraint bandwidth schedule.
- 47. 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) generating a composite bandwidth schedule using a plurality of bandwidth schedules, wherein said composite bandwidth schedule identifies amounts of data required at a plurality of intervals to satisfy data demands of said plurality of bandwidth schedules; and (b) receiving send data, wherein said send data satisfies said amounts of data required at said plurality of intervals.
- 48. One or more processor readable storage devices according to claim 47, wherein said composite bandwidth schedule is a latest possible schedule for obtaining data that satisfies all of said plurality of bandwidth schedules.
- 49. One or more processor readable storage devices according to claim 47, wherein said step (a) includes the steps of:
(1) selecting an interval, wherein said plurality of bandwidth schedules have constant values within said interval; and (2) setting at least one bandwidth value for said composite bandwidth schedule within said interval.
- 50. One, or more processor readable storage devices according to claim 49, wherein said at least one bandwidth value set in said step (a)(2) is based, at least in part, on an amount of cumulative data required by each of said plurality of bandwidth schedules through a time period ending at an end of said interval.
- 51. One or more processor readable storage devices according to claim 50, wherein said at least one bandwidth value set in said step (a)(2) causes an amount of cumulative data specified by said composite bandwidth schedule through said interval to be not less than an amount of cumulative data specified by a first bandwidth schedule in said plurality of bandwidth schedules through said interval, wherein said first bandwidth schedule specifies more cumulative data through said interval than any other bandwidth schedule in said plurality of bandwidth schedules.
- 52. One or more processor readable storage devices according to claim 51, wherein said at least one bandwidth value set in said step (a)(2) causes said amount of cumulative data specified by said composite bandwidth schedule through said interval to equal said amount of data specified by said first bandwidth schedule through said interval.
- 53. One or more processor readable storage devices according to claim 49, wherein:
said plurality of bandwidth schedules includes a first bandwidth schedule and a second bandwidth schedule, a first cumulative amount of data is specified by said first bandwidth schedule through an end of said interval, a second cumulative amount of data is specified by said second bandwidth schedule through an end of said interval, and said step (a)(2) includes the step of:
(i) determining whether cumulative data specified by said first bandwidth schedule and cumulative data specified by said second bandwidth schedule crossover within said interval.
- 54. One or more processor readable storage devices according to claim 53, wherein it is determined in said step (a)(2)(i) that said crossover does not occur within said interval and said step (a)(2) further includes the step of:
(ii) setting a single bandwidth value for said composite bandwidth schedule within said interval.
- 55. One or more processor readable storage devices according to claim 54, wherein:
said single bandwidth value is equal to a value for said first bandwidth schedule within said interval, if said first cumulative amount of data is greater than said second cumulative amount of data within said interval, and said single bandwidth value is equal to a value for said second bandwidth schedule within said interval, if said second cumulative amount of data is greater than said first cumulative amount of data within said interval.
- 56. One or more processor readable storage devices according to claim 53, wherein it is determined in said step (a)(2)(i) that said crossover did occur within said interval and said step (a)(2) further includes the step of:
(iii) identifying an integer crossover point within said interval.
- 57. One or more processor readable storage devices according to claim 56, wherein said integer crossover point is an end point in said interval and said step (a)(2) further includes the step of:
(iv) setting two bandwidth values for said composite bandwidth schedule within said interval.
- 58. One or more processor readable storage devices according to claim 57, wherein:
said composite bandwidth schedule includes:
a first segment extending from a start of said interval to all time prior to said integer crossover point, and a second segment extending from said integer crossover point to an end of said interval, and said step (a)(2)(vi) includes the steps of:
setting said composite bandwidth schedule equal to said second bandwidth schedule for said first segment, and setting said composite bandwidth schedule equal to a first value for said second segment, wherein said first-value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 59. One or more processor readable storage devices according to claim 58, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 60. One or more processor readable storage devices according to claim 56, wherein said integer crossover point is a start point in said interval and said interval is a single unit and said step (a)(2) further includes the step of:
(v) setting a single bandwidth value for said composite bandwidth schedule within said interval.
- 61. One or more processor readable storage devices according to claim 60, wherein said single composite bandwidth value is equal to a second value, wherein said second value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 62. One or more processor readable storage devices according to claim 61, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 63. One or more processor readable storage devices according to claim 56, wherein said integer crossover point is a start point in said interval and said interval is greater than a single unit and said step (a)(2) further includes the step of:
(vi) setting two bandwidth values for said composite bandwidth schedule within said interval.
- 64. One or more processor readable storage devices according to claim 63, wherein:
said composite bandwidth schedule includes:
a first segment extending from said start point to all time prior to said start point plus one unit of time, and a second segment extending from said start point plus one unit of time to an end of said interval, and said step (a)(2)(vi) includes the steps of:
setting said composite bandwidth schedule equal to a third value for said first segment, and setting said composite bandwidth schedule equal to said first bandwidth schedule for said second segment, wherein said third value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 65. One or more processor readable storage devices according to claim 64, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 66. One or more processor readable storage devices according to claim 56, wherein said step (a)(2) further includes the step of:
(vii) setting three bandwidth values for said composite bandwidth schedule within said interval.
- 67. One or more processor readable storage devices according to claim 66, wherein:
said composite bandwidth schedule includes:
a first segment extending from a start point of said interval to all time prior to said integer crossover point, a second segment extending from said integer crossover point to all time prior to said integer crossover point plus one unit of time, and a third segment extending from said integer crossover point plus one unit of time to an end of said interval, and said step (a)(2)(vii) includes the steps of:
setting said composite bandwidth schedule equal to said second bandwidth schedule for said first segment, setting said composite bandwidth schedule equal to a fourth value for said second segment, and setting said composite bandwidth schedule equal to said first bandwidth schedule for said third segment, wherein said fourth value causes said composite bandwidth schedule to specify a cumulative amount of data through said interval equal to said first cumulative amount of data.
- 68. One or more processor readable storage devices according to claim 67, wherein said first cumulative amount of data is greater than said second cumulative amount of data.
- 69. One or more processor readable storage devices according to claim 49, wherein said steps (a)(1) and (a)(2) are performed for each interval in each of said plurality of bandwidth schedules.
- 70. One or more processor readable storage devices according to claim 47, wherein said send data is received according to a send bandwidth schedule derived at least in part using said composite bandwidth schedule.
- 71. One or more processor readable storage devices according to claim 70, wherein said method further includes the step of:
(c) issuing an external scheduling request for data satisfying said composite bandwidth schedule; and (d) reserving bandwidth according to said send bandwidth schedule for receiving said send data.
- 72. One or more processor readable storage devices according to claim 71, wherein said method further includes the step of:
(e) receiving a plurality of scheduling requests for a data transfer; (f) generating said plurality of bandwidth schedules to perform said data transfer in response to said plurality of scheduling requests.
- 73. One or more processor readable storage devices according to claim 72, wherein said method further includes the step of:
(g) determining that multiple scheduling requests were received for said data transfer.
- 74. One or more processor readable storage devices according to claim 70, wherein said send bandwidth schedule is a latest possible schedule for transmitting said send data and satisfying said composite bandwidth schedule without violating at least one constraint.
- 75. 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) generating a composite bandwidth schedule using a plurality of bandwidth schedules, wherein said composite bandwidth schedule identifies amounts of data required at a plurality of intervals to satisfy data demands of said plurality of bandwidth schedules; and (b) receiving send data, wherein said send data satisfies said amounts of data required at said plurality of intervals.
- 76. An apparatus according to claim 75, wherein said composite bandwidth schedule is a latest possible schedule for obtaining data that satisfies all of said plurality of bandwidth schedules.
- 77. An apparatus according to claim 75, wherein said step (a) includes the steps of:
(1) selecting an interval, wherein said plurality of bandwidth schedules have constant values within said interval; and (2) setting at least one bandwidth value for said composite bandwidth schedule within said interval.
- 78. An apparatus according to claim 77, wherein said at least one bandwidth value set in said step (a)(2) is based, at least in part, on an amount of cumulative data required by each of said plurality of bandwidth schedules through a time period ending at an end of said interval.
- 79. An apparatus according to claim 78, wherein said at least one bandwidth value set in said step (a)(2) causes an amount of cumulative data specified by said composite bandwidth schedule through said interval to be not less than an amount of cumulative data specified by a first bandwidth schedule in said plurality of bandwidth schedules through said interval, wherein said first bandwidth schedule specifies more cumulative data through said interval than any other bandwidth schedule in said plurality of bandwidth schedules.
- 80. An apparatus according to claim 79, wherein said at least one bandwidth value set in said step (a)(2) causes said amount of cumulative data specified by said composite bandwidth schedule through said interval to equal said amount of data specified by said first bandwidth schedule through said interval.
- 81. An apparatus according to claim 75, wherein said send data is received according to a send bandwidth schedule derived at least in part using said composite bandwidth schedule.
- 82. An apparatus according to claim 81, wherein said method further includes the step of:
(c) receiving a plurality of scheduling requests for a data transfer; (d) generating said plurality of bandwidth schedules to perform said data transfer in response to said plurality of scheduling requests; (e) determining that multiple scheduling requests were received for said data transfer; (f) issuing an external scheduling request for data satisfying said composite bandwidth schedule; and (g) reserving bandwidth according to said send bandwidth schedule for receiving said send data.
- 83. An apparatus according to claim 81, wherein said send bandwidth schedule is a latest possible schedule for transmitting said send data and satisfying said composite bandwidth schedule without violating at least one constraint.
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 Using Virtual Nodes,” Attorney Docket No. RADI-01001US0, filed on the same day as the present application.
[0006] Each of these related Applications is incorporated herein by reference.