This document will help user to install gt3 in linux as the Ecogrid service container.
It does NOT describe the installation of required tools.
More details can be found in http://www.globus.org.


1. Create a user named globus in your local system. If the document doesn't specify, the command will be excuted as default user - globus.

2. Download the gt3 (All Services, GPT Linux Installation Package) from: http://www-unix.globus.org/toolkit/download.html

3. Unzip the download file. It will create a new subdirectory - gt3.0.2-linux-installer in this directory.

4. Go to the installer directory, run command "./install-gt3 globus_home_directory_path".
    For example: ./install-gt3 /usr/local/devtools/gt3

5. If no critical error happend, go to globus_home_directory, run: "ant setup".
    For example:
    cd /usr/local/devtools/gt3
  ant setup

6. As root user, make a directory - $JAVA_HOME/jre/lib/endorsed and copy endorsed/xalan.jar to there.
    For example:
    mkdir $JAVA_HOME/jre/lib/endorsed
  cp
endorsed/xalan.jar $JAVA_HOME/jre/lib/endorsed

7. As root user, run command "export GLOBUS_LOCATION=`pwd`" then run "./setup/globus/setup-gsi" in globus_home_directory.
    When running the setup-gsi command,
        the format for host is: O=SEEK,OU=ca.ecoinformatics.org,OU=EcoGrid
        the format for user is: O=SEEK,OU=nceas.ucsb.edu,OU=ca.ecoinformatics.org,OU=EcoGrid
    Note: the format probably will be changed in the future. And the "OU=nceas.ucsb.edu" need be changed according yourself organization unit.

8. Request a host certificate.
    As root user, run command "bin/grid-cert-request -host hostname".
    In /etc/grid-security directory, a file named hostcert_request.pem will be found.
    Send the file to Matt Jones and request a certificate.

9. After getting the host certificate, put the file - hostcert.pem in /etc/grid-security as root user.

10.In installer directory, run command "./install-gt3-mmjfs globus_home_directory_path".

11.Go back to globus_home_directory, run command "bin/setperms.sh" as root user.

12.Create grid.mapfile in /etc/grid-security as root.
    Here is a example:
    "/O=SEEK/OU=EcoGrid/OU=ca.ecoinformatics.org/OU=nceas.ucsb.edu/CN=Jing Tao" tao   
    "/O=SEEK/OU=EcoGrid/OU=ca.ecoinformatics.org/CN=host/pine.nceas.ucsb.edu/CN=502" globus
    For part (quotation part) is DN in user certificate, the second part is local user name.

13.Create grim-port-type.xml in /etc/grid-security as root.
    Here is a example: http://www.globus.org/namespaces/managed_job/managed_job/ManagedJobPortType

14.Setup default CA:
    (1) Get globus_simple_ca_[hash-number]_setup.tar.gz from Matt Jones (The file now is in /etc/grid-security in dev.nceas.ucsb.edu).
    (2) Run command "sbin/gpt-build globus_simple_ca_[hash-number]_setup.tar.gz" in globus_home_directory.
    (3) Run command "sbin/gpt-postinstall"
    (4) As root, rerun command "setup/globus_simple_ca[Hash-number]/setup-gsi"
         the format for host is: O=SEEK,OU=ca.ecoinformatics.org,OU=EcoGrid
         the format for user is: O=SEEK,OU=nceas.ucsb.edu,OU=ca.ecoinformatics.org,OU=EcoGrid
         Note: the format probably will be changed in the future. And the "OU=nceas.ucsb.edu" need be changed according yourself organization unit.

15.Copy the follow the lines into globus_home_directory/server-config.wsdd file as children of "deployMent" element:
   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns12:QueryType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType" xmlns:ns12="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns13:query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType" xmlns:ns13="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns14:namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace" xmlns:ns14="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns15:AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType" xmlns:ns15="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns16:OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType" xmlns:ns16="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns17:condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType" xmlns:ns17="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns18:" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType" xmlns:ns18="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns19:query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType" xmlns:ns19="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns20:namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace" xmlns:ns20="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns21:AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType" xmlns:ns21="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns22:OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType" xmlns:ns22="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns23:condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType" xmlns:ns23="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns24:operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType" xmlns:ns24="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns25:concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression" xmlns:ns25="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns26:query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType" xmlns:ns26="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns27:namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace" xmlns:ns27="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns28:AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType" xmlns:ns28="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns29:OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType" xmlns:ns29="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns30:condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType" xmlns:ns30="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns31:operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType" xmlns:ns31="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns32:concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression" xmlns:ns32="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns33:query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType" xmlns:ns33="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns34:namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace" xmlns:ns34="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns35:AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType" xmlns:ns35="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns36:OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType" xmlns:ns36="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns37:condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType" xmlns:ns37="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns38:operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType" xmlns:ns38="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns39:concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression" xmlns:ns39="ecogrid://ecoinformatics.org/ecogrid-query-1.0.0beta1"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="query" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="namespace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.QueryType_namespace"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="AND" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ANDType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="OR" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ORType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="condition" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.ConditionType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="operator" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.OperatorType"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="concept" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.ecoinformatics.ecogrid.LimitedXPathExpression"/>

16.Fixed a bug in build-service.xml in globus_home_directory
         In the target named "deployWebapp", add a parameter - overwrite="yes" in the third copy command. The lines will look like:

         <copy toDir="${webapps.dir}/ogsa/WEB-INF/" overwrite="yes">
           <fileset dir="./" casesensitive="yes">
             <include name="*.wsdd"/>
           </fileset>
         </copy>

         Note: the only thing we changed is adding a overwrite="yes" in copy command.