GT 4.0 WS GRAM: Job Description Schema Doc

Table of Contents

top

Schema Document Properties

Target Namespace http://www.globus.org/namespaces/2004/10/gram/job/description
Language en
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • http://www.globus.org/namespaces/2004/10/gram/job/types (at managed_job_types.xsd)
    • http://schemas.xmlsoap.org/ws/2004/03/addressing (at ../ws/addressing/WS-Addressing.xsd)
    • http://www.globus.org/namespaces/2004/10/rft (at ../transfer/reliable/reliable_transfer_types.xsd)
Documentation

RSL Variables

The RSL Language includes support for system-specific variable substitutions. These variables allow one to write an RSL without specific knowledge of the execution host's local account or directory configuration.

RSL Variable Syntax

RSL variable references occur within the contents of an xsd:string type RSL element. The syntax for an RSL variable reference is

                   DOLLAR-SIGN LEFT-BRACE variable-name RIGHT-BRACE
                
As an example:
                    <rsl:executable>myJob</rsl:executable>
                    <rsl:stdout>stdout.${GLOBUS_USER_NAME}</rsl:stdout>
                
Which would get resolved (supposing the executable is being run under the "user0001" account) to the job description:
                    <rsl:executable>myJob</rsl:executable>
                    <rsl:stdout>stdout.user0001</rsl:stdout>
                

RSL Attributes Which May Contain Variable References

RSL Variable substitutions may not occur in all RSL Job Attributes. Their use is restricted to those which contain arbitrary string data and which may be used to access the local resource associated with a job. The list of attributes which may contain RSL Variables is:

  • executable
  • directory
  • argument
  • environment
  • stdin
  • stdout
  • stderr
  • libraryPath
  • fileStageIn
  • fileStageOut
  • fileCleanUp

RSL Variable Descriptions

GLOBUS_USER_HOME
The path to the home directory for the local account/user
GLOBUS_USER_NAME
The local account the job is running under
GLOBUS_SCRATCH_DIR
An alternative directory where a file system is shared with the compute nodes that a user might want to use. Typically it will provide more space than the users default HOME dir. This directory's value may contain ${GLOBUS_USER_HOME}, which will be replaced with value of that substitution.
GLOBUS_LOCATION
Path to the Globus Toolkit installation

Differences From Pre-WS GRAM and OGSA GRAM

In both Pre-WS GRAM and OGSA-GRAM, applications could define arbitrary RSL substitutions within an RSL document and rely on the GRAM service to resolve them. This feature is no longer present. Only those RSL variables described in this document may be referenced in an RSL job description.

In both Prew-WS GRAM and OGSA-GRAM, RSL substitutions could be used in arbitrary Job Description attributes. In an effort to more strongly type RSL Job Description documents in WS-GRAM, RSL substitutions are now restricted to be used only in certain attribute contexts.

OGSA GRAM defines RSL Substitutions as separate XML elements within an RSL Job Description document. With GT4 WS-GRAM, RSL variable references are included with a special syntax within certain RSL job description elements.

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
rft http://www.globus.org/namespaces/2004/10/rft
wsa http://schemas.xmlsoap.org/ws/2004/03/addressing
xsd http://www.w3.org/2001/XMLSchema
types http://www.globus.org/namespaces/2004/10/gram/job/types
tns http://www.globus.org/namespaces/2004/10/gram/job/description
Schema Component Representation
<xsd:schema xml:lang="en" targetNamespace="http://www.globus.org/namespaces/2004/10/gram/job/description" elementFormDefault="qualified">
<xsd:import namespace="http://www.globus.org/namespaces/2004/10/gram/job/types" schemaLocation="managed_job_types.xsd"/>
<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../ws/addressing/WS-Addressing.xsd"/>
<xsd:import namespace="http://www.globus.org/namespaces/2004/10/rft" schemaLocation="../transfer/reliable/reliable_transfer_types.xsd"/>
...
</xsd:schema>
top

Global Declarations

Element: argument

Name argument
Type xsd:string
Nillable no
Abstract no
Documentation A command line argument for the executable. Each argument is a separate element within the job description. Spaces and quotes within an argument will preserved literally. One argument section per executable argument token must be provided. To execute e.g. a shell script, one needs to specify <executable>/bin/sh</executable> <argument>-c</argument> <argument>echo "Ran script!"</argument>
XML Instance Representation
<tns:argument> xsd:string </tns:argument>
Schema Component Representation
<xsd:element name="argument" type="xsd:string"/>
top

Element: count

Name count
Type xsd:positiveInteger
Nillable no
Abstract no
Default Value 1
Documentation The number of executions of the executable. Default: 1 (if the element is empty or missing)
XML Instance Representation
<tns:count> xsd:positiveInteger </tns:count>
Schema Component Representation
<xsd:element name="count" type="xsd:positiveInteger" default="1"/>
top

Element: directory

Name directory
Type xsd:string
Nillable no
Abstract no
Documentation Specifies the path of the directory the jobmanager will use as the default directory for the requested job.
XML Instance Representation
<tns:directory> xsd:string </tns:directory>
Schema Component Representation
<xsd:element name="directory" type="xsd:string"/>
top

Element: environment

Name environment
Type tns:NameValuePairType
Nillable no
Abstract no
Documentation The environment variables that will be defined for the executable in addition to default set that is given to the job by the jobmanager.
XML Instance Representation
<tns:environment>
<tns:name> xsd:string </tns:name> [1]
<tns:value> xsd:string </tns:value> [1]
</tns:environment>
Schema Component Representation
<xsd:element name="environment" type="tns:NameValuePairType"/>
top

Element: executable

Name executable
Type xsd:string
Nillable no
Abstract no
Documentation The name of the executable file to run on the remote machine. If the value is a GASS URL, the file is transferred to the remote gass cache before executing the job and removed after the job has terminated.
XML Instance Representation
<tns:executable> xsd:string </tns:executable>
Schema Component Representation
<xsd:element name="executable" type="xsd:string"/>
top

Element: extensions

Name extensions
Type tns:ExtensionsType
Nillable no
Abstract no
Documentation This section is currently used only to specify client-specific data which the client wishes to associate with the job it is controlling.
XML Instance Representation
<tns:extensions>
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</tns:extensions>
Schema Component Representation
<xsd:element name="extensions" type="tns:ExtensionsType"/>
top

Element: factoryEndpoint

Name factoryEndpoint
Type wsa:EndpointReferenceType
Nillable no
Abstract no
Documentation The Managed Job Factory service endpoint to submit this job description to.
XML Instance Representation
<tns:factoryEndpoint
Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
<wsa:Address> wsa:AttributedURI </wsa:Address> [1]
<wsa:ReferenceProperties> wsa:ReferencePropertiesType </wsa:ReferenceProperties> [0..1]
<wsa:PortType> wsa:AttributedQName </wsa:PortType> [0..1]
<wsa:ServiceName> wsa:ServiceNameType </wsa:ServiceName> [0..1]
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</tns:factoryEndpoint>
Schema Component Representation
<xsd:element name="factoryEndpoint" type="wsa:EndpointReferenceType"/>
top

Element: fileCleanUp

Name fileCleanUp
Type rft:DeleteRequestType
Nillable no
Abstract no
Documentation Specifies a list of files local to the job which indicate files to be removed via a GridFTP-compatible file server.
XML Instance Representation
<tns:fileCleanUp>
<!-- 'tns:BaseRequestType' super type was not found in this schema. Some elements and attributes may be missing. -->
<tns:deletion> tns:DeleteType </tns:deletion> [1..*]
<tns:deleteOptions> tns:DeleteOptionsType </tns:deleteOptions> [0..1]
</tns:fileCleanUp>
Schema Component Representation
<xsd:element name="fileCleanUp" type="rft:DeleteRequestType"/>
top

Element: fileStageIn

Name fileStageIn
Type rft:TransferRequestType
Nillable no
Abstract no
Documentation Specifies a list of ("remote URL" "local file") pairs which indicate files to be staged to the nodes which will run the job.
XML Instance Representation
<tns:fileStageIn>
<!-- 'tns:BaseRequestType' super type was not found in this schema. Some elements and attributes may be missing. -->
<tns:transfer> tns:TransferType </tns:transfer> [1..*]
<tns:rftOptions> tns:RFTOptionsType </tns:rftOptions> [0..1]
<tns:allOrNone> xsd:boolean </tns:allOrNone> [0..1]
</tns:fileStageIn>
Schema Component Representation
<xsd:element name="fileStageIn" type="rft:TransferRequestType"/>
top

Element: fileStageOut

Name fileStageOut
Type rft:TransferRequestType
Nillable no
Abstract no
Documentation Specifies a list of ("local file" "remote URL") pairs which indicate files to be staged from the job to a GridFTP-compatible file server.
XML Instance Representation
<tns:fileStageOut>
<!-- 'tns:BaseRequestType' super type was not found in this schema. Some elements and attributes may be missing. -->
<tns:transfer> tns:TransferType </tns:transfer> [1..*]
<tns:rftOptions> tns:RFTOptionsType </tns:rftOptions> [0..1]
<tns:allOrNone> xsd:boolean </tns:allOrNone> [0..1]
</tns:fileStageOut>
Schema Component Representation
<xsd:element name="fileStageOut" type="rft:TransferRequestType"/>
top

Element: hostCount

Name hostCount
Type xsd:positiveInteger
Nillable no
Abstract no
Documentation Only applies to clusters of SMP computers, such as newer IBM SP systems. Defines the number of nodes pizza boxes") to distribute the "count" processes across.
XML Instance Representation
<tns:hostCount> xsd:positiveInteger </tns:hostCount>
Schema Component Representation
<xsd:element name="hostCount" type="xsd:positiveInteger"/>
top

Element: job

Name job
Type tns:JobDescriptionType
Nillable no
Abstract no
XML Instance Representation
<tns:job>
<types:holdState> ... </types:holdState> [0..1]
<tns:executable> ... </tns:executable> [0..1]
<tns:directory> ... </tns:directory> [0..1]
<tns:argument> ... </tns:argument> [0..*]
<tns:environment> ... </tns:environment> [0..*]
<tns:stdin> ... </tns:stdin> [0..1]
<tns:stdout> ... </tns:stdout> [0..1]
<tns:stderr> ... </tns:stderr> [0..1]
<tns:count> ... </tns:count> [0..1]
<tns:libraryPath> ... </tns:libraryPath> [0..*]
<tns:hostCount> ... </tns:hostCount> [0..1]
<tns:project> ... </tns:project> [0..1]
<tns:queue> ... </tns:queue> [0..1]
<tns:maxTime> ... </tns:maxTime> [0..1]
<tns:maxWallTime> ... </tns:maxWallTime> [0..1]
<tns:maxCpuTime> ... </tns:maxCpuTime> [0..1]
<tns:maxMemory> ... </tns:maxMemory> [0..1]
<tns:minMemory> ... </tns:minMemory> [0..1]
<tns:jobType> ... </tns:jobType> [0..1]
<tns:fileStageIn> ... </tns:fileStageIn> [0..1]
<tns:fileCleanUp> ... </tns:fileCleanUp> [0..1]
<tns:extensions> ... </tns:extensions> [0..1]
</tns:job>
Schema Component Representation
<xsd:element name="job" type="tns:JobDescriptionType"/>
top

Element: jobCredentialEndpoint

Name jobCredentialEndpoint
Type wsa:EndpointReferenceType
Nillable no
Abstract no
Documentation An EPR which points to the delegated credential resource.
XML Instance Representation
<tns:jobCredentialEndpoint
Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
<wsa:Address> wsa:AttributedURI </wsa:Address> [1]
<wsa:ReferenceProperties> wsa:ReferencePropertiesType </wsa:ReferenceProperties> [0..1]
<wsa:PortType> wsa:AttributedQName </wsa:PortType> [0..1]
<wsa:ServiceName> wsa:ServiceNameType </wsa:ServiceName> [0..1]
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</tns:jobCredentialEndpoint>
Schema Component Representation
<xsd:element name="jobCredentialEndpoint" type="wsa:EndpointReferenceType"/>
top

Element: jobType

Name jobType
Type tns:JobTypeEnumeration
Nillable no
Abstract no
Documentation This specifies how the jobmanager should start the job.
XML Instance Representation
<tns:jobType> tns:JobTypeEnumeration </tns:jobType>
Schema Component Representation
<xsd:element name="jobType" type="tns:JobTypeEnumeration"/>
top

Element: libraryPath

Name libraryPath
Type xsd:string
Nillable no
Abstract no
Documentation Specifies a list of paths to be appended to the system-specific library path environment variables.
XML Instance Representation
<tns:libraryPath> xsd:string </tns:libraryPath>
Schema Component Representation
<xsd:element name="libraryPath" type="xsd:string"/>
top

Element: maxCpuTime

Name maxCpuTime
Type xsd:long
Nillable no
Abstract no
Documentation Explicitly set the maximum cputime per executable process. The units is in minutes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set cputime, then an error will be returned.
XML Instance Representation
<tns:maxCpuTime> xsd:long </tns:maxCpuTime>
Schema Component Representation
<xsd:element name="maxCpuTime" type="xsd:long"/>
top

Element: maxMemory

Name maxMemory
Type xsd:nonNegativeInteger
Nillable no
Abstract no
Documentation Explicitly set the maximum amount of memory per executable process. The units is in Megabytes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set maxMemory, then an error will be returned.
XML Instance Representation
<tns:maxMemory> xsd:nonNegativeInteger </tns:maxMemory>
Schema Component Representation
<xsd:element name="maxMemory" type="xsd:nonNegativeInteger"/>
top

Element: maxTime

Name maxTime
Type xsd:long
Nillable no
Abstract no
Documentation The maximum walltime or cputime per executable process. Walltime or cputime is selected by the GRAM scheduler being interfaced. The units is in minutes. The value will go through an atoi() conversion in order to get an integer.
XML Instance Representation
<tns:maxTime> xsd:long </tns:maxTime>
Schema Component Representation
<xsd:element name="maxTime" type="xsd:long"/>
top

Element: maxWallTime

Name maxWallTime
Type xsd:long
Nillable no
Abstract no
Documentation Explicitly set the maximum walltime per executable process. The units is in minutes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set walltime, then an error will be returned.
XML Instance Representation
<tns:maxWallTime> xsd:long </tns:maxWallTime>
Schema Component Representation
<xsd:element name="maxWallTime" type="xsd:long"/>
top

Element: minMemory

Name minMemory
Type xsd:nonNegativeInteger
Nillable no
Abstract no
Documentation Explicitly set the minimum amount of memory per executable process. The units is in Megabytes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set minMemory, then an error will be returned.
XML Instance Representation
<tns:minMemory> xsd:nonNegativeInteger </tns:minMemory>
Schema Component Representation
<xsd:element name="minMemory" type="xsd:nonNegativeInteger"/>
top

Element: multiJob

Name multiJob
Type tns:MultiJobDescriptionType
Nillable no
Abstract no
XML Instance Representation
<tns:multiJob>
<types:holdState> ... </types:holdState> [0..1]
<tns:executable> ... </tns:executable> [0..1]
<tns:directory> ... </tns:directory> [0..1]
<tns:argument> ... </tns:argument> [0..*]
<tns:environment> ... </tns:environment> [0..*]
<tns:stdin> ... </tns:stdin> [0..1]
<tns:stdout> ... </tns:stdout> [0..1]
<tns:stderr> ... </tns:stderr> [0..1]
<tns:count> ... </tns:count> [0..1]
<tns:libraryPath> ... </tns:libraryPath> [0..*]
<tns:hostCount> ... </tns:hostCount> [0..1]
<tns:project> ... </tns:project> [0..1]
<tns:queue> ... </tns:queue> [0..1]
<tns:maxTime> ... </tns:maxTime> [0..1]
<tns:maxWallTime> ... </tns:maxWallTime> [0..1]
<tns:maxCpuTime> ... </tns:maxCpuTime> [0..1]
<tns:maxMemory> ... </tns:maxMemory> [0..1]
<tns:minMemory> ... </tns:minMemory> [0..1]
<tns:jobType> ... </tns:jobType> [0..1]
<tns:fileStageIn> ... </tns:fileStageIn> [0..1]
<tns:fileCleanUp> ... </tns:fileCleanUp> [0..1]
<tns:extensions> ... </tns:extensions> [0..1]
<tns:job> tns:JobDescriptionType </tns:job> [1..*]
</tns:multiJob>
Schema Component Representation
<xsd:element name="multiJob" type="tns:MultiJobDescriptionType"/>
top

Element: project

Name project
Type xsd:string
Nillable no
Abstract no
Documentation Target the job to be allocated to a project account as defined by the scheduler at the defined (remote) resource.
XML Instance Representation
<tns:project> xsd:string </tns:project>
Schema Component Representation
<xsd:element name="project" type="xsd:string"/>
top

Element: queue

Name queue
Type xsd:string
Nillable no
Abstract no
Documentation Target the job to a queue (class) name as defined by the scheduler at the defined (remote) resource.
XML Instance Representation
<tns:queue> xsd:string </tns:queue>
Schema Component Representation
<xsd:element name="queue" type="xsd:string"/>
top

Element: serviceLevelAgreement

Name serviceLevelAgreement
Type tns:ServiceLevelAgreementType
Nillable no
Abstract no
XML Instance Representation
<tns:serviceLevelAgreement>
Start Choice [1]
<tns:job> ... </tns:job> [1]
<tns:multiJob> ... </tns:multiJob> [1]
End Choice
</tns:serviceLevelAgreement>
Schema Component Representation
<xsd:element name="serviceLevelAgreement" type="tns:ServiceLevelAgreementType"/>
top

Element: stagingCredentialEndpoint

Name stagingCredentialEndpoint
Type wsa:EndpointReferenceType
Nillable no
Abstract no
Documentation An EPR which points to the delegated credential resource used to make remote calls to RFT.
XML Instance Representation
<tns:stagingCredentialEndpoint
Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
<wsa:Address> wsa:AttributedURI </wsa:Address> [1]
<wsa:ReferenceProperties> wsa:ReferencePropertiesType </wsa:ReferenceProperties> [0..1]
<wsa:PortType> wsa:AttributedQName </wsa:PortType> [0..1]
<wsa:ServiceName> wsa:ServiceNameType </wsa:ServiceName> [0..1]
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</tns:stagingCredentialEndpoint>
Schema Component Representation
<xsd:element name="stagingCredentialEndpoint" type="wsa:EndpointReferenceType"/>
top

Element: stderr

Name stderr
Type xsd:string
Nillable no
Abstract no
Documentation The name of the remote file to store the standard error from the job. The standard error from the job is staged after the execution to the paths or URLs specified as the values. Values which are local paths will be staged relative to the users home directory. Values which are absolute paths will be staged simply as if 'file://' were prepended to the path.
XML Instance Representation
<tns:stderr> xsd:string </tns:stderr>
Schema Component Representation
<xsd:element name="stderr" type="xsd:string"/>
top

Element: stdin

Name stdin
Type xsd:string
Nillable no
Abstract no
Documentation The name of the file to be used as standard input for the executable on the remote machine. If the value is a GASS URL, the file is transferred to the remote gass cache before executing the job and removed after the job has terminated.
XML Instance Representation
<tns:stdin> xsd:string </tns:stdin>
Schema Component Representation
<xsd:element name="stdin" type="xsd:string"/>
top

Element: stdout

Name stdout
Type xsd:string
Nillable no
Abstract no
Documentation The name of the remote file to store the standard output from the job. The standard output from the job is staged after the execution to the paths or URLs specified as the values. Values which are local paths will be staged relative to the users home directory. Values which are absolute paths will be staged simply as if 'file://' were prepended to the path.
XML Instance Representation
<tns:stdout> xsd:string </tns:stdout>
Schema Component Representation
<xsd:element name="stdout" type="xsd:string"/>
top

Global Definitions

Complex Type: ExtensionsType

Super-types: None
Sub-types: None
Name ExtensionsType
Abstract no
XML Instance Representation
<...>
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
Schema Component Representation
<xsd:complexType name="ExtensionsType">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
top

Complex Type: FilePairType

Super-types: None
Sub-types: None
Name FilePairType
Abstract no
XML Instance Representation
<...>
<tns:sourceFile> xsd:string </tns:sourceFile> [1]
<tns:destinationFile> xsd:string </tns:destinationFile> [1]
</...>
Schema Component Representation
<xsd:complexType name="FilePairType">
<xsd:sequence>
<xsd:element name="sourceFile" type="xsd:string"/>
<xsd:element name="destinationFile" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
top

Complex Type: JobDescriptionType

Super-types: None
Sub-types:
Name JobDescriptionType
Abstract no
XML Instance Representation