Reliable File Transfer Service Prototype

The Reliable Transfer Service (RFT) allows you to monitor and control 3rd party transfers using GridFTP servers. It is a reliable, and recoverable version of the globus-url-copy tool (available in the current Globus Toolkit). The client controlling the transfer is hosted inside of a Grid service and can thus be managed using the soft state model, and queried using the introspection techniques available to all Grid services. To set up the RFT services you need to install Grid FTP from Globus Toolkit 2.0, and PostgreSQL.

1 GridFTP Server Setup

Download and install the Globus Toolkit 2.0 from here.
Start two GridFTP servers (one on the source host, and one on the destination host of your transfer).
Example:
./in.ftpd -S [-p <port>]

Note the GridFTP server can only be run on Unix (or Linux) flavors.

2 Postgres DB Setup

Postgres can be installed both on Unix and on Windows. For more detailed Unix instructions see: http://www3.us.postgresql.org/sitess.html and for more detailed Windows instructions see: http://www.ejip.net/faq/postgresql_win_setup_faq.jsp (Only first four steps are needed). Here is a summary of what you need to do after installation:

2.1 Unix Specific Setup

login as root
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres

2.2 Windows Specific Setup

To run postgres under Windows you need to install Cygwin, and enable at least the following features:
Database->postgresql
Utils->bzip2
Base->libreadline5

After installing these components you also need to install CygIPC http://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/index.html

Now start the ipc_daemon from a cygwin shell e.g:
/cygdrive/c/cygwin/usr/local/bin/ipc-daemon.exe &

That's it, now you should be able to use psql and postgres as if on a Unix machine. Note however that you will be using the username 'Administrator' as opposed to 'postgres'

2.3 Common Setup

After completing either the Unix or Windows specific setup above do the following from your user shell (postgres or Administrator)

export PGDATA=/usr/local/pgsql/data
initdb
createdb ogsa
psql -d ogsa -f rft_schema_ogsa.sql (this file is provided in the ogsa distribution root, under the etc directory)
To start the db server run: pgctl -o  "-i" -l logfile start

3 RFT Grid Service Setup

The following are the parameters you have to set in server-config.wsdd in order to use Reliable File Transfer Service :
 JdbcDriver : Name of the JDBC Driver for the database you want to use. For a PostgreSQL installation as described above this value is: org.postgresql.Driver. The driver is shipped along with our distribution.
connectionURL: URL for the Database in order make the connection. For postgres this is jdbc:postgresql:<db>, and in our example above it would be jdbc:postgresql:ogsa
username: local user with access to the database. (On windows this would be Administrator) 
password :password set up to access the database for the particular user

4 Testing the Service with the ServiceBrowser Client

1. Double click on the Deactivated RFT Factory instance that is listed in the ServiceBrowser ContainerRegistryService
2. Create an Instance of RFT from the RFT Factory.
3. In the RFT GUI that shows up fill in From URL / To URL with valid gridftp urls, which would look like this

 gsiftp://hostname/filename

4.You can also specify number of parallel streams per transfer and set the TCP Buffer size for the transfer
5.Enable XML Signature/Encryption and Check Delegate Credentials check box.
6.Submit Transfer.
7. RFT is a persistent Reliable Transfer Service so if the service container goes down while a transfer is going on the transfer is restarted next time you start the service container when you activate the persistent instance.

Service Data Elements for RFT

The percentage of file that has been transferred is exposed as Service Data.The percentage is calculated in two ways :1. using the Performance markers 2. Using the Restart Markers that are obtained during the course of the transfer.In the RFT gui you will notice two panels with JProgressBars indicating the percentage of file that has been transferred.
Note: Performance Markers and Restart Markers are check points that are given out by girdftp servers indicating how much data has already been transferred.While Performance Markers contain more performance information,the Restart Markers are used to restart the transfer from that check point.