Appendix I. GT 4.1.2 Element Producers

1. The Current RPProviders

The first major structural change is that an RPProvider package was created within the UsefulRP package. The intent of this new package was to provide some basic and flexible ways to insert arbitrary data into the Index service that are exposed as RPs. In particular, this package has a set of 'producers' that are used to get data into the Index service. For the first draft of the changes, we now have the following producers:

  1. External Process Element Producer - this producer executes any arbitrary command or script that emits XML and it will be published as an RP.

  2. File Element Producer - this producer publishes the contents of a file on local disk to the Index service as an RP.

  3. JVM Info Element Producer - this producer is a useful testing mechanism that emits information about the host JVM as an RP.

  4. Scheduler Info Element Producer - this producer executes the scheduler (batch) provider script for GRAM. This is a replacement for the inflexible code that previously executed the scheduler provider script.

  5. URL Element Producer - this producer retrieves data from a configurable web based site and publishes the retrieved data into the Index as an RP.

The above producers allow flexibility regarding what data can be published in the Index service, how to publish that data done and exposing data as RPs from a variety of sources.

2. External Process Element Producer

TODO: make a similar section for each producer

To use the External Process Element Producer, add an entry in the following form to your $GLOBUS_LOCATION//etc/globus_wsrf_mds_index/rp-provider-config.xml file.

    
    <ns1:resourcePropertyName xsi:type="xsd:QName"
        xmlns:mds="http://mds.globus.org/glue/ce/1.1"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">mds:MyTestRP</ns1:resourcePropertyName>
    <ns1:resourcePropertyImpl xsi:type="xsd:string"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">org.globus.mds.usefulrp.rpprovider.SingleValueResourcePropertyProvider</ns1:resourcePropertyImpl>
    <ns1:resourcePropertyElementProducers xsi:type="ns1:resourcePropertyElementProducerConfig">
        <ns1:className xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">org.globus.mds.usefulrp.rpprovider.producers.ExternalProcessElementProducer</ns1:className>
        <ns1:arguments xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">/PATH/TO/MY/PROGRAM</ns1:arguments>
        <ns1:arguments xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">DUMMY-ARGUMENT</ns1:arguments>
        <ns1:transformClass xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">org.globus.mds.usefulrp.rpprovider.transforms.MyCustomTransformClass</ns1:transformClass>
        <ns1:transformArguments xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">transformDummyArgument</ns1:transformArguments>
        <ns1:period xsi:type="xsd:int" xmlns:xsd="http://www.w3.org/2001/XMLSchema">300000</ns1:period>
    </ns1:resourcePropertyElementProducers>

Configuration settings for the External Process Element Producer

resourcePropertyName

Specifies the name of the RP that you'd like the data to be accessed by.

resourcePropertyImpl

Describes how the RP will be handled. The SingleValueResourcePropertyProvider is suitable for most uses.

resourcePropertyElementProducers

This element is required and wraps the following elements. For this type of RPProvider, the className must be specified as org.globus.mds.usefulrp.rpprovider.producers.ExternalProcessElementProducer.

Configuration settings for resourcePropertyElementProducers

first argument

The first arguments element is the name of the script or program that you'd like to have executed. This script or program is expected to generate XML data that will be included in the Index.

second argument

The second arguments element is an arbitrary piece of data that will be provided to the process specified in the first argument as a (command line) argument.

transformClass

This element is optional (and may be excluded), but is provided in the case that you would like a post processing transform to occur on the output of the data generated by the process.

transformArguments

If the transformClass element was specified, the transformArguments element may be specified, which will be provided to the transformClass as a (command line like) argument.

element

The period element is required and specifies the interval at which to re-execute this external process and update the information it generates in the Index service.

3. File Element Producer

To use the File Element Producer, add an entry in the following form to your $GLOBUS_LOCATION//etc/globus_wsrf_mds_index/rp-provider-config.xml file.

    <ns1:resourcePropertyName xsi:type="xsd:QName"
        xmlns:frp="http://my.ns.domain/file"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">frp:MyFileRP</ns1:resourcePropertyName>
    <ns1:resourcePropertyImpl xsi:type="xsd:string"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">org.globus.mds.usefulrp.rpprovider.SingleValueResourcePropertyProvider</ns1:resourcePropertyImpl>
    <ns1:resourcePropertyElementProducers
        xsi:type="ns1:resourcePropertyElementProducerConfig">
        <ns1:className xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">org.globus.mds.usefulrp.rpprovider.producers.FileElementProducer</ns1:className>
        <ns1:arguments xsi:type="xsd:string"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">/PATH/TO/MY/XML/FILE</ns1:arguments>
        <ns1:transformClass xsi:type="xsd:string" xsi:nil="true"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
        <ns1:period xsi:type="xsd:int"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">60</ns1:period>
    </ns1:resourcePropertyElementProducers>