Migrating Execution Management (GRAM) Components

Migrating to GT 4.1.3 from GT version 3.2:

  • The 4.1.3 protocol has been changed to be WSRF compliant. There is no backward compatibility between 4.1.3 and 3.2.

API changes since GT 3.2:

  • The MJFS create operation has become createManagedJob and, now provides the option to send a uuid. A client can use this uuid to recover a job EPR in the event that the reply message is not received. Given this new scheme, the start operation was removed. The createManagedJob() operation also allows a notification subscription request to be specified. This is the only way to reliably get all job state notifications.
  • The MJS start operation has been removed. Its purpose was to ensure that the client had received the job EPR prior to the job being executed (and thus consuming resources), and is redundant with the uuid functionality.

New GRAM Client Submission Tool:

  • globusrun-ws has replaced managed-job-globusrun as the GRAM4 client submission program. The main reason was performance. The cost of JVM startup for each job submission through managed-job-globusrun was too much. globusrun-ws is written in C and thus avoids the JVM startup cost. globusrun-ws is very similar in functionality to managed-job-globusrun, but you will need to become familiar with the arguments and options.

RSL Schema Changes Since GT 3.2:

  • RSL Substitutions RSL substitution syntax has changed to allow for a simpler RSL schema that can be parsed by standard tools. In GT 3.2, applications could define arbitrary RSL substitutions within an RSL document and rely on the GRAM service to resolve them. In GT4 GRAM4, this feature is no longer present. In GT 4.1.3 there are 5 RSL variables: ${GLOBUS_USER_HOME}, ${GLOBUS_USER_NAME}, ${GLOBUS_SCRATCH_DIR}, and ${GLOBUS_LOCATION}.
  • executable is now a single local file path. Remote URLs are no longer allowed. If executable staging is desired, it should be added to the fileStageIn directive.
  • stdin is now a single local file path. Remote URLs are no longer allowed. If stdin staging is desired, it should be added to the fileStageIn directive.
  • stdout is now a single local file path, instead of a list of remote URLs. If stdout staging is desired, it should be added to the fileStageOut directive.
  • stderr is now a single local file path, instead of a list of remote URLs. If stderr staging is desired, it should be added to the fileStageOut directive.
  • scratchDirectory has been removed.
  • gramMyJobType has been removed. "Collective" functionality is always available if a job chooses to use it.
  • dryRun has been removed. This is obsolete given the addition of the holdState attribute. setting holdState to "StageIn" should prevent the job from being submitted to the local scheduler. It can then be canceled once the StageIn-Hold state notification is received.
  • remoteIoUrl has been removed. This was a hack for GRAM2 involved with staging via GASS, and has no relevancy in the current implementation.
  • File Staging related RSL attributes have been replaced with RFT file transfer attributes/syntax.
  • RSL substitution definitions and substitution references have been removed in order to be able to use standard XML parsing/serialization tools.
  • RSL variables have been added. These are keywords denoted in the form of ${variable name} that can be found in certain RSL attributes.
  • Explicit credential references have been added, which, along with use of the new DelegationFactory service, replace the old implicit delegation model.

Fault changes since GT version 3.2:

  • CacheFaultType was removed since there is no longer a GASS cache.
  • RepeatedlyStartedFaultType was removed since there is no longer a start operation. Repeat creates with the same submission ID simply return the job EPR.
  • SLAFaultType was changed to ServiceLevelAgreementFaultType for clarification.
  • StreamServiceCreationFaultType was removed since there is no longer a stream service.
  • UnresolvedSubstitutionReferencesFaultType was removed since there is no longer support for substitution definitions and references in the RSL.
  • DatabaseAccessFaultType was removed since a database is no longer used to save job data.