GT4 GRAM Design Details

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_G... 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/W... The delegation interfaces are described here: http://www-unix.globus.org/toolkit/docs/development/3.9.4/security/delegatio... 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/s.... 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.
participants (1)
-
Ian Foster