Installation Guide

Prerequisite

  1. JDK 1.4 or 1.5
  2. Ant
  3. GT4. The minimum requirement is to download and install the GT4 Java WS Core, which is available from GT4 web site. Assume it is installed at $GLOBUS_LOCATION. Need to set up an environment variable "GLOBUS_LOCATION" that reflects the GT4 installation directory. Also may put $GLOBUS_LOCATION/bin into the "PATH" environment variable.
  4. Download four packages: Grimoires, Grimoires-WSRF, Grimoires-GT4Authorization, Grimoires-GT4SecureClient. Unzip them. Grimoires-GT4Authorization is not used in this guide, but it will be used in the security guide.

Grimoires

This section explains how to install the Grimoires component.

  1. Under the root directory of the Grimoires package, there is a file called "init.properties". In it, make sure "container = axis". The reason to use "axis" instead of "gt4" is that Grimoires can not be compiled against the Axis jars provided by GT4. So we use axis jars provided in Grimoires, which is Axis 1.2RC3.
  2. In "src/", there is a file called "grimoires.properties", which determines Grimoires' runtime behaviour. It is pre-configured to use a file-backed in-memory Sesame RDF triple store as Grimoires' backend. We need to specify where to put that file, for instance, "sesame.file = c:\\sesame.rdf". Also set "authfile = _globus_location_/etc/grimoires/authlist.xml". Replace "_globus_location_" with the actual absolute path for $GLOBUS_LOCATION. It will be used by the access controller.
  3. Under the root directory of the Grimoires package, run "ant jar", which will do the compilation and generate the jar. Note, Grimoires can be compiled under either Java 1.4 or Java 1.5. But if you compile Grimoires using 1.5, you can not run it under GT4 running under 1.4.
  4. run "ant gt4.makeGar", this will generate a GT4 gar file "grimoires.gar" under "dist/server/".
  5. cd dist/server; globus-deploy-gar grimoires.gar.

Now you should have successfully deployed Grimoires.

Grimoires-WSRF

This section explains how to install the Grimoires-WSRF component.

  1. In "$GLOBUS_LOCATION\share\globus_wsrf_tools\build-stubs.xml", append the following content "-x http://www.grimoires.org/metadata.xsd -x http://www.grimoires.org/wsdl/type -x urn:uddi-org:api_v2"
    to ${ns.excludes}. The modified ${ns.excludes} should look like:
    	<property name="ns.excludes" value="-x http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd 
    	-x http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.wsdl ...... ......
    	-x http://www.w3.org/2000/09/xmldsig# -x http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd 
    	-x http://www.grimoires.org/metadata.xsd -x http://www.grimoires.org/wsdl/type -x urn:uddi-org:api_v2"/>
    The reason is that we do not want Grimoires data models to be regenerated when build
    Grimoires-WSRF. They are already available in Grimoires jars.
  2. Under the root directory of the Grimoires-WSRF package, run "ant jarAllStubs". It generates and compiles stubs. This only needs to be
    called once if WSDLs are not modified in future.
  3. run "ant deploy". It deploys Grimoires-WSRF to GT4.
  4. run "ant buildFactoryClient". It deploys a command-line client for the factory interface in Grimoires-WSRF into GT4.

Now you should have successfully deployed Grimoires-WSRF.

Grimoires-GT4SecureClient

This section explains how to install the Grimoires-GT4SecureClient component.

  1. Under the root directory of the Grimoires-GT4SecureClient package, run "ant compile".

Test

Start the GT4 container by "globus-start-container -nosec". You will see a list of services currently deployed. Among them, there should be "http://hostname:8080/wsrf/services/grimoires/publish" (one of the services in Grimoires), and "http://hostname:8080/wsrf/services/grimoires/wsrf/query" (one of the services in Grimoires-WSRF).

Test Grimoires

Under the root directory of the Grimoires-GT4SecureClient package, run "run.bat _grimoires_location_ < input.txt". Assume it is on Windows.

If GT4 WS container is deployed at "http://hostname:8080/wsrf/services", where you can see a list of services, then "_grimoires_location_" should be "http://hostname:8080/wsrf/services/grimoires".

"input.txt" contains commands to drive the client (GShell). You will see output on the screen. There should not be any exception.

Test Grimoires-WSRF

wsrf-query -s http://hostname:8080/wsrf/services/grimoires/wsrf/query "/"

You will see output on the screen. There should not be any exception.

What if something goes wrong