Setting up a FAQO Server
This is rudimentary documentation for setting up a FAQO server at your
site. Apologies for how primitive it all us so far.
The FAQO clients are downloaded through WebStart from here.
You just have to change the Server URL in Configure/ Preferences/FAQO Server.
The server code is 100% Java except for the SVD solver, which is in
C. It requires Java 1.3, and has been tested under Win32, Solaris and Linux.
(jdk1.2.2
probably will still work, but is no longer being tested).
Installation
The following is how I set my server up, you should modify as suits you.
I assume you will set it up in directory $BASE.
-
Create $BASE/server directory, and put these files into it: FAQOServer.jar,
activation.jar,
jdom.jar,
jhall.jar,
mail.jar,
xerces.jar,
and
startFAQOServer.
-
Add these jar files to jre/lib/ext, or to $BASE/server: mail.jar,
activation.jar,
jh.jar
-
Create $BASE/bin, and these files into it: libfaqo.so
(linux) or faqo.dll
and netcdf.dll
(Win32). On other systems (and possibly on variations of those) you'll
have to build these yourself from the source code, below.
-
Add $BASE/bin to your PATH.
-
Decide on where you have enough space for the FAQO databases; I assume
here its $FAQO/data.
-
You need to modify startFAQOServer, to use the correct data path. It currently
looks like:
java -Djava.rmi.server.codebase=http://faqo.unidata.ucar.edu/faqo/server/FAQOServer.jar \
-Xmx256m \
-Djava.security.policy=$BASE/policy \
-classpath ./FAQOServer.jar faqo.server.FAQOServer \
$BASE/data
Some notes about this startup script:
-
The first line points to where the codebase lives on an http server. I
think this is not actually used (because the client has all the code it
needs), but you should probably change it to one of your http servers,
in case I'm wrong.
-
The second line says to give the JVM 256 Mbytes. This has been a reasonable
number for the databases we have, but you might need more or less.
-
The third line points to the jar file. You can make this an absolute path
if you want t ostart the script from somewhere else.
-
Change the fourth line to the root directory of your FAQO databases. Create
that directory if it doesnt exist.
To run the Server:
-
Start up the rmiregistry:
> rmiregistry &
-
Start up the FAQO server:
> startFAQOServer
Privileges
Functionality is controlled by giving users specific privileges
in one, several, or all databases. Higher privileges have all the rights
of lower privileges.
The privileges are:
-
Login : allowed to login
-
Read : allowed to make queries, read databases
-
Rate: allowed to rate queries
-
Write: allowed to modify and delete messages
-
Owner: can add new messages, expunge deleted messages, change the matching
algorithm parameters.
-
Admin: can add, repair databases.
Privileges are controlled by two configuration files, privList and users.xml.
privList file
This lists all privileges granted
Example:
# priv userName dbName
Login * * # anyone has login privileges
Read * * # anyone has read privileges
Rate * * # anyone has rate privileges
Owner joe /unidata/ldm* # joe has owner privilege on /unidata/ldm and its subdirectories
Owner fred /unidata/netcdf/netcdf # fred has owner privilege on the /unidata/netcdf/netcdf database
Admin john * # john has admin privilege on all databases
users.xml file
If you assign users any privileges, you must enter their name and assign
them a password in the users.xml file. Each user is named as a "substore",
and their password entered. Currently this must all be done by hand.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<store name="root" version="1.0">
<substore name="joe">
<string name="Password" value="test" />
</substore>
<substore name="fred">
<string name="Password" value="mama" />
</substore>
</store>
Comments, complaints and compliments: caron@ucar.edu
Last updated: 05/16/2001