Swim
Swim is a Software Information Metacatalog that gathers detailedinformation about the software components and packages installed on
each grid resource. Information is currently gathered for
Executable and Linking Format (ELF) executables and shared
libraries, Java classes, shell scripts, and Perl and Python modules.
Swim is built on top of the Pour framework, which is a
general-purpose framework for reconciling information from periodic,
on-demand, and user-specified sources. Swim consists of a set of
Perl modules for extracting software information from a system, an
XML schema defining the format of data that can be added by users,
and a Pour XML configuration file that describes how these elements
are utilized to generate periodic, on-demand, and user-specified
information. The Pour framework provides the user interface and the
basic back-end information storage and retrieval. Pour validates
user-specified information against the Swim XML schema and calls the
appropriate Swim modules when information is required on-demand.
Periodic information is generated by cron jobs that run Swim scripts
on each grid resource and invoke the appropriate Pour method to add
the information to a Pour repository on some host.
Periodic software information is derived mainly from the package
managers used on each system. Swim collects information from native
package managers on FreeBSD, Solaris, and IRIX, as well as the RPM,
Perl, and Python package managers on multiple platforms. It is
advantageous to use package managers since in most cases they are
the tools used by administrators to install the software in the
first place. Since not all software is available or installed in
package form, however, Swim also crawls the set of relevant paths
from the Filesystem Hierarchy Standard, which defines the standard
filesystem structure used by all major Unix distributions. Using
these two techniques, the vast majority of software installed on a
system will be located.
Information that is too expensive to compute for all software
components or that is specific to individual users can be computed
on-demand based on the query arguments. Swim currently supports
three types of on-demand information. It derives software
dependencies for ELF executables and libraries, Java classes, and
Perl and Python modules. It computes the same information gathered
by the periodic routines for specific files on specific hosts.
Finally, it locates software on a system given only its name and
type.
Software
-
Swim
Swim is a software information service for the grid built on top of Pour, which is an information service framework developed at NASA. Swim provides true software resource discovery integrated with the tools used by administrators to install software. In particular, software information is periodically gathered from native package managers on FreeBSD, Solaris, and IRIX as well as the RPM, Perl, and Python, package managers on multiple platforms. Swim has additional facilities for collecting on-demand information about arbitrary software on any grid-enabled resource including software dependencies and Unix "stat" information.
+ Go to Swim
