Status of Current Data Grid Work

We have identified the following items as deliverables for our current work on basic infrastructure to support the Data Grid. As items are completed, we will add hyperlinks to this page.

NOTE: A set of GSI-enabled FTP tools is currently available for those who wish to get started experimenting with them.  Versions with a full complement of protocol extensions will be made available later.  Answers to frequently-asked questions are also available.

1. Documentation

1.1. White paper explaining our initiative [draft]
1.1b. Answers to frequently-asked questions [available now]
1.2. Draft RFC for GridFTP protocol
     Document the subset of standard FTP features used by globus_ftp
     Document GridFTP protocol extensions for
        Partial file transfer
        Autonegotiation of TCP buffer/window size
        Striped/parallel transfer
1.3. API and program documentation (for all deliverables) using doxygen
     [revised globus_io C API]
     [globus_ftp_control C API]
     [globus_ftp_client C API]
     [globus_gass_copy C API]
     [globus_replica catalog C API]
     [globus_replica management C API]
1.4. Updates to web pages (for all deliverables)
1.5. Updates to tutorials
1.6. Updates to manuals (System Administrator's Guide, Quick Start Guide)
1.7. "Getting Started" Guide for Globus Replica Catalog

2. Production Libraries

2.1. globus_ftp_control (C) (Java, client only): Basic library for managing GridFTP control and data channels, both for clients and servers.
     [status: Alpha testing all features except partial file transfer]

2.2. globus_ftp_client (C)(Java): Easy to use GridFTP client library, supporting:
        Put and get operations, both to/from client memory
        Third party transfer operation
        Fault detection and recovery, using a plugin to define the recovery behavior
     [status: Alpha testing all features except partial file transfer]

2.3. At least one reliability plug-in for globus_ftp_client (C and Java)

2.4. globus_gass_transfer client driver for GridFTP (C): Add FTP/GridFTP support to GASS, in addition to the current HTTP/HTTPS support
     [status: in progress]

2.5. globus_gass_copy (C)(Java):  Simple copy operations between any combination of:
        file descriptor (for stdin/stdout copies)
     [status: Alpha testing]

2.6. globus_replica_catalog (C)( Java): LDAP client for manipulating replica catalogs
     [status: Alpha testing]

2.7. globus_replica_manager (C)( Java): Combine globus_replica_catalog with globus_gass_copy to provide end-to-end replication operations
     [status: C API bindings available (see above)]

2.8. (optional) More general (multi-protocol) 3rd party transfer client library, with custom servers (e.g., DPSS to/from GridFTP) (C)( Java)

2.9. (optional) globus_ftp_mputget (C)(Java): multiple-file put/get to local files

2.10. (optional) globus_gass_transfer server driver for GridFTP (C)

2.11. (optional) SWIG support to all libraries: Enable scripting with tcl, python, perl

2.12. Revised globus_io library with support for new GridFTP code.
     [status: Alpha testing]

3. Production Tools

3.1. globus-url-copy (program interface to globus_gass_copy library)
     [status: Alpha testing]

3.2. Replica catalog management tools (program interfaces to globus_replica_* libraries)
     [status: Alpha testing]

3.3. (optional) globus-ftp-server (simple, user runnable GridFTP server)

4. Third-Party Software with Protocol Extensions

4.1. NCFTP client
    [status: a GSI-enabled version of ncftp is available]
4.2. WUFTPD server
    [status: a GSI-enabled version of wuftpd is available]
4.3. UNITREE ftpd server
    [status: testing]
4.4. HPSS pftpd server
    [status: testing]

5. Prototypes that Demonstrate Functionality

For consideration: Can some of these (e.g., SRB prototypes) include simple authorization capability?

5.1. Custom storage managers
5.1.1. Simple SRB server (C)
5.1.2. Simple HRM server (C)
5.1.3. Simple DPSS servers (C)

5.2. Custom storage client
5.2.1. Simple SRB client (C)

5.3. Fault tolerant GridFTP mget/mput client, which waits for file availability before downloading (Java)