You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2013/07/21 22:33:02 UTC

svn commit: r1505469 - /airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json

Author: smarru
Date: Sun Jul 21 20:33:02 2013
New Revision: 1505469

URL: http://svn.apache.org/r1505469
Log:
committing Shameera's patch

Added:
    airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json

Added: airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json
URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json?rev=1505469&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json (added)
+++ airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json Sun Jul 21 20:33:02 2013
@@ -0,0 +1,336 @@
+{
+    "$schema": "http://json-schema.org/draft-04/schema#",
+    "title": "Workflow Execution Context",
+    "description":"JSON schema for Workflow Execution Context",
+    "type": "object",
+    "id": "http://airavata.apache.org/schemas/wec/2012/05#",
+    "required": ["context-header"],
+    "properties": {
+        "context-header": {
+            "type": "object",
+            "required": ["soa-service-eprs" , "workflow-monitoring-context"],
+            "description": "Element that contains Airavata specific context information sent as a SOAP header in a SOAP message.",
+            "properties": {
+                "user-identifier": {
+                    "$ref": "#/definitions/user-identifier"
+
+                },
+                "soa-service-eprs": {
+                    "$ref": "#/definitions/soa-service-eprs"
+                },
+                "workflow-monitoring-context": {
+                    "$ref": "#/definitions/workflow-monitoring-context"
+                },
+                "workflow-scheduling-context": {
+                    "$ref": "#/definitions/workflow-scheduling-context"
+                },
+                "workflow-output-data-handling": {
+                    "$ref": "#/definitions/workflow-output-data-handling"
+                },
+                "security-context": {
+                    "$ref": "#/definitions/security-context"
+                }
+            }
+        }
+    },
+    "definitions": {
+        "user-identifier": {
+            "type": "string",
+            "description": "User that the workflow is executed on behalf of, user id is used to catalog data and for monitoring purposes"
+        },
+        "soa-service-eprs": {
+            "type": "object",
+            "required": ["gfac-url" , "registry-url"],
+            "description": "Element that contains persistent service end points within the system.",
+            "properties": {
+                "gfac-url": {
+                    "type": "string",         // any URI
+                    "description": "Location of GFac factory service to use."
+                },
+                "registry-url": {
+                    "type": "string",        // any URI
+                    "description": "Location of Registry service to use."
+                },
+                "resource-scheduler-url": {
+                    "type": "string",
+                    "description": "Resource Scheduler to use. (optional)"
+                },
+                "hostDescriptor": {
+                    "type": "string",
+                    "description": "Which Host Descriptor to be picked. (optional)"
+                }
+            }
+        },
+        "workflow-monitoring-context": {
+            "type": "object",
+            "required": ["experiment-id", "workflow-instance-id", "workflow-template-id", "workflow-node-id", "workflow-time-step", "service-instance-id", "service-replica-id", "event-publish-epr", "error-publish-epr", "msg-box-epr"],
+            "description": "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.",
+            "properties": {
+                "experiment-id": {
+                    "type": "string",
+                    "description": "Experiment ID (REQUIRED in context), Defines the context of the workflow."
+                },
+                "workflow-instance-id": {
+                    "type": "string",
+                    "description": "URI that identifies workflow instance that originated the message."
+                },
+                "workflow-template-id": {
+                    "type": "string",
+                    "description": "URI that identifies workflow template that was used to create the workflow instance."
+                },
+                "workflow-node-id": {
+                    "type": "string",
+                    "description": "String that identifies uniqueley a node in workflow graph that originated that message."
+                },
+                "workflow-time-step": {
+                    "type": "integer",
+                    "description": "Increasing integer representing time in the workflow execution when the message originated."
+                },
+                "service-instance-id": {
+                    "type": "string",
+                    "description": "URI that identifies service instance that originated that message."
+                },
+                "service-replica-id": {
+                    "type": "string",
+                    "description": "URI that identifies the replica of service instance that originated that message, primarly used by Fault Tolerance service to overprovision."
+                },
+                "event-publish-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send event. (optional) NOTE: currently any XML is accepted as there are many versions of WS-Addressing."
+                },
+                "notification-topic": {
+                    "type": "string",
+                    "description": "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."
+                },
+                "error-publish-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc"
+                },
+                "msg-box-epr": {
+                    "type": "string",
+                    "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc"
+                }
+            }
+        },
+        "workflow-scheduling-context": {
+            "type": "object",
+            "required": ["application-scheduling-context"],
+            "description": "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.",
+            "properties": {
+                "application-scheduling-context": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/application-scheduling-context"
+                    },
+                    "minItems": 1
+                },
+                "nameValuePairType": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/nameValuePairType"
+                    }
+                }
+
+            }
+        },
+        "workflow-output-data-handling": {
+            "type": "object",
+            "description": "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.",
+            "required": ["application-output-data-handling"],
+            "properties": {
+                "application-output-data-handling": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/application-output-data-handling"
+                    },
+                    "minItems": 1
+                }
+            }
+        },
+        "security-context": {
+            "type": "object",
+            "required": ["grid-proxy", "grid-myproxy-repository" , "ssh-authentication", "credential-management-service"],
+            "description": "Security context for execution of the workflow",
+            "properties": {
+                "grid-proxy": {
+                    "type": "string",    // base64Binary
+                    "description": "Security context for Grid Security Infrastructure X509 Proxy with trusted chain."
+                },
+                "grid-myproxy-repository": {
+                    "type": "object",
+                    "description": "Security context for Grid Security MyProxy Service",
+                    "required": ["myproxy-server", "username", "password", "life-time-inhours"],
+                    "properties": {
+                        "myproxy-server": {
+                            "type": "string",
+                            "description": "schema for an fstab entry"
+                        },
+                        "username": {
+                            "type": "string",
+                            "description": "MyProxy User Name."
+                        },
+                        "password": {
+                            "type": "string",
+                            "description": "MyProxy Password."
+                        },
+                        "life-time-inhours": {
+                            "type": "integer",
+                            "description": "MyProxy Proxy Life time."
+                        }
+                    }
+                },
+                "ssh-authentication": {
+                    "type": "object",
+                    "required": ["access-key-id", "secret-access-key"],
+                    "description": "Security context for execution of the workflow on SSH accessed resources.",
+                    "properties": {
+                        "access-key-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's."
+                        },
+                        "secret-access-key": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Private Secret Access Key."
+                        }
+                    }
+                },
+                "credential-management-service": {
+                    "type": "object",
+                    "required": ["token_id", "portal-user" ],
+                    "description": "Security context for execution of the workflow",
+                    "properties": {
+                        "token_id": {
+                            "type": "string",
+                            "description": "Token id used in credential-store. Represents the community user."
+                        },
+                        "portal-user": {
+                            "type": "string",
+                            "description": "The portal user id who is invoking the workflow."
+                        }
+                    }
+                },
+                "amazon-webservices": {
+                    "type": "object",
+                    "required": ["access-key-id","secret-access-key", "ami-id", "instance-id", "instance-type", "username"],
+                    "description": "Security context for execution of the workflow",
+                    "properties": {
+                        "access-key-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's."
+                        },
+                        "secret-access-key": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Private Secret Access Key."
+                        },
+                        "ami-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Amazon Machine Image (AMI) ID"
+                        },
+                        "instance-id": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Instance ID."
+                        },
+                        "instance-type": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Instance Type."
+                        },
+                        "username": {
+                            "type": "string",
+                            "description": "Amazon Web Services AWS Username."
+                        }
+                    }
+                }
+            }
+        },
+        "application-scheduling-context": {
+            "type": "object",
+            "required": ["@workflow-node-id", "@job-manager" , "@queue-name"],
+            "description": "Element text contains host name for the resource.",
+            "properties": {
+                "@workflow-node-id": {
+                    "type": "string",
+                    "description": "This is workflow node ID that is mapped to a resource."
+                },
+                "@service-id": {
+                    "type": "string",    // any URI
+                    "description": "This is service ID."
+                },
+                "@host-name": {
+                    "type": "string",    // any URI
+                    "description": "head node of the resource"
+                },
+                "@wsgram-preferred": {
+                    "type": "boolean",
+                    "description": "If true then wsgram will be used, false pre-wsgram will be used."
+                },
+                "@gatekeeper-epr": {
+                    "type": "string",    // any URI
+                    "description": "GRAM EPR of the resource"
+                },
+                "@job-manager": {
+                    "type": "string",
+                    "description": "LRM job manager on the resource, ex: PBS, LSF."
+                },
+                "@cpu-count": {
+                    "type": "integer",
+                    "description": "number of CPU's allocated on the compute cluster"
+                },
+                "@node-count": {
+                    "type": "integer",
+                    "description": "number of nodes allocated on the compute cluster"
+                },
+                "@queue-name": {
+                    "type": "string",
+                    "description": "Job queue name if any."
+                },
+                "@max-wall-time": {
+                    "type": "integer",
+                    "description": "number of CPU's allocated on the compute cluster"
+                }
+            }
+        },
+        "nameValuePair": {
+            "type": "object",
+            "required": ["@name" , "@value"],
+            "description": "Name-Value pair",
+            "properties": {
+                "@workflow-node-id": {
+                    "type": "string"
+                },
+                "@name": {
+                    "type": "string"
+                },
+                "@value": {
+                    "type": "string"
+                },
+                "@description": {
+                    "type": "string"
+                }
+            }
+        },
+        "application-output-data-handling": {
+            "type": "object",
+            "required": ["node-id", "data-registry-url", "output-data-directory", "data-persistance"],
+            "description": "schema for an fstab entry",
+            "properties": {
+                "node-id": {
+                    "type": "string",
+                    "description": " If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided."
+                },
+                "data-registry-url": {
+                    "type": "string",     // any URI
+                    "description": "If a seperate Data Registry is used for catlogging data, the associated location of the Data registry"
+                },
+                "output-data-directory": {
+                    "type": "string",         // any URI
+                    "description": "If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided."
+                },
+                "data-persistance": {
+                    "type": "boolean",
+                    "description": "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."
+                }
+            }
+        }
+
+    }
+}