You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/07/23 18:48:18 UTC

[04/20] introducing workflow support in airavata api + other related modules

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
new file mode 100644
index 0000000..38c4f6a
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
@@ -0,0 +1,308 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.util;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.workflow.engine.interpretor.WorkFlowInterpreterException;
+import org.apache.airavata.workflow.engine.invoker.Invoker;
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
+import org.apache.airavata.workflow.model.graph.DataPort;
+import org.apache.airavata.workflow.model.graph.Node;
+import org.apache.airavata.workflow.model.graph.Node.NodeExecutionState;
+import org.apache.airavata.workflow.model.graph.amazon.InstanceNode;
+import org.apache.airavata.workflow.model.graph.impl.NodeImpl;
+import org.apache.airavata.workflow.model.graph.system.ConstantNode;
+import org.apache.airavata.workflow.model.graph.system.DifferedInputNode;
+import org.apache.airavata.workflow.model.graph.system.DoWhileNode;
+import org.apache.airavata.workflow.model.graph.system.EndDoWhileNode;
+import org.apache.airavata.workflow.model.graph.system.EndForEachNode;
+import org.apache.airavata.workflow.model.graph.system.EndifNode;
+import org.apache.airavata.workflow.model.graph.system.ForEachNode;
+import org.apache.airavata.workflow.model.graph.system.InputNode;
+import org.apache.airavata.workflow.model.graph.system.SystemDataPort;
+import org.apache.airavata.workflow.model.graph.ws.WSGraph;
+import org.apache.airavata.workflow.model.graph.ws.WSPort;
+import org.xmlpull.infoset.XmlElement;
+
+import xsul5.XmlConstants;
+//import org.apache.airavata.xbaya.ui.monitor.MonitorEventHandler;
+//import org.apache.airavata.xbaya.ui.monitor.MonitorEventHandler.NodeState;
+
+public class InterpreterUtil {
+    /**
+     * This method returns the input values for given foreach node
+     *
+     * @param forEachNode
+     * @param listOfValues
+     * @param invokerMap
+     * @return
+     * @throws WorkflowException
+     */
+    public static Object getInputsForForEachNode(final ForEachNode forEachNode, final LinkedList<String> listOfValues, Map<Node, Invoker> invokerMap)
+            throws WorkflowException {
+        List<DataPort> inputPorts = forEachNode.getInputPorts();
+
+        Object returnValForProvenance = null;
+        for (DataPort inputPort : inputPorts) {
+
+            Node inputNode = inputPort.getFromNode();
+            // if input node for for-each is WSNode
+            if (inputNode instanceof InputNode) {
+//                for (DataPort dataPort : forEachNode.getInputPorts()) {
+                    returnValForProvenance = InterpreterUtil.findInputFromPort(inputPort, invokerMap);
+                    if (null == returnValForProvenance) {
+                        throw new WorkFlowInterpreterException("Unable to find input for the node:" + forEachNode.getID());
+                    }
+                    String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+                    listOfValues.addAll(Arrays.asList(vals));
+//                }
+            }
+        }
+        return returnValForProvenance;
+    }
+
+    /**
+     *
+     * @param inputPort
+     * @param invokerMap
+     * @return
+     * @throws WorkflowException
+     */
+    public static Object findInputFromPort(DataPort inputPort, Map<Node, Invoker> invokerMap) throws WorkflowException {
+        Object outputVal = null;
+        Node fromNode = inputPort.getFromNode();
+        if (fromNode instanceof InputNode) {
+            outputVal = ((InputNode) fromNode).getDefaultValue();
+        } else if (fromNode instanceof ConstantNode) {
+            outputVal = ((ConstantNode) fromNode).getValue();
+        } else if (fromNode instanceof DifferedInputNode && ((DifferedInputNode) fromNode).isConfigured()) {
+            outputVal = ((DifferedInputNode) fromNode).getDefaultValue();
+        } else if (fromNode instanceof EndifNode || fromNode instanceof DoWhileNode  || fromNode instanceof EndDoWhileNode) {
+            Invoker fromInvoker = invokerMap.get(fromNode);
+            outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+        } else if (fromNode instanceof InstanceNode) {
+            return ((InstanceNode) fromNode).getOutputInstanceId();
+        } else if (fromNode instanceof EndForEachNode) {
+            outputVal = "";
+            Invoker workflowInvoker = invokerMap.get(fromNode);
+            String outputName = "";
+            if (inputPort instanceof SystemDataPort) {
+                outputName = ((SystemDataPort) inputPort).getWSComponentPort().getName();
+
+            } else if (inputPort instanceof WSPort) {
+                outputName = ((SystemDataPort) fromNode.getInputPort(fromNode.getOutputPorts().indexOf(inputPort.getEdge(0).getFromPort())))
+                        .getWSComponentPort().getName();
+            }
+            XmlElement msgElmt = XmlConstants.BUILDER.parseFragmentFromString("<temp>" + workflowInvoker.getOutput(outputName) + "</temp>");
+            Iterator valItr = msgElmt.children().iterator();
+            while (valItr.hasNext()) {
+                Object object2 = valItr.next();
+                if (object2 instanceof XmlElement) {
+
+                    if (((XmlElement) object2).children().iterator().hasNext()) {
+                        outputVal = outputVal + StringUtil.DELIMETER  + StringUtil.quoteString(((XmlElement) object2).children().iterator().next().toString());
+                    }
+                }
+            }
+
+            if (((String) outputVal).length() == 0) {
+                throw new WorkflowException("Empty Output Generated");
+            }
+            outputVal = ((String) outputVal).substring(1, ((String) outputVal).length());
+        } else {
+            Invoker fromInvoker = invokerMap.get(fromNode);
+            try {
+                if (fromInvoker != null)
+                    outputVal = fromInvoker.getOutput(inputPort.getFromPort().getName());
+
+            } catch (Exception e) {
+                // if the value is still null look it up from the inputport name
+                // because the value is set to the input port name at some point
+                // there is no harm in doing this
+                if (null == outputVal) {
+                    outputVal = fromInvoker.getOutput(inputPort.getName());
+                }
+            }
+
+        }
+        return outputVal;
+
+    }
+
+    public static Object findInputFromPort(DataPort inputPort) throws WorkflowException {
+        Object outputVal = null;
+        Node fromNode = inputPort.getFromNode();
+        if (fromNode instanceof InputNode) {
+            outputVal = ((InputNode) fromNode).getDefaultValue();
+//        } else if (fromNode instanceof ConstantNode) {
+//            outputVal = ((ConstantNode) fromNode).getValue();
+//        } else if (fromNode instanceof DifferedInputNode && ((DifferedInputNode) fromNode).isConfigured()) {
+//            outputVal = ((DifferedInputNode) fromNode).getDefaultValue();
+//        } else if (fromNode instanceof EndifNode || fromNode instanceof DoWhileNode  || fromNode instanceof EndDoWhileNode) {
+//            Invoker fromInvoker = invokerMap.get(fromNode);
+//            outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+//        } else if (fromNode instanceof InstanceNode) {
+//            return ((InstanceNode) fromNode).getOutputInstanceId();
+//        } else if (fromNode instanceof EndForEachNode) {
+//            outputVal = "";
+//            Invoker workflowInvoker = invokerMap.get(fromNode);
+//            String outputName = "";
+//            if (inputPort instanceof SystemDataPort) {
+//                outputName = ((SystemDataPort) inputPort).getWSComponentPort().getName();
+//
+//            } else if (inputPort instanceof WSPort) {
+//                outputName = ((SystemDataPort) fromNode.getInputPort(fromNode.getOutputPorts().indexOf(inputPort.getEdge(0).getFromPort())))
+//                        .getWSComponentPort().getName();
+//            }
+//            XmlElement msgElmt = XmlConstants.BUILDER.parseFragmentFromString("<temp>" + workflowInvoker.getOutput(outputName) + "</temp>");
+//            Iterator valItr = msgElmt.children().iterator();
+//            while (valItr.hasNext()) {
+//                Object object2 = valItr.next();
+//                if (object2 instanceof XmlElement) {
+//
+//                    if (((XmlElement) object2).children().iterator().hasNext()) {
+//                        outputVal = outputVal + StringUtil.DELIMETER  + StringUtil.quoteString(((XmlElement) object2).children().iterator().next().toString());
+//                    }
+//                }
+//            }
+//
+//            if (((String) outputVal).length() == 0) {
+//                throw new WorkflowException("Empty Output Generated");
+//            }
+//            outputVal = ((String) outputVal).substring(1, ((String) outputVal).length());
+//        } else {
+//            Invoker fromInvoker = invokerMap.get(fromNode);
+//            try {
+//                if (fromInvoker != null)
+//                    outputVal = fromInvoker.getOutput(inputPort.getFromPort().getName());
+//
+//            } catch (Exception e) {
+//                // if the value is still null look it up from the inputport name
+//                // because the value is set to the input port name at some point
+//                // there is no harm in doing this
+//                if (null == outputVal) {
+//                    outputVal = fromInvoker.getOutput(inputPort.getName());
+//                }
+//            }
+
+        }
+        return outputVal;
+
+    }
+    /**
+     * @param node
+     * @return
+     */
+    public static Node findEndForEachFor(ForEachNode node) {
+
+        Collection<Node> toNodes = node.getOutputPort(0).getToNodes();
+        if (toNodes.size() != 1) {
+            throw new WorkflowRuntimeException("ForEach output does not contain single out-edge");
+        }
+        Node middleNode = toNodes.iterator().next();
+        List<DataPort> outputPorts = middleNode.getOutputPorts();
+        for (DataPort dataPort : outputPorts) {
+            if (dataPort.getToNodes().size() == 1) {
+                Node possibleEndForEachNode = dataPort.getToNodes().get(0);
+                if (possibleEndForEachNode instanceof EndForEachNode) {
+                    return possibleEndForEachNode;
+                }
+            }
+        }
+        throw new WorkflowRuntimeException("EndForEachNode not found");
+    }
+
+    public static Integer[] getNumberOfInputsForForEachNode(final ForEachNode forEachNode, Map<Node, Invoker> invokerMap) throws WorkflowException {
+        List<DataPort> inputPorts = forEachNode.getInputPorts();
+        Integer[] inputNumbers = new Integer[inputPorts.size()];
+        for (DataPort forEachInputPort : inputPorts) {
+            // if input node for for-each is WSNode
+            Node forEachInputNode = forEachInputPort.getFromNode();
+            int index = 0;
+            Object returnValForProvenance = null;
+            if (forEachInputNode instanceof InputNode) {
+                returnValForProvenance = InterpreterUtil.findInputFromPort(forEachInputPort, invokerMap);
+                if (null == returnValForProvenance) {
+                    throw new WorkFlowInterpreterException("Unable to find input for the node:" + forEachNode.getID());
+                }
+                String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+                inputNumbers[inputPorts.indexOf(forEachInputPort)] = vals.length;
+            }
+        }
+        return inputNumbers;
+    }
+
+    public static ArrayList<Node> getFinishedNodesDynamically(WSGraph graph) {
+        return getNodesWithBodyColor(NodeExecutionState.FINISHED, graph);
+    }
+
+    public static ArrayList<Node> getFailedNodesDynamically(WSGraph graph) {
+        return getNodesWithBodyColor(NodeExecutionState.FAILED, graph);
+    }
+
+    public static ArrayList<Node> getWaitingNodesDynamically(WSGraph graph) {
+        return getNodesWithBodyColor(NodeExecutionState.WAITING, graph);
+    }
+
+    public static ArrayList<Node> getNodesWithBodyColor(NodeExecutionState state, WSGraph graph) {
+        ArrayList<Node> list = new ArrayList<Node>();
+        List<NodeImpl> nodes = graph.getNodes();
+        for (Node node : nodes) {
+            if (node.getState()==state) {
+                list.add(node);
+            }
+        }
+        return list;
+    }
+
+    public static int getRunningNodeCountDynamically(WSGraph graph) {
+        return getNodeCountWithBodyColor(NodeExecutionState.EXECUTING, graph);
+    }
+
+    public static int getFailedNodeCountDynamically(WSGraph graph) {
+        return getFailedNodesDynamically(graph).size();
+    }
+
+    public static int getWaitingNodeCountDynamically(WSGraph graph) {
+        return getNodeCountWithBodyColor(NodeExecutionState.WAITING, graph);
+    }
+
+    public static int getNodeCountWithBodyColor(NodeExecutionState state, WSGraph graph) {
+        int sum = 0;
+        List<NodeImpl> nodes = graph.getNodes();
+        for (Node node : nodes) {
+            if (node.getState()==state) {
+                ++sum;
+            }
+        }
+        return sum;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
new file mode 100644
index 0000000..51db345
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.util;
+
+public class RegistryConstants {
+	public static final String REGISTRY_TYPE_JCR="registry.type.jcr";
+	public static final String REGISTRY_TYPE_LOCAL="registry.type.local";
+	public static final String REGISTRY_TYPE_URL="registry.type.url";
+	public static final String REGISTRY_TYPE_GPEL="registry.type.gpel";
+	public static final String REGISTRY_TYPE_WEB="registry.type.web";
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
new file mode 100644
index 0000000..a63884d
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
@@ -0,0 +1,170 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.util;
+
+
+public class TransferFile {
+    private String submission_id;
+    private boolean preserve_timestamp;
+    private String DATA_TYPE;
+    private boolean encrypt_data;
+    private String sync_level;
+    private String source_endpoint;
+    private String label;
+    private String destination_endpoint;
+    private int length;
+    private String deadline;
+    private boolean notify_on_succeeded;
+    private boolean notify_on_failed;
+    private boolean verify_checksum;
+    private boolean notify_on_inactive;
+    private boolean delete_destination_extra;
+    private Data[] DATA;
+
+    public String getSubmission_id() {
+        return submission_id;
+    }
+
+    public void setSubmission_id(String submission_id) {
+        this.submission_id = submission_id;
+    }
+
+    public boolean getPreserve_timestamp() {
+        return preserve_timestamp;
+    }
+
+    public void setPreserve_timestamp(boolean preserve_timestamp) {
+        this.preserve_timestamp = preserve_timestamp;
+    }
+
+    public String getDATA_TYPE() {
+        return DATA_TYPE;
+    }
+
+    public void setDATA_TYPE(String DATA_TYPE) {
+        this.DATA_TYPE = DATA_TYPE;
+    }
+
+    public boolean getEncrypt_data() {
+        return encrypt_data;
+    }
+
+    public void setEncrypt_data(boolean encrypt_data) {
+        this.encrypt_data = encrypt_data;
+    }
+
+    public String getSync_level() {
+        return sync_level;
+    }
+
+    public void setSync_level(String sync_level) {
+        this.sync_level = sync_level;
+    }
+
+    public String getSource_endpoint() {
+        return source_endpoint;
+    }
+
+    public void setSource_endpoint(String source_endpoint) {
+        this.source_endpoint = source_endpoint;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public String getDestination_endpoint() {
+        return destination_endpoint;
+    }
+
+    public void setDestination_endpoint(String destination_endpoint) {
+        this.destination_endpoint = destination_endpoint;
+    }
+
+    public int getLength() {
+        return length;
+    }
+
+    public void setLength(int length) {
+        this.length = length;
+    }
+
+    public String getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(String deadline) {
+        this.deadline = deadline;
+    }
+
+    public boolean getNotify_on_succeeded() {
+        return notify_on_succeeded;
+    }
+
+    public void setNotify_on_succeeded(boolean notify_on_succeeded) {
+        this.notify_on_succeeded = notify_on_succeeded;
+    }
+
+    public boolean getNotify_on_failed() {
+        return notify_on_failed;
+    }
+
+    public void setNotify_on_failed(boolean notify_on_failed) {
+        this.notify_on_failed = notify_on_failed;
+    }
+
+    public boolean getVerify_checksum() {
+        return verify_checksum;
+    }
+
+    public void setVerify_checksum(boolean verify_checksum) {
+        this.verify_checksum = verify_checksum;
+    }
+
+    public boolean getNotify_on_inactive() {
+        return notify_on_inactive;
+    }
+
+    public void setNotify_on_inactive(boolean notify_on_inactive) {
+        this.notify_on_inactive = notify_on_inactive;
+    }
+
+    public boolean getDelete_destination_extra() {
+        return delete_destination_extra;
+    }
+
+    public void setDelete_destination_extra(boolean delete_destination_extra) {
+        this.delete_destination_extra = delete_destination_extra;
+    }
+
+    public Data[] getDATA() {
+        return DATA;
+    }
+
+    public void setDATA(Data[] DATA) {
+        this.DATA = DATA;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
new file mode 100644
index 0000000..9735c52
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
@@ -0,0 +1,218 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.airavata.client.stub.interpretor.NameValue;
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.workflow.engine.interpretor.WorkFlowInterpreterException;
+import org.apache.airavata.workflow.engine.invoker.Invoker;
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
+import org.apache.airavata.workflow.model.graph.DataPort;
+import org.apache.airavata.workflow.model.graph.Node;
+import org.apache.airavata.workflow.model.graph.amazon.InstanceNode;
+import org.apache.airavata.workflow.model.graph.system.ConstantNode;
+import org.apache.airavata.workflow.model.graph.system.EndForEachNode;
+import org.apache.airavata.workflow.model.graph.system.EndifNode;
+import org.apache.airavata.workflow.model.graph.system.ForEachNode;
+import org.apache.airavata.workflow.model.graph.system.InputNode;
+import org.apache.axis2.util.XMLUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+import org.xmlpull.infoset.XmlElement;
+
+import xsul5.XmlConstants;
+
+public class XBayaUtil {
+
+    private static final Logger logger = LoggerFactory.getLogger(XBayaUtil.class);
+    public static final String JCR_USER = "jcr.username";
+    public static final String JCR_PASS = "jcr.password";
+    public static final String JCR_URL = "jcr.url";
+
+
+       public static boolean isURLExists(String URLName) {
+        try {
+            if (!URLName.toUpperCase().contains("HTTP"))
+                URLName = "http://" + URLName;
+            URL url = new URL(URLName);
+            System.setProperty("java.net.useSystemProxies", "true");
+            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
+            urlConn.setConnectTimeout(9000);
+            urlConn.setReadTimeout(9000);
+            urlConn.connect();
+            if (HttpURLConnection.HTTP_OK == urlConn.getResponseCode())
+                return true;
+            else
+                return false;
+        } catch (SocketTimeoutException e) {
+            return false;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    public static Object getInputsForForEachNode(final ForEachNode forEachNode,
+			final LinkedList<String> listOfValues, Map<Node, Invoker> invokerMap) throws WorkflowException {
+		Node forEachInputNode = forEachNode.getInputPort(0).getFromNode();
+		// if input node for for-each is WSNode
+		Object returnValForProvenance = null;
+		if (forEachInputNode instanceof InputNode) {
+			for (DataPort dataPort : forEachNode.getInputPorts()) {
+				returnValForProvenance = XBayaUtil
+						.findInputFromPort(dataPort, invokerMap);
+				if (null == returnValForProvenance) {
+					throw new WorkFlowInterpreterException(
+							"Unable to find input for the node:"
+									+ forEachNode.getID());
+				}
+				String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+				listOfValues.addAll(Arrays.asList(vals));
+			}
+		}
+		return returnValForProvenance;
+	}
+
+    /**
+     *
+     * @param inputPort
+     * @param invokerMap
+     * @return
+     * @throws WorkflowException
+     */
+	public static Object findInputFromPort(DataPort inputPort, Map<Node, Invoker>  invokerMap) throws WorkflowException {
+		Object outputVal = null;
+		Node fromNode = inputPort.getFromNode();
+		if (fromNode instanceof InputNode) {
+			outputVal = ((InputNode) fromNode).getDefaultValue();
+		} else if (fromNode instanceof ConstantNode) {
+			outputVal = ((ConstantNode) fromNode).getValue();
+		} else if (fromNode instanceof EndifNode) {
+			Invoker fromInvoker = invokerMap.get(fromNode);
+			outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+		} else if (fromNode instanceof InstanceNode) {
+			return ((InstanceNode) fromNode).getOutputInstanceId();
+		} else if (fromNode instanceof EndForEachNode) {
+			outputVal = "";
+			Invoker workflowInvoker = invokerMap.get(fromNode);
+			String outputName = fromNode.getOutputPort(0).getName();
+			XmlElement msgElmt = XmlConstants.BUILDER
+					.parseFragmentFromString("<temp>"
+							+ workflowInvoker.getOutput(outputName) + "</temp>");
+			Iterator valItr = msgElmt.children().iterator();
+			while (valItr.hasNext()) {
+				Object object2 = valItr.next();
+				if (object2 instanceof XmlElement) {
+					outputVal = outputVal
+							+ StringUtil.DELIMETER 
+							+ StringUtil.quoteString(((XmlElement) object2).children().iterator()
+									.next().toString());
+				}
+			}
+			outputVal = ((String) outputVal).substring(1,
+					((String) outputVal).length());
+		} else {
+			Invoker fromInvoker = invokerMap.get(fromNode);
+			try {
+				if (fromInvoker != null)
+					outputVal = fromInvoker.getOutput(inputPort.getFromPort()
+							.getName());
+
+			} catch (Exception e) {
+				// if the value is still null look it up from the inputport name
+				// because the value is set to the input port name at some point
+				// there is no harm in doing this
+				if (null == outputVal) {
+					outputVal = fromInvoker.getOutput(inputPort.getName());
+				}
+			}
+
+		}
+		return outputVal;
+
+	}
+
+	/**
+	 * @param node
+	 * @return
+	 */
+	public static Node findEndForEachFor(ForEachNode node) {
+
+		Collection<Node> toNodes = node.getOutputPort(0).getToNodes();
+		if(toNodes.size() != 1){
+			throw new WorkflowRuntimeException("ForEach output does not contain single out-edge");
+		}
+		Node middleNode = toNodes.iterator().next();
+		List<DataPort> outputPorts = middleNode.getOutputPorts();
+		for (DataPort dataPort : outputPorts) {
+			if(dataPort.getToNodes().size() == 1){
+				Node possibleEndForEachNode = dataPort.getToNodes().get(0);
+				if(possibleEndForEachNode instanceof EndForEachNode){
+					return possibleEndForEachNode;
+				}
+			}
+		}
+		throw new WorkflowRuntimeException("EndForEachNode not found");
+	}
+	
+	
+	public static List<NameValue> getIOParameterData(String xml) throws ParserConfigurationException, SAXException, IOException{
+		List<NameValue> parameters=new ArrayList<NameValue>();
+		Document parameterDocument = XMLUtils.newDocument(new ByteArrayInputStream(xml.getBytes()));
+		org.w3c.dom.NodeList childNodes = parameterDocument.getDocumentElement().getChildNodes();
+		for(int i=0;i<childNodes.getLength();i++){
+			org.w3c.dom.Node parameterNode = childNodes.item(i);
+			NameValue pair = new NameValue();
+			pair.setName(parameterNode.getLocalName());
+			pair.setValue(parameterNode.getTextContent());
+			parameters.add(pair);
+		}
+		return parameters;
+	}
+
+//    public static AiravataRegistry2 getRegistry(URL url) throws IOException, RepositoryException, URISyntaxException {
+//        Properties properties = new Properties();
+//        properties.load(url.openStream());
+//        JCRComponentRegistry jcrComponentRegistry = new JCRComponentRegistry(new URI((String) properties.get(JCR_URL)),
+//                (String) properties.get(JCR_USER),(String) properties.get(JCR_PASS));
+//        return jcrComponentRegistry.getRegistry();
+//    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
new file mode 100644
index 0000000..46f5fe8
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.workflow;
+
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+
+public class WorkflowEngineException extends WorkflowException {
+    public WorkflowEngineException() {
+        super(); // To change body of overridden methods use File | Settings | File Templates.
+    }
+
+    public WorkflowEngineException(String message) {
+        super(message); // To change body of overridden methods use File | Settings | File Templates.
+    }
+
+    public WorkflowEngineException(Throwable cause) {
+        super(cause); // To change body of overridden methods use File | Settings | File Templates.
+    }
+
+    public WorkflowEngineException(String message, Throwable cause) {
+        super(message, cause); // To change body of overridden methods use File | Settings | File Templates.
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
new file mode 100644
index 0000000..f9ad6a9
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
@@ -0,0 +1,87 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.workflow.proxy;
+
+public class ProxyWSDL {
+    // FIXME Remove this once the duel network problem is solved
+    public static String WSDL = "<wsdl:definitions targetNamespace='http://extreme.indiana.edu/weps' "
+            + "xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' "
+            + "xmlns:tns='http://extreme.indiana.edu/weps' xmlns:http='http://schemas.xmlsoap.org/wsdl/http/' "
+            + "xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' "
+            + "xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'> " + "<wsdl:types> "
+            + "<xs:schema elementFormDefault='qualified' " + "targetNamespace='http://extreme.indiana.edu/weps'> "
+            + "<xs:element name='DeploymentInformation'> " + "<xs:complexType> " + "<xs:sequence> "
+            + "<xs:element name='ProcessName' type='xs:string' /> "
+            + "<xs:element maxOccurs='1' minOccurs='0' name='TemplateId' " + "type='xs:string' /> "
+            + "<xs:element name='DeploymentDocuments' type='tns:DeploymentDocumentsType'> " +
+
+            "</xs:element> " + "</xs:sequence> " + "</xs:complexType> " + "</xs:element> "
+            + "<xs:complexType name='DeploymentDocumentsType'> " + "<xs:sequence> "
+            + "<xs:element name='BPEL' type='xs:anyType' /> "
+            + "<xs:element name='DeploymentDescriptor' type='xs:anyType' /> "
+            + "<xs:element name='ProcessWSDL' type='tns:XMLFile' /> " +
+
+            "<xs:element maxOccurs='unbounded' minOccurs='1' " + "name='ServiceWSDLs' type='tns:XMLFile' /> "
+            + "<xs:element maxOccurs='unbounded' minOccurs='0' name='Other' " + "type='xs:anyType' /> "
+            + "</xs:sequence> " + "</xs:complexType> " + "<xs:complexType name='XMLFile'> " + "<xs:sequence> "
+            + "<xs:element name='FileName' type='xs:string' /> " + "<xs:element name='Content' type='xs:anyType'> "
+            + "</xs:element> " +
+
+            "</xs:sequence> " + "</xs:complexType> " + "<xs:element name='Result' type='xs:string' /> "
+            + "<xs:element name='ProcessName' type='xs:string' /> " + "<xs:element name='CreateInstanceResponse'> "
+            + "<xs:complexType> " + "<xs:sequence> " + "<xs:element name='ProcessName' type='xs:string' /> "
+            + "<xs:element name='ProcessWSDL' type='xs:anyType'> " +
+
+            "</xs:element> " + "</xs:sequence> " + "</xs:complexType> " + "</xs:element> " + "</xs:schema> "
+            + "</wsdl:types> " + "<wsdl:message name='DeployRequest'> "
+            + "<wsdl:part name='DeploymentInformation' element='tns:DeploymentInformation'> " + "</wsdl:part> " +
+
+            "</wsdl:message> " + "<wsdl:message name='CreateInstanceResponse'> "
+            + "<wsdl:part name='Response' element='tns:CreateInstanceResponse'> " + "</wsdl:part> "
+            + "</wsdl:message> " + "<wsdl:message name='CreateInstanceRequest'> "
+            + "<wsdl:part name='ProcessName' element='tns:ProcessName'> " + "</wsdl:part> " + "</wsdl:message> " +
+
+            "<wsdl:message name='DeployResponse'> " + "<wsdl:part name='Response' element='tns:Result'> "
+            + "</wsdl:part> " + "</wsdl:message> " + "<wsdl:portType name='WEPSPortType'> "
+            + "<wsdl:operation name='deploy'> " + "<wsdl:input message='tns:DeployRequest'> " + "</wsdl:input> "
+            + "<wsdl:output message='tns:DeployResponse'> " +
+
+            "</wsdl:output> " + "</wsdl:operation> " + "<wsdl:operation name='createInstance'> "
+            + "<wsdl:input message='tns:CreateInstanceRequest'> " + "</wsdl:input> "
+            + "<wsdl:output message='tns:CreateInstanceResponse'> " + "</wsdl:output> " + "</wsdl:operation> "
+            + "</wsdl:portType> " +
+
+            "<wsdl:binding name='WEPSBinding' type='tns:WEPSPortType'> " + "<soap:binding style='document' "
+            + "transport='http://schemas.xmlsoap.org/soap/http' /> " + "<wsdl:operation name='deploy'> "
+            + "<soap:operation soapAction='urn:deploy' /> " + "<wsdl:input> " + "<soap:body use='literal' /> "
+            + "</wsdl:input> " + "<wsdl:output> " + "<soap:body use='literal' /> " +
+
+            "</wsdl:output> " + "</wsdl:operation> " + "<wsdl:operation name='createInstance'> "
+            + "<soap:operation soapAction='urn:createInstance' /> " + "<wsdl:input> " + "<soap:body use='literal' /> "
+            + "</wsdl:input> " + "<wsdl:output> " + "<soap:body use='literal' /> " +
+
+            "</wsdl:output> " + "</wsdl:operation> " + "</wsdl:binding> " + "<wsdl:service name='WEPSService'> "
+            + "<wsdl:port name='WEPS' binding='tns:WEPSBinding'> " + "<soap:address "
+            + "location='http://silktree.cs.indiana.edu:18080/axis2/services/WEPSService' /> " + "</wsdl:port> "
+            + "</wsdl:service> " + "</wsdl:definitions> ";
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
new file mode 100644
index 0000000..bd67fb1
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.workflow.proxy;
+
+import org.apache.airavata.common.utils.Pair;
+import org.ietf.jgss.GSSException;
+
+public interface WorkflowClient {
+
+    public Pair<String, String> invoke(Pair<String, String>[] inputs) throws GSSException;
+
+    public void init();
+
+    public String getInstanceID();
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
new file mode 100644
index 0000000..a5ab394
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.workflow.proxy;
+
+import java.net.URISyntaxException;
+
+import org.apache.airavata.workflow.model.wf.Workflow;
+import org.ietf.jgss.GSSCredential;
+import org.ietf.jgss.GSSException;
+
+import xsul.lead.LeadContextHeader;
+
+public interface WorkflowContext {
+
+    public void prepare(WorkflowClient client, Workflow workflow) throws GSSException, URISyntaxException;
+
+    public LeadContextHeader getHeader();
+
+    public GSSCredential getCredentials();
+
+    public String getTopic();
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
new file mode 100644
index 0000000..7a87d9a
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.apache.airavata.workflow.engine.workflow.proxy;
+
+import org.apache.airavata.workflow.engine.workflow.WorkflowEngineException;
+
+public class WorkflowProxyException extends WorkflowEngineException {
+
+    /**
+     * Constructs a WorkflowProxyException.
+     * 
+     */
+    public WorkflowProxyException() {
+        super();
+    }
+
+    /**
+     * Constructs a WorkflowProxyException.
+     * 
+     * @param message
+     */
+    public WorkflowProxyException(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a WorkflowProxyException.
+     * 
+     * @param cause
+     */
+    public WorkflowProxyException(Throwable cause) {
+        super(cause);
+    }
+
+    /**
+     * Constructs a WorkflowProxyException.
+     * 
+     * @param message
+     * @param cause
+     */
+    public WorkflowProxyException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl b/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
new file mode 100644
index 0000000..a46d107
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<wsdl:definitions targetNamespace="http://xbaya.extreme.indiana.edu" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://xbaya.extreme.indiana.edu" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax21="http://xbaya.extreme.indiana.edu/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+  <wsdl:types>
+    <xs:schema targetNamespace="http://gui.component.xbaya.airavata.apache.org/xsd">
+            <xs:import namespace="http://registry.component.xbaya.airavata.apache.org/xsd"/>
+            <xs:element name="launchWorkflow">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="workflowAsString" nillable="true" type="xs:string"/>
+                        <xs:element minOccurs="0" name="topic" nillable="true" type="xs:string"/>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="inputs" nillable="true" type="ns:NameValue"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="launchWorkflowResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:complexType name="NameValue">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
+                    <xs:element minOccurs="0" name="value" nillable="true" type="xs:string"/>
+                </xs:sequence>
+            </xs:complexType>
+        </xs:schema>
+  </wsdl:types>
+  <wsdl:message name="launchWorkflowRequest">
+    <wsdl:part name="parameters" element="ns:launchWorkflow">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="launchWorkflowResponse">
+    <wsdl:part name="parameters" element="ns:launchWorkflowResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="WorkflowInterpretorPortType">
+    <wsdl:operation name="launchWorkflow">
+      <wsdl:input message="ns:launchWorkflowRequest" wsaw:Action="urn:launchWorkflow">
+    </wsdl:input>
+      <wsdl:output message="ns:launchWorkflowResponse" wsaw:Action="urn:launchWorkflowResponse">
+    </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="WorkflowInterpretorSoap11Binding" type="ns:WorkflowInterpretorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="launchWorkflow">
+      <soap:operation soapAction="urn:launchWorkflow" style="document"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="WorkflowInterpretor">
+    <wsdl:port name="WorkflowInterpretorHttpSoap11Endpoint" binding="ns:WorkflowInterpretorSoap11Binding">
+      <soap:address location="http://ogceportal.iu.teragrid.org:19444/axis2/services/WorkflowInterpretor"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png
new file mode 100644
index 0000000..28bca82
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png
new file mode 100644
index 0000000..2b42807
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png
new file mode 100644
index 0000000..28cf91a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png
new file mode 100644
index 0000000..d00e112
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png
new file mode 100644
index 0000000..5c29ec9
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png
new file mode 100644
index 0000000..3b737f4
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png
new file mode 100644
index 0000000..7713189
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/application.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/application.png b/modules/workflow-model/workflow-engine/src/main/resources/images/application.png
new file mode 100644
index 0000000..66ae19c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/application.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png b/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png
new file mode 100644
index 0000000..f40985e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif
new file mode 100644
index 0000000..83ee32c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png b/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png
new file mode 100644
index 0000000..ac7284f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png b/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png
new file mode 100644
index 0000000..48fe90b
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png b/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png
new file mode 100644
index 0000000..ed993e0
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png
new file mode 100644
index 0000000..f4c1b7a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png
new file mode 100644
index 0000000..9245910
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/host.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/host.png b/modules/workflow-model/workflow-engine/src/main/resources/images/host.png
new file mode 100644
index 0000000..e76e671
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/host.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png b/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png
new file mode 100644
index 0000000..cf0356d
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png b/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png
new file mode 100644
index 0000000..d20c003
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png b/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png
new file mode 100644
index 0000000..6aa8545
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif
new file mode 100644
index 0000000..b18a22f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png
new file mode 100644
index 0000000..ba6e116
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png
new file mode 100644
index 0000000..2e56f58
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png
new file mode 100644
index 0000000..c706198
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png
new file mode 100644
index 0000000..d2ce8de
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png
new file mode 100644
index 0000000..936737e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png
new file mode 100644
index 0000000..254767a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png
new file mode 100644
index 0000000..dfe320d
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png
new file mode 100644
index 0000000..88aee76
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png
new file mode 100644
index 0000000..084250c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png
new file mode 100644
index 0000000..84be025
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png
new file mode 100644
index 0000000..bf46fd1
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png
new file mode 100644
index 0000000..60eb108
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif
new file mode 100644
index 0000000..2d06b25
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png b/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png
new file mode 100644
index 0000000..d09a694
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png b/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png
new file mode 100644
index 0000000..8f9b90a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg
new file mode 100644
index 0000000..0c04b2f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg
new file mode 100644
index 0000000..db2dd7e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png b/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png
new file mode 100644
index 0000000..168dec6
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/service.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/service.png b/modules/workflow-model/workflow-engine/src/main/resources/images/service.png
new file mode 100644
index 0000000..2c02fa7
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/service.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/services.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/services.png b/modules/workflow-model/workflow-engine/src/main/resources/images/services.png
new file mode 100644
index 0000000..762544c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/services.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif
new file mode 100644
index 0000000..1ec36ae
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg
new file mode 100644
index 0000000..57e8693
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png
new file mode 100644
index 0000000..0efcc44
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png
new file mode 100644
index 0000000..53bd023
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png
new file mode 100644
index 0000000..16fa3f1
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png differ

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/services.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/services.xml b/modules/workflow-model/workflow-engine/src/main/resources/services.xml
new file mode 100644
index 0000000..429b159
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/services.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+
+<!-- This file was auto-generated from WSDL -->
+<!-- by the Apache Axis2 version: 1.4  Built on : Apr 26, 2008 (06:24:30 EDT) -->
+<serviceGroup>
+    <service name="WorkflowInterpretor" class="org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton">
+        <messageReceivers>
+            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.apache.airavata.xbaya.interpretor.WorkflowInterpretorMessageReceiverInOut"/>
+        </messageReceivers>
+        <parameter name="ServiceClass">org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton</parameter>
+        <parameter name="useOriginalwsdl">true</parameter>
+        <parameter name="modifyUserWSDLPortAddress">true</parameter>
+        <operation name="launchWorkflow" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://xbaya.extreme.indiana.edu">
+            <actionMapping>urn:launchWorkflow</actionMapping>
+            <outputActionMapping>urn:launchWorkflowResponse</outputActionMapping>
+        </operation>
+    </service>
+</serviceGroup>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
new file mode 100644
index 0000000..0964447
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--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. -->
+
+<wsdl:definitions name="TestCMD_Example1" targetNamespace="http://www.extreme.indiana.edu/lead"
+	xmlns:typens="http://www.extreme.indiana.edu/lead/TestCMD_Example1/xsd" xmlns:wsdlns="http://www.extreme.indiana.edu/lead"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+	<wsdl:types>
+		<schema elementFormDefault="unqualified" targetNamespace="http://www.extreme.indiana.edu/lead/TestCMD_Example1/xsd"
+			xmlns="http://www.w3.org/2001/XMLSchema">
+			<element name="Run_InputParams" type="typens:Run_InputParamsType" />
+			<complexType name="Run_InputParamsType">
+				<sequence>
+					<element name="InputParam1" type="xsd:int">
+						<annotation>
+							<documentation>An input parameter</documentation>
+						</annotation>
+					</element>
+				</sequence>
+			</complexType>
+			<element name="Run_OutputParams" type="typens:Run_OutputParamsType" />
+			<complexType name="Run_OutputParamsType">
+				<sequence>
+					<element name="OutputParam1" type="xsd:string">
+						<annotation>
+							<documentation>An output parameter</documentation>
+						</annotation>
+					</element>
+				</sequence>
+			</complexType>
+		</schema>
+	</wsdl:types>
+	<wsdl:message name="Run_RequestMessage">
+		<wsdl:part name="parameters" element="typens:Run_InputParams" />
+	</wsdl:message>
+	<wsdl:message name="Run_ResponseMessage">
+		<wsdl:part name="parameters" element="typens:Run_OutputParams" />
+	</wsdl:message>
+	<wsdl:portType name="TestCMD_Example1">
+		<wsdl:documentation />
+		<wsdl:operation name="Run">
+			<wsdl:documentation>Run the service</wsdl:documentation>
+			<wsdl:input name="Run_RequestMessage" message="wsdlns:Run_RequestMessage" />
+			<wsdl:output name="Run_ResponseMessage" message="wsdlns:Run_ResponseMessage" />
+		</wsdl:operation>
+	</wsdl:portType>
+	<n:factoryServices xmlns:n="http://www.extreme.indiana.edu/namespaces/2004/01/gFac">
+		<n:factoryService location="http://rainier.extreme.indiana.edu:12345" operation="n:CreateService"
+			portType="n:GenericFactory" />
+	</n:factoryServices>
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
new file mode 100644
index 0000000..08e3577
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--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. -->
+
+<definitions name="Adder" targetNamespace="http://www.extreme.indiana.edu/math/" xmlns:tns="http://www.extreme.indiana.edu/math/"
+	xmlns:typens="http://www.extreme.indiana.edu/math/adder/xsd/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+	<documentation xml:lang="en">A service for adding two numbers</documentation>
+
+	<types>
+		<schema elementFormDefault="unqualified" targetNamespace="http://www.extreme.indiana.edu/math/adder/xsd/"
+			xmlns="http://www.w3.org/2001/XMLSchema">
+			<element name="AddInput" type="typens:AddInputType" />
+			<complexType name="AddInputType">
+				<sequence>
+					<element name="x" type="xsd:int">
+						<annotation>
+							<documentation xml:lang="en">This is the first input</documentation>
+						</annotation>
+					</element>
+					<element name="y" type="xsd:int">
+						<annotation>
+							<documentation xml:lang="en">This is the second input</documentation>
+						</annotation>
+					</element>
+				</sequence>
+			</complexType>
+			<element name="AddOutput" type="typens:AddOutputType" />
+			<complexType name="AddOutputType">
+				<sequence>
+					<element name="z" type="xsd:int">
+						<annotation>
+							<documentation xml:lang="en">This is the result</documentation>
+						</annotation>
+					</element>
+				</sequence>
+			</complexType>
+		</schema>
+	</types>
+
+	<message name="AddInputMessage">
+		<part name="AddInputMessagePart" element="typens:AddInput" />
+	</message>
+	<message name="AddOutputMessage">
+		<part name="AddOutputMessagePart" element="typens:AddOutput" />
+	</message>
+
+	<portType name="Adder">
+		<documentation xml:lang="en" />
+		<operation name="add">
+			<documentation = en ">Run the adder</documentation>
+			<input name="AddInput" message="tns:AddInputMessage" />
+			<output name="AddOutput" message="tns:AddOutputMessage" />
+		</operation>
+	</portType>
+</definitions>
\ No newline at end of file