Chirp is a simple and lightweight remote I/O protocol used by a variety of research projects related to Condor. The Chirp protocol corresponds closely to the Unix interface. It consists of familiar operations such as open(), read(), write(), and close(). In addition, Chirp provides a variety of authentication methods, allowing remote users to identify themselves with strong Globus or Kerberos credentials. The Chirp protocol is used in a variety of systems:
Parrot - Chirp is the native protocol used by Parrot, a system for attaching applications to grid storage. A standalone Chirp server allows an ordinary user to establish a secure, sharable, personal file server that can be accessed by ordinary programs remotely. There is a global catalog that lists the set of storage resources currently available via Chirp.
Condor - Condor uses Chirp to allow batch jobs to access their home storage while executing on a remote machine. If a Condor job is submitted with +WantIOProxy=True in its submit file, then Condor provides a proxy at the execution site that accepts the Chirp protocol and provides access to the submitter's storage. This is particularly useful in the Java universe which is described in the Condor manual.
ROOT - The ROOT I/O library is used in high energy physics for managing access to persistent storage. A Chirp module in the library is used to connect high-energy physics applications to Chirp servers.
Chirp Protocol. The Chirp protocol itself is independent of both Parrot and Condor. The details are given in this protocol specification. A sample implementation of the Chirp protocol in both C and Java is also available here.
Contributions and feedback about Chirp are welcome. Please contact Dan Bradley, Douglas Thain, or condor-admin@cs.wisc.edu.