[ogsa-wg] GT4 GRAM Design Details

Ian Foster foster at mcs.anl.gov
Mon Jan 17 18:52:54 CST 2005


Dear All:

I promised on today's call to send some information on the GT4 GRAM design. 
Here it is. I'm sure it's not the ultimate answer, but a lot of thought and 
experience have gone into defining this set of WSRF/WSN-compliant portTypes 
for job submission and management.

Comments and questions would be appreciated.

Regards -- Ian.


GT4 GRAM

The GRAM documentation is at: 
http://www-unix.globus.org/toolkit/docs/development/3.9.4/execution/wsgram/

Architecture and concepts are described at: 
http://www-unix.globus.org/toolkit/docs/development/3.9.4/execution/key/WS_GRAM_Approach.html

In brief, a "GRAM server" is implemented by a "managed job factory", which 
responds to requests to create managed jobs, and a "delegation factory", 
which responds to requests to create delegated credentials. Internally, its 
implementation uses an RFT server to manage staging of input, executables, 
and output, including streaming output.

The interfaces for the managed job factory and managed job are described 
here: 
http://www-unix.globus.org/toolkit/docs/development/3.9.4/execution/wsgram/WS_GRAM_Public_Interfaces.html

The delegation interfaces are described here: 
http://www-unix.globus.org/toolkit/docs/development/3.9.4/security/delegation/WS_AA_Delegation_Service_Public_Interfaces.html

The only really complex operation is ManagedJobFactory::createManagedJob, 
which takes as an argument a job description in an XML-format job 
description language described at 
http://www-unix.globus.org/toolkit/docs/development/3.9.4/execution/wsgram/schemas/mjs_job_description.html. 
This language can describe arguments, executables, staging requirements, 
resource requirements, etc.

I also enclose a draft document that may be of interest. This is a very 
early draft of a GT4 Primer that I'm working on. Pages 29-43 provide a 
tutorial introduction to GT4 GRAM components from the client perspective. 
[BTW Any comments would be of great interest!!]

Finally, the following (from the "Architecture and Concepts" page 
referenced above) describes the protocol:


Protocol Overview

As depicted above, the WS GRAM protocol is centered around the creation of 
a stateful ManagedJob resource using the ManagedJobFactory createJob() 
operation. A simple batch job may involve nothing more than this initial 
client creation step, with all other job lifecycle steps occuring 
automatically in the server. A number of optional protocol elements are 
available for more complex scenarios.

(Need to verify operation names.)DelegationFactory::createDelegation
This (optional) step allows a client to delegate credentials that will be 
required for correct operation of WS GRAM, RFT, or the user's job process. 
Such credentials are only used when referenced in the subsequent job 
request and under the condition that WS GRAM or RFT is configured to make 
use of the DelegationFactory, respectively.

Delegation::refresh
This (optional) step allows a client to update the credentials already 
established for use with the previous createDelegation step.

ManagedJobFactory::createManagedJob
This required step establishes the stateful ManagedJob resource which 
implements the job processing described in the input request.

ManagedJob::release
This (optional) step allows the ManagedJob to continue through a state in 
its lifecycle where it was previously held or scheduled to be held 
according to details of the original job request. It is a fault to try to 
release a hold that was not set in the job request or that was already 
released.

ManagedJob::setTerminationTime
This (optional) step allows the client to reschedule automatic termination 
to be different than was originally set during creation of the ManagedJob 
resource.

ManagedJob::destroy
This (optional) step allows the client to explicitly abort a job and 
destroy the ManagedJob resource, in the event that the scheduled automatic 
termination time is not adequate.

ManagedJob::subscribe
This (optional) step allows a client to subscribe for notifications of 
status (and particularly lifecycle status) of the ManagedJob resource. For 
responsiveness, it is possible to establish an initial subscription in the 
createJob() operation without an additional round-trip communication to the 
newly created job.

ManagedJob::queryProperty and queryMultipleProperties
These (optional) steps allow a client to query the status (and particularly 
lifecycle status) of the ManagedJob resource.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/ogsa-wg/attachments/20050117/671a8905/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: GT Primer 0.5.pdf
Type: application/pdf
Size: 1851502 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/ogsa-wg/attachments/20050117/671a8905/attachment.pdf 


More information about the ogsa-wg mailing list