The coordination of resource allocation among end points in controlled networks as in grids or data centers often requires a service to transfer large data sets within time intervals. Such transfers commonly start some time after its request, use any variable bandwidth, and must complete before a deadline.
A profile is a step function that expresses a variable bandwidth over time. jBDTS incorporates a scheduler to divide the time windows of overlapping transfer jobs into multiple intervals. It assigns independent bandwidth values to each transfer job at each interval, producing a bandwidth profile for each transfer job.
jBDTS is a service for Bulk Data Transfer Scheduling which gives users, applications or middleware the possibility to specify transfer requests as transfer jobs, and ensure a transparent control of them. jBDTS implements a multi-interval scheduling algorithm which minimizes the congestion factor of the network.
There are two steps to establish a reservation: admission control and effective scheduling. In the first step the application submits a transfer job to jBDTS, which accepts or deny it depending on the availability of all necessary resources. An accepted submission receives a token, to be used later, when the transfer takes place.
The second step happens near the time when the application is ready to transmit data.  The application binds an open socket to a reservation, using the token obtained at submission time. When a socket is bound to a reservation, its bandwidth profile is considered as granted by the scheduler and will no longer be modified. Under request, the application can also have access to the profile associated with the reservation, when it, for example, wants to adapt its behavior.
a profile
jBDTS controls the bandwidth availability  keeping a calendar for every shared link in the network. A link calendar contains the link capacity and all bandwidth profiles scheduled for the it (all represented by profiles). By keeping the calendars outside the scheduler it is possible that different schedulers update calendars independently, brokering for network allocation on behalf of different groups of clients.
a link calendar
In order to guarantee that any departing data flows respect the scheduled bandwidth, every node for which the transfers are scheduled runs a local flow control service, called FLOC.  The application binds a reservation by actually calling FLOC, passing the socket number and the token as arguments. FLOC fetches the appropriate bandwidth reservation for the given token from jBDTS calendars and programs the local operating system to enforce the corresponding communication rates.
Developers of jBDTS
Download and Install
The latest version of jBDTS is 1.0. Download the file and extract its contents. Follow instructions in the README.txt file. You need to install the GNU Linear Programming Kit to run jBDTS.

The jBDTS software has been transfered to the INRIA spinoff LYaTiss. For any information please contact:contact@lyatiss.com
a transfer job
The general design uses two main original abstractions: profiles and calendars.