A recent discussion at Argonne with my colleague John Bresnahan spurred the two of us to write the enclosed note. In brief, we explain how easy it is to get and install distinct Globus services. These notes are also available on the Web.
1) Globus is Modular
It is a common misconception that the Globus Toolkit is a monolithic entity. This is *not* true. Each Globus service can be installed and used independently. For example, if you just want GridFTP, you can install just GridFTP. *No* additional software will be installed. You get just the software needed for GridFTP, and *only* what you need for GridFTP.
In addition, for those developing new programs and/or services, you can install just the libraries that you need. There are ~150 C libraries, ~100 java libraries, and ~150 WSDL interface descriptions. Each library contains information about the libraries on which it depends. When a library in installed, a dependency tree is built. Only the software in that tree is installed.
2) How To Install Individual Components
a) Download the Globus installer tarfile from www.globus.org: either source or binary.
b) Uncompress the installer tarfile.
c) Configure and install the desired component(s). E.g., for just GridFTP:
And for both GridFTP and WS-GRAM:
make gridftp wsgram
3) Separately Installable Components
There is a list of (some of) the "make targets" (separately installable components) included in GT4.
The following are some examples:
- Services and containers:
- gridftp: GridFTP data transfer service
- gsi-myproxy, myproxy: MyProxy service
- prewsgram: Pre-webservices GRAM (aka GRAM2)
- rls: Replica Location Service
- wsc: C WS core, for building new services in C
- wscas: Community Authorization Service
- wsdel: Delegation Service
- wsgram: GRAM4 job submission service
- wsjava: Java WS Core, for developing new Java services
- wsmds: MDS4 monitoring and discovery services
- wsrft: Reliable File Transfer service
- i18n: Internationalization libraries
- globus_xio: eXtensible I/O library
- globus-gsi: Grid Security Infrastructure library
- globus_gass_copy: globus-url-copy
- globus_crft_util: C RFT client
- globus_globusrun_ws: globusrun-ws c client
- wstests: Tests for java webservices
- wsctests: Tests for C webservices
- prews-test: Tests for pre-webservices components
4) Further Comments
The process required in Step #2 requires that you download all Globus software just to install a single component. However, once that component is installed, you can delete the installer and with it all unwanted components.
We adopt this approach out of convenience, not necessity. Since network transfer rates tend to be high these days, we believe that it is more convenient to give our users everything in one set and allow them to choose what they want rather have several confusing web pages describing dependency information.
For users that do not want to download the entire toolkit, we do provide the tool make-packages.pl. This less user friendly tool downloads only the components that have been requested for installation.
5) To Learn More on Packaging
6) A Related Issue: Globus Security
Another misconception is that Globus requires use of public-key-infrastructure (PKI)-based credentials. This is also not true in the case of GridFTP:
- GridFTP can be run in a mode using standard SSH security credentials. This makes installing and configuring a GridFTP server a trivial task. Most systems run sshd for remote access and therefore have ssh keys already installed on their hosts. GridFTP can use these keys for authentication with clients. (Details on how to do this will be provided soon.)
- GridFTP can be run with username/password authentication: not very secure, but easy to use.
(It should be noted that GSI offers many advantages over over either of these alternatives: for example is the ability to delegate credentials. Obviously when not using GSI, GridFTP loses this feature.)