You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 41 Next »

Trebuchet is a multi-scheme file-transfer API and client library written in Java.

Purpose

The principal aim of this library is to provide an abstraction layer over the standard file-related operations (such as directory listing, directory creation, file transfer and file deletion) which allows switching between protocols without alteration of either source code or scripting. The library is also designed to be extensible so that new protocol support can be added in a reasonably clean manner.

Currently, there are two ways in which Trebuchet can be utilized:

Certain capabilities, such as restarting operations and inspecting the binary "cache" files, are also available from the command-line. There are plans to provide sometime in the near future an Eclipse-based RCP Trebuchet client for easy management of file transfers across multiple hosts.

Features

The following are some of the more salient features offered by the Trebuchet library/tasks:

  1. Full support for UNIX-style operations (ls, touch, mkdir, cp, mv, rm) locally and via the SSH/SCP protocols.
  2. Support for all of these operations except touch via GRIDFTP and WEBDAV.
  3. GSI/certificate-based authentication/authorization (SSH and GRIDFTP).
  4. Automatic one-hop handling of third-party transfers over mixed protocols (e.g., SCP on host A to GRIDFTP on host B).
  5. Two ways of achieving file transfer or deletion:
    • By specifying exact locations/paths;
    • By scanning or listing.
  6. Fully recursive pattern-based scanning (using the '*' and '**' wildcard characters; see UriPattern).
  7. All operations can be customized (using the available settings appropriate to the given protocol) via a general-purpose configuration object.
  8. All GRIDFTP options available in the jglobus library are exposed for configurability; in particular, optimization settings such as:
    • TCP buffer size;
    • setting active mode on the target.
  9. Automated support for both LIST and MLST/MLSD (GRIDFTP); options for forcing existence checking through the LIST command.
  10. Full access to source and target paths before and after operations.
  11. Thread-pooled parallel copy operations.
  12. Automated use of multiple GRIDFTP connections for a given endpoint (as specified by the SPAS command) when available for non-striped operations.
  13. Fail-over and retry capabilities on a file-by-file basis.
  14. Flexibility in the kind and number of events the user can opt to receive.

Design overview

  • No labels