Skip to end of metadata
Go to start of metadata

Description:

Here is a brief notes on how Taverna can Submit Jobs to Grid Clusters using GridSAM WebService.

GridSAM is a job submission and monitoring web service[1]. It provides a Web Service  for submitting and monitoring jobs managed by a variety of Distributed Resource Managers [1] (SGE, PBS, Globus etc). It uses JSDL (Job Submission Description Language) to define the job/jobs to run and the necessary filestaging to transfer data to a job and retrieve output created by a job.[2]

Taverna has JSDL Local Worker and Credential Creator Plugins (which are not in cvs) , and these plugins will be used in the workflow creation process. Taverna uses JSDL to talk to GridSAM. JSDL localworker takes required information from input values and produces equivalent JSDL, which will be submitted to GridSAM. Using Credential Creator Plugin user can send credential to MyProxy Server from pk12 or pem formatted files.

Prerequisites:

Infrastructure Prerequisites:  GridSAM Webservice is required to submit jobs to GRAM.  GridSAM WebService can be installed with OMII-server installations. It can be configured to run on GSI enabled clusters using Globus-DRM option. 

It has been installed on NGS clusters[2]).

Setup:

Inorder to use GridSAM webservice with Taverna user need to install omii-client. If taverna is not downloaded from OMII stack, user need to set a 'omii.client.home' variable in runme.sh file of taverna. If GridSAM webservice is running on SSL. Inorder to talk to that service securely , user need to setup the keystore as specified in the OMII guide lines, and a variable point to keystore has to be set in runme.sh. So that Taverna can talk to Secured GridSAM webservice using https protocol.

ARGS="$ARGS -Djavax.net.ssl.trustStore=/home/username/OMIICLIENT/omii.ks"

Data Staging: GridSAM client has FTP server, which can be started using the following command.

gridsam_ftp_server -d /home/user/filestaging_directory -p 19245 (eg: port 19245)

Files need to be staged has to be present in the specified directory, and also files will be staged out to this directory.  These file locations will be specified in the  jsdl string.

Usage:

  1. Store the wsdl file of GridSAM webservice to a local file system. In the file, change 'localhost' with hostname. (to fix a small bug with GridSAM webservice).
  2. Add the wsdl file to Taverna GUI using 'add wsdl scavenger'.
  3. Add the plugins (JSDL-Localworker, MyProxy Plugin) to  Taverna GUI using plugin-manager.
  4. Using MyProxyPlugin  send credential to MyProxy Server.
  5. Build workflow using Taverna GUI as shown in picture. JSDLLocal worker is in local service-xml.
  6. JobMonitoring has to be done until job is completed, it can be achieved with a nested-workflow with critical option, and specifying the number of retries (eg. 200).
  7. Outputfile content can be displayed with Get_Web_page_from_URL option, or it can be be passed to another job as input.

Outstanding Issues:

1. GridSAM service has a bug in submitting jobs to Globus-DRM.

2. Looping is not trivial.  For simple job (helloworld), the nested loop has been repeated around 250 times.

3. GridSAM server is throwing  OutofMemoryError, for a simple job-submission through taverna.

Discussion:

Writing different  localworkers for different DRM systems might be better approach, until we have better looping mechanism. 

Example JSDL produced by JSDL-Localworker :

<submitJob xmlns="http://www.icenigrid.org/service/gridsam">

    <JobDescription> <JobDefinition xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl">

    <JobDescription>

    <Application>

    <POSIXApplication xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl-posix">

        <Executable>/bin/echo</Executable>

        <Argument>helloworld</Argument>

        <Output>tesuer1207582306231</Output>

    </POSIXApplication>

    </Application>

<DataStaging>

    <FileName>file1</FileName>

    <CreationFlag>overwrite</CreationFlag>

    <Source>

        <URI>ftp://rpc326.cs.man.ac.uk:19245/file1</URI>

    </Source>

</DataStaging>

<DataStaging>

    <FileName>file2</FileName>

    <CreationFlag>overwrite</CreationFlag>

    <Source>

        <URI>ftp://rpc326.cs.man.ac.uk:19245/file2</URI>

    </Source>

</DataStaging>

<DataStaging>

<FileName>file3</FileName>

    <CreationFlag>overwrite</CreationFlag>

    <Source>

        <URI>ftp://rpc326.cs.man.ac.uk:19245/file3</URI>

    < /Source>

</DataStaging>

<DataStaging>

    <FileName>tesuer1207582306231</FileName>

    <CreationFlag>overwrite</CreationFlag>

    <Target>

        <URI>ftp://rpc326.cs.man.ac.uk:19245/out.txt</URI>

    </Target>

</DataStaging>

</JobDescription>

<MyProxy xmlns="urn:gridsam:myproxy">

    <ProxyServer>myproxy.grid-support.ac.uk</ProxyServer>

    <ProxyServerDN>/C=UK/O=eScience/OU=CLRC/L=DL/CN=host/myproxy.grid-support.ac.uk/E=a.j.richards@dl.ac.uk</ProxyServerDN>

    <ProxyServerPort>7512</ProxyServerPort>

    <ProxyServerUserName>tesuer</ProxyServerUserName>

    <ProxyServerPassPhrase>asdf</ProxyServerPassPhrase>

    <ProxyServerLifetime>7512</ProxyServerLifetime>

</MyProxy>

</JobDefinition>

</JobDescription>

</submitJob>

References:

  1. http://gridsam.sourceforge.net/2.0.1/index.html
  2. http://www.ngs.ac.uk/sites/belfast/gridsam.html

 

Labels
  • None