You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/10/20 21:06:25 UTC
svn commit: r1186993 - in
/incubator/airavata/trunk/modules/commons/workflow-execution-context: ./
schemas/ src/ src/main/ src/main/java/ src/main/java/org/
src/main/java/org/apaceh/ src/main/java/org/apaceh/airavata/
src/main/java/org/apaceh/airavata/...
Author: lahiru
Date: Thu Oct 20 19:06:24 2011
New Revision: 1186993
URL: http://svn.apache.org/viewvc?rev=1186993&view=rev
Log:
adding new wrapper for workflow-execution.
Added:
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/
incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsd
- copied, changed from r1186844, incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd
Removed:
incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd
Modified:
incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml
Modified: incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml?rev=1186993&r1=1186992&r2=1186993&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml (original)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml Thu Oct 20 19:06:24 2011
@@ -26,13 +26,23 @@
<name>Airavata Workflow Execution Context</name>
<url>http://incubator.apache.org/airavata/</url>
- <dependencies>
- <dependency>
- <groupId>org.apache.xmlbeans</groupId>
- <artifactId>xmlbeans</artifactId>
- <version>2.4.0</version>
- </dependency>
- </dependencies>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.xmlbeans</groupId>
+ <artifactId>xmlbeans</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3</artifactId>
+ <version>1.1.4c</version>
+ </dependency>
+ <dependency>
+ <groupId>airavata</groupId>
+ <artifactId>airavata-common-utils</artifactId>
+ <version>${airavata.version}</version>
+ </dependency>
+ </dependencies>
<build>
<pluginManagement>
<plugins>
Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java?rev=1186993&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java Thu Oct 20 19:06:24 2011
@@ -0,0 +1,258 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apaceh.airavata.common.workflow.execution.context;
+
+import org.apache.airavata.common.utils.XMLUtil;
+import org.apache.airavata.schemas.wec.*;
+import org.xmlpull.v1.builder.XmlElement;
+
+public class WorkflowContextHeaderBuilder {
+
+ private WorkflowMonitoringContextDocument.WorkflowMonitoringContext workflowMonitoringContext = null;
+
+ private SecurityContextDocument.SecurityContext securityContext = null;
+
+ private SoaServiceEprsDocument.SoaServiceEprs soaServiceEprs = null;
+
+ private String userIdentifier = null;
+
+ private WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling workflowOutputDataHandling = null;
+
+ private ContextHeaderDocument.ContextHeader contextHeader = null;
+
+ private WorkflowSchedulingContextDocument.WorkflowSchedulingContext workflowSchedulingContext = null;
+
+
+ public WorkflowContextHeaderBuilder(String brokerUrl, String gfacUrl, String registryUrl, String experimentId, String workflowId) {
+ this.contextHeader = ContextHeaderDocument.ContextHeader.Factory.newInstance();
+
+ this.soaServiceEprs = SoaServiceEprsDocument.SoaServiceEprs.Factory.newInstance();
+ this.soaServiceEprs.setGfacUrl(gfacUrl);
+ this.soaServiceEprs.setRegistryUrl(registryUrl);
+
+ this.workflowMonitoringContext = WorkflowMonitoringContextDocument.WorkflowMonitoringContext.Factory.newInstance();
+ this.workflowMonitoringContext.setEventPublishEpr(brokerUrl);
+ this.workflowMonitoringContext.setWorkflowInstanceId(workflowId);
+ this.workflowMonitoringContext.setExperimentId(experimentId);
+
+ this.contextHeader.setWorkflowMonitoringContext(this.workflowMonitoringContext);
+ this.contextHeader.setSoaServiceEprs(this.soaServiceEprs);
+
+ this.contextHeader.setSecurityContext(SecurityContextDocument.SecurityContext.Factory.newInstance());
+ this.contextHeader.setWorkflowSchedulingContext(WorkflowSchedulingContextDocument.WorkflowSchedulingContext.Factory.newInstance());
+ }
+
+ public WorkflowContextHeaderBuilder setWorkflowMonitoringContext(WorkflowMonitoringContextDocument.WorkflowMonitoringContext workflowMonitoringContext) {
+ this.workflowMonitoringContext = workflowMonitoringContext;
+ return this;
+ }
+
+
+ public WorkflowContextHeaderBuilder setSecurityContext(SecurityContextDocument.SecurityContext securityContext) {
+ this.securityContext = securityContext;
+ return this;
+ }
+
+
+ public WorkflowContextHeaderBuilder setWorkflowOutputDataHandling(WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling workflowOutputDataHandling) {
+ this.workflowOutputDataHandling = workflowOutputDataHandling;
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setUserIdentifier(String userIdentifier) {
+ this.userIdentifier = userIdentifier;
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setContextHeader(ContextHeaderDocument.ContextHeader contextHeader) {
+ this.contextHeader = contextHeader;
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setWorkflowSchedulingContext(WorkflowSchedulingContextDocument.WorkflowSchedulingContext workflowSchedulingContext) {
+ this.workflowSchedulingContext = workflowSchedulingContext;
+ return this;
+ }
+
+ public ContextHeaderDocument.ContextHeader getContextHeader() {
+ return contextHeader;
+ }
+
+ public WorkflowSchedulingContextDocument.WorkflowSchedulingContext getWorkflowSchedulingContext() {
+ return workflowSchedulingContext;
+ }
+
+ public SecurityContextDocument.SecurityContext getSecurityContext() {
+ return securityContext;
+ }
+
+ public WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling getWorkflowOutputDataHandling() {
+ return workflowOutputDataHandling;
+ }
+
+ public SoaServiceEprsDocument.SoaServiceEprs getSoaServiceEprs() {
+ return soaServiceEprs;
+ }
+
+ public String getUserIdentifier() {
+ return userIdentifier;
+ }
+
+
+ public WorkflowMonitoringContextDocument.WorkflowMonitoringContext getWorkflowMonitoringContext() {
+ return workflowMonitoringContext;
+ }
+
+ public XmlElement getXml() {
+ this.contextHeader.setWorkflowMonitoringContext(this.workflowMonitoringContext);
+ this.contextHeader.setSoaServiceEprs(this.soaServiceEprs);
+ this.contextHeader.setSecurityContext(this.securityContext);
+ this.contextHeader.setWorkflowSchedulingContext(this.workflowSchedulingContext);
+ this.contextHeader.setUserIdentifier(this.userIdentifier);
+ this.contextHeader.setWorkflowOutputDataHandling(this.workflowOutputDataHandling);
+ return XMLUtil.stringToXmlElement3(this.contextHeader.toString());
+ }
+
+ public WorkflowContextHeaderBuilder setResourceSchedularUrl(String resourceSchedular) {
+ this.soaServiceEprs.setResourceSchedulerUrl(resourceSchedular);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setWorkflowTemplateId(String template) {
+ this.workflowMonitoringContext.setWorkflowTemplateId(template);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setWorkflowNodeId(String node) {
+ this.workflowMonitoringContext.setWorkflowNodeId(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setWorkflowTimeStep(int timestep) {
+ this.workflowMonitoringContext.setWorkflowTimeStep(timestep);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setServiceInstanceId(String node) {
+ this.workflowMonitoringContext.setServiceInstanceId(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setServiceReplicaId(String node) {
+ this.workflowMonitoringContext.setServiceReplicaId(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setEventPublishEpr(String node) {
+ this.workflowMonitoringContext.setEventPublishEpr(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setErrorPublishEpr(String node) {
+ this.workflowMonitoringContext.setErrorPublishEpr(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setNotificationTopic(String node) {
+ this.workflowMonitoringContext.setNotificationTopic(node);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setGridProxy(byte[] gridProxy) {
+ if (this.securityContext == null) {
+ this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+ }
+ this.securityContext.setGridProxy(gridProxy);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setGridMyProxyRepository(String myProxyServer, String userName, String password, int lifeTimeInHours) {
+ if (this.securityContext == null) {
+ this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+ }
+ SecurityContextDocument.SecurityContext.GridMyproxyRepository gridMyproxyRepository = this.securityContext.addNewGridMyproxyRepository();
+ gridMyproxyRepository.setMyproxyServer(myProxyServer);
+ gridMyproxyRepository.setUsername(userName);
+ gridMyproxyRepository.setPassword(password);
+ gridMyproxyRepository.setLifeTimeInhours(lifeTimeInHours);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setSSHAuthentication(String accessKeyId, String secretKeyId) {
+ if (this.securityContext == null) {
+ this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+ }
+ SecurityContextDocument.SecurityContext.SshAuthentication sshAuthentication = this.securityContext.addNewSshAuthentication();
+ sshAuthentication.setAccessKeyId(accessKeyId);
+ sshAuthentication.setSecretAccessKey(secretKeyId);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setCredentialManagementService(String scmUrl, String securitySessionId) {
+ if (this.securityContext == null) {
+ this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+ }
+ SecurityContextDocument.SecurityContext.CredentialManagementService credentialManagementService = this.securityContext.addNewCredentialManagementService();
+ credentialManagementService.setScmsUrl(scmUrl);
+ credentialManagementService.setExecutionSessionId(securitySessionId);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder setAmazonWebServices(String accessKeyId, String secretAccesKey) {
+ if (this.securityContext == null) {
+ this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+ }
+ SecurityContextDocument.SecurityContext.AmazonWebservices amazonWebservices = this.securityContext.addNewAmazonWebservices();
+ amazonWebservices.setSecretAccessKey(accessKeyId);
+ amazonWebservices.setSecretAccessKey(secretAccesKey);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder addApplicationOutputDataHandling(String outputDir, String outputDataRegistry, boolean dataPersistence) {
+ if (this.workflowOutputDataHandling == null) {
+ this.workflowOutputDataHandling = WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling.Factory.newInstance();
+ }
+ ApplicationOutputDataHandlingDocument.ApplicationOutputDataHandling applicationOutputDataHandling = this.workflowOutputDataHandling.addNewApplicationOutputDataHandling();
+ applicationOutputDataHandling.setOutputDataDirectory(outputDir);
+ applicationOutputDataHandling.setDataRegistryUrl(outputDataRegistry);
+ applicationOutputDataHandling.setDataPersistance(dataPersistence);
+ return this;
+ }
+
+ public WorkflowContextHeaderBuilder addApplicationSchedulingContext
+ (String workflowNodeId, String serviceId, String hostName, boolean wsGramPreffered, String gateKeepersEpr, String jobManager, int cpuCount, int nodeCount, String qName, int maxWalTime) {
+ if (this.workflowSchedulingContext == null) {
+ this.workflowSchedulingContext = WorkflowSchedulingContextDocument.WorkflowSchedulingContext.Factory.newInstance();
+ }
+ ApplicationSchedulingContextDocument.ApplicationSchedulingContext applicationSchedulingContext = this.workflowSchedulingContext.addNewApplicationSchedulingContext();
+ applicationSchedulingContext.setWorkflowNodeId(workflowNodeId);
+ applicationSchedulingContext.setCpuCount(cpuCount);
+ applicationSchedulingContext.setGatekeeperEpr(gateKeepersEpr);
+ applicationSchedulingContext.setHostName(hostName);
+ applicationSchedulingContext.setJobManager(jobManager);
+ applicationSchedulingContext.setMaxWallTime(maxWalTime);
+ applicationSchedulingContext.setServiceId(serviceId);
+ applicationSchedulingContext.setNodeCount(nodeCount);
+ applicationSchedulingContext.setQueueName(qName);
+ applicationSchedulingContext.setWsgramPreferred(wsGramPreffered);
+ return this;
+ }
+}
Copied: incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsd (from r1186844, incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd)
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsd?p2=incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsd&p1=incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd&r1=1186844&r2=1186993&rev=1186993&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd (original)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsd Thu Oct 20 19:06:24 2011
@@ -1,516 +1,505 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://schemas.airavata.apache.org/workflow-execution-context"
- xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wec="http://schemas.airavata.apache.org/workflow-execution-context"
- attributeFormDefault="qualified" elementFormDefault="qualified">
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wec="http://schemas.airavata.apache.org/workflow-execution-context">
- <element name='context-header'>
- <annotation>
- <documentation xml:lang='en'>
- Element that contains Airavata
- specific context information sent as a SOAP
- header in a SOAP message.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element minOccurs='0' maxOccurs='1' ref='wec:user-identifier' />
- <element minOccurs='1' maxOccurs='1' ref='wec:soa-service-eprs' />
- <element minOccurs='1' maxOccurs='1'
- ref='wec:workflow-monitoring-context' />
- <element minOccurs='0' maxOccurs='1'
- ref='wec:workflow-scheduling-context' />
- <element minOccurs='0' maxOccurs='1'
- ref='wec:workflow-output-data-handling' />
- <element minOccurs='0' maxOccurs='1' ref='wec:security-context' />
- </sequence>
- </complexType>
- </element>
-
- <element name="user-identifier" type="string">
- <annotation>
- <documentation xml:lang="en"> User that the workflow is
- executed on behalf of,
- user id is used to catalog data and for
- monitoring purposes
- </documentation>
- </annotation>
- </element>
-
- <element name="soa-service-eprs">
- <annotation>
- <documentation xml:lang="en">
- Element that contains
- persistant service end points within the system.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="gfac-url" type="anyURI" minOccurs='1'
- maxOccurs='1'>
- <annotation>
- <documentation xml:lang="en"> Location of GFac factory
- service to use. (optional)
- </documentation>
- </annotation>
- </element>
- <element name="registry-url" type="anyURI" minOccurs='1'
- maxOccurs='1'>
- <annotation>
- <documentation xml:lang="en"> Location of Registry
- service
- to use. (optional)
- </documentation>
- </annotation>
- </element>
-
- <element name="resource-scheduler-url" type="string"
- minOccurs='0' maxOccurs='1'>
- <annotation>
- <documentation xml:lang="en"> Resource Scheduler to use
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
-
- <element name="workflow-monitoring-context">
- <annotation>
- <documentation xml:lang="en">Workflow context for execution
- of a instance used to
- relate the specific activity in the context of
- workflow and used for
- monitoring
- and illustarting the workflow
- progress.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="experiment-id" type="string" minOccurs="1"
- maxOccurs="1">
- <annotation>
- <documentation xml:lang="en"> Experiment ID (REQUIRED in
- context), Defines
- the context of the workflow.
- </documentation>
- </annotation>
- </element>
- <element name="workflow-instance-id" type="anyURI"
- minOccurs="1" maxOccurs="1">
- <annotation>
- <documentation xml:lang="en"> URI that identifies
- workflow instance that
- originated the message. (optional)
- </documentation>
- </annotation>
- </element>
- <element name="workflow-template-id" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> URI that identifies
- workflow template that was
- used to create the workflow instance.
- (optional)
- </documentation>
- </annotation>
- </element>
- <element name="workflow-node-id" type="string">
- <annotation>
- <documentation xml:lang="en"> String that identifies
- uniqueley a node in
- workflow graph that originated that message.
- (optional)
- </documentation>
- </annotation>
- </element>
- <element name="workflow-time-step" type="int">
- <annotation>
- <documentation xml:lang="en"> Increasing integer
- representing time in the
- workflow execution when the message
- originated. (optional)
- </documentation>
- </annotation>
- </element>
-
- <element name="service-instance-id" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> URI that identifies service
- instance that
- originated that message. (optional)
- </documentation>
- </annotation>
- </element>
-
- <element name="service-replica-id" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> URI that identifies the
- replica of service
- instance that originated that message, primarly
- used by Fault Tolerance
- service to overprovision. (optional)
- </documentation>
- </annotation>
- </element>
-
- <element name="event-publish-epr" type="anyURI" minOccurs="1"
- maxOccurs="1">
- <annotation>
- <documentation xml:lang="en"> EPR for WS-Eventing sink
- where to send event. (optional)
- NOTE: currently any XML is
- accepted as there are many versions of
- WS-Addressing.
- </documentation>
- </annotation>
- </element>
-
- <element name="notification-topic" type="string" minOccurs="0"
- maxOccurs="1">
- <annotation>
- <documentation xml:lang="en"> A Unique String to set as
- the topic for
- events sent on an experiment. The topic may be
- embedded with the
- event-publish-epr. An experiment id being unique
- may be chosen as
- topic.
- </documentation>
- </annotation>
- </element>
-
- <element name="error-publish-epr" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> EPR for WS-Eventing sink
- where to send errors (optional)
- NOTE: designed good for debugging
- and system level warnings, errors,
- etc
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
-
- <element name="workflow-scheduling-context">
- <annotation>
- <documentation xml:lang="en">
- Element that contains service
- specific resource scheduling information sent
- inside workflow
- context. The purpose of this context is to schedule
- individual
- activities on a different resource.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element minOccurs="1" maxOccurs="unbounded"
- ref="wec:application-scheduling-context" />
- </sequence>
- </complexType>
- </element>
-
- <element name="application-scheduling-context">
- <complexType>
- <simpleContent>
- <extension base="string">
- <annotation>
- <documentation xml:lang="en">
- Element text contains host
- name for the resource.
- </documentation>
- </annotation>
-
- <attribute name="workflow-node-id" type="string">
- <annotation>
- <documentation xml:lang="en">
- This is workflow node ID
- that is mapped to a resource.
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="service-id" type="anyURI" use="optional">
- <annotation>
- <documentation xml:lang="en">
- This is service ID.
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="host-name" type="anyURI" use="optional">
- <annotation>
- <documentation xml:lang="en">
- head node of the resource
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="wsgram-preferred" type="boolean" use="optional">
- <annotation>
- <documentation xml:lang="en">
- If true then wsgram will be
- used, false pre-wsgram will be used.
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="gatekeeper-epr" type="anyURI" use="optional">
- <annotation>
- <documentation xml:lang="en">
- GRAM EPR of the resource
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="job-manager" type="string">
- <annotation>
- <documentation xml:lang="en">
- LRM job manager on the
- resource, ex: PBS, LSF.
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="cpu-count" type="int" use="optional">
- <annotation>
- <documentation xml:lang="en">
- number of CPU's allocated
- on the compute cluster
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="node-count" type="int" use="optional">
- <annotation>
- <documentation xml:lang="en">
- number of nodes allocated
- on the compute cluster
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="queue-name" type="string">
- <annotation>
- <documentation xml:lang="en">
- Job queue name if any.
- </documentation>
- </annotation>
- </attribute>
-
- <attribute name="max-wall-time" type="int" use="optional">
- <annotation>
- <documentation xml:lang="en">
- number of CPU's allocated
- on the compute cluster
- </documentation>
- </annotation>
- </attribute>
- </extension>
- </simpleContent>
- </complexType>
- </element>
-
- <element name="workflow-output-data-handling">
- <annotation>
- <documentation xml:lang="en">
- Element that contains
- application specific resource scheduling information sent
- inside
- workflow context. The purpose of this context is to handle
- individual
- activities with different needs like intermediate data
- need not be persisted.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element minOccurs="1" maxOccurs="unbounded"
- ref="wec:application-output-data-handling" />
- </sequence>
- </complexType>
- </element>
-
- <element name="application-output-data-handling">
- <complexType>
- <sequence>
- <element name="data-registry-url" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> (Optional) If a seperate
- Data
- Registry is used for catlogging data, the associated location
- of the
- Data registry
- </documentation>
- </annotation>
- </element>
-
- <element name="output-data-directory" type="anyURI">
- <annotation>
- <documentation xml:lang="en">(Optional) If the workflow
- outputs are to be staged to a pre-specified location, then the
- output data staging directory should be provided.
- </documentation>
- </annotation>
- </element>
-
- <element name="data-persistance" type="boolean">
- <annotation>
- <documentation xml:lang="en">(Optional) If the
- intermediate workflow
- outputs are to be discarded after execution,
- this flag should be set to
- false. By defualt this flag should be
- true assuming all data will
- be persisted.
- </documentation>
- </annotation>
- </element>
-
- </sequence>
- </complexType>
- </element>
-
- <element name="security-context">
- <annotation>
- <documentation xml:lang="en"> Security context for execution
- of the workflow
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="grid-proxy" type="base64Binary">
- <annotation>
- <documentation xml:lang="en"> Security context for Grid
- Security
- Infrastructure X509 Proxy with trusted chain.
- </documentation>
- </annotation>
- </element>
- <element name="grid-myproxy-repository">
- <annotation>
- <documentation xml:lang="en"> Security context for Grid
- Security MyProxy
- Service
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="myproxy-server" type="string">
- <annotation>
- <documentation xml:lang="en"> MyProxy Server.
- </documentation>
- </annotation>
- </element>
- <element name="username" type="string">
- <annotation>
- <documentation xml:lang="en"> MyProxy User Name.
- </documentation>
- </annotation>
- </element>
- <element name="password" type="string">
- <annotation>
- <documentation xml:lang="en"> MyProxy Password.
- </documentation>
- </annotation>
- </element>
- <element name="life-time-inhours" type="int">
- <annotation>
- <documentation xml:lang="en"> MyProxy Proxy Life time.
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
- <element name="ssh-authentication">
- <annotation>
- <documentation xml:lang="en"> Security context for
- execution of the workflow
- on SSH accessed resources.
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="access-key-id" type="string">
- <annotation>
- <documentation xml:lang="en"> Amazon Web Services
- Public Access
- Key ID used to contact the AWS API's.
- </documentation>
- </annotation>
- </element>
- <element name="secret-access-key" type="string">
- <annotation>
- <documentation xml:lang="en"> Amazon Web Services AWS
- Private
- Secret Access Key.
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
- <element name="credential-management-service">
- <annotation>
- <documentation xml:lang="en"> Security context for
- execution of the workflow
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="scms-url" type="anyURI">
- <annotation>
- <documentation xml:lang="en"> Location of the SCMS
- (Session
- Credential Management Service).
- </documentation>
- </annotation>
- </element>
- <element name="execution-session-id" type="string">
- <annotation>
- <documentation xml:lang="en"> The ID of the session
- credential
- to be used for executing grid operations as needed
- by the
- workflow.
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
- <element name="amazon-webservices">
- <annotation>
- <documentation xml:lang="en"> Security context for
- execution of the workflow
- </documentation>
- </annotation>
- <complexType>
- <sequence>
- <element name="access-key-id" type="string">
- <annotation>
- <documentation xml:lang="en"> Amazon Web Services
- Public Access
- Key ID used to contact the AWS API's.
- </documentation>
- </annotation>
- </element>
- <element name="secret-access-key" type="string">
- <annotation>
- <documentation xml:lang="en"> Amazon Web Services AWS
- Private
- Secret Access Key.
- </documentation>
- </annotation>
- </element>
- </sequence>
- </complexType>
- </element>
- </sequence>
- </complexType>
- </element>
+ <element name='context-header'>
+ <annotation>
+ <documentation xml:lang='en'>
+ Element that contains Airavata
+ specific context information sent as a SOAP
+ header in a SOAP message.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element minOccurs='0' maxOccurs='1' ref='wec:user-identifier'/>
+ <element minOccurs='1' maxOccurs='1' ref='wec:soa-service-eprs'/>
+ <element minOccurs='1' maxOccurs='1' ref='wec:workflow-monitoring-context'/>
+ <element minOccurs='0' maxOccurs='1' ref='wec:workflow-scheduling-context'/>
+ <element minOccurs='0' maxOccurs='1' ref='wec:workflow-output-data-handling'/>
+ <element minOccurs='0' maxOccurs='1' ref='wec:security-context'/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="user-identifier" type="string">
+ <annotation>
+ <documentation xml:lang="en">User that the workflow is
+ executed on behalf of,
+ user id is used to catalog data and for
+ monitoring purposes
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="soa-service-eprs">
+ <annotation>
+ <documentation xml:lang="en">
+ Element that contains
+ persistant service end points within the system.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="gfac-url" type="anyURI" minOccurs='1'
+ maxOccurs='1'>
+ <annotation>
+ <documentation xml:lang="en">Location of GFac factory
+ service to use. (optional)
+ </documentation>
+ </annotation>
+ </element>
+ <element name="registry-url" type="anyURI" minOccurs='1'
+ maxOccurs='1'>
+ <annotation>
+ <documentation xml:lang="en">Location of Registry
+ service
+ to use. (optional)
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="resource-scheduler-url" type="string"
+ minOccurs='0' maxOccurs='1'>
+ <annotation>
+ <documentation xml:lang="en">Resource Scheduler to use
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="workflow-monitoring-context">
+ <annotation>
+ <documentation xml:lang="en">Workflow context for execution
+ of a instance used to
+ relate the specific activity in the context of
+ workflow and used for
+ monitoring
+ and illustarting the workflow
+ progress.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="experiment-id" type="string" minOccurs="1"
+ maxOccurs="1">
+ <annotation>
+ <documentation xml:lang="en">Experiment ID (REQUIRED in
+ context), Defines
+ the context of the workflow.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="workflow-instance-id" type="anyURI"
+ minOccurs="1" maxOccurs="1">
+ <annotation>
+ <documentation xml:lang="en">URI that identifies
+ workflow instance that
+ originated the message. (optional)
+ </documentation>
+ </annotation>
+ </element>
+ <element name="workflow-template-id" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">URI that identifies
+ workflow template that was
+ used to create the workflow instance.
+ (optional)
+ </documentation>
+ </annotation>
+ </element>
+ <element name="workflow-node-id" type="string">
+ <annotation>
+ <documentation xml:lang="en">String that identifies
+ uniqueley a node in
+ workflow graph that originated that message.
+ (optional)
+ </documentation>
+ </annotation>
+ </element>
+ <element name="workflow-time-step" type="int">
+ <annotation>
+ <documentation xml:lang="en">Increasing integer
+ representing time in the
+ workflow execution when the message
+ originated. (optional)
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="service-instance-id" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">URI that identifies service
+ instance that
+ originated that message. (optional)
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="service-replica-id" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">URI that identifies the
+ replica of service
+ instance that originated that message, primarly
+ used by Fault Tolerance
+ service to overprovision. (optional)
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="event-publish-epr" type="anyURI" minOccurs="1"
+ maxOccurs="1">
+ <annotation>
+ <documentation xml:lang="en">EPR for WS-Eventing sink
+ where to send event. (optional)
+ NOTE: currently any XML is
+ accepted as there are many versions of
+ WS-Addressing.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="notification-topic" type="string" minOccurs="0"
+ maxOccurs="1">
+ <annotation>
+ <documentation xml:lang="en">A Unique String to set as
+ the topic for
+ events sent on an experiment. The topic may be
+ embedded with the
+ event-publish-epr. An experiment id being unique
+ may be chosen as
+ topic.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="error-publish-epr" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">EPR for WS-Eventing sink
+ where to send errors (optional)
+ NOTE: designed good for debugging
+ and system level warnings, errors,
+ etc
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="workflow-scheduling-context">
+ <annotation>
+ <documentation xml:lang="en">
+ Element that contains service
+ specific resource scheduling information sent
+ inside workflow
+ context. The purpose of this context is to schedule
+ individual
+ activities on a different resource.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element minOccurs="1" maxOccurs="unbounded"
+ ref="wec:application-scheduling-context"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="application-scheduling-context">
+ <complexType>
+ <sequence>
+
+ <element name="workflow-node-id" type="string" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ This is workflow node ID
+ that is mapped to a resource.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="service-id" type="anyURI" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ This is service ID.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="host-name" type="anyURI" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ head node of the resource
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="wsgram-preferred" type="boolean" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ If true then wsgram will be
+ used, false pre-wsgram will be used.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="gatekeeper-epr" type="anyURI" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ GRAM EPR of the resource
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="job-manager" type="string" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ LRM job manager on the
+ resource, ex: PBS, LSF.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="cpu-count" type="int" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ number of CPU's allocated
+ on the compute cluster
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="node-count" type="int" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ number of nodes allocated
+ on the compute cluster
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="queue-name" type="string" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ Job queue name if any.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="max-wall-time" type="int" minOccurs="0">
+ <annotation>
+ <documentation xml:lang="en">
+ number of CPU's allocated
+ on the compute cluster
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="workflow-output-data-handling">
+ <annotation>
+ <documentation xml:lang="en">
+ Element that contains
+ application specific resource scheduling information sent
+ inside
+ workflow context. The purpose of this context is to handle
+ individual
+ activities with different needs like intermediate data
+ need not be persisted.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element minOccurs="1" maxOccurs="unbounded"
+ ref="wec:application-output-data-handling"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="application-output-data-handling">
+ <complexType>
+ <sequence>
+ <element name="data-registry-url" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">(Optional) If a seperate
+ Data
+ Registry is used for catlogging data, the associated location
+ of the
+ Data registry
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="output-data-directory" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">(Optional) If the workflow
+ outputs are to be staged to a pre-specified location, then the
+ output data staging directory should be provided.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="data-persistance" type="boolean">
+ <annotation>
+ <documentation xml:lang="en">(Optional) If the
+ intermediate workflow
+ outputs are to be discarded after execution,
+ this flag should be set to
+ false. By defualt this flag should be
+ true assuming all data will
+ be persisted.
+ </documentation>
+ </annotation>
+ </element>
+
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="security-context">
+ <annotation>
+ <documentation xml:lang="en">Security context for execution
+ of the workflow
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="grid-proxy" type="base64Binary">
+ <annotation>
+ <documentation xml:lang="en">Security context for Grid
+ Security
+ Infrastructure X509 Proxy with trusted chain.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="grid-myproxy-repository">
+ <annotation>
+ <documentation xml:lang="en">Security context for Grid
+ Security MyProxy
+ Service
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="myproxy-server" type="string">
+ <annotation>
+ <documentation xml:lang="en">MyProxy Server.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="username" type="string">
+ <annotation>
+ <documentation xml:lang="en">MyProxy User Name.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="password" type="string">
+ <annotation>
+ <documentation xml:lang="en">MyProxy Password.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="life-time-inhours" type="int">
+ <annotation>
+ <documentation xml:lang="en">MyProxy Proxy Life time.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="ssh-authentication">
+ <annotation>
+ <documentation xml:lang="en">Security context for
+ execution of the workflow
+ on SSH accessed resources.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="access-key-id" type="string">
+ <annotation>
+ <documentation xml:lang="en">Amazon Web Services
+ Public Access
+ Key ID used to contact the AWS API's.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="secret-access-key" type="string">
+ <annotation>
+ <documentation xml:lang="en">Amazon Web Services AWS
+ Private
+ Secret Access Key.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="credential-management-service">
+ <annotation>
+ <documentation xml:lang="en">Security context for
+ execution of the workflow
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="scms-url" type="anyURI">
+ <annotation>
+ <documentation xml:lang="en">Location of the SCMS
+ (Session
+ Credential Management Service).
+ </documentation>
+ </annotation>
+ </element>
+ <element name="execution-session-id" type="string">
+ <annotation>
+ <documentation xml:lang="en">The ID of the session
+ credential
+ to be used for executing grid operations as needed
+ by the
+ workflow.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="amazon-webservices">
+ <annotation>
+ <documentation xml:lang="en">Security context for
+ execution of the workflow
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="access-key-id" type="string">
+ <annotation>
+ <documentation xml:lang="en">Amazon Web Services
+ Public Access
+ Key ID used to contact the AWS API's.
+ </documentation>
+ </annotation>
+ </element>
+ <element name="secret-access-key" type="string">
+ <annotation>
+ <documentation xml:lang="en">Amazon Web Services AWS
+ Private
+ Secret Access Key.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
</schema>