JSDL Support

Introduction

GridSAM is one of the first system to support the Job Submission Description Language (JSDL). JSDL v1.0 is now an official Global Grid Forum recommendation for standardising the vocabularies and schema for describing a job.

GridSAM seeks to support all mandatory features and a subset of optional features that are applicable depends on the chosen deployment scenario. This document describes the features of JSDL that are currently UNSUPPORTED in GridSAM and the introduced extensions.

Unsupported Features

  • //jsdl:Resource: To be supported in future version with the Condor DRMConnector. These terms will be translated into Condor Classads. This element is not interpreted for other launching mechanisms.
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:Application/jsdl:ApplicationName: Not interpreted. Planned support in future version for preconfigured application identifiable by name
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:Application/jsdl:ApplicationVersion: Not interpreted. Planned support in future version for preconfigured application identifiable by name
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:Application/jsdl-posix:POSIXApplication/jsdl-posix:Limit*: Not interpreted.
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:Application/jsdl-posix:POSIXApplication/jsdl-posix:WorkingDirectory: Ignored in Fork, SSH, Condor. The working directory for these DRMConnectors are dynamically generated in the spool directory. Supported in Globus 2.4.3.
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:DataStaging/jsdl:CreationFlag: Only "overwrite" is supported. This will be fixed in future version when the Virtual File System support is improved.
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:DataStaging/jsdl:FileSystemName: Not supported. The element is ignored and mapped to a file system provided by the launching mechanism.

Special Remarks

  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:JobIdentification/jsdl:JobName: Stored as urn:gridsam:JobName job property
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:JobIdentification/jsdl:Description: Stored as urn:gridsam:Description job property
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:JobIdentification/jsdl:JobAnnotation: Stored as urn:gridsam:JobAnnotation job property
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:JobIdentification/jsdl:JobProject: Stored as urn:gridsam:JobProject job property
  • /jsdl:JobDefinition/jsdl:JobDescription/jsdl:DataStaging//jsdl:URI: For URL schemes ftp://, http://, webdav:// and sftp://. Only simple username/password authentication are supported, however the username/password must be embedded as plain-text in the JSDL document. (e.g. http://myname:mypassword@www.myhost.com/myfile). For gsiftp:// URL scheme, the jsdl:JobDefinition/myproxy:MyProxy element is used to retrieve a Globus credential in order to perform the staging.

GridSAM Extensions

MPIApplication (Globus 2.4.3 DRM Connector only)

    ..
    <jsdl:Application>
        ..
        <mpi:MPIApplication xmlns:mpi="urn:gridsam:mpi">
            <jsdl-posix:*/>*
            <mpi:ProcessorCount>xsd:positiveInteger</mpi:ProcessorCount>
        </mpi:MPIApplication>
        ..
    </jsdl:Application>
    ..

GridSAM-proposed extension to the jsdl-posix:POSIXApplication description. GridSAM user can use the mpi:MPIApplication element instead of the jsdl-posix:POSIXApplication to denote a MPI compiled application.

An mpi:MPIApplication element contains all the elements defined in jsdl-posix:POSIXApplication as well as the following additional elements. MPI application support is only currently implemented in the Globus 2.4.3 DRMConnector. Please consult your service administrator to see whether MPI is supported. See Quick Start Guide for an example.

  • mpi:ProcessorCount: The number of processor to be used for the MPI application.

MyProxy Authentication

    <jsdl:JobDefinition>
        <jsdl:JobDescription>
            ...
        </jsdl:JobDescription>
        <myproxy:MyProxy xmlns:myproxy="urn:gridsam:myproxy">
            <myproxy:MyProxyServer>xsd:string</myproxy:MyProxyServer>
            <myproxy:ProxyServerDN>xsd:string</myproxy:ProxyServerDN>?
            <myproxy:ProxyServerPort>xsd:positiveInteger</myproxy:ProxyServerPort>?
            <myproxy:ProxyServerUserName>xsd:string</myproxy:ProxyServerUserName>
            <myproxy:ProxyServerPassPhrase>xsd:string</myproxy:ProxyServerPassPhrase>
            <myproxy:ProxyServerLifetime>xsd:int</myproxy:ProxyServerLifetime>?
        </myproxy:MyProxy>
    </jsdl:JobDefinition>

GridSAM introduces a non-standard JSDL extension so that user can specify a MyProxy credential to be passed to a GridSAM instance in order for it to interact with Globus 2.4.3 based compute and file resources.

  • myproxy:MyProxyServer: MyProxy server hostname
  • myproxy:ProxyServerDN: Expected MyProxy server distinguished name so GridSAM can authenticate the server.
  • myproxy:ProxyServerPort: MyProxy server port. The default is 7512.
  • myproxy:ProxyServerUserName: The MyProxy username
  • myproxy:ProxyServerPassPhrase: The plain-text MyProxy passphrase. User should authenticate and authorise the GridSAM server before passing this information across the network.
  • myproxy:ProxyServerLifetime: The lifetime of the delegated proxy retrieved from the MyProxy server.