[ogsa-bes-wg] WS-GRAM protocol sketch, as promised on telecon

Karl Czajkowski karlcz at univa.com
Fri Aug 5 03:51:50 CDT 2005


This is excerpted from a larger summary I sent to the BES BoF list
back at the beginning of the year... it shows the "boxcar"
submission+subscription mechanism as well as the hold/release
mechanism.  I've left out extra content that was in the previous email
to focus on these parts.

Note, WS-GRAM currently has only one "hold" state that is used for
synchronizing _cleanup_ of jobs.  It would be meaningful to have a
_startup_ hold state such as we had in previous GRAM protocols, but it
is not strictly necessary for reliable invocation because we use the
idempotent message-id idiom instead.

Also, keep in mind that the subscription patterns works because we are
using WSRF style rendering w/ properties and topics defined for the
job resource.  So, the semantics are quite clear: create the job
resource and then invoke the subscription operation on it w/ the
arguments embedded in the creation message.

Please see the Globus website documentation, for example,

http://www-unix.globus.org/toolkit/docs/4.0/execution/wsgram/developer/WS_GRAM_Java_Scenarios.html

for examples of client-side programming to build up and send such
protocol messages.


karl


---------------------------------------------------------

PORTTYPE ManagedJobFactoryPortType

----------

OPERATION job:createManagedJob

Request creation of a Managed Executable Job Resource whose EPR will
be returned in the response.


INPUT

message: createManagedJobInputMessage has one part:

   <createManagedJob>
      <InitialTerminationTime>xsd:dateTime</InitialTerminationTime>?
      <JobID>wsa:AttributedURI</JobID>?
      <wsnt:Subscribe></wsnt:Subscribe>?
      <desc:job> ... </desc:job>
   </createManagedJob>

The optional JobID element is used to request idempotent invocation
semantics in a binding-independent manner.  The optional
wsnt:Subscribe element is used to request automatic subscription to
the newly created Managed Job.

This call can also create a Managed Multi-Job Resource, i.e. a
co-allocated job spread across multiple WS-GRAM hosts, because the job
element is actually in an XSD choice with a multijob element.


OUTPUT

message: createManagedJobOutputMessage has one part:

   <createManagedJobResponse>
      <NewTerminationTime>xsd:dateTime</NewTerminationTime>
      <CurrentTime>xsd:dateTime</CurrentTime>
      <managedJobEndpoint>wsa:EndpointReferenceType</managedJobEndpoint>
      <subscriptionEndpoint>wsa:EndpointReferenceType</subscriptionEndpoint>?
   </createManagedJobResponse>

The optional subscriptionEndpoint is returned if a corresponding
subscription request was included in the input.


---------------------------------------------------------

PORTTYPE ManagedExecutableJobPortType

A Managed Executable Job Resource (MEJR) represents one job that has
already been submitted by a client.

It is a WSRF style resource with a resource properties document to
represent status of the job:

<managedExecutableJobResourceProperties>
   <stdoutURL>xsd:anyURI</stdoutURL>?
   <stderrURL>xsd:anyURI</stderrURL>?
   <credentialPath>xsd:string</credentialPath>?
   <exitCode>xsd:int<exitCode/>?

   <serviceLevelAgreement>
      <desc:job> ... </desc:job>
   </serviceLevelAgreement>
   <Capacity>xsd:int</Capacity>
   <userSubject>xsd:string</userSubject>
   <fault/>

   <TopicExpressionDialects>xsd:anyURI</TopicExpressionDialects>
   <Topic Dialect=xsd:anyURI>
      xsd:any?
   </Topic>+

   <TerminationTime>xsd:dateTime</TerminationTime>
   <localUserId>xsd:string</localUserId>
   <CurrentTime>xsd:dateTime</CurrentTime>
   <holding>xsd:boolean</holding>
   <RegistrantData>xsd:base64Binary</RegistrantData>
   <RendezvousCompleted>xsd:boolean</RendezvousCompleted>
   <FixedTopicSet>xsd:boolean</FixedTopicSet>
   <state>Unsubmitted|StageIn|Pending|Active|Suspended|StageOut|Cleanup|Done|Failed</state>
</managedExecutableJobResourceProperties>

These properties relate to job output file management:

  stdoutURL, stderrURL

delegated credential management:

  credentialPath

parallel task rendezvous (for MPICH-G2):

  Capacity, RegistrantData, RendezvousCompleted

job status:

  exitCode, fault, holding, state

job introspection:

  credentialPath, serviceLevelAgreement, localUserId

for WSRF introspection:

  TopicExpressionDialects, Topic, FixedTopicSet,
  TerminationTime, CurrentTime.



----------

OPERATION exec:release

Releases job from hold state.  The hold state is an optional behavior
selected in the job description to prevent post-execution file
deletions (clean-up) from occuring while a remote client is still
attempting to access the files.  The release operation permits the
normal clean-up to occur.


INPUT

message: releaseInputMessage has one (empty) part:

   <release/>


OUTPUT

message: releaseOutputMessage has one (empty) part:

   <releaseResponse/>


-- 
Karl Czajkowski
karlcz at univa.com





More information about the ogsa-bes-wg mailing list