Globus Teleoperations Control Protocol (GTCP): System Administrator's Guide

1. Introduction

This guide contains advanced configuration information for system administrators working with GTCP. It provides references to information on procedures typically performed by system administrators, including installation, configuring, deploying, and testing the installation.

[Important]Important

This information is in addition to the basic Globus Toolkit prerequisite, overview, installation, security configuration instructions in the GT 4.0 System Administrator's Guide. Read through this guide before continuing!

2. Building and installing

To install GTCP:

  1. Install the Globus Toolkit by doing one of the following:

  2. Set your GLOBUS_LOCATION environment variable to the directory in which the Globus Toolkit has been installed.
  3. Install GTCP, either from a distribution file or from source:

    • To install from a distribution file (the GTCP distribution file can be found in the "contrib" directory in the full Globus distribution), run:

      $GLOBUS_LOCATION/sbin/gpt-build gt4-gtcp-0.1-src_bundle.tar.gz
      

    • To install from CVS, do the following:

      setenv CVSROOT :pserver:[email protected]:/home/globdev/CVS/globus-packages
      cvs co playground/telecontrol
      cd playground/telecontrol/gtcp
      ant
      

3. Configuring

The following parameters, set in $GLOBUS_LOCATION/etc/globus_telecontrol_gtcp_service/server-config.wsdd, are used to configure GTCP:

Table 1. GTCP configuration parameters

NameMeaning
gtcpBackendFactoryName of the desired GTCP plugin class.
isSecureIf true, GTCP will allow only users in the gridmap file to perform operations that change system state.
gridMapFileName of the gridmap file to be used if isSecure is set.

3.1. Running without security (Version 4.0.4 and later)

If you wish to run GTCP completely without security, then you must follow two steps:

  1. In the file $GLOBUS_LOCATION/etc/globus_telecontrol_gtcp_service/server-config.wsdd, make sure that the isSecure is set to false and that the securityDescriptor is set to etc/globus_telecontrol_gtcp_service/security_descriptor_nosec.xml. In other words, change:

    
            <!-- For insecure operation, set "isSecure" to "false" and 
                 uncomment the securityDescriptor line.  -->
            <parameter name="isSecure" value="true"/>
            <!-- <parameter name="securityDescriptor" value="etc/globus_telecontrol_gtcp_service/security_descriptor_nosec.xml"/> -->
    

    to:

            <!-- For insecure operation, set "isSecure" to "false" and 
                 uncomment the securityDescriptor line.  -->
            <parameter name="isSecure" value="false"/>
            <parameter name="securityDescriptor" value="etc/globus_telecontrol_gtcp_service/security_descriptor_nosec.xml"/>
    
  2. When you run globus-start-container, use the -nosec option, to tell Globus not to do transport-level security:

    globus-start-container -nosec
    

3.2. Running without security (Version 4.0.3 and earlier)

Versions before 4.0.3 do not come with the global_security_descriptor file. In those versions, the easiest way to run without security is to make sure that the isSecure parameter is set to false as described above, and to make sure there is no global security descriptor set.

To make sure there is no global security descriptor set, look at the file $GLOBUS_LOCATION/etc/globus_wsrf_core/server-config.wsdd. If you see an entry that looks like this:

        <parameter 
            name="containerSecDesc" 
            value="etc/globus_wsrf_core/global_security_descriptor.xml"/>
then you should comment it out:
        <!--<parameter 
            name="containerSecDesc" 
            value="etc/globus_wsrf_core/global_security_descriptor.xml"/>-->

Then restart the container with the -nosec flag as described above.

4. Deploying

Once GTCP is installed, no further deployment steps are necessary.

5. Testing

To run the GTCP tests, make sure that $GLOBUS_LOCATION is set and, if you're running with security, that you have a valid proxy certificate. Then start the GTCP server and run the unit tests:

  1. To start the GTCP server, do the following:

    cd $GLOBUS_LOCATION
    bin/globus-start-container
    

    You may also want to use one or more of these command-line options

    Table 2. Server command-line options

    OptionEffect
    -nosecTells the Globus container not to do transport-level security
    -p 1234Tells the Globus container to listen on port 1234 instead of the default port (which is 8443 if the -nosec option is specified, 8080 otherwise).

    Note: the GTCP server will continue to run in the foreground. You can also redirect the output to a file and run it in the background if you wish.

  2. To run the unit tests, in another window, make sure that $GLOBUS_LOCATION is set correctly and run:

        ant -f ${GLOBUS_LOCATION}/etc/globus_telecontrol_gtcp_service/build.xml \
            -Dweb.server.url=your_container_base_url \
            test-installed
    

    where your_container_base_url is the base url of your Globus container (for example, https://127.0.0.1:8443/wsrf/services/).

If the test output ends with:

    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 16.556 sec

then the tests have passed. Note: because the test code checks that illegal requests fail, it may print some error messages and cause the container to print some error messages and/or stack traces. This is normal; as long as the test output reports that it ran 2 tests with 0 failures and 0 errors, the tests have passed.

6. Security considerations

In some applications, control of physical equipment carries the risk of serious property damage or injury. These applications should implement operational security procedures and not rely solely on software security.

7. Troubleshooting

If the unit tests fail, double-check the format of the URL specified on the ant line. The test code is somewhat unforgiving; if the trailing "/" is omitted, then the tests will fail.