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."
+ }
+ }
+ }
+
+ }
+}