A S T R O B R O W S E

Astrobrowse V1.7 Installation

This document indicates how an Astrobrowse node might be installed at a remote site. Since Astrobrowse is a developing system this document should be taken as a guide but is not authoritative. If you have questions please contact Tom McGlynn at tam@silk.gsfc.nasa.gov and Christina Heikkila at cwh@lheamail.gsfc.nasa.gov.

Special Requirements

To run Astrobrowse your site needs:

File Organization

The following file organization suggests specific directory locations based upon usage at the HEASARC. Other sites will wish to modify the directory structures to conform with their own conventions. Currently at the HEASARC one may convert a URL to a file path by replacing http://heasarc.gsfc.nasa.gov with /www/htdocs. We use both ways of designating locations below.

CGI scripts.
Astrobrowse uses a number of CGI scripts. At the HEASARC these are stored at URLs under http://heasarc.gsfc.nasa.gov/cgi-bin/ab. The following scripts are currently available:

queryall.pl
This is the script which reads the Astrobrowse configuration and presents the initial query form.
exploder.pl
This is called by queryall.pl and actually sends a query to each of the selected sites.
status_update.pl
This updates the status of each of the requests the user has made.
form_entry.pl
This reads information a user has submitted about some HTML form, and then presents a modified copy of that form to the user to fill in with special values specified in the file submit.html.
form_analyze.pl
This reads information from the form created by form_entry and generates a GLU-formatted file.
findmatch.pl
This script looks for matches to user input in resource files and calls queryall.pl to present the matching files to the user.
abfeedback.pl
Feedback form, emails the feedback to the Astrobrowse maintainer.
perl/runquery.pl
This routine is called by exploder.pl to send a single query (which it does via the LWP library).
perl/status.pl
This contains subroutines used by status_update.pl and is also called by exploder.pl.
perl/ab_util.pl
Contains subroutines central to many Astrobrowse scripts. Also, all the machine-specific paths are set here.

Perl libraries.
These are general-purpose Perl libraries which are used in Astrobrowse. Two libraries are included in the distribution:
WEB.pm
This provides very simple functionality for formatting and parsing Web query strings. The HEASARC stores this at: /www/htdocs/cgi-bin/lib/WEB.pm .
libwww-perl
This is used to query other sites. The HEASARC currently uses version 5.46.
JavaScript::JSUtil.pm, ::JSCookies.pm, ::ValidateInput.pm
These three modules simply insert javascript code in the HEAD of queryall.pl. These functions have been tested with IE3.0 and Netscape 2.0, and their successors. To ensure no one else is shut out, the javascript functions only add convenience features - non-JS browsers, and those electing not to enable JavaScript, will still be able to use the full functionality of Astrobrowse. The features added are: cookies which remember which catalogs the user last searched; and form validation functions which duplicate the form validation done on the server side, but let the user know more quickly through JavaScript alerts.

HTML files.
A number of HTML files are used in Astrobrowse: http://heasarc.gsfc.nasa.gov/ab and /ab/info/.
astrobrowse.html (linked to .index.html)
The main page.
search_form.html
This form allows users to search your GLU library to see what resources they might want to query.
submit.html
This displays a form which can be used to generate and/or submit GLU-format files to be used in Astrobrowse. This form is entirely optional. But even it you don't use offer it to your users, you may wish to keep it around since it greatly aids in the creation of GLU entries.
skeleton.html_stub
This is a stub for the skeleton.html pseudo-html file. You can create a skeleton.html to help format information about what sites are visitable by Astrobrowse. The stub should be customized by each site according to its needs. Comments in the beginning of the stub describe how it may be used.
quick.html
A short version of the skeleton file.
education.html
A skeleton file suitable for use by non-astronomers.
blank_results.html
This page is displayed in the query results frame until a user actually selects a result to look at.
frametop.html
This document is displayed in the top frame of the query results page.
install.html
This document.
glu_help.html
This describes the format of the GLU entries.
astrobrowse_help.html
Detailed help for users.
tutorial.html
A shorter help document.
cookiehelp.html
Explanation of what users can do by setting cookies.
search_help.html
How to use the search form to find resources.

Images used in Astrobrowse.
All images used in the Astrobrowse system are contained under http://heasarc.gsfc.nasa.gov/ab/images.
astrobrowse.gif
The Astrobrowse logo.
astrobrowse_big_flat.jpg
The Astrobrowse logo, with a drop shadow. This one is the default.
astrobrowse_button.gif
A small logo, suitable for use as a button.
GLUlogo.gif
The logo for GLU.
swish-e2.gif
The logo for SWISH-E.
ssdslogo_sm.jpg
The logo for SSDS.
working.gif
Used to indicate that a given request is still running.
stop_good.gif
Used to indicate that a request completed successfully.
stop_error.gif
Used to indicate that a request completed but an error was detetected. Currently this is assumed when the output file is non-existent or of zero length.
Bluedot.gif
Button to break a results page out of frames.
Redx.gif
Button to delete a resource from the results frame.
checked.gif
Button to check all the checkboxes on the page.
unchecked.gif
Button to uncheck all the checkboxes on the page.

Results cache.
A results cache directory is needed to store results as they are retrieved by Astrobrowse. For the HEASARC the results cache is at http://heasarc.gsfc.nasa.gov/ab/tmp/.

Resource files (glu/*.cfg)
These are provided to get you started. If you install GLU, you will use the script glusplit.pl to create the resource files and keep them up to date.

Files which manipulate the resource files:
gluexpand.pl
Expands the GLU 'short-format' resource entries to the GLU 'long-format' which is needed by Astrobrowse. You shouldn't need this script unless you use the ascii version of the glu.dic.
glusplit.pl
Splits the GLU resource entries from one large file into one file for each resource. Uses whitespace to determine resource separations, and uses the %ActionName field for the name of the file.
update_cfg
Creates the index, which is used by the script findmatch.pl.

Setting up an Astrobrowse site

  1. Download the Astrobrowse distribution file http://heasarc.gsfc.nasa.gov/astrobrowse/astrobrowse_v1.5.tar.gz.
  2. Uncompress and untar the distribution file in a scratch area. It will create the subdirectories: cgi-bin, docs, lib, and glu, the README file and an install script. The first directory contains the files that belong in the CGI area for Astrobrowse. The second contains the HTML files and images which belong in the HTDOCS area for Astrobrowse. The lib directory contains the perl modules used. A full libww-perl distribution is included even though only a portion of it is used in Astrobrowse. The vast bulk of the tar file is the libwww-perl library.
  3. Read the README file for instructions on running the install script, then run it.
  4. Make sure that the CGI scripts will have permission (and space) to write data into the cache directory. This may require the cache directory to be owned by the user id under which your HTTP server runs, or to give world-write permission to the cache directory.
  5. Modify the documentation and such to reflect your local site, e.g., you may not wish to display the HEASARC logo or name on the pages.
  6. [Optional] Customize the appearance of sites by editing the skeleton.html file. The skeleton file is used by queryall.pl when presenting a menu of resources to the user. You can create more skeleton files by copying and changing this file.
  7. Try running the queryall.pl script in your Web browser to see if things are working.
  8. Download and install SWISH-E (or some other file indexer) for the search form. If you use a different indexer, you will need to modify the script findmatch.pl.
  9. [Optional] Install GLU, and start your GLU daemon.
  10. Set up a cron table for the scripts that need to be run periodically. There is an example file called crontab_example in the glu directory (the final GLU directory, not the one which was created from un-tarring the distribution file). To create a crontab table, type 'crontab -e', and cut/paste the lines from crontab_example. NOTE: if you are not going to run GLU, then you only need the line that runs CleanupTempDirectory.pl.