Previous Next Table of Contents

1. Installation and setup

1.1 NAME

Configure - Installing the ROADS software

1.2 DESCRIPTION

The ROADS software is a suite of programs intended to aid in the setting up and day to day running of World-Wide Web based catalogues of on-line resources. A number of these so-called subject gateways have been funded under the Access to Network Resources strand of the UK Electronic Libraries Programme (eLib), each specializing in a particular subject area.

Although designed specifically to meet the requirements of the eLib subject gateways, we believe that the ROADS software will be useful in a variety of other situations and for a variety of other purposes. You can get an idea of what people have done with the ROADS software by looking at some of their WWW sites, e.g.

Initial versions of the ROADS software were derived from code developed by Jon Knight for the Social Sciences Information Gateway (SOSIG). As the software was used in other situations, it was re-written so as to address problems or add new features.

1.3 DOCUMENTATION

The ROADS software is self-documenting, using the Perl POD system. This means that you can get to the documentation for any program or library module by typing perldoc followed by the Unix path to the relevant file, e.g.

perldoc bin/addsl.pl

to learn about the addsl tool.

You can also get to the ROADS documentation in a variety of formats via our software and documentation server:

http://www.roads.lut.ac.uk/

1.4 SYSTEM REQUIREMENTS

The ROADS software requires that your machine be running the following:

We will not be producing a version of the ROADS software to run under legacy operating systems such as MacOS, DOS, Windows 3, Windows 3.11, Windows for Workgroups, Windows 95, Windows NT, OS/2, VMS, VME, MPE, CTSS, Multics, GEORGE IV... !

The reasons for this decision are manyfold. A couple of the more important ones are that most versions of Unix do not have problems handling lots of processes operating simultaneously (multi-tasking), or talking to other computers via the Internet. The combination of the basic Unix features, a very high level development language (Perl), and HTML as a user interface means that we can easily deliver a customisable package which works on multiple platforms. It would be very difficult to do this in the first place, and a great deal more difficult to support it, if we had to produce multiple independent versions of the ROADS software for each supported operating system and hardware platform.

It should be noted in passing that there are numerous implementations of Unix or Unix-like operating systems for PCs based on the Intel hardware, and several for the Macintosh hardware. Many of these are freely available, notably FreeBsd, NetBSD, and Linux.

We do not require that you use any particular combination of hardware, operating system, and HTTP server software for running ROADS. In general, any HTTP server which supports the Common Gateway Interface (CGI) should be capable of running the ROADS software. ROADS places no great demands upon your machine other than the normal process of serving up some static HTML documents and some dynamic ones generated via CGI. Your hardware and operating system configuration should, needless to say, be powerful enough that it can cope with user demand.

Primary development of the ROADS software is being done under SunOS 4.1.4 and Linux 2.x, with the NCSA and Apache HTTP servers and Perl 5.

1.5 DOWNLOAD

You can get hold of the ROADS software by pointing your WWW browser at the URL:

http://www.roads.lut.ac.uk/

This is the ROADS software and technical documentation server.

1.6 UNPACKING

The software distribution comes in the compressed archive format conventionally used to distribute Unix software over the Internet. To unpack it, use the zcat and tar commands, e.g.

% zcat roads-v2.00.tar.Z | tar xvf -

The software distribution will be unpacked into a directory called roads-v2.00, in whatever directory you happen to be in at the time. If you choose to keep all or most of your ROADS related files in this directory, you may want to make a symbolic link from it to some common name which you will carry on using for some time, e.g.

% ln -s /usr/local/roads-v2.00 /usr/local/roads

or perhaps rename the directory:

% mv /usr/local/roads-v2.00 /usr/local/roads

Now you can carry on using the name /usr/local/roads to refer to the ROADS installation, no matter where it actually lives.

Once the software has been unpacked, you should see the following in your roads-v2.00 (or whatever :-) directory:

% ls -l roads-v2.00
total 466
-rw-r--r--  1 martin       7459 Aug  3 20:13 CHANGES
-r-xr-xr-x  1 martin      27386 Aug  3 20:42 Configure
-rw-r--r--  1 martin        522 Jul 31 04:43 Makefile
-rw-r--r--  1 martin       8535 Aug 24 05:02 README
-rw-r--r--  1 martin       1526 Aug  3 20:12 TODO
drwxrwxr-x  3 martin       1024 Aug 15 23:02 admin-cgi
drwxrwxr-x  3 martin       1024 Aug 24 04:53 bin
drwxrwxr-x  3 martin        512 Aug 16 09:12 cgi-bin
drwxrwxr-x 19 martin       1024 Jul 24 03:45 config.dist
drwxrwxrwx  4 martin        512 Aug 24 04:33 guts
drwxrwxr-x  7 martin        512 Aug 19 19:28 htdocs
drwxrwxr-x  3 martin       1024 Aug 24 03:04 lib
drwxrwxrwx  2 martin        512 May 23 12:27 logs
drwxr-xr-x  2 martin       1024 Jul 27 17:38 source.dist

Note that the owner, group, date stamps and permissions may be different on your system.

1.7 HOW IT WORKS

The ROADS software consists of a series of programs written in the Perl language. Perl is a very high level language which is well suited to text processing, database handling and networking. It also lends itself to rapid prototyping - since programs can be written and re-written quickly.

``ROADS'' consists of the following:

You can configure ROADS to place most of these directories anywhere you like, or keep them in the directory where the software distribution was unpacked. This is still not quite as flexible as we would like - part of the installation process has to modify some of the programs to tell them where their library files are for instance, Consequently it is inadvisable to move the software once installed unless you either make sure the previous filenames are still valid (by making a symbolic link from their old location), or re-install it. The consistency checking tool should tell you whether there are any problems.

1.8 CONFIGURING YOUR WWW SERVER

To run the CGI programs, you will need to either have them installed in your HTTP server's cgi-bin directory (or equivalent), or add a new bin directory to its configuration. We strongly urge you to use any protection schemes your WWW server may provide - such as password and/or IP address access controls. In particular, you should make sure that the administrative CGI programs are only accessible by the people who you intend to be using them. If your machine is shared with other users, you may also want to protect the ROADS files from being read from or written to by arbitrary passers-by.

For example, if you were using the NCSA or Apache HTTP servers, had installed the ROADS software under /usr/local/roads, and wanted to make the ROADS CGI directories visible on the Web as /ROADS/, /ROADS/cgi-bin/, and /ROADS/admin-cgi/, your HTTP server's srm.conf would contain something like this:

ScriptAlias /ROADS/cgi-bin/ /usr/local/roads/cgi-bin/
ScriptAlias /ROADS/admin-cgi/ /usr/local/roads/admin-cgi/
Alias /ROADS/ /usr/local/roads/htdocs

Note that the order of the above lines is significant. This approach may be attractive since it means that you can have several versions of the ROADS software installed on your machine, and use the HTTP server's alias mechanism to control which is made visible to the world at large as your ``production service''. See below for more information on how this may be done.

You should protect the admin-cgi directory so that only the people who are meant to have access to it can run the CGI programs within. If you used the NCSA or Apache servers, by putting the following lines in access.conf you could restrict HTTP access to the admin-cgi to to those people who were calling from the machine with the IP address 158.125.96.46 and were members of the basic authentication group roadies:

<Directory /usr/local/roads/admin-cgi>
Options ExecCGI
AuthName ROADS server
AuthType Basic
AuthUserFile /usr/local/roads/.htpasswd
AuthGroupFile /usr/local/roads/.htgroup
<Limit GET POST>
order deny,allow
deny from all
allow from 158.125.96.46
require group roadies
</Limit>
</Directory>

Some of the ROADS tools do not have a WWW based user interface (yet), and it is necessary to run these from your shell, e.g. in an xterm or rxvt window or via a telnet session to the server. You will need to make sure that the directory which contains these tools is in your PATH, otherwise your Unix shell will not be able to find them.

1.9 MORE ON SECURITY AND ACCESS CONTROL

Note that it may be necessary for the user ID your World-Wide Web server runs under to write to the following directories:

If you are going to mix manual and WWW based administration, you will need to make sure that any files or directories produced in the process are still writeable by the WWW server. If you do not, you may encounter problems creating templates, indexing them, or generating What's New and subject breakdown listings. We suggest that you use the bogus.pl tool's WWW front end to flag any problems with permissions.

In order to prevent your ROADS server's administrative capabilities from being abused by outsiders, we urge you to protect them using the strongest authentication scheme your World-Wide Web server supports - for example, message digest authentication or end-to-end cryptographic techniques such as the Secure Sockets Layer (SSL).

If you share the machine ROADS is running on with other people, you may also find it worthwhile using Unix permissions to control who has access to the files and directories where ROADS lives. Note that anyone who has super user (or root) status on the machine will be able to subvert these restrictions!

Finally, it is commonplace to run Unix based World-Wide Web servers as the user ``nobody''. This is not necessarily the most appropriate approach to take with the ROADS software, because its files and directories may need to be manipulated both by CGI based tools and by hand. If you do not have to share your WWW server with anyone else, we suggest that you might prefer to create a special user, say www, or perhaps even roads, which has write access to all of these files, and under whose identity the WWW server runs. There are a number of similar alternative approaches, e.g. doing this purely with the group ID the WWW server runs as - and the group ID of the files and directories, running a separate WWW server for the ROADS based material (most modern WWW servers and Unix versions have virtual hosting features), and using a wrapper program such as CGIwrap which is launched by the WWW server but then changes its user and/or group ID before running any of the ROADS tools.

1.10 SITTING COMFORTABLY ?

To install the ROADS software on your machine, you will need to run the Configure shell script which can be found in the directory you unpacked the distribution in, e.g.

% cd roads-v2.00
% ./Configure

Configure will ask you a number of questions about the your machine, and how the ROADS software should be set up for it. If you make any mistakes answering these questions, or change your mind, you can run the script again and change your answers. To make this easier for you, the Configure script will offer to re-use any answers which you gave on a previous attempt to install the software.

1.11 QUESTIONS AND ANSWERS

In this section we go through the questions you will be asked and explain them in detail. Most of this information is also available during the installation as ``tips'', which Configure will give you the option of reading these as you install the software.

In version 2 of the ROADS software we've simplified the installation process, so that you're presented with the questions which the ROADS installer program would like to ask you, and have the option of simply accepting the default values.

Introductory questions

WWW related questions

Directory names

WHOIS++ related questions

Miscellaneous questions

1.12 COMPLETING THE INSTALLATION

Substitutions on internal programs

Once you have answered all of Configure's questions, it will begin to install and configure the ROADS software for use on your machine. You'll see a series of messages like this:

Performing substitutions on internal programs...
Performing substitutions on WWW CGI programs...
Performing substitutions on WWW based admin programs...
Done substituting!

Unpacking shrink wrapped config files...

You'll be asked if you want to install the sample database of eLib projects which comes with the ROADS software. If you say yes, you should see the message:

Unpacking sample data...

Sample config files and data can be found, respectively, in the config.dist and source.dist subdirectories of the directory in which the ROADS software was unpacked.

If you already have either of these directories, e.g. because you keep your data (from a previous installation) separate, you will see messages of the form:

You already have the config directory "/usr/local/roads/config"
Do you want to overwrite it with the factory defaults? [n]

You already have the templates directory "/usr/local/roads/source"
Do you want to overwrite it with the factory samples? [n]

The default is not to overwrite them.

Checking directories

Next, the Configure program will check to see that the directories you have named actually exist, and attempt to create them if necessary. Some of this will have happened already as part of the question and answer process.

You should see messages of the form:

Checking directories exist:

/usr/local/roads/bin ........ ok!
/usr/local/roads/admin-cgi ........ ok!
/usr/local/roads/cgi-bin ........ ok!
/usr/local/roads/guts ........ ok!
/usr/local/roads/htdocs ........ ok!
/usr/local/roads/lib ........ ok!
/usr/local/roads/logs ........ ok!
/usr/local/roads/source ........ ok!
/tmp ........ ok!

Special files

The installation process creates a small number of special files:

Installing directories

Having updated the relevant files to reflect your preferences, Configure will now install the various directories which together form the ROADS software:

Installing individual ROADS components...
 From "bin" into "/usr/local/roads/bin" ... already there!
 From "admin-cgi" into "/usr/local/roads/admin-cgi" ... already there!
 From "cgi-bin" into "/usr/local/roads/cgi-bin" ... already there!
 From "htdocs" into "/usr/local/roads/htdocs" ... already there!
 From "lib" into "/usr/local/roads/lib" ... already there!

If the inode number of the destination directory is the same as that of the source directory, the message already there is displayed, and the files aren't copied.

1.13 REGISTRATION

You will be asked at the end of the installation process whether you want to register your server. The default is to do this.

We encourage you to register your server with us, so that we can get an idea of how widely the ROADS software is being used, and keep in touch with our users. If you answer yes to the question below, the configuration information you supplied will be sent to us, along with information on the versions of the ROADS tools which you have, and your machine type and operating system.

If this worries you (remember The Microsoft Network!) say no, and you can use the 'server info' utility from the ROADS admin centre to see exactly what information would be transmitted. The admin centre also has a utility for registering your ROADS server, so you can register from there if you want to :-)

1.14 RESOURCE DESCRIPTION TEMPLATES

ROADS provides tools to help in the cataloguing of Internet resources, using a simple resource description format known as the IAFA template. This was initially devised as a way of cataloguing resources on Internet anonymous FTP archives, but then extended for use with the World-Wide Web in all its glory.

These templates look very much like the headers on an email message, but most of the attribute names are different - e.g.

Template-Type: SERVICE
Handle: SOSIG428
Title: UKBORDERS Information
Copyright-Owner: JISC, ESRC
Keywords: Geography, Digitised Bourndary Data (DBD), Census,
  Demography, Population, GIS, Computer Aided Mapping
Description: UKBORDERS provides the digitised boundary data
  associated with the  1991 Census of Population. The boundary
  data allows users to map 1991 Census data systematically at
  any scale from small area to the whole country and can be
  used to design new zones from the small area building blocks
  and to integrate census data fully in geographical information
  systems. Academic staff and students of UK Higher Education
  institutions may access the digitised boundary data from the
  Universities of Edinburgh only after completing the required
  registration process. The data is also available through MIDAS
  at Manchester.
Subject-Descriptor-Scheme-v1:   UDC
Subject-Descriptor-v1:  312 91
Admin-Email-v1: <ukborders@ed.ac.uk>
URI-v1: http://datalib.ed.ac.uk/UKBORDERS/start.html
Record-Last-Modified-Email:     ecdh@ssa.bris.ac.uk
Record-Last-Modified-Date:      Tue Jan 16 23:00:00 1996

These resource description templates may either be created by hand, using a text editor, or entered via a World-Wide Web form. Once a template is in the database it may be edited via a WWW form, or again by hand.

When creating or editing a template using the WWW forms interface, the view of the template may be constrained to a restricted set of the attributes. This means that fields which are not used on a regular basis can effectively be eliminated. These fields are, however, still available should they be needed - just not displayed by the WWW based editor.

Note that you can trivially modify large numbers of templates using Perl's -spi feature. This lets you essentially edit a file in place, e.g.

perl -spi -e 's/Bourndary/Boundary/g' source/*

would change all instances of the word Bourndary to Boundary, in all of the files in the source directory.

1.15 CATALOGUING DIFFERENT KINDS OF RESOURCE

A number of default resource description templates are provided with the software. Each of these is intended for describing a particular type of resource:

These default templates provide a framework for describing commonly occurring objects such as documents, images and sounds, and also more nebulous things such as network services. The subject service maintainer is free to change the templates distributed with the ROADS software, and new templates may be created either for describing new types of resource - or as alternatives to the distributed templates.

We suggest that the existing templates be used as much as possible. Hopefully we can avoid the situation that separate groups independently arrive at different ways of writing the same information down in the template format. If it seems to be necessary to change a template, or create a new one, we recommend liasing with other ROADS users and the ROADS developers.

1.16 WHAT THE END USER SEES

The templates in the ROADS database are made visible to the end user in three ways:

1.17 CUSTOMIZATION

The subject service maintainer may dramatically alter the appearance of the Web pages generated by the ROADS software, so as to add local customizations. Consequently, two sites both using ROADS may have very little in common in terms of the appearance of their Web pages - even though the software used to generate them is the same.

The maintainer has a great deal of latitude in customizing the format of the resource description listings, should they wish to. The start and end of the HTML pages generated by the ROADS software can be modified using a local subject listing outline document. This also makes it possible to specify the format which should be used for each entry. This outline document is formatted just like regular HTML, but has special ROADS-specific tags in it which will be replaced with the subject listing information by the ROADS software.

Likewise, the search capability may be customized so as to restrict the attributes which may be included in a search. Version 2 of the ROADS software uses outline HTML documents to specify the format of the list of search results, and the format of an individual resource description template when it is rendered into HTML.

Finally, a list of resources which have recently been added to the subject service can be generated automatically for by the ROADS software. The format of the resulting HTML document can be specified in a similar way to that of the subject listings, and it is possible to specify how long a resource remains on the list for before it is automatically removed.

1.18 RUN-TIME SETTINGS

The tools we supply under the banner name ``ROADS'' all read their run-time configuration from a single file, ROADS.pm, as described in the installation guide. A separate document, ``Run-time configuration of the ROADS software'' describes the function of each of these settings.

By changing the values of the variables in ROADS.pm you will alter the behaviour of the ROADS tools in this installation the next time they're run. It's important to note that there are two cases where this does not apply:

Tools which are already running will need to be re-run or re-started before changes to the run-time configuration will affect them, and static files such as the subject listing HTML tree will need to be regenerated by re-running the tools which produced them with the appropriate arguments. How best to do this for your installation is discussed in the section below on management tools.

1.19 CUSTOMISING THE USER INTERFACE

The primary user interface to the ROADS software is the World-Wide Web, and the HyperText Markup Language (HTML), though many ROADS features are also accessible from the Unix command line. Most of the ROADS tools draw in their HTML from external files, rather than having this hard coded into the tools themselves - making it trivial to modify the HTML returned to the user to include local customizations such as logos and help text which is specific to the subject area.

We also provide a number of HTML style tags which allow you to introduce run-time settings from your ROADS installation and dynamic information such as search results into the HTML generated by the ROADS tools.

Most of the HTML associated with the ROADS tools can be found in the appropriate subdirectory of the ROADS config/multilingual directory - we supply a default set of message files in config/multilingual/UK-English, and are planning to gather together message sets in other European languages as part of our work on the DESIRE project. Contributions would be very welcome! This directory space is subdivided by tool name, so, for example, the opening page of HTML returned by the ROADS search tool may be found in config/multilingual/*/search/search.html.

For example, in order to customise the initial search page returned to the end user to include a locally produced logo, make use of HTML 3.2 specific colour features, and hide some of the more advanced search options you might change search.html as follows:

<HTML>
<HEAD>
<TITLE>Supercool Web Search Thingie</TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#ffffff">
<H1>Supercool Web Search Thingie</H1>

<IMG SRC="/logo.gif" ALT="">

<THISGETFORM>
 <HR>
 Query:<INPUT TYPE="text" NAME="query" SIZE=50>
 <INPUT TYPE="submit" VALUE="Start search">
 <INPUT TYPE="reset" VALUE="Clear this form">
 <HR>
Type in your search term and press the <EM>start search</EM> button.
 <HR>
 <INPUT TYPE="checkbox" NAME="caseful" VALUE="on">Case sensitive search.
 <INPUT TYPE="checkbox" NAME="ranking" VALUE="on">Rank results in order.
Type of resource:
<ALLTEMPLATETYPES>
Database:
<REALDATABASES>
 <HR>
</FORM>
</HTML>

The choice of a particular set of message files is determined by the Accept-Language: and Accept-Charset: settings of the user's WWW browser, and defaults to English in the event that the user's preferred language and character set combination is unavilable. This mechanism may be controlled by editing the file config/languages, which indicates the directory which should be used for a given language and character set combination.

Alternatively, you may prefer to take a static copy of the HTML dynamically generated by the ROADS software and modify this to incorporate your local customizations. Note that if you do this, it may be necessary to re-write your HTML from time to time if the ROADS installation details change, e.g. when moving your HTTP server to a different port number.

1.20 OTHER COOL STUFF

Whilst we have concentrated on a single metadata format, the IAFA template, and a single search and retrieval protocol, WHOIS++ - there are a variety of other formats and protocols which it may be useful to use to mount databases created with the ROADS tools. Similarly, there are a variety of other metadata formats which it may be useful to convert from, in order to create resource description templates for use with the ROADS tools.

If you wish to provide access to your database for Z39.50 clients, grab the Zplugin from:

<URL:http://www.ilrt.bris.ac.uk/roads/software/zplugin/>

This uses Index Data's Zebra Z39.50 server to provide access to ROADS records and includes a selection of Unix binaries to make it easy to set up without needing to compile the Index Data code.

As part of ROADS and other related projects, UKOLN have produced a number of software tools which may be useful to people running ROADS servers:

<URL:http://www.ukoln.ac.uk/metadata/software-tools/>

ADAM, one of the eLib subject gateway services using ROADS, have written a WWW indexing robot which can dump its results out as ROADS records. You can get it from:

<URL:http://www.adam.ac.uk/adam/tech/dc.bot/>

If you plan to modify the default database schema shipped with the ROADS software, see UKOLN's metadata pages:

<URL:http://www.ukoln.ac.uk/metadata/>

and in particular, the ROADS template registry and the ROADS cataloguing guidlines.

Our principal aim is a degree of interoperability with Harvest and Glimpse based systems using SOIF, LDAP servers using LDIF, and Z39.50 servers using GRS-1. We have also been investigating and participating in the development of the Dublin Core Element Set, which aims to provide a minimal set of metadata elements which may be used in information interchange between different systems, and in integrating the automated data gathering process used by WWW indexing systems such as the Harvest Gatherer with the cataloguing approach the ROADS software was originally designed around.

1.21 SUPPORT

We maintain a contact address for the ROADS team as a whole - roads-liaison@bristol.ac.uk, which we recommend that you use as your first point of contact with us in the event of any problems or questions.

We also run a number of mailing lists related to the ROADS software. In particular, you might want to subscribe to one or both of the following:

You can join these lists by sending an email message to majordomo@net.lut.ac.uk consisting of the word subscribe followed by the mailing list's name, e.g.

subscribe roads-hackers

Our mailing lists are archived via the World-Wide Web at:

http://www.roads.lut.ac.uk/lists/

1.22 UPGRADING

People upgrading from version 1 of the ROADS software should be aware that:

More tools now use our generic HTML rendering code - see config/multilingual/* for tool names.

The format and location of some of the configuration files has changed. In particular, those of the subject listing and What's New tools.

The various ROADS library routines have been repackaged as modules in the ROADS:: namespace. This process is only partially complete as of version 2 - in that there still exists a complex web of dependencies between modules, e.g. through the use of global variables.

There's no longer a separate ROADS manual - this is now generated from the embedded POD documentation within the ROADS tools and library modules.

1.23 CHANGES

Changes since version 1 of the ROADS software include the following :-

1.24 COPYRIGHT

Copyright (c) 1988, Martin Hamilton <martinh@gnu.org> and Jon Knight <jon@net.lut.ac.uk>. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

It was developed by the Department of Computer Studies at Loughborough University of Technology, as part of the ROADS project. ROADS is funded under the UK Electronic Libraries Programme (eLib), the European Commission Telematics for Research Programme, and the TERENA development programme.

1.25 AUTHORS

Martin Hamilton <martinh@gnu.org>, Jon Knight <jon@net.lut.ac.uk>, with apologies to Tom Christiansen, and Larry Wall :-)


Previous Next Table of Contents