Services and WSDL

1. Protocol overview

GRAM4 allows for remote execution and management of programs through the creation of a managed job. The management of the job is taken care of primarily by core toolkit functionality (WS-ResourceLifetime and WS-BaseN implementations). Please see Java WS Core on notifications and resource lifetime (destruction) for more information.

1.1. Managed Job Factory Service (MJFS)

A single MJFS is used to create all jobs for all users. For each local resource manager, a dedicated Managed Job Factory Resource (MJFR) enables the MJFS to publish information about the characteristics of the compute resource, for example:

  • host information
  • GridFTP URL (for file staging and streaming)
  • compute cluster size and configuration, and so on...

In addition, there is a special MJFR which is used for creating MMJRs.

1.2. Managed Executable Job Service (MEJS)

A single MEJS is used to manage all executable jobs for all users. Each Managed Executable Job Resource (MEJR) enables the MEJS to publish information about the individual job the MEJR represents. This information can be accessed by querying the MEJS for the resource properties of a given MEJR, such as the:

  • current job state
  • stdout location
  • stderr location
  • exit code, and so on.

1.3. Managed Multi Job Service (MMJS)

A single MMJS is used to manage all multi-jobs for all users. Each Managed Multi-Job Resource (MMJR) enables the MMJS to publish information about the individual multi-job the MMJR represents. This information can be accessed by querying the MMJS for the resource properties of a given MMJR, such as the:

  • current overall job state
  • list of sub-job EPRs

2. Operations

There are just two operations defined in the GRAM port types (not counting the Rendezvous port type which is used for MPI job synchronization): "createManagedJob" in the Managed Job Factory port type, and "release" in the Managed Job port type. All other operations (such as canceling/killing the job and querying for resource properties) are provided by the underlying WSRF implementation of the toolkit.

2.1. ManagedJobFactoryPortType

  • createManagedJob: This operation creates either a MEJR or MMJR, subscribes the client for notifications if requested, and replies with one or two endpoint references (EPRs). The input of this operation consists of a job description, an optional initial termination time for the job resource, and an optional state notification subscription request.

The first EPR:

  • is qualified with the identifier to the newly created MEJR or MMJR
  • points to either the MEJS or MMJS.

The second EPR:

  • is only present if a notification subscription was requested
  • is qualified with the identifier to the newly created subscription resource
  • points to the subscription manager service.

Using the optional subscription request provides an efficient means of subscribing to the newly created MEJR or MMJR without additional round-trip messages. Clients who subscribe afterwards must check the current status of the job, since the inherent race-condition means some state-changes may have occurred prior to the separate subscription request. In any event, there is a slight risk of lost notifications due to the lack of reliability guarantees in the notification delivery mechanism from WS-BaseNotification.

The ManagedJobFactoryPortType also has all the operations and publishes all the resource properties (via the MJFR) defined in the following WS-ResourceProperties port types:

  • GetResourceProperty
  • GetMultipleResourceProperties
  • QueryResourceProperties

2.2. ManagedJobPortType

This port type does not define any new operations itself, but has all the operations and publishes all the resource properties defined in the following port types:

ReleaseManagedJob port type:

  • release: This operation takes no parameters and returns nothing. Its purpose is to release a hold placed on a state through the use of the "holdState" field in the job description. See the domain-specific GRAM4 component documentation for more information on the "holdState" field.

TerminateManagedJob port type:

  • terminate: This operation terminates a job. Depending on arguments and the state of the job this may result in immediate destruction of the job resource or in starting of clean up steps and resource destruction after the clean up is done.

WS-ResourceProperties port types:

  • GetResourceProperty
  • GetMultipleResourceProperties
  • QueryResourceProperties

WS-ResourceLifetime port types:

  • ScheduledResourceTermination

WS-BaseNotification port type:

  • NotificationProducer

2.3. Managed Executable Job Port Type

This port type does not define any new operations. See "Resources Properties" under Services and WSDL.

2.4. Managed Multi-Job Port Type

This port type does not define any new operations. See "Resources properties" below.

3. Resource properties

3.1. Managed Job Factory Port Type

  • {http://www.globus.org/namespaces/2008/03/gram/job}condorArchitecture

    Condor architecture label.

  • {http://www.globus.org/namespaces/2008/03/gram/job}condorOS

    Condor OS label.

  • {http://www.globus.org/namespaces/2008/03/gram/job}delegationFactoryEndpoint

    The endpoint reference to the delegation factory used to delegated credentials to the job.

  • {http://mds.globus.org/glue/ce/1.1}GLUECE

    GLUE data

  • {http://mds.globus.org/glue/ce/1.1}GLUECESummary

    GLUE data summary

  • {http://www.globus.org/namespaces/2008/03/gram/job}globusLocation

    The location of the Globus Toolkit installation that these services are running under.

  • {http://www.globus.org/namespaces/2008/03/gram/job}hostCPUType

    The job host CPU architecture (i686, x86_64, etc...)

  • {http://www.globus.org/namespaces/2008/03/gram/job}hostManufacturer

    The host manufacturer name. May be "unknown".

  • {http://www.globus.org/namespaces/2008/03/gram/job}hostOSName

    The host OS name (Linux, Solaris, etc...)

  • {http://www.globus.org/namespaces/2008/03/gram/job}hostOSVersion

    The host OS version.

  • {http://www.globus.org/namespaces/2008/03/gram/job}localResourceManager

    The local resource manager type (i.e. Condor, Fork, LSF, Multi, PBS, etc...)

  • {http://www.globus.org/namespaces/2008/03/gram/job}availableLocalResourceManager

    All local resource managers that are configured in this GRAM4 instance

  • {http://www.globus.org/namespaces/2008/03/gram/job}jobTTLAfterProcessing

    Time in seconds a job resource will stay alive after a job finished processing in GRAM4 (including fileStageOut, fileCleanUp). When this time elapsed the job resource is destroyed and no longer be available for a client. A negative values means that the job resource will never be destroyed.

  • {http://www.globus.org/namespaces/2008/03/gram/job}maxJobLifetime

    Max time in seconds a user can set as initial lifetime in job submission or in subsequent setTerminationTime calls. A negative value means that there is no limit.

  • {http://mds.globus.org/metadata/2005/02}ServiceMetaDataInfo

    service start time, Globus Toolkit(R) version, service type name

  • {http://www.globus.org/namespaces/2008/03/gram/job}scratchBaseDirectory

    The directory recommended by the system administrator to be used for temporary job data.

  • {http://www.globus.org/namespaces/2008/03/gram/job}stagingDelegationFactoryEndpoint

    The endpoint reference to the delegation factory used to delegated credentials to the staging service (RFT).

3.2. Managed Job Port Type

  • {http://www.globus.org/namespaces/2008/04/rendezvous}Capacity

    Used for Rendezvous.

  • {http://docs.oasis-open.org/wsrf/rl-2}CurrentTime

    Time of creation.

  • {http://docs.oasis-open.org/wsrf/rp-2}QueryExpressionDialect

    From the QueryResourceProperties port type.

  • {http://www.globus.org/namespaces/2008/03/gram/job/faults}fault

    Faults (if generated) that happen along job processing and that cause a job to fail.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}holding

    Indicates whether a hold has been placed on this job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}localUserId

    The job owner's local user account name.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RegistrantData

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RendezvousCompleted

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/03/gram/job/description}serviceLevelAgreement

    A wrapper around fields containing the single-job and multi-job descriptions or RSLs. Only one of these sub-fields shall have a non-null value.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}state

    The current state of the job.

  • {http://docs.oasis-open.org/wsrf/rl-2}TerminationTime

    Time when the resource expires.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}userSubject

    The GSI certificate DN of the job owner.

3.3. Managed Executable Job Port Type

  • {http://docs.oasis-open.org/wsrf/rl-2}CurrentTime

    Time of creation.

  • {http://docs.oasis-open.org/wsrf/rl-2}TerminationTime

    Time when the resource expires.

  • {http://www.globus.org/namespaces/2008/03/gram/job/exec}credentialPath

    The path (relative to the job process) to the file containing the user proxy used by the job to authenticate out to other services.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}exitCode

    The exit code generated by the job process.

  • {http://www.globus.org/namespaces/2008/03/gram/job/faults}fault

    The fault (if generated) indicating the reason for failure of the job to complete.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}holding

    Indicates whether a hold has been placed on this job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}localUserId

    The job owner's local user account name.

  • {http://www.globus.org/namespaces/2008/03/gram/job/exec}localJobId

    The job id(s) of the job in the local resource manager. Note that for Fork jobs these id's are prefixed with the uuid of the job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/description}serviceLevelAgreement

    A wrapper around fields containing the single-job and multi-job descriptions or RSLs. Only one of these sub-fields shall have a non-null value.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}state

    The current state of the job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/exec}stderrURL

    A GridFTP URL to the file generated by the job which contains the stderr.

  • {http://www.globus.org/namespaces/2008/03/gram/job/exec}stdoutURL

    A GridFTP URL to the file generated by the job which contains the stdout.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}userSubject

    The GSI certificate DN of the job owner.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}Capacity

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RegistrantData

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RendezvousCompleted

    Used for Rendezvous.

  • {http://docs.oasis-open.org/wsrf/rp-2}QueryExpressionDialect

    From the QueryResourceProperties port type.

3.4. Managed Multi-Job Port Type

  • {http://docs.oasis-open.org/wsrf/rl-2}CurrentTime

    Time of creation.

  • {http://docs.oasis-open.org/wsrf/rl-2}TerminationTime

    Time when the resource expires.

  • {http://www.globus.org/namespaces/2008/03/gram/job/faults}fault

    The fault (if generated) indicating the reason for failure of the job to complete.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}holding

    Indicates whether a hold has been placed on this job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}localUserId

    The job owner's local user account name.

  • {http://www.globus.org/namespaces/2008/03/gram/job/description}serviceLevelAgreement

    A wrapper around fields containing the single-job and multi-job descriptions or RSLs. Only one of these sub-fields shall have a non-null value.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}state

    The current state of the job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/multi}subJobEndpoint

    A set of endpoint references to the sub-jobs created by this multi-job.

  • {http://www.globus.org/namespaces/2008/03/gram/job/types}userSubject

    The GSI certificate DN of the job owner.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}Capacity

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RegistrantData

    Used for Rendezvous.

  • {http://www.globus.org/namespaces/2008/04/rendezvous}RendezvousCompleted

    Used for Rendezvous.

  • {http://docs.oasis-open.org/wsrf/rp-2}QueryExpressionDialect

    From the QueryResourceProperties port type.