GT 3.9.5 GridFTP : Developer's Guide
- Architecture and design overview
- Public interface
- Usage scenarios
- Feature summary
- Tested platforms
- Backward compatibility summary
- Technology dependencies
- Security considerations
- Related Documentation
[introduction to developers with reference to General Toolkit Developer's Guide for coding guidelines, porting guide, etc.]
[link to architecture and design docs]
The semantics and syntax of the APIs and WSDL for the component, along with descriptions of domain-specific structured interface data, can be found in the public interface guide.
[describe how to use the programatic interfaces of the component, provide examples]
[add links to any tutorials - if no tutorials, say "There are no tutorials available at this time"]
Features new in release Globus Toolkit 3.9.5
- A new, complete reimplementation of the server.
- Support for striping (using multiple hosts to move a single file).
- This new implementation will greatly ease new feature additions and modifications of the server (new commands, new data sources such as mass storage devices, etc.), maintainability, and resolves a licensing issue that was discovered.
Features that continue to be supported from previous versions
- GSI security: This is PKI based defacto standard security system used in Grid applications. Kerberos is also possible, but not supported and can be difficult due to divergence in the capabilities of GSI and Kerberos.
- Third-party transfers: Very common in Grid applications, this is where a client mediates a transfer between two servers (both likely at remote sites) rather than between the server and itself (called a client/server transfer).
- Partial file access: Regions of a file may be accessed by specifying an offset into the file and the length of the block desired.
- Reliability/restart: The receiving server periodically (the default is 5 seconds, but this can be changed) sends “restart markers” to the client. This marker is a messages specifying what bytes have been successfully written to the disk. If the transfer fails, the client may restart the transfer, and provide these markers (or an aggregated equivalent marker) and the transfer will pick up where it left off. This can include “holes” in the file.
- Large file support: All file sizes, lengths, and offsets are 64 bits in length.
- Data channel reuse: Data channel can be held open and reused if the next transfer has the same source, destination, and credentials. This saves the time of connection establishment, authentication, and delegation. This can be a huge performance difference when moving lots of small files.
- Integrated instrumentation (Performance Markers)
- Logging/audit trail (Extensive Logging in the server)
- Parallel transfers (Multiple TCP streams between a pair of hosts)
- TCP Buffer size control (Protocol supports Manual and Automatic; Only Manual Implemented)
- Server-side computation (Extended Retrieve (ERET) / Extended Store (ESTO) commands)
- Based on Standards: RFC 959, RFC 2228, RFC 2389, IETF Draft MLST-16 , GGF GFD.020
Other Supported Features
- On the client side, we provide a scriptable client side tool called globus-url-copy. This tool can take advantage of all the GridFTP protocol features and can also do protocol translation between FTP, HTTP, HTTPS, and posix file IO on the client machine.
- We also provide a set of development libraries and APIs for developers wishing to add GridFTP functionality to their application.
Tested platforms for GridFTP
- i386 Linux
- ia64 Linux (TeraGrid)
- AIX 5.2
- Solaris 9
- PA-RISC HP/UX 11.11
- ia64 HP/UX 11.22
- Tru64 Unix
- MacOS X
While the above list includes platforms on which we have tested GridFTP, it does not imply support for a specific platform. However, we are interested in hearing reports of success or bug reports on any platform.
Protocol changes since GT version 3.2
API changes since GT version 3.2
Exception changes since GT version 3.2
- Not Applicable (GridFTP is not Java-based)
Schema changes since GT version 3.2
- Not Applicable (GridFTP is not SOAP-based)
GridFTP depends on the following GT components:
- Pre-WS Authentication / Authorization
- C Common Libraries
GridFTP depends on the following 3rd party software:
- OpenSSL (version included in release)
[describe security considerations relevant for this component]
[information on standard debugging]
[help for common problems developers may experience]
[could link to pdfs and whitepapers about protocols, etc re: the component]