ROADS v1 to v2 migration - A HOW-TO Guide
ROADS v2 is a major revision of the ROADS software that provides
improvements in performance and functionality in a number of areas. Many of
the potential users of ROADS v2 will already be running one of the older
ROADS v1 releases. This document aims to explain how to go about upgrading
from ROADS v1 to ROADS v2 in the most painless and safest way possible.
The basic method of updating from one major release of ROADS to another is
to place the new version in a separate installation on the machine, copy
over your existing data, configure the new release to run it's WHOIS++
daemon on a different port and access its web pages via different URLs
temporarily, reindex your templates, test that the new search scripts and
admin tools work and configure them to your taste. Once you're satisfied
that the new release is working and configured the way you want it, you can
simply reconfigure the new WHOIS++ daemon to run on your normal WHOIS++
port, shutdown the old WHOIS++ daemon, start the new WHOIS++ daemon and
then reconfigure your http daemon to point to the new ROADS CGI scripts
instead of those from the old release. If done carefully, users should be
able to be serviced almost continuously, with only a very small break
whilst the WHOIS++ servers are switched over.
One thing that is not advisable is to attempt to use different components
from different ROADS major releases together at the same time.
Configuration file settings can change between major releases and we can't
guarantee backward compatibility. Having said that, your existing
configuration settings should provide a good start for configuring your new
ROADS installation.
The first thing to do is to acquire the latest ROADS v2 distribution from
http://www.roads.lut.ac.uk/ .
Uncompress and untar this distribution into a new directory. For the sake
of this document we'll refer to this directory as NEWROADS. We'll call the installation directory for the old version of ROADS OLDROADS.
Next make a copy of your existing template source directory. To do this,
assuming that your existing templates are in OLDROADS/source, use the following commands:
- mv NEWROADS/source NEWROADS/source.orig
=item mkdir NEWROADS/source
=item cp -r OLDROADS/source NEWROADS/source
-
Next you can run the Configure script in the NEWROADS directory. This should look very similar to the one used to configure ROADS
v1 but we've tried to streamline its operation a little. Many of the
default values are likely to be correct for your new installation but there
are some that we'll need to modify:
- WWW path to ROADS executables directory on HTTP server?
-
Set this to ROADSv2/cgi-bin
- What is the Web path to the ROADS HTML documents directory?
-
Set this to ROADSv2
- WWW path to admin executables directory?
-
Set this to ROADSv2/admin-cgi
- What port number is your WWW server running on?
-
You may need to alter this if you run your HTTP daemon on a non-standard
port or if you plan to run up a second daemon to test this ROADS v2
installation with (see below).
- What port number will your WHOIS++ server be listening on?
-
Set this to a port that you are currently not using on the machine. In this
document we'll call this NEWPORT.
There maybe some other options that you wish to change based on your local
situation - all the Configure options are documented in the ROADS v2 technical documentation or by using perldoc on the
Configure program.
Now a web server will need to be configured to point to where the new ROADS
v2 CGI scripts and HTML documents will live. There is the choice of either
running a completely new instance of the web server or making the current
web server map the new ROADS v2 CGI scripts and HTML documents into its
document space at additional, new temporary locations. The former method is
known to work with older HTTP daemons such as the CERN 3.0 server whilst
the second method is more amenable to modern servers such as Apache as it
reduces the number of processes that have to be running on your machine.
The actual details of how this configuration is done will depend on the
actual HTTP daemon in use; please refer to its documentation for details of
how to configure it. You might also want to configure the server to protect
at least the ROADSv2/admin-cgi directory from access outside of a known set
of administators.
The installation can now be finished by using your web browser to access http://your.server.edu/ROADSv2/admin-cgi/admincentre.pl
and then index your records and start your WHOIS++ server. If the
admincentre.pl doesn't work check your web server is configured correctly,
that the script is executable by the user that the web server is running as
and that the path you supplied to the Perl interpreter in the
Configure script is correct. As a last check that your initial installation is
working, try contacting your WHOIS++ daemon. Do this using http://your.server.edu/ROADSv2/cgi-bin/search.pl
CGI script and check that you can retrieve a known record from your
database. If you have problems check the above problem list, plus ensure
that the new WHOIS++ server is running and you can contact it. You can
check the last part by telneting to your server machine using the port you
specified for the WHOIS++ daemon. If its up and running you should get a
welcome message and you can then type in a query directly. If problems
persist refer to the ROADS v2 technical documentation or contact roads-liaison@bris.ac.uk.
Now that you have a working ROADS v2 installation using your existing data,
you can start to reconfigure and customise the installation. Many of the
configuration files are similar between ROADS v1 and ROADS v2 but as there
are some changes it is worth making modifications by hand to the
distributed defaults based on the values in your original installation
rather than simply copying your existing configuration files over.
Configuration files to check for customisations are:
- NEWROADS/config/outlines/
-
This directory contains the outlines of the template types you can use,
along with configutation options for the web based template editor. If
you've added new templates or modified existing template outlines in v1,
you'll want to transfer the changes over now.
- NEWROADS/config/mktemp-views/
-
This directory contains the editing views for the web based template
editor. If you've any local editing views you'll need to add these in here
(making sure that the attributes in these files match up with the
associated files in the above outlines directory).
- NEWROADS/config/class-map
-
- NEWROADS/config/subject-listing
-
These two are used to control the generation of subject listings. If you've
configured subject listings in ROADS v1 you'll need to transfer the
settings over here. Note that you can have multiple class mapping files and
they don't need to be called class-map as that can be specified in the
subject-listing configuration file or on the command lines of bin/addsl.pl and bin/cullsl.pl
- NEWROADS/config/whats-new
-
This directory contains the configuration files for the bin/addwn.pl
and bin/cullwn.pl programs. These will need to be updated if you have changed the defaults in
ROADS v1. Note that in ROADS v2 there is a Mailshot configuration file that
might be suitable for making whats-new mailshots to regular users (though
you'll need to create your own mailing lists and associated software).
- NEWROADS/config/languages
-
This file contains a list of the language codes and character sets and the
associated relative path from NEWROADS/config/ to the directory holding all the script directories that contain
the HTML documents and fragments in the appropriate language and character
set. You should be able to tranlate any settings that you have used in
ROADS v1 more or less directly because although the multilingual support in
ROADS v2 has been considerably improved, this file has the same format.
- NEWROADS/config/multilingual/
-
This directory contains a directory for each language supported (shipped
only with a full set of UK-English) which in turn contains subdirectories
for each of the ROADS CGI scripts that in turn contain the HTML documents
and fragments return by the scripts. These will almost certainly need to
modified to give the site the look and feel you desire. Some simple HTML
documents can be transfered almost unchanged from ROADS v1 but pay
attention to the documents used by
cgi-bin/search.pl, admin-cgi/admincentre.pl,
admin-cgi/admin.pl and admin-cgi/mktemp.pl as these scripts have lots of new options available.
- NEWROADS/config/admin-restrict
-
- NEWROADS/config/search-restrict
-
These two files specify the attributes in templates that can be searched
and returned to either administrators or normal users. The defaults are
probably sane for most installations but if you modified your v1
restrictions, added new template types or modified existing template
outlines you might wish to check these.
- NEWROADS/config/authority/
-
This directory contains sub-directories for various template types which
themselves contain files named after attributes in that template. These
files contain the authority lists for use with the web based template
editor. If you have installed authority files in ROADS v1 you'll need to
transfer these over to here.
- NEWROADS/config/databases
-
If you make use of virtual databases within a single ROADS installation,
you'll need to modify this file. The format is the same as in ROADS v1.
- NEWROADS/config/protocols
-
This file lists protocols that should be waylaid rather than returned
directly to the user. It tells ROADS what the protocol scheme name is and
the HTML file to use. For most installations the defaults should be fairly
sane but if you have lots of records using strange protocols that most web
browsers can not handle by default you might want to add them in here.
- NEWROADS/config/stopattr
-
- NEWROADS/config/stoplist
-
These two files specify the list of attributes in templates not to index or
search on and the list of stopwords that are also ignored. If these have
been modified in ROADS v1, you might want to transfer the settings across
to the new installation.
Once you think you've got the configuration to your taste and checked all
the search and administration programs that you use are working and look
OK, its time to move over from ROADS v1 to ROADS v2. The first thing to do
is to make sure that any templates that have been added to your existing
installation are copied into the NEWROADS/source directory and the database is reindexed.
Now shut down the new WHOIS++ server from the http://your.server.edu/ROADSv2/admin-cgi/admincentre.pl
and then tweak the NEWROADS/config/databases to point to the port that the existing ROADS v1 server is
running on.
Next stop the existing ROADS v1 WHOIS++ server from your existing
admincentre.pl and then quickly restart the new WHOIS++ server from http://your.server.edu/ROADSv2/admin-cgi/admincentre.pl.
This is the point when most users will notice a service distruption so this
should be done during your server's normal at risk maintanence period.
At this point your end users will see the data from your new WHOIS++ server
via the old ROADS v1 HTML forms and CGI scripts. The last thing to do to
transfer to ROADS v2 is to reconfigure your HTTP daemon to point to NEWROADS/htdocs, NEWROADS/cgi-bin and NEWROADS/admin-cgi using the web document space paths that you have been using for
the ROADS v1 installation. Once again how you do this will depend upon the
HTTP daemon that you use and you should consult your daemon's
documentation.
You should now find that you have a working ROADS v2 installation in
production service in place of your previous ROADS v1 installattion. If
space is an issue you might want to backup the old ROADS v1 installation to
offline storage and then delete the old installation. You may also want to
review the ROADS v2 technical documentation to find out what new features
are available in ROADS v2 to improve services to end users and make
administrators lives easier.