You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/03/11 20:41:05 UTC

[1/3] Adding glue2 schema and add more changes - AIRAVATA-1023

Repository: airavata
Updated Branches:
  refs/heads/master 703a92be6 -> c00025f49


http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ApplicationEnvironment.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ApplicationEnvironment.json b/modules/airavata-job-monitor/src/main/resources/schema/ApplicationEnvironment.json
new file mode 100644
index 0000000..89c78e0
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ApplicationEnvironment.json
@@ -0,0 +1,86 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "AppName": {
+      "type": "string",
+      "description": "The name of the application"
+    },
+    "AppVersion": {
+      "type": "string",
+      "description": "The version of the application"
+    },
+    "State": {
+      "type": "string",
+      "description": "The current installation state of the application - AppEnvState_t"
+    },
+    "RemovalDate": {
+      "type": "string",
+      "description": "The date/time after which the application may be removed - DateTime_t"
+    },
+    "License": {
+      "type": "string",
+      "description": "The license under which the application is usable - License_t"
+    },
+    "Description": {
+      "type": "string",
+      "description": "A human-readable description of the application"
+    },
+    "BestBenchmark": {
+      "type": "array",
+      "description": "The type(s) of the benchmarks which best describe the sensitivity of this application to the performance of the ExecutionEnvironment - Benchmark_t",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ParallelSupport": {
+      "type": "string",
+      "description": "The type of supported parallel execution - ParallelSupport_t"
+    },
+    "MaxSlots": {
+      "type": "integer",
+      "description": "The maximum number of concurrent slots that may be used to run the application"
+    },
+    "MaxJobs": {
+      "type": "integer",
+      "description": "The maximum number of concurrent jobs that can run the application"
+    },
+    "MaxUserSeats": {
+      "type": "integer",
+      "description": "The maximum number of concurrent users that can run the application"
+    },
+    "FreeSlots": {
+      "type": "integer",
+      "description": "The maximum number slots currently available to run the application"
+    },
+    "FreeJobs": {
+      "type": "integer",
+      "description": "The maximum number of additional jobs that can run the application"
+    },
+    "FreeUserSeats": {
+      "type": "integer",
+      "description": "The maximum number of additional users that can run the application"
+    },
+    "ExecutionEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ExecutionEnvironments where this ApplicationEnvironment can be used",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ComputingManagerID": {
+      "type": "string",
+      "description": "ID of the ComputingManager this ApplicationEnvironment is associated with"
+    },
+    "ApplicationHandleID": {
+      "type": "array",
+      "description": "ID(s) of the ApplicationHandles that can be used to refer to this environment",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["AppName","ComputingManagerID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ApplicationHandle.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ApplicationHandle.json b/modules/airavata-job-monitor/src/main/resources/schema/ApplicationHandle.json
new file mode 100644
index 0000000..e7972e9
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ApplicationHandle.json
@@ -0,0 +1,21 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of method used to set up an ApplicationEnvironment - ApplicationHandle_t (open enumeration)"
+    },
+    "Value": {
+      "type": "string",
+      "description": "How to set up the ApplicationEnvironment in the context of the Type"
+    },
+    "ApplicationEnvironmentID": {
+      "type": "string",
+      "description": "The ID of the ApplicationEnvironment this ApplicationHandle refers to"
+    }
+  },
+  "required": ["Type","Value","ApplicationEnvironmentID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Benchmark.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Benchmark.json b/modules/airavata-job-monitor/src/main/resources/schema/Benchmark.json
new file mode 100644
index 0000000..2b64261
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Benchmark.json
@@ -0,0 +1,21 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of the benchmark - Benchmark_t (open enumeration)"
+    },
+    "Value": {
+      "type": "number",
+      "description": "The value of the benchmark"
+    },
+    "ComputingManagerID": {
+      "type": "string",
+      "description": "The ID of the ComputingManager this benchmark is for"
+    }
+  },
+  "required": ["Type","Value"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ComputingActivity.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ComputingActivity.json b/modules/airavata-job-monitor/src/main/resources/schema/ComputingActivity.json
new file mode 100644
index 0000000..5fcae72
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ComputingActivity.json
@@ -0,0 +1,165 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "closed enumeration ComputingActivityType_t",
+      "enum": ["collectionelement","parallelelement","single","workflownode"]
+    },
+    "IDFromEndpoint": {
+      "type": "string",
+      "description": "The ID assigned by the ComputingEndpoint"
+    },
+    "LocalIDFromManager": {
+      "type": "string",
+      "description": "The local ID assigned by the ComputingManager"
+    },
+    "State": {
+      "type": "array",
+      "description": "open enumeration ComputingActivityState_t",
+      "items": {
+        "type": "string"
+      },
+      "minItems": 1
+    },
+    "RestartState": {
+      "type": "array",
+      "description": "open enumeration ComputingActivityState_t",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ExitCode": {
+      "type": "integer",
+      "description": "The exit code as returned by the main executable code or script of the job"
+    },
+    "ComputingManagerExitCode": {
+      "type": "string",
+      "description": "The exit code provided by the ComputingManager"
+    },
+    "Error": {
+      "type": "array",
+      "description": "The error messages as provided by the software components involved in the management of the job",
+      "items": {
+        "type": "string"
+      }
+    },
+    "WaitingPosition": {
+      "type": "integer",
+      "description": "The position of the job in the queue, if the job is waiting"
+    },
+    "Owner": {
+      "type": "string",
+      "description": "The Grid identity of the job's owner"
+    },
+    "LocalOwner": {
+      "type": "string",
+      "description": "The local user name of the job's owner"
+    },
+    "RequestedTotalWallTime": {
+      "type": "integer",
+      "description": "The total wall clock time requested by the job"
+    },
+    "RequestedTotalCPUTime": {
+      "type": "integer",
+      "description": "The total CPU time requested by the job"
+    },
+    "RequestedSlots": {
+      "type": "integer",
+      "description": "The number of slots requested for the job"
+    },
+    "RequestedApplicationEnvironment": {
+      "type": "array",
+      "description": "The AppName and Version of the requested ApplicationEnvironments",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StdIn": {
+      "type": "string",
+      "description": "The name of the file used for standard input"
+    },
+    "StdOut": {
+      "type": "string",
+      "description": "The name of the file used for standard output"
+    },
+    "StdErr": {
+      "type": "string",
+      "description": "The name of the file used for standard error"
+    },
+    "LogDir": {
+      "type": "string",
+      "description": "The name of the directory which contains job logs"
+    },
+    "ExecutionNode": {
+      "type": "array",
+      "description": "Hostnames associated with the ExecutionEnvironments running the job",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Queue": {
+      "type": "string",
+      "description": "The name of the ComputingManager queue that held the job before execution"
+    },
+    "UsedTotalWallTime": {
+      "type": "integer",
+      "description": "The total wall clock time consumed by the job so far (slots*seconds)"
+    },
+    "UsedTotalCpuTime": {
+      "type": "integer",
+      "description": "The total CPU time consumed by the job so far (seconds)"
+    },
+    "UsedMainMemory": {
+      "type": "integer",
+      "description": "The physical RAM currently used by the job (MB)"
+    },
+    "SubmissionTime": {
+      "type": "string",
+      "description": "The time when the job was submitted to the ComputingEndpoint (DateTime_t)"
+    },
+    "ComputingManagerSubmissionTime": {
+      "type": "string",
+      "description": "The time when the job was submitted to the ComputingManager (DateTime_t)"
+    },
+    "StartTime": {
+      "type": "string",
+      "description": "The time when the ComputingManager started the job (DateTime_t)"
+    },
+    "EndTime": {
+      "type": "string",
+      "description": "The time when the job ended in the Grid layer (DateTime_t)"
+    },
+    "ComputingManagerEndTime": {
+      "type": "string",
+      "description": "The time when the job ended according to the ComputingManager (DateTime_t)"
+    },
+    "WorkingAreaEraseTime": {
+      "type": "string",
+      "description": "The time when working area will be removed from storage (DateTime_t)"
+    },
+    "ProxyExpirationTime": {
+      "type": "string",
+      "description": "The expiration time of the Grid proxy associated with the job (DateTime_t)"
+    },
+    "SubmissionHost": {
+      "type": "string",
+      "description": "The name of the host from which the job was submitted"
+    },
+    "SubmissionClientName": {
+      "type": "string",
+      "description": "The name of the software client used to submit the job"
+    },
+    "OtherMessages": {
+      "type": "array",
+      "description": "Optional messages provided by either the Grid layer or the ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["State","Owner"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ComputingEndpoint.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ComputingEndpoint.json b/modules/airavata-job-monitor/src/main/resources/schema/ComputingEndpoint.json
new file mode 100644
index 0000000..f94f889
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ComputingEndpoint.json
@@ -0,0 +1,44 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}],
+  "properties": {
+    "Staging": {
+      "type": "string",
+      "description": "Supported file staging functionality - Staging_t",
+      "enum": ["none","stagingin","staginginout","stagingout"]
+    },
+    "JobDescription": {
+      "type": "array",
+      "description": "Supported job description languages - JobDescription_t (open Enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of Grid jobs known to the system"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are running in an ExecutionEnvironment"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are waiting to start executing"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs staging files before or after execution"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs that started to execute, but are now suspended"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ComputingManager.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ComputingManager.json b/modules/airavata-job-monitor/src/main/resources/schema/ComputingManager.json
new file mode 100644
index 0000000..aecb114
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ComputingManager.json
@@ -0,0 +1,117 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "Reservation": {
+      "type": "boolean",
+      "description": "Whether advance reservation is supported (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "BulkSubmission": {
+      "type": "boolean",
+      "description": "Whether multiple jobs can be submitted at once (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "TotalPhysicalCPUs": {
+      "type": "integer",
+      "description": "The total number of physical CPUs managed by this ComputingManager"
+    },
+    "TotalLogicalCPUs": {
+      "type": "integer",
+      "description": "The total number of logical CPUs managed by this ComputingManager"
+    },
+    "TotalSlots": {
+      "type": "integer",
+      "description": "The total number of slots managed by this ComputingManager"
+    },
+    "SlotsUsedByLocalJobs": {
+      "type": "integer",
+      "description": "The number of slots currently used by jobs submitted via a non-Grid interface"
+    },
+    "SlotsUsedByGridJobs": {
+      "type": "integer",
+      "description": "The number of slots currently used by jobs submitted via a non-Grid interface"
+    },
+    "Homogeneous": {
+      "type": "boolean",
+      "description": "Whether this ComputingManager manages only one type of ExecutionEnvironment"
+    },
+    "NetworkInfo": {
+      "type": "array",
+      "description": "The types of internal network connections between ExecutionEnvironments (NetworkInfo_t)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocalCPUDistribution": {
+      "type": "boolean",
+      "description": "Classification of the managed ExecutionEnvironments aggregated by the number of logical CPUs"
+    },
+    "WorkingAreaShared": {
+      "type": "boolean",
+      "description": "True if the working area is shared across different ExecutionEnvironments"
+    },
+    "WorkingAreaGuaranteed": {
+      "type": "boolean",
+      "description": "True if the job is guaranteed all of WorkingAreaTotal"
+    },
+    "WorkingAreaTotal": {
+      "type": "integer",
+      "description": "Total size of the working area available to single slot jobs (GB)"
+    },
+    "WorkingAreaFree": {
+      "type": "integer",
+      "description": "The amount of free space in the working area (GB)"
+    },
+    "WorkingAreaLifeTime": {
+      "type": "integer",
+      "description": "The minimum guaranteed lifetime of files created in the working area (seconds)"
+    },
+    "WorkingAreaMultiSlotTotal": {
+      "type": "integer",
+      "description": "The total size of the working area across all ExecutionEnvironments (GB)"
+    },
+    "WorkingAreaMultiSlotFree": {
+      "type": "integer",
+      "description": "The available space in the working area across all ExecutionEnvironments (GB)"
+    },
+    "WorkingAreaMultiSlotLifeTime": {
+      "type": "integer",
+      "description": "The minimum guaranteed lifetime of files created in the working area (seconds)"
+    },
+    "CacheTotal": {
+      "type": "integer",
+      "description": "If local caching of input files is supported, the total size of the area they may be stored in"
+    },
+    "CacheFree": {
+      "type": "integer",
+      "description": "If local caching of input files is supported, the available size of the area they may be stored in"
+    },
+    "TmpDir": {
+      "type": "string",
+      "description": "The absolute path of a temporary directory local to an ExecutionEnvironment"
+    },
+    "ScratchDir": {
+      "type": "string",
+      "description": "The absolute path of a shared directory available for application data"
+    },
+    "ApplicationDir": {
+      "type": "string",
+      "description": "The absolute path of a directory available for installation of persistent application software"
+    },
+    "ApplicationEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ApplicationEnvironments provided by this ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    },
+    "BenchmarkID": {
+      "type": "array",
+      "description": "ID(s) of Benchmarks associated with this ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ComputingService.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ComputingService.json b/modules/airavata-job-monitor/src/main/resources/schema/ComputingService.json
new file mode 100644
index 0000000..9cfde1b
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ComputingService.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}],
+  "properties": {
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of Grid jobs known to the system"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are running in an ExecutionEnvironment"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are waiting to start executing"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs staging files before or after execution"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs that started to execute, but are now suspended"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ComputingShare.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ComputingShare.json b/modules/airavata-job-monitor/src/main/resources/schema/ComputingShare.json
new file mode 100644
index 0000000..340c83e
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ComputingShare.json
@@ -0,0 +1,182 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "MappingQueue": {
+      "type": "string",
+      "description": "The name of the queue in the LRMS where jobs in this share are submitted"
+    },
+    "MaxWallTime": {
+      "type": "integer",
+      "description": "The maximum wall clock time that a single-slot job can run (seconds)"
+    },
+    "MaxMultiSlotWallTime": {
+      "type": "integer",
+      "description": "The maximum wall clock time that a multi-slot job can run (seconds)"
+    },
+    "DefaultWallTime": {
+      "type": "integer",
+      "description": "The default wall clock per slot assumed by the LRMS if a maximum time is not specified (seconds)"
+    },
+    "MaxCPUTime": {
+      "type": "integer",
+      "description": "The maximum pre-slot CPU time that a job can request (seconds)"
+    },
+    "MaxTotalCPUTime": {
+      "type": "integer",
+      "description": "The maximum amount of CPU time that a job can request across all slots assigned to it (seconds)"
+    },
+    "MinCPUTime": {
+      "type": "integer",
+      "description": "The minimum pre-slot CPU time that a job can request (seconds)"
+    },
+    "DefaultCPUTime": {
+      "type": "integer",
+      "description": "The default CPU time limit assumed by the LRMS if a maximum time is not specified (seconds)"
+    },
+    "MaxTotalJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be in this Share"
+    },
+    "MaxRunningJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be running in this Share"
+    },
+    "MaxWaitingJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be waiting in this Share"
+    },
+    "MaxPreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be waiting in the Grid layer for this Share"
+    },
+    "MaxUserRunningJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be running in this Share per user"
+    },
+    "MaxSlotsPerJob": {
+      "type": "integer",
+      "description": "The maximum number of slots that can be allocated to a single job in this Share"
+    },
+    "MaxStageInStreams": {
+      "type": "integer",
+      "description": "The maximum number of streams available to stage files in"
+    },
+    "MaxStageOutStreams": {
+      "type": "integer",
+      "description": "The maximum number of streams available to stage files out"
+    },
+    "ScheduingPolicy": {
+      "type": "string",
+      "description": "The scheduling policy used by the share - SchedulingPolicy_t (open enumeration)"
+    },
+    "MaxMainMemory": {
+      "type": "integer",
+      "description": "The maximum amount of physical RAM that a job can use (MB)"
+    },
+    "GuaranteedMainMemory": {
+      "type": "integer",
+      "description": "The amount of physical RAM that a job will have available (MB)"
+    },
+    "MaxVirtualMemory": {
+      "type": "integer",
+      "description": "The maximum amount memory (RAM+swap) that a job can use (MB)"
+    },
+    "GuaranteedVirtualMemory": {
+      "type": "integer",
+      "description": "The amount of memory (RAM+swap) that a job will have available (MB)"
+    },
+    "MaxDiskSpace": {
+      "type": "integer",
+      "description": "The maximum disk space that a job can use in the working area (GB)"
+    },
+    "DefaultStorageServiceID": {
+      "type": "string",
+      "description": "The ID of the default StorageService used to store files"
+    },
+    "Preemption": {
+      "type": "boolean",
+      "description": "Whether jobs can be preempted and resumed (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "ServingState": {
+      "type": "string",
+      "description": "How the Share is currently serving jobs",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of jobs in any state"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of running jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalRunningJobs": {
+      "type": "integer",
+      "description": "The number of running jobs submitted using non-Grid interfaces"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of waiting jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalWaitingJobs": {
+      "type": "integer",
+      "description": "The number of waiting jobs submitted using non-Grid interfaces"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of suspended jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalSuspendedJobs": {
+      "type": "integer",
+      "description": "The number of suspended jobs submitted using non-Grid interfaces"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of jobs staging files before or after execution"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which have not yet been passed to the LRMS"
+    },
+    "EstimatedAverageWaitingTime": {
+      "type": "integer",
+      "description": "An estimate of the average time a job will wait before it starts to execute (seconds)"
+    },
+    "EstimatedWorstWaitingTime": {
+      "type": "integer",
+      "description": "An estimate of the worst-case time a job will wait before it starts to execute (seconds)"
+    },
+    "FreeSlots": {
+      "type": "integer",
+      "description": "The number of slots which are currently available for use"
+    },
+    "FreeSlotsWithDuration": {
+      "type": "string",
+      "description": "The number of slots which are currently available for use and how long they are available"
+    },
+    "UsedSlots": {
+      "type": "integer",
+      "description": "The number of slots currently in use"
+    },
+    "RequestedSlots": {
+      "type": "integer",
+      "description": "The number of slots needd to execute all waiting and staging jobs"
+    },
+    "ReservationPolicy": {
+      "type": "string",
+      "description": "The policy used for advance reservation - ReservationPolicy_t",
+      "enum": ["mandatory","none","optional"]
+    },
+    "Tag": {
+      "type": "array",
+      "description": "UserDomain-defined tags for this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServingState"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Contact.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Contact.json b/modules/airavata-job-monitor/src/main/resources/schema/Contact.json
new file mode 100644
index 0000000..436b262
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Contact.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json",
+  "description": "A GLUE 2 Contact",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Detail": {
+      "type": "string",
+      "description": "A URI embedding the contact information"
+    },
+    "Type": {
+      "type": "string",
+      "description": "closed enumeration ContactType_t",
+      "enum": ["general","security","sysadmin","usersupport"]
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services associated with this Contact",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DomainID": {
+      "type": "array",
+      "description": "The IDs of Domains associated with this Contact",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/DataStore.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/DataStore.json b/modules/airavata-job-monitor/src/main/resources/schema/DataStore.json
new file mode 100644
index 0000000..8f15447
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/DataStore.json
@@ -0,0 +1,30 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage medium - DataStoreType_t (disk,optical,tape,...)"
+    },
+    "Latency": {
+      "type": "string",
+      "description": "The latency category under normal operating conditions - AccessLatency_t",
+      "enum": ["nearline","offline","online"]
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of available storage (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount of used storage (GB)"
+    }
+  },
+  "required": ["Type","Latency"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Domain.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Domain.json b/modules/airavata-job-monitor/src/main/resources/schema/Domain.json
new file mode 100644
index 0000000..5bd996b
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Domain.json
@@ -0,0 +1,30 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Description": {
+      "type": "string",
+      "description": "A description of the Domain"
+    },
+    "WWW": {
+      "type": "array",
+      "description": "URLs of web pages with more information about the Domain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ContactID": {
+      "type": "array",
+      "description": "IDs of Contacts for this Domain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocationID": {
+      "type": "string",
+      "description": "The ID of the primary Location for this Domain"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Endpoint.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Endpoint.json b/modules/airavata-job-monitor/src/main/resources/schema/Endpoint.json
new file mode 100644
index 0000000..b75b02a
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Endpoint.json
@@ -0,0 +1,147 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "URL": {
+      "type": "string",
+      "description": "Network location of the endpoint"
+    },
+    "Capability": {
+      "type": "array",
+      "description": "Capability_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Technology": {
+      "type": "string",
+      "description": "EndpointTechnology_t"
+    },
+    "InterfaceName": {
+      "type": "string",
+      "description": "InterfaceName_t"
+    },
+    "InterfaceVersion": {
+      "type": "string",
+      "description": "The version of the primary interface protocol (free format)"
+    },
+    "InterfaceExtension": {
+      "type": "array",
+      "description": "URIs identifying supported extensions to the interface protocol",
+      "items": {
+        "type": "string"
+      }
+    },
+    "WSDL": {
+      "type": "array",
+      "description": "URLs of WSDL document(s) describing the interface",
+      "items": {
+        "type": "string"
+      }
+    },
+    "SupportedProfile": {
+      "type": "array",
+      "description": "URI(s) identifying supported profiles for the Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Semantics": {
+      "type": "array",
+      "description": "URL(s) of documents providing human-readable descriptions of the semantics of the Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Implementor": {
+      "type": "string",
+      "description": "The name of the main organization implementing the Endpoint"
+    },
+    "ImplementationName": {
+      "type": "string",
+      "description": "The name of the implementation of the Endpoint"
+    },
+    "ImplementationVersion": {
+      "type": "string",
+      "description": "The version of the implementation of the Endpoint"
+    },
+    "QualityLevel": {
+      "type": "string",
+      "description": "QualityLevel_t",
+      "enum": ["development","pre-production","production","testing"]
+    },
+    "HealthState": {
+      "type": "string",
+      "description": "The operational status of the Endpoint",
+      "enum": ["critical","ok","other","unknown","warning"]
+    },
+    "HealthStateInfo": {
+      "type": "string",
+      "description": "A human-readable explanation of the HealthState of this Endpoint"
+    },
+    "ServingState": {
+      "type": "string",
+      "description": "If the endpoint is accepting and serving requests",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "StartTime": {
+      "type": "string",
+      "description": "The start time of the Service associated with this Endpoint (DateTime_t)"
+    },
+    "IssuerCA": {
+      "type": "string",
+      "description": "The DN of the CA issuing the certificate presented by this Endpoint"
+    },
+    "TrustedCA": {
+      "type": "array",
+      "description": "DN(s) of CAs trusted by this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DowntimeAnnounce": {
+      "type": "string",
+      "description": "When the next scheduled downtime was announced (DateTime_t)"
+    },
+    "DowntimeStart": {
+      "type": "string",
+      "description": "When the next scheduled downtime will start (DateTime_t)"
+    },
+    "DowntimeEnd": {
+      "type": "string",
+      "description": "When the next scheduled downtime will end (DateTime_t)"
+    },
+    "DowntimeInfo": {
+      "type": "string",
+      "description": "Human-readable of the next scheduled downtime"
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service associated with this Endpoint"
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The IDs of the Shares accessible from this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "AccessPolicyID": {
+      "type": "array",
+      "description": "IDs of AccessPolicies associated with this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "IDs of Activities being managed through this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["InterfaceName","QualityLevel","HealthState","ServingState","ServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Entity.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Entity.json b/modules/airavata-job-monitor/src/main/resources/schema/Entity.json
new file mode 100644
index 0000000..5d1ae46
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Entity.json
@@ -0,0 +1,35 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json",
+  "type": "object",
+  "properties": {
+    "CreationTime": {
+      "type": "string",
+      "description": "The creation time of this entity in the format: CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]"
+    },
+    "Validity": {
+      "type": "integer",
+      "description": "The number of seconds after CreationTime that this entity should be considered relevant"
+    },
+    "ID": {
+      "type": "string",
+      "description": "A globally unique identifier for this entity"
+    },
+    "Name": {
+      "type": "string",
+      "description": "A human-readable name"
+    },
+    "OtherInfo": {
+      "type": "array",
+      "description": "Placeholder for information that does not fit in any other attribute",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Extension": {
+      "type": "object",
+      "description": "Key/value pairs enabling the association of extra information not captured by the model"
+    }
+  },
+  "required": ["ID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ExecutionEnvironment.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ExecutionEnvironment.json b/modules/airavata-job-monitor/src/main/resources/schema/ExecutionEnvironment.json
new file mode 100644
index 0000000..77bf876
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ExecutionEnvironment.json
@@ -0,0 +1,115 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}],
+  "properties": {
+    "Platform": {
+      "type": "string",
+      "description": "The platform architecture - Platform_t (open enumeration)"
+    },
+    "VirtualMachine": {
+      "type": "boolean",
+      "description": "True if the ExecutionEnvironment is a virtual machine"
+    },
+    "TotalInstances": {
+      "type": "integer",
+      "description": "The total number of ExecutionEnvironment instances"
+    },
+    "UsedInstances": {
+      "type": "integer",
+      "description": "The number of ExecutionEnvironment instances in use"
+    },
+    "UnavailableInstances": {
+      "type": "integer",
+      "description": "The number of ExecutionEnvironment instances that are unavailable"
+    },
+    "PhysicalCPUs": {
+      "type": "integer",
+      "description": "The number of physical CPUs in one ExecutionEnvironment instance"
+    },
+    "LogicalCPUs": {
+      "type": "integer",
+      "description": "The number of logical CPUs in one ExecutionEnvironment instance"
+    },
+    "CPUMultiplicity": {
+      "type": "string",
+      "description": "Information about the CPUs and cores in an execution environment",
+      "enum": ["multicpu-multicore","multicpu-singlecore","singlecpu-multicore","singlecpu-singlecore"]
+    },
+    "CPUVendor": {
+      "type": "string",
+      "description": "The name of the manufacturer of the CPU"
+    },
+    "CPUModel": {
+      "type": "string",
+      "description": "The model of the CPU, as defined by the vendor"
+    },
+    "CPUVersion": {
+      "type": "string",
+      "description": "The specific version name of the CPU, as defined by the vendor"
+    },
+    "CPUClockSpeed": {
+      "type": "integer",
+      "description": "The clock speed of the CPU (MHz)"
+    },
+    "CPUTimeScalingFactor": {
+      "type": "float",
+      "description": "The factor used by the ComputingManager to scale the CPU time limit"
+    },
+    "WallTimeScalingFactor": {
+      "type": "float",
+      "description": "The factor used by the ComputingManager to scale the wallclock time limit"
+    },
+    "MainMemorySize": {
+      "type": "integer",
+      "description": "The total amount of physical RAM in one ExecutionEnvironment instance (MB)"
+    },
+    "VirtualMemorySize": {
+      "type": "integer",
+      "description": "The total amount of virtual memory (RAM+swap) in one ExecutionEnvironment instance (MB)"
+    },
+    "OSFamily": {
+      "type": "string",
+      "description": "The general family of the operating system - OSFamily_t (open enumeration)"
+    },
+    "OSName": {
+      "type": "string",
+      "description": "The specific name of the operating system - OSName_t (open enumeration)"
+    },
+    "OSVersion": {
+      "type": "string",
+      "description": "The version of the operating system, as defined by the vendor"
+    },
+    "ConnectivityIn": {
+      "type": "boolean",
+      "description": "True if direct inbound network connectiity is available to a running job"
+    },
+    "ConnectivityOut": {
+      "type": "boolean",
+      "description": "True if direct outbound network connectiity is available to a running job"
+    },
+    "NetworkInfo": {
+      "type": "array",
+      "description": "The types of internal network connections between ExecutionEnvironments - NetworkInfo_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ApplicationEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ApplicationEnvironments available in this ExecutionEnvironment",
+      "items": {
+        "type": "string"
+      }
+    },
+    "BenchmarkID": {
+      "type": "array",
+      "description": "ID(s) of Benchmarks associated with this ExecutionEnvironment",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Platform","MainMemorySize","OSFamily","ConnectivityIn","ConnectivityOut"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Glue2.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Glue2.json b/modules/airavata-job-monitor/src/main/resources/schema/Glue2.json
new file mode 100644
index 0000000..bb80505
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Glue2.json
@@ -0,0 +1,246 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Glue2.json",
+  "description": "A GLUE 2 document",
+  "type": "object",
+  "properties": {
+    "Entity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}]
+      }
+    },
+    "Location": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json"}]
+      }
+    },
+    "Contact": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json"}]
+      }
+    },
+    "Domain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}]
+      }
+    },
+    "AdminDomain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json"}]
+      }
+    },
+    "UserDomain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/UserDomain.json"}]
+      }
+    },
+    "Service": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}]
+      }
+    },
+    "Endpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}]
+      }
+    },
+    "Share": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}]
+      }
+    },
+    "Manager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json"}]
+      }
+    },
+    "Resource": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}]
+      }
+    },
+    "Activity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}]
+      }
+    },
+    "Policy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}]
+      }
+    },
+    "AccessPolicy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json"}]
+      }
+    },
+    "MappingPolicy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json"}]
+      }
+    },
+    "ComputingService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json"}]
+      }
+    },
+    "ComputingEndpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json"}]
+      }
+    },
+    "ComputingShare": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json"}]
+      }
+    },
+    "ComputingManager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json"}]
+      }
+    },
+    "Benchmark": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json"}]
+      }
+    },
+    "ExecutionEnvironment": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json"}]
+      }
+    },
+    "ApplicationEnvironment": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json"}]
+      }
+    },
+    "ApplicationHandle": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json"}]
+      }
+    },
+    "ComputingActivity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json"}]
+      }
+    },
+    "ToStorageService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToStorageService.json"}]
+      }
+    },
+    "StorageService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json"}]
+      }
+    },
+    "StorageServiceCapacity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json"}]
+      }
+    },
+    "StorageAccessProtocol": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json"}]
+      }
+    },
+    "StorageEndpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json"}]
+      }
+    },
+    "StorageShare": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json"}]
+      }
+    },
+    "StorageShareCapacity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShareCapacity.json"}]
+      }
+    },
+    "StorageManager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json"}]
+      }
+    },
+    "DataStore": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json"}]
+      }
+    },
+    "ToComputingService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToComputingService.json"}]
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Location.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Location.json b/modules/airavata-job-monitor/src/main/resources/schema/Location.json
new file mode 100644
index 0000000..8491cc0
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Location.json
@@ -0,0 +1,47 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json",
+  "description": "A GLUE 2 Location",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Address": {
+      "type": "string",
+      "description": "A free format street address"
+    },
+    "Place": {
+      "type": "string",
+      "description": "Name of town/city"
+    },
+    "Country": {
+      "type": "string",
+      "description": "Name of country"
+    },
+    "PostalCode": {
+      "type": "string",
+      "description": "Postal code"
+    },
+    "Latitude": {
+      "type": "number",
+      "description": "Position north (positive) or south (negative) of the equator in degrees"
+    },
+    "Longitude": {
+      "type": "number",
+      "description": "Position east (positive) or west (negative) of the primary meridian in degrees"
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services at this location",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DomainID": {
+      "type": "array",
+      "description": "The IDs of Domains at this location",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Manager.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Manager.json b/modules/airavata-job-monitor/src/main/resources/schema/Manager.json
new file mode 100644
index 0000000..d1df50a
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Manager.json
@@ -0,0 +1,28 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "ProductName": {
+      "type": "string",
+      "description": "The name of the software product which implements the Manager"
+    },
+    "ProductVersion": {
+      "type": "string",
+      "description": "The version of the software product which implements the Manager"
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service this Share participates in"
+    },
+    "ResourceID": {
+      "type": "array",
+      "description": "ID(s) of Resources associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ProductName","ServiceID","ResourceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/MappingPolicy.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/MappingPolicy.json b/modules/airavata-job-monitor/src/main/resources/schema/MappingPolicy.json
new file mode 100644
index 0000000..268844d
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/MappingPolicy.json
@@ -0,0 +1,13 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}],
+  "properties": {
+    "ShareID": {
+      "type": "string",
+      "description": "The ID of the Share this MappingPolicy is for"
+    }
+  },
+  "required": ["ShareID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Policy.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Policy.json b/modules/airavata-job-monitor/src/main/resources/schema/Policy.json
new file mode 100644
index 0000000..f936699
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Policy.json
@@ -0,0 +1,27 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Scheme": {
+      "type": "string",
+      "description": "PolicyScheme_t (open enumeration)"
+    },
+    "Rule": {
+      "type": "array",
+      "description": "Policy rules",
+      "items": {
+        "type": "string"
+      }
+    },
+    "UserDomainID": {
+      "type": "array",
+      "description": "The ID(s) of the UserDomains this Policy applies to",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Scheme","Rule","UserDomainID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Resource.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Resource.json b/modules/airavata-job-monitor/src/main/resources/schema/Resource.json
new file mode 100644
index 0000000..88d08ad
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Resource.json
@@ -0,0 +1,27 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "ManagerID": {
+      "type": "string",
+      "description": "The ID of the Manager for this Resource"
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The ID(s) of the Shares this Resource is part of",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The ID(s) of Activities consuming from this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ManagerID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Service.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Service.json b/modules/airavata-job-monitor/src/main/resources/schema/Service.json
new file mode 100644
index 0000000..4662407
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Service.json
@@ -0,0 +1,75 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Capability": {
+      "type": "array",
+      "description": "Capability_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Type": {
+      "type": "string",
+      "description": "ServiceType_t (open enumeration)"
+    },
+    "QualityLevel": {
+      "type": "string",
+      "description": "QualityLevel_t",
+      "enum": ["development","pre-production","production","testing"]
+    },
+    "StatusInfo": {
+      "type": "array",
+      "description": "URLs of web pages providing additional information",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Complexity": {
+      "type": "string",
+      "description": "A human-readable description of the number of endpoint types, shares, and resources"
+    },
+    "EndpointID": {
+      "type": "array",
+      "description": "The IDs of Endpoints for this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The IDs of the Shares offered by this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ManagerID": {
+      "type": "array",
+      "description": "The IDs of the Managers of this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ContactID": {
+      "type": "array",
+      "description": "The IDs of Contacts for this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocationID": {
+      "type": "string",
+      "description": "The ID of the primary Location of this Service"
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services related to this Service",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Type","QualityLevel"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Share.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Share.json b/modules/airavata-job-monitor/src/main/resources/schema/Share.json
new file mode 100644
index 0000000..258fc1b
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Share.json
@@ -0,0 +1,45 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Description": {
+      "type": "string",
+      "description": "A human-readable description of the Share"
+    },
+    "EndpointID": {
+      "type": "array",
+      "description": "The ID(s) of the Endpoints that can be used to access this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ResourceID": {
+      "type": "array",
+      "description": "The ID(s) of the Resources associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service this Share participates in"
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The ID(s) of Activities consuming from this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "MappingPolicyID": {
+      "type": "array",
+      "description": "ID(s) of MappingPolicies associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageAccessProtocol.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageAccessProtocol.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageAccessProtocol.json
new file mode 100644
index 0000000..05a830b
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageAccessProtocol.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of the protocol - StorageAccessProtocol_t"
+    },
+    "Version": {
+      "type": "string",
+      "description": "The version of the protocol supported"
+    },
+    "MaxStreams": {
+      "type": "integer",
+      "description": "The maximum number of parallel network streams which can be usef for a single transfer"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService this protocol is available for"
+    },
+    "ToComputingServiceID": {
+      "type": "array",
+      "description": "The ID(s) ToComputingService objects that describe connectivity to ComputingServices",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Type","Version","StorageServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageEndpoint.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageEndpoint.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageEndpoint.json
new file mode 100644
index 0000000..38b27c4
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageEndpoint.json
@@ -0,0 +1,8 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}],
+  "properties": {
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageManager.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageManager.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageManager.json
new file mode 100644
index 0000000..f3984f6
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageManager.json
@@ -0,0 +1,8 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageService.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageService.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageService.json
new file mode 100644
index 0000000..a03d111
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageService.json
@@ -0,0 +1,22 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}],
+  "properties": {
+    "StorageAccessProtocolID": {
+      "type": "array",
+      "description": "The ID(s) of the StorageAccessProtocols supported by this service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StorageServiceCapacityID": {
+      "type": "array",
+      "description": "The ID(s) of the StorageServiceCapacities for this Service",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageServiceCapacity.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageServiceCapacity.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageServiceCapacity.json
new file mode 100644
index 0000000..a25c204
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageServiceCapacity.json
@@ -0,0 +1,33 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage capacity - StorageCapacity_t"
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage of this type (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of currently available storage of this type (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount storage of this type in use (GB)"
+    },
+    "ReservedSize": {
+      "type": "integer",
+      "description": "The amount storage of this type which is not in use, but has been reserved for use in use (GB)"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService this capacity describes"
+    }
+  },
+  "required": ["Type","StorageServiceID"]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageShare.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageShare.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageShare.json
new file mode 100644
index 0000000..9703118
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageShare.json
@@ -0,0 +1,65 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "ServingState": {
+      "type": "string",
+      "description": "How the Share is currently serving jobs",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "Path": {
+      "type": "string",
+      "description": "A default namespace where files are logically placed when they are stored in this Share"
+    },
+    "AccessMode": {
+      "type": "array",
+      "description": "The type of access allowed for this share - AccessMode_t (undefined)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "SharingID": {
+      "type": "string",
+      "description": "A local identifier common to the set of StorageShares which use the same underling extents"
+    },
+    "AccessLatency": {
+      "type": "string",
+      "description": "The maximum latency category under normal operating conditions",
+      "enum": ["nearline","offline","online"]
+    },
+    "RetentionPolicy": {
+      "type": "string",
+      "description": "The quality of data retention - RetentionPolicy_t"
+    },
+    "ExpirationMode": {
+      "type": "array",
+      "description": "Supported file lifetime modes",
+      "items": {
+        "type": "string",
+        "enum": ["neverexpire","releasewhenexpired","warnwhenexpired"]
+      }
+    },
+    "DefaultLifeTime": {
+      "type": "integer",
+      "description": "The default lifetime assigned to a new file"
+    },
+    "MaximumLifeTime": {
+      "type": "integer",
+      "description": "The maximum lifetime that can be requested for a file"
+    },
+    "Tag": {
+      "type": "string",
+      "description": "An identifier defined by a UserDomain"
+    },
+    "StorageShareCapacityID": {
+      "type": "array",
+      "description": "ID of the StorageShareCapacities associated with this share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServingState","SharingID","AccessLatency"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/StorageShareCapacity.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/StorageShareCapacity.json b/modules/airavata-job-monitor/src/main/resources/schema/StorageShareCapacity.json
new file mode 100644
index 0000000..f392c94
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/StorageShareCapacity.json
@@ -0,0 +1,33 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShareCapacity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage capacity - StorageCapacity_t"
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of available storage (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount of used storage (GB)"
+    },
+    "ReservedSize": {
+      "type": "integer",
+      "description": "The amount storage which is not occupied, but has been reserved for use (GB)"
+    },
+    "StorageShareID": {
+      "type": "string",
+      "description": "The ID of the StorageShare related to this capacity"
+    }
+  },
+  "required": ["Type","StorageShareID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ToComputingService.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ToComputingService.json b/modules/airavata-job-monitor/src/main/resources/schema/ToComputingService.json
new file mode 100644
index 0000000..6d81b80
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ToComputingService.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToComputingService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "NetworkInfo": {
+      "type": "string",
+      "description": "Type of network connections between the Storage and Computing services (NetworkInfo_t)"
+    },
+    "Bandwidth": {
+      "type": "integer",
+      "description": "The normal bandwidth available between the Storage and Computing services (Mb/s)"
+    },
+    "StorageAccessProtocolID": {
+      "type": "array",
+      "description": "IDs of the protocols that can be used to access the StorageService",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ComputingServiceID": {
+      "type": "string",
+      "description": "The ID of the ComputingService"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService"
+    }
+  },
+  "required": ["ComputingServiceID","StorageServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/ToStorageService.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/ToStorageService.json b/modules/airavata-job-monitor/src/main/resources/schema/ToStorageService.json
new file mode 100644
index 0000000..644f3d1
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/ToStorageService.json
@@ -0,0 +1,25 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToStorageService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "LocalPath": {
+      "type": "string",
+      "description": "The path within the ComputingService that is used to access the StorageService"
+    },
+    "RemotePath": {
+      "type": "string",
+      "description": "The path in the StorageService which is associated with the LocalPath"
+    },
+    "ComputingServiceID": {
+      "type": "string",
+      "description": "The ID of the ComputingService"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService"
+    }
+  },
+  "required": ["LocalPath","RemotePath","ComputingServiceID","StorageServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/UserDomain.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/UserDomain.json b/modules/airavata-job-monitor/src/main/resources/schema/UserDomain.json
new file mode 100644
index 0000000..7acda31
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/UserDomain.json
@@ -0,0 +1,58 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/UserDomain.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}],
+  "properties": {
+    "Level": {
+      "type": "integer",
+      "description": "the number of hops to reach the root of the hierarchy of UserDomains"
+    },
+    "UserManagerID": {
+      "type": "array",
+      "description": "ID for the Endpoint of a Service managing users in this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Member": {
+      "type": "array",
+      "description": "Identifiers for users in this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "PolicyID": {
+      "type": "array",
+      "description": "IDs for Policies associated with this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ChildDomainID": {
+      "type": "array",
+      "description": "IDs of UserDomains aggregated by this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ParentDomainID": {
+      "type": "string",
+      "description": "The ID of the UserDomain that this UserDomain participates in"
+    },
+    "AccessPolicyID": {
+      "type": "array",
+      "description": "IDs of AccessPolicies associated with this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "MappingPolicyID": {
+      "type": "array",
+      "description": "IDs of MappingPolicies associated with this UserDomain",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/distribution/airavata-server/pom.xml
----------------------------------------------------------------------
diff --git a/modules/distribution/airavata-server/pom.xml b/modules/distribution/airavata-server/pom.xml
index 469c20c..13430a2 100644
--- a/modules/distribution/airavata-server/pom.xml
+++ b/modules/distribution/airavata-server/pom.xml
@@ -600,6 +600,11 @@
             <artifactId>libthrift</artifactId>
             <version>0.9.1</version>
         </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.0.0</version>
+        </dependency>
 	<dependency>
             <groupId>commons-cli</groupId>
             <artifactId>commons-cli</artifactId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
----------------------------------------------------------------------
diff --git a/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml b/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
index ab3bbf3..c1b931a 100644
--- a/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
+++ b/modules/distribution/airavata-server/src/main/assembly/bin-assembly.xml
@@ -272,6 +272,7 @@
 		<include>org.apache.thrift:libthrift:jar:0.9.1</include>
 		<include>commons-cli:commons-cli</include>
 		<include>com.rabbitmq:amqp-client</include>
+                <include>com.fasterxml.jackson.core:jackson-databind</include>
                   <!-- unicore start 
                 <include>eu.unicore:ogsabes-client</include>
 				<include>eu.unicore:ogsabes-types</include>

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
index 1996500..683a2b5 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
@@ -161,9 +161,14 @@ public class GSISSHProvider extends AbstractProvider implements GFacProvider{
             jobDetails.setJobDescription(jobDescriptor.toXML());
             
             String jobID = cluster.submitBatchJob(jobDescriptor);
-            jobDetails.setJobID(jobID);
             jobExecutionContext.setJobDetails(jobDetails);
-            GFacUtils.saveJobStatus(jobDetails, JobState.SUBMITTED, taskID);
+            if(jobID == null){
+                jobDetails.setJobID("none");
+                GFacUtils.saveJobStatus(jobDetails, JobState.FAILED, taskID);
+            }else{
+                jobDetails.setJobID(jobID);
+                GFacUtils.saveJobStatus(jobDetails, JobState.SUBMITTED, taskID);
+            }
 
         } catch (SSHApiException e) {
             String error = "Error submitting the job to host " + host.getHostAddress() + e.getMessage();

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
index 9dc561b..6d6d6f9 100644
--- a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
+++ b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
@@ -157,7 +157,7 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
             }
             for (TaskDetails taskID : tasks) {
                 //iterate through all the generated tasks and performs the job submisssion+monitoring
-
+                String jobID = null;
                 Experiment experiment = (Experiment) registry.get(DataType.EXPERIMENT, experimentId);
                 if (experiment == null) {
                     log.error("Error retrieving the Experiment by the given experimentID: " + experimentId);
@@ -173,16 +173,26 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
                         Constants.PUSH.equals(((GsisshHostType) hostDescription).getMonitorMode())) {
                     monitorID = new MonitorID(hostDescription, null, taskID.getTaskID(), experimentId, userName);
                     monitorManager.addAJobToMonitor(monitorID);
-                    String jobID = orchestrator.launchExperiment(experimentId, taskID.getTaskID());
-                    log.info("Job Launched to the resource by GFAC and jobID returned : " + jobID);
+                    jobID = orchestrator.launchExperiment(experimentId, taskID.getTaskID());
+                    if("none".equals(jobID)) {
+                        log.error("Job submission Failed, so we remove the job from monitoring");
+
+                    }else{
+                        log.info("Job Launched to the resource by GFAC and jobID returned : " + jobID);
+                    }
                 } else {
                     // Launching job for each task
                     // if the monitoring is pull mode then we add the monitorID for each task after submitting
                     // the job with the jobID, otherwise we don't need the jobID
-                    String jobID = orchestrator.launchExperiment(experimentId, taskID.getTaskID());
+                    jobID = orchestrator.launchExperiment(experimentId, taskID.getTaskID());
                     log.info("Job Launched to the resource by GFAC and jobID returned : " + jobID);
                     monitorID = new MonitorID(hostDescription, jobID, taskID.getTaskID(), experimentId, userName, authenticationInfo);
-                    monitorManager.addAJobToMonitor(monitorID);
+                    if("none".equals(jobID)) {
+                        log.error("Job submission Failed, so we remove the job from monitoring");
+
+                    }else{
+                        monitorManager.addAJobToMonitor(monitorID);
+                    }
                 }
             }
         } catch (Exception e) {


[2/3] git commit: Adding glue2 schema and add more changes - AIRAVATA-1023

Posted by la...@apache.org.
Adding glue2 schema and add more changes - AIRAVATA-1023


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/bbbc35d3
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/bbbc35d3
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/bbbc35d3

Branch: refs/heads/master
Commit: bbbc35d3e3ac455351a1efc4a71b9a9bfb41185b
Parents: 12dd3c6
Author: lahiru <la...@apache.org>
Authored: Tue Mar 11 15:40:40 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Tue Mar 11 15:40:40 2014 -0400

----------------------------------------------------------------------
 modules/airavata-job-monitor/pom.xml            |   22 +-
 .../impl/push/amqp/JSONMessageParser.java       |    9 +-
 .../src/main/resources/glue2.xsd                | 1546 ------------------
 .../src/main/resources/schema/AccessPolicy.json |   13 +
 .../src/main/resources/schema/Activity.json     |   31 +
 .../src/main/resources/schema/AdminDomain.json  |   51 +
 .../schema/ApplicationEnvironment.json          |   86 +
 .../resources/schema/ApplicationHandle.json     |   21 +
 .../src/main/resources/schema/Benchmark.json    |   21 +
 .../resources/schema/ComputingActivity.json     |  165 ++
 .../resources/schema/ComputingEndpoint.json     |   44 +
 .../main/resources/schema/ComputingManager.json |  117 ++
 .../main/resources/schema/ComputingService.json |   32 +
 .../main/resources/schema/ComputingShare.json   |  182 +++
 .../src/main/resources/schema/Contact.json      |   32 +
 .../src/main/resources/schema/DataStore.json    |   30 +
 .../src/main/resources/schema/Domain.json       |   30 +
 .../src/main/resources/schema/Endpoint.json     |  147 ++
 .../src/main/resources/schema/Entity.json       |   35 +
 .../resources/schema/ExecutionEnvironment.json  |  115 ++
 .../src/main/resources/schema/Glue2.json        |  246 +++
 .../src/main/resources/schema/Location.json     |   47 +
 .../src/main/resources/schema/Manager.json      |   28 +
 .../main/resources/schema/MappingPolicy.json    |   13 +
 .../src/main/resources/schema/Policy.json       |   27 +
 .../src/main/resources/schema/Resource.json     |   27 +
 .../src/main/resources/schema/Service.json      |   75 +
 .../src/main/resources/schema/Share.json        |   45 +
 .../resources/schema/StorageAccessProtocol.json |   32 +
 .../main/resources/schema/StorageEndpoint.json  |    8 +
 .../main/resources/schema/StorageManager.json   |    8 +
 .../main/resources/schema/StorageService.json   |   22 +
 .../schema/StorageServiceCapacity.json          |   33 +
 .../src/main/resources/schema/StorageShare.json |   65 +
 .../resources/schema/StorageShareCapacity.json  |   33 +
 .../resources/schema/ToComputingService.json    |   32 +
 .../main/resources/schema/ToStorageService.json |   25 +
 .../src/main/resources/schema/UserDomain.json   |   58 +
 modules/distribution/airavata-server/pom.xml    |    5 +
 .../src/main/assembly/bin-assembly.xml          |    1 +
 .../gfac/provider/impl/GSISSHProvider.java      |    9 +-
 .../server/OrchestratorServerHandler.java       |   20 +-
 42 files changed, 2033 insertions(+), 1555 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/pom.xml
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/pom.xml b/modules/airavata-job-monitor/pom.xml
index a2569ee..185b068 100644
--- a/modules/airavata-job-monitor/pom.xml
+++ b/modules/airavata-job-monitor/pom.xml
@@ -137,7 +137,11 @@
             <artifactId>xmlbeans</artifactId>
             <version>${xmlbeans.version}</version>
         </dependency>
-
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.0.0</version>
+        </dependency>
     </dependencies>
 
     <build>
@@ -151,6 +155,22 @@
                     <failIfNoTests>false</failIfNoTests>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.jsonschema2pojo</groupId>
+                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
+                <version>0.4.0</version>
+                <configuration>
+                    <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
+                    <targetPackage>org.apache.airavata</targetPackage>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/JSONMessageParser.java
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/JSONMessageParser.java b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/JSONMessageParser.java
index 95192d1..577e9ed 100644
--- a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/JSONMessageParser.java
+++ b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/JSONMessageParser.java
@@ -20,6 +20,7 @@
 */
 package org.apache.airavata.job.monitor.impl.push.amqp;
 
+import org.apache.airavata.ComputingActivity;
 import org.apache.airavata.job.monitor.MonitorID;
 import org.apache.airavata.job.monitor.core.MessageParser;
 import org.apache.airavata.job.monitor.exception.AiravataMonitorException;
@@ -30,6 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.util.List;
 
 public class JSONMessageParser implements MessageParser {
     private final static Logger logger = LoggerFactory.getLogger(JSONMessageParser.class);
@@ -41,7 +43,12 @@ public class JSONMessageParser implements MessageParser {
 //        JSONParser parser = new JSONParser();
         ObjectMapper mapper = new ObjectMapper();
         try {
-            mapper.readTree(message);
+            ComputingActivity computingActivity = mapper.readValue(message.getBytes(), ComputingActivity.class);
+            logger.info(computingActivity.getIDFromEndpoint());
+            List<String> stateList = computingActivity.getState();
+            for (String aState : stateList) {
+                logger.info(aState);
+            }
         } catch (IOException e) {
             throw new AiravataMonitorException(e);
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/glue2.xsd
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/glue2.xsd b/modules/airavata-job-monitor/src/main/resources/glue2.xsd
deleted file mode 100644
index 92b88d0..0000000
--- a/modules/airavata-job-monitor/src/main/resources/glue2.xsd
+++ /dev/null
@@ -1,1546 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- OGF GLUE 2.0 - XML Schema mapping
-    Release: 31 Mar 2011
-
-    Copyright (c) 2011
-
-    Sergio Andreozzi (EGI.eu)
-    Balazs Konya (Lund University)
-    Shiraz Memon (Forschungszentrum Juelich GmbH)
-    Paul Millar (DESY)
-    Adrian Taga (Oslo University)
-
-    Licensed 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.
--->
-<?xml-stylesheet href="xs3p.xsl" type="text/xsl"?>
-<schema targetNamespace="http://schemas.ogf.org/glue/2009/03/spec_2.0_r1" xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:glue="http://schemas.ogf.org/glue/2009/03/spec_2.0_r1"
-        xmlns:xhtml="http://www.w3.org/1999/xhtml"
-        elementFormDefault="qualified"
-        attributeFormDefault="unqualified">
-
-    <element name="Domains" type="glue:Domains_t"/>
-    <element name="AdminDomain" type="glue:AdminDomain_t"/>
-    <element name="UserDomain" type="glue:UserDomain_t"/>
-    <element name="Location" type="glue:Location_t"/>
-    <element name="Contact" type="glue:Contact_t"/>
-    <element name="Service" type="glue:Service_t"/>
-    <element name="ComputingService" type="glue:ComputingService_t"/>
-    <element name="StorageService" type="glue:StorageService_t"/>
-    <element name="ToComputingService" type="glue:ToComputingService_t"/>
-    <element name="StorageManager" type="glue:StorageManager_t"/>
-    <element name="ComputingActivity" type="glue:ComputingActivity_t"/>
-    <element name="ComputingActivities">
-        <complexType>
-            <sequence>
-                <element ref="glue:ComputingActivity" minOccurs="0" maxOccurs="unbounded"/>
-            </sequence>
-        </complexType>
-    </element>
-    <element name="ExecutionEnvironment" type="glue:ExecutionEnvironment_t"/>
-    <element name="ExecutionEnvironments">
-        <complexType>
-            <sequence>
-                <element ref="glue:ExecutionEnvironment" minOccurs="0" maxOccurs="unbounded"/>
-            </sequence>
-        </complexType>
-    </element>
-    <element name="ApplicationEnvironment" type="glue:ApplicationEnvironment_t"/>
-    <element name="ApplicationEnvironments">
-        <complexType>
-            <sequence>
-                <element ref="glue:ApplicationEnvironment" minOccurs="0" maxOccurs="unbounded"/>
-            </sequence>
-        </complexType>
-    </element>
-
-    <!-- BEGIN MAIN ENTITIES -->
-    <complexType name="Extension_t">
-        <sequence>
-            <element name="LocalID" type="glue:LocalID_t" minOccurs="1" maxOccurs="1"/>
-            <element name="Key" type="string" minOccurs="1" maxOccurs="1"/>
-            <element name="Value" type="string" minOccurs="1" maxOccurs="1"/>
-            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="1"/>
-        </sequence>
-    </complexType>
-
-    <complexType name="Extensions_t">
-        <sequence>
-            <element name="Extension" type="glue:Extension_t" minOccurs="0" maxOccurs="unbounded"/>
-        </sequence>
-    </complexType>
-
-    <complexType abstract="true" name="Entity_t">
-        <sequence>
-            <element name="ID" type="anyURI" minOccurs="1" maxOccurs="1"/>
-            <element name="Name" type="string" minOccurs="0" maxOccurs="1"/>
-            <element name="OtherInfo" type="string" minOccurs="0" maxOccurs="unbounded"/>
-            <element name="Extensions" type="glue:Extensions_t" minOccurs="0" maxOccurs="1"/>
-        </sequence>
-        <attribute name="CreationTime" type="dateTime"/>
-        <attribute name="Validity" type="unsignedLong"/>
-    </complexType>
-
-    <complexType name="Domains_t">
-        <sequence>
-            <element name="AdminDomain" type="glue:AdminDomain_t" minOccurs="0" maxOccurs="unbounded"/>
-            <element name="UserDomain" type="glue:UserDomain_t" minOccurs="0" maxOccurs="unbounded"/>
-        </sequence>
-    </complexType>
-
-    <complexType name="Location_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Address" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Place" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Country" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="PostCode" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Latitude" type="glue:Latitude_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Longitude" type="glue:Longitude_t" minOccurs="0" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="Contact_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Detail" type="anyURI" minOccurs="1" maxOccurs="1"/>
-                    <element name="Type" type="glue:ContactType_t" minOccurs="1" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="Domain_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Description" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="WWW" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Location" type="glue:Location_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Contact" type="glue:Contact_t" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-                <attribute name="BaseType" fixed="Domain" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="AdminDomain_t">
-        <complexContent>
-            <extension base="glue:Domain_t">
-                <sequence>
-                    <element name="Distributed" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Owner" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:Service" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:ComputingService" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:StorageService" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:AdminDomain" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="UserDomain_t">
-        <complexContent>
-            <extension base="glue:Domain_t">
-                <sequence>
-                    <element name="Level" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="UserManager" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Member" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:UserDomain" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="ServiceBase_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Capability" type="glue:Capability_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Type" type="glue:ServiceType_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="QualityLevel" type="glue:QualityLevel_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="StatusInfo" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Complexity" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element ref="glue:Location" minOccurs="0" maxOccurs="1"/>
-                    <element ref="glue:Contact" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-                <attribute name="BaseType" fixed="Service" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="Service_t">
-        <complexContent>
-            <extension base="glue:ServiceBase_t">
-                <sequence>
-                    <element name="Endpoint" type="glue:Endpoint_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ServiceID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="EndpointBase_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="URL" type="anyURI" minOccurs="1" maxOccurs="1"/>
-                    <element name="Capability" type="glue:Capability_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Technology" type="glue:EndpointTechnology_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="InterfaceName" type="glue:InterfaceName_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="InterfaceVersion" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="InterfaceExtension" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="WSDL" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="SupportedProfile" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Semantics" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Implementor" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ImplementationName" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ImplementationVersion" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="QualityLevel" type="glue:QualityLevel_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="HealthState" type="glue:EndpointHealthState_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="HealthStateInfo" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ServingState" type="glue:ServingState_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="StartTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="IssuerCA" type="glue:DN_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="TrustedCA" type="glue:DN_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="DowntimeAnnounce" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="DowntimeStart" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="DowntimeEnd" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="DowntimeInfo" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="AccessPolicy" type="glue:AccessPolicy_t" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-                <attribute name="BaseType" fixed="Endpoint" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="Endpoint_t">
-        <complexContent>
-            <extension base="glue:EndpointBase_t">
-                <sequence>
-                    <element name="Activities" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="Activity" type="glue:Activity_t" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="ShareBase_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Description" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="MappingPolicy" type="glue:MappingPolicy_t" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-                <attribute name="BaseType" fixed="Share" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <!-- Share_t is not defined because it is an abstract entity -->
-
-    <complexType abstract="true" name="Manager_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence> </sequence>
-                <attribute name="BaseType" fixed="Manager" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="ResourceBase_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence> </sequence>
-                <attribute name="BaseType" fixed="Resource" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <!-- consider to remove it TODO
-    <complexType abstract="true" name="Resource_t">
-        <complexContent>
-            <extension base="glue:ResourceBase_t">
-                <sequence>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ActivityID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-     -->
-
-    <complexType abstract="true" name="ActivityBase_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence> </sequence>
-                <attribute name="BaseType" fixed="Activity" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="Activity_t">
-        <complexContent>
-            <extension base="glue:ActivityBase_t">
-                <sequence>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="UserDomainID" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                                <element name="ActivityID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType abstract="true" name="Policy_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Scheme" type="glue:PolicyScheme_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="Rule" type="string" minOccurs="1" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="UserDomainID" type="anyURI" minOccurs="1" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-                <attribute name="BaseType" fixed="Policy" use="required"/>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="AccessPolicy_t">
-        <complexContent>
-            <extension base="glue:Policy_t"/>
-        </complexContent>
-    </complexType>
-
-    <complexType name="MappingPolicy_t">
-        <complexContent>
-            <extension base="glue:Policy_t"/>
-        </complexContent>
-    </complexType>
-    <!--  END MAIN ENTITIES  -->
-
-    <!--  BEGIN COMPUTING ENTITIES  -->
-    <complexType name="ComputingService_t">
-        <complexContent>
-            <extension base="glue:ServiceBase_t">
-                <sequence>
-                    <element name="TotalJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="RunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="WaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="StagingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SuspendedJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="PreLRMSWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="ComputingEndpoint" type="glue:ComputingEndpoint_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ComputingShare" type="glue:ComputingShare_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ComputingManager" type="glue:ComputingManager_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ToStorageService" type="glue:ToStorageService_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ServiceID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ComputingEndpoint_t">
-        <complexContent>
-            <extension base="glue:EndpointBase_t">
-                <sequence>
-                    <element name="Staging" type="glue:Staging_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="JobDescription" type="glue:JobDescription_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="TotalJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="RunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="WaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="StagingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SuspendedJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="PreLRMSWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ComputingShareID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                    <element ref="glue:ComputingActivities" minOccurs="0" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ComputingShare_t">
-        <complexContent>
-            <extension base="glue:ShareBase_t">
-                <sequence>
-                    <element name="MappingQueue" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxMultiSlotWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MinWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="DefaultWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxTotalCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MinCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="DefaultCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxTotalJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxRunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxPreLRMSWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxUserRunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxSlotsPerJob" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxStateInStreams" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxStageOutStreams" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SchedulingPolicy" type="glue:SchedulingPolicy_t" minOccurs="0"/>
-                    <element name="MaxMainMemory" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="GuaranteedMainMemory" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxVirtualMemory" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="GuaranteedVirtualMemory" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxDiskSpace" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="DefaultStorageService" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                    <element name="Preemption" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="ServingState" type="glue:ServingState_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="TotalJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="RunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="LocalRunningJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="WaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="LocalWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SuspendedJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="LocalSuspendedJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="StagingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="PreLRMSWaitingJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="EstimatedAverageWaitingTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="EstimatedWorstWaitingTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="FreeSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="FreeSlotsWithDuration" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="UsedSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="RequestedSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="ReservationPolicy" type="glue:ReservationPolicy_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Tag" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ComputingEndpointID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                                <element name="ExecutionEnvironmentID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                                <element name="ComputingActivityID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ComputingManager_t">
-        <complexContent>
-            <extension base="glue:Manager_t">
-                <sequence>
-                    <element name="ProductName" type="glue:ComputingManagerType_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="ProductVersion" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Reservation" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="BulkSubmission" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="TotalPhysicalCPUs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="TotalLogicalCPUs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="TotalSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SlotsUsedByLocalJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="SlotsUsedByGridJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="Homogeneous" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="NetworkInfo" type="glue:NetworkInfo_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="LogicalCPUDistribution" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaShared" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaGuaranteed" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaTotal" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaFree" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaLifeTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaMultiSlotTotal" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaMultiSlotFree" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaMultiSlotLifeTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="CacheTotal" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="CacheFree" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="TmpDir" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ScratchDir" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ApplicationDir" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Benchmark" type="glue:Benchmark_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element ref="glue:ExecutionEnvironments" minOccurs="0" maxOccurs="1"/>
-                    <element ref="glue:ApplicationEnvironments" minOccurs="0" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="Benchmark_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Type" type="glue:BenchmarkType_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="Value" type="float" minOccurs="1" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ExecutionEnvironment_t">
-        <complexContent>
-            <extension base="glue:ResourceBase_t">
-                <sequence>
-                    <element name="Platform" type="glue:Platform_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="VirtualMachine" type="glue:ExtendedBoolean_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="TotalInstances" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="UsedInstances" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="UnavailableInstances" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="PhysicalCPUs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="LogicalCPUs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUMultiplicity" type="glue:CPUMultiplicity_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUVendor" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUModel" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUVersion" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUClockSpeed" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="CPUTimeScalingFactor" type="float" minOccurs="0" maxOccurs="1"/>
-                    <element name="WallTimeScalingFactor" type="float" minOccurs="0" maxOccurs="1"/>
-                    <element name="MainMemorySize" type="unsignedLong" minOccurs="1" maxOccurs="1"/>
-                    <element name="VirtualMemorySize" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="OSFamily" type="glue:OSFamily_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="OSName" type="glue:OSName_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="OSVersion" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ConnectivityIn" type="glue:ExtendedBoolean_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="ConnectivityOut" type="glue:ExtendedBoolean_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="NetworkInfo" type="glue:NetworkInfo_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Benchmark" type="glue:Benchmark_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="unbounded">
-                        <complexType>
-                            <sequence>
-                                <element name="ComputingShareID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                                <element name="ComputingActivityID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                                <element name="ApplicationEnvironmentID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ApplicationEnvironment_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="AppName" type="string" minOccurs="1" maxOccurs="1"/>
-                    <element name="AppVersion" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="State" type="glue:AppEnvState_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="RemovalDate" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="License" type="glue:License_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="Description" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="BestBenchmark" type="glue:BenchmarkType_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ParallelSupport" type="glue:ParallelSupport_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="MaxUserSeats" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="FreeSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="FreeJobs" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="FreeUserSeats" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="ApplicationHandle" type="glue:ApplicationHandle_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ExecutionEnvironmentID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ApplicationHandle_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Type" type="glue:ApplicationHandleType_t" minOccurs="1" maxOccurs="1"/>
-                    <element name="Value" type="string" minOccurs="1" maxOccurs="1"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ComputingActivity_t">
-        <complexContent>
-            <extension base="glue:ActivityBase_t">
-                <sequence>
-                    <element name="Type" type="glue:ComputingActivityType_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="IDFromEndpoint" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                    <element name="LocalIDFromManager" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="JobDescription" type="glue:JobDescription_t" minOccurs="0" maxOccurs="1"/>
-                    <element name="State" type="glue:ComputingActivityState_t" minOccurs="1" maxOccurs="unbounded"/>
-                    <element name="RestartState" type="glue:ComputingActivityState_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ExitCode" type="int" minOccurs="0" maxOccurs="1"/>
-                    <element name="ComputingManagerExitCode" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Error" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="WaitingPosition" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="UserDomain" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="Owner" type="string" minOccurs="1" maxOccurs="1"/>
-                    <element name="LocalOwner" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="RequestedTotalWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="RequestedTotalCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="RequestedSlots" type="unsignedInt" minOccurs="0" maxOccurs="1"/>
-                    <element name="RequestedApplicationEnvironment" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="StdIn" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="StdOut" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="StdErr" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="LogDir" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="ExecutionNode" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Queue" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="UsedTotalWallTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="UsedTotalCPUTime" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="UsedMainMemory" type="unsignedLong" minOccurs="0" maxOccurs="1"/>
-                    <element name="SubmissionTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="ComputingManagerSubmissionTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="StartTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="ComputingManagerEndTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="EndTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="WorkingAreaEraseTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="ProxyExpirationTime" type="dateTime" minOccurs="0" maxOccurs="1"/>
-                    <element name="SubmissionHost" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="SubmissionClientName" type="string" minOccurs="0" maxOccurs="1"/>
-                    <element name="OtherMessages" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="UserDomainID" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                                <element name="ComputingShareID" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                                <element name="ExecutionEnvironmentID" type="anyURI" minOccurs="0" maxOccurs="1"/>
-                                <element name="ActivityID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="ToStorageService_t">
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="LocalPath" type="string" minOccurs="1" maxOccurs="1"/>
-                    <element name="RemotePath" type="string" minOccurs="1" maxOccurs="1"/>
-                    <element name="Associations" minOccurs="1" maxOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="StorageServiceID" type="anyURI" minOccurs="1" maxOccurs="1"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-    <!--  END COMPUTING ENTITIES  -->
-
-
-
-    <!--  BEGIN STORAGE ENTITIES  -->
-
-    <complexType name="StorageService_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#page=44"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        An abstracted, logical view of software and
-                        hardware components that participate in the
-                        creation of a storage capability in a Grid
-                        environment. A Storage Service exposes zero or
-                        more Endpoints having well-defined interfaces,
-                        zero or more Storage Shares and zero or more
-                        Storage Managers and the related Data Stores.
-                        The Storage Service also offers zero or more
-                        Storage Access Protocols, and provides summary
-                        information about the overall amount of
-                        storage by means of the Storage Service
-                        Capacity.
-                    </xhtml:p>
-                    <xhtml:p>
-                        The Storage Service is autonomous and denotes
-                        a weak aggregation among Storage Endpoints,
-                        Storage Shares, Storage Managers, Storage
-                        Access Protocols and Storage Service
-                        Capacities. The Storage Service enables the
-                        identification of the entire set of entities
-                        providing storage functionality with a
-                        persistent name.
-                  </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:ServiceBase_t">
-                <sequence>
-                    <element name="StorageEndpoint" type="glue:StorageEndpoint_t" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation xml:lang="en">
-                                <xhtml:div>
-                                    <xhtml:p>
-                                        A storage service exposes zero or more storage endpoints.
-                                    </xhtml:p>
-                                </xhtml:div>
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element name="StorageShare" type="glue:StorageShare_t" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation xml:lang="en">
-                                <xhtml:div>
-                                    <xhtml:p>
-                                        A storage service serves zero or more storage shares.
-                                    </xhtml:p>
-                                </xhtml:div>
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element name="StorageManager" type="glue:StorageManager_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="StorageAccessProtocol" type="glue:StorageAccessProtocol_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="StorageServiceCapacity" type="glue:StorageServiceCapacity_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ToComputingService" type="glue:ToComputingService_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0">
-                        <complexType>
-                            <sequence>
-                                <element name="ServiceID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="StorageServiceCapacity_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=45"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        Description of the size and usage of a
-                        homogenous storage extent; the storage extent
-                        is aggregated at the storage service level by
-                        type.
-                  </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Type" type="glue:StorageCapacity_t"/>
-                    <element name="TotalSize" type="unsignedLong" minOccurs="0"/>
-                    <element name="FreeSize" type="unsignedLong" minOccurs="0"/>
-                    <element name="UsedSize" type="unsignedLong" minOccurs="0"/>
-                    <element name="ReservedSize" type="unsignedLong" minOccurs="0"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="StorageAccessProtocol_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=46"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        A type of protocol available to access the
-                        underlying storage extents.
-                  </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <sequence>
-            <element name="Type" type="glue:StorageAccessProtocolType_t"/>
-            <element name="Version" type="string"/>
-            <element name="MaxStreams" type="int" minOccurs="0"/>
-            <element name="Associations" minOccurs="0">
-                <complexType>
-                    <sequence>
-                        <element name="ToComputingServiceID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                    </sequence>
-                </complexType>
-            </element>
-        </sequence>
-    </complexType>
-
-
-    <complexType name="StorageEndpoint_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=47"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        An Endpoint usable for managing Storage Shares
-                        or for accessing data stored in them; it MAY
-                        also be used to expose complementary
-                        capabilities which form part of the overall
-                        Storage Service.
-                  </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:EndpointBase_t"/>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="StorageShare_t">
-        <annotation>
-          <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=48"
-                         xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        A utilization target for a set of extents in
-                        Data Stores, defined by a set of configuration
-                        parameters and policies and characterized by
-                        status information.
-                    </xhtml:p>
-                </xhtml:div>
-          </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:ShareBase_t">
-                <sequence>
-                    <element name="ServingState" type="glue:ServingState_t"/>
-                    <element name="Path" type="string" minOccurs="0"/>
-                    <element name="AccessMode" type="glue:AccessMode_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="SharingID" type="glue:LocalID_t"/>
-                    <element name="AccessLatency" type="glue:AccessLatency_t"/>
-                    <element name="RetentionPolicy" type="glue:RetentionPolicy_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="ExpirationMode" type="glue:ExpirationMode_t" minOccurs="0" maxOccurs="3"/>
-                    <element name="DefaultLifeTime" type="int" minOccurs="0"/>
-                    <element name="MaximumLifeTime" type="int" minOccurs="0"/>
-                    <element name="Tag" type="string" minOccurs="0"/>
-                    <element name="StorageShareCapacity" type="glue:StorageShareCapacity_t" minOccurs="0" maxOccurs="unbounded"/>
-                    <element name="Associations" minOccurs="0">
-                        <complexType>
-                            <sequence>
-                                <element name="StorageEndpointID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                                <element name="DataStoreID" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="StorageShareCapacity_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=50"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        A description of the size and usage of a
-                        homogenous storage extent available to a
-                        Storage Share.
-                    </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="Type" type="glue:StorageCapacity_t"/>
-                    <element name="TotalSize" type="int" minOccurs="0"/>
-                    <element name="FreeSize" type="int" minOccurs="0"/>
-                    <element name="UsedSize" type="int" minOccurs="0"/>
-                    <element name="ReservedSize" type="int" minOccurs="0"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="StorageManager_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=51"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        The primary software component locally
-                        managing one or more Data Stores. It MAY also
-                        be used to describe aggregated information
-                        about the managed resources.
-                    </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:Manager_t">
-                <sequence>
-                    <element name="ProductName" type="string"/>
-                    <element name="ProductVersion" type="string" minOccurs="0"/>
-                    <element name="DataStore" type="glue:DataStore_t" minOccurs="0" maxOccurs="unbounded"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="DataStore_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=51"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        An abstract description of a sufficiently
-                        homogeneous storage device providing a storage
-                        extent, managed by a local software component
-                        (Storage Manager), part of a Storage Service,
-                        reachable via zero or more Endpoints and
-                        having zero or more Shares defined on it. A
-                        Data Store refers to a category of storage
-                        with summary information on the storage
-                        capacity.
-                    </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:ResourceBase_t">
-                <sequence>
-                    <element name="Type" type="glue:DataStoreType_t"/>
-                    <element name="Latency" type="glue:AccessLatency_t"/>
-                    <element name="TotalSize" type="int" minOccurs="0"/>
-                    <element name="FreeSize" type="int" minOccurs="0"/>
-                    <element name="UsedSize" type="int" minOccurs="0"/>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-
-    <complexType name="ToComputingService_t">
-        <annotation>
-            <documentation source="http://www.ogf.org/documents/GFD.147.pdf#Page=52"
-                           xml:lang="en">
-                <xhtml:div>
-                    <xhtml:p>
-                        A description of the network link quality
-                        between a Storage Service and a computing
-                        service, and/or of a potentially dedicated
-                        access protocol that the Computing Service may
-                        use to access the Storage Service.
-                    </xhtml:p>
-                </xhtml:div>
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="glue:Entity_t">
-                <sequence>
-                    <element name="NetworkInfo" type="glue:NetworkInfo_t" minOccurs="0"/>
-                    <element name="Bandwidth" type="int" minOccurs="0"/>
-                    <element name="Associations" minOccurs="1">
-                        <complexType>
-                            <sequence>
-                                <element name="ComputingServiceID" type="anyURI" minOccurs="1"/>
-                            </sequence>
-                        </complexType>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <!--  END STORAGE ENTITIES  -->
-
-    <!-- BEGIN DATA TYPES -->
-
-    <simpleType name="AccessLatency_t">
-        <restriction base="string">
-            <enumeration value="online"/>
-            <enumeration value="nearline"/>
-            <enumeration value="offline"/>
-        </restriction>
-    </simpleType>
-
-    <!-- FIXME this isn't defined in GLUE2.0 -->
-    <simpleType name="AccessMode_t">
-        <restriction base="string"/>
-    </simpleType>
-
-    <simpleType name="AppEnvState_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="installable"/>
-                    <enumeration value="installationfailed"/>
-                    <enumeration value="installedbroken"/>
-                    <enumeration value="installednotverified"/>
-                    <enumeration value="installedverified"/>
-                    <enumeration value="installingautomatically"/>
-                    <enumeration value="installingmanually"/>
-                    <enumeration value="notinstallable"/>
-                    <enumeration value="pendingremoval"/>
-                    <enumeration value="removing"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ApplicationHandleType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="module"/>
-                    <enumeration value="softenv"/>
-                    <enumeration value="path"/>
-                    <enumeration value="executable"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="BenchmarkType_t">
-        <restriction base="xs:string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="bogomips"/>
-                    <enumeration value="cfp2006"/>
-                    <enumeration value="cint2006"/>
-                    <enumeration value="linpack"/>
-                    <enumeration value="specfp2000"/>
-                    <enumeration value="specint2000"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="Capability_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="data.access.flatfiles"/>
-                    <enumeration value="data.access.relational"/>
-                    <enumeration value="data.access.xml"/>
-                    <enumeration value="data.management.replica"/>
-                    <enumeration value="data.management.storage"/>
-                    <enumeration value="data.management.transfer"/>
-                    <enumeration value="data.naming.resolver"/>
-                    <enumeration value="data.naming.scheme"/>
-                    <enumeration value="data.transfer"/>
-                    <enumeration value="executionmanagement.candidatesetgenerator"/>
-                    <enumeration value="executionmanagement.dynamicvmdeploy"/>
-                    <enumeration value="executionmanagement.executionandplanning"/>
-                    <enumeration value="executionmanagement.jobdescription"/>
-                    <enumeration value="executionmanagement.jobexecution"/>
-                    <enumeration value="executionmanagement.jobmanager"/>
-                    <enumeration value="executionmanagement.reservation"/>
-                    <enumeration value="information.discovery"/>
-                    <enumeration value="information.logging"/>
-                    <enumeration value="information.model"/>
-                    <enumeration value="information.monitoring"/>
-                    <enumeration value="information.provenance"/>
-                    <enumeration value="security.accounting"/>
-                    <enumeration value="security.attributeauthority"/>
-                    <enumeration value="security.authentication"/>
-                    <enumeration value="security.authorization"/>
-                    <enumeration value="security.credentialstorage"/>
-                    <enumeration value="security.delegation"/>
-                    <enumeration value="security.identymapping"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ComputingActivityState_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="bes:failed"/>
-                    <enumeration value="bes:finished"/>
-                    <enumeration value="bes:pending"/>
-                    <enumeration value="bes:running"/>
-                    <enumeration value="bes:terminated"/>
-                    <enumeration value="unicore:undefined"/>
-                    <enumeration value="unicore:ready"/>
-                    <enumeration value="unicore:queued"/>
-                    <enumeration value="unicore:running"/>
-                    <enumeration value="unicore:successful"/>
-                    <enumeration value="unicore:failed"/>
-                    <enumeration value="unicore:stagingin"/>
-                    <enumeration value="unicore:stagingout"/>
-                    <enumeration value="nordugrid:accepting"/>
-                    <enumeration value="nordugrid:pending:accepted"/>
-                    <enumeration value="nordugrid:accepted"/>
-                    <enumeration value="nordugrid:pending:preparing"/>
-                    <enumeration value="nordugrid:preparing"/>
-                    <enumeration value="nordugrid:prepared"/>
-                    <enumeration value="nordugrid:submitting"/>
-                    <enumeration value="nordugrid:pending:inlrms"/>
-                    <enumeration value="nordugrid:inlrms:q"/>
-                    <enumeration value="nordugrid:inlrms:h"/>
-                    <enumeration value="nordugrid:inlrms:r"/>
-                    <enumeration value="nordugrid:inlrms:s"/>
-                    <enumeration value="nordugrid:inlrms:e"/>
-                    <enumeration value="nordugrid:inlrms:o"/>
-                    <enumeration value="nordugrid:inlrms:executed"/>
-                    <enumeration value="nordugrid:finishing"/>
-                    <enumeration value="nordugrid:canceling"/>
-                    <enumeration value="nordugrid:failed"/>
-                    <enumeration value="nordugrid:killed"/>
-                    <enumeration value="nordugrid:finished"/>
-                    <enumeration value="nordugrid:deleted"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ComputingActivityType_t">
-        <restriction base="string">
-            <enumeration value="collectionelement"/>
-            <enumeration value="parallelelement"/>
-            <enumeration value="single"/>
-            <enumeration value="workflownode"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ComputingManagerType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="bqs"/>
-                    <enumeration value="condor"/>
-                    <enumeration value="fork"/>
-                    <enumeration value="loadleveler"/>
-                    <enumeration value="lsf"/>
-                    <enumeration value="openbps"/>
-                    <enumeration value="gridengine"/>
-                    <enumeration value="torque"/>
-                    <enumeration value="torquemaui"/>
-                    <enumeration value="slurm"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ContactType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="general"/>
-                    <enumeration value="security"/>
-                    <enumeration value="sysadmin"/>
-                    <enumeration value="usersupport"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="CPUMultiplicity_t">
-        <restriction base="string">
-            <enumeration value="multicpu-multicore"/>
-            <enumeration value="multicpu-singlecore"/>
-            <enumeration value="singlecpu-multicore"/>
-            <enumeration value="singlecpu-singlecore"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="DataStoreType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="disk"/>
-                    <enumeration value="optical"/>
-                    <enumeration value="tape"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="DN_t">
-        <restriction base="string"/>
-    </simpleType>
-
-    <simpleType name="EndpointHealthState_t">
-        <restriction base="string">
-            <enumeration value="critical"/>
-            <enumeration value="ok"/>
-            <enumeration value="other"/>
-            <enumeration value="unknown"/>
-            <enumeration value="warning"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="EndpointTechnology_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="corba"/>
-                    <enumeration value="jndi"/>
-                    <enumeration value="webservice"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ExpirationMode_t">
-        <restriction base="string">
-            <enumeration value="neverexpire"/>
-            <enumeration value="releasewhenexpired"/>
-            <enumeration value="warnwhenexpired"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ExtendedBoolean_t">
-        <restriction base="string">
-            <enumeration value="true"/>
-            <enumeration value="false"/>
-            <enumeration value="undefined"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="InterfaceName_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="ogf.bes"/>
-                    <enumeration value="ogf.srm"/>
-                    <enumeration value="emi.executionservice"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="JobDescription_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="condor:classad"/>
-                    <enumeration value="glite:jdl"/>
-                    <enumeration value="globus:rsl"/>
-                    <enumeration value="nordugrid:xrsl"/>
-                    <enumeration value="ogf:jsdl"/>
-                    <enumeration value="emi:adl"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="License_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="commercial"/>
-                    <enumeration value="opensource"/>
-                    <enumeration value="unknown"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="LocalID_t">
-        <restriction base="string">
-            <pattern value="[a-zA-Z][a-zA-Z_0-9\-\.:]*"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="NetworkInfo_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="100megabitethernet"/>
-                    <enumeration value="gigabitethernet"/>
-                    <enumeration value="infiniband"/>
-                    <enumeration value="myrinet"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="OSFamily_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="linux"/>
-                    <enumeration value="macosx"/>
-                    <enumeration value="solaris"/>
-                    <enumeration value="windows"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="OSName_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="aix"/>
-                    <enumeration value="centos"/>
-                    <enumeration value="debian"/>
-                    <enumeration value="fedora"/>
-                    <enumeration value="gentoo"/>
-                    <enumeration value="leopard"/>
-                    <enumeration value="snowleopard"/>
-                    <enumeration value="mandrake"/>
-                    <enumeration value="redhatenterprise"/>
-                    <enumeration value="scientificlinux"/>
-                    <enumeration value="suse"/>
-                    <enumeration value="ubuntu"/>
-                    <enumeration value="windowsxp"/>
-                    <enumeration value="windows7"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ParallelSupport_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="mpi"/>
-                    <enumeration value="openmp"/>
-                    <enumeration value="none"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="Platform_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="amd64"/>
-                    <enumeration value="i386"/>
-                    <enumeration value="itanium"/>
-                    <enumeration value="powerpc"/>
-                    <enumeration value="sparc"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="PolicyScheme_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="basic"/>
-                    <enumeration value="gacl"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="QualityLevel_t">
-        <restriction base="string">
-            <enumeration value="development"/>
-            <enumeration value="pre-production"/>
-            <enumeration value="production"/>
-            <enumeration value="testing"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ReservationPolicy_t">
-        <restriction base="string">
-            <enumeration value="mandatory"/>
-            <enumeration value="none"/>
-            <enumeration value="optional"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="SchedulingPolicy_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="fairshare"/>
-                    <enumeration value="fifo"/>
-                    <enumeration value="random"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ServiceType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="org.ogf.glue"/>
-                    <enumeration value="org.glite.fts"/>
-                    <enumeration value="org.glite.lb"/>
-                    <enumeration value="org.glite.wms"/>
-                    <enumeration value="org.nordugrid.accounting.mars"/>
-                    <enumeration value="org.nordugrid.execution.arex"/>
-                    <enumeration value="org.nordugrid.execution.janitor"/>
-                    <enumeration value="org.nordugrid.execution.paul"/>
-                    <enumeration value="org.nordugrid.execution.sched"/>
-                    <enumeration value="org.nordugrid.infosys.eils"/>
-                    <enumeration value="org.nordugrid.infosys.isis"/>
-                    <enumeration value="org.nordugrid.infosys.rte-catalog"/>
-                    <enumeration value="org.nordugrid.security.charon"/>
-                    <enumeration value="org.nordugrid.security.delegation"/>
-                    <enumeration value="org.nordugrid.security.saml"/>
-                    <enumeration value="org.nordugrid.security.slcs"/>
-                    <enumeration value="org.nordugrid.storage.ahash"/>
-                    <enumeration value="org.nordugrid.storage.bartender"/>
-                    <enumeration value="org.nordugrid.storage.hopi"/>
-                    <enumeration value="org.nordugrid.storage.librarian"/>
-                    <enumeration value="org.nordugrid.storage.shepherd"/>
-                    <enumeration value="org.nordugrid.tests.echo"/>
-                    <enumeration value="org.nordugrid.tests.echo_java"/>
-                    <enumeration value="org.nordugrid.tests.echo_python"/>
-                    <enumeration value="org.nordugrid.tests.isistest"/>
-                    <enumeration value="org.terragrid.gridftp"/>
-                    <enumeration value="org.terragrid.condor-g"/>
-                    <enumeration value="org.terragrid.globus-mds4"/>
-                    <enumeration value="org.terragrid.gpfs"/>
-                    <enumeration value="org.terragrid.gsi-openssh"/>
-                    <enumeration value="org.terragrid.prewsgram"/>
-                    <enumeration value="org.terragrid.rft"/>
-                    <enumeration value="org.terragrid.srb"/>
-                    <enumeration value="org.terragrid.ws-delegation"/>
-                    <enumeration value="org.terragrid.ws-gram"/>
-                    <enumeration value="org.terragrid.ws-ogsadai"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="ServingState_t">
-        <restriction base="string">
-            <enumeration value="closed"/>
-            <enumeration value="draining"/>
-            <enumeration value="production"/>
-            <enumeration value="queueing"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="Staging_t">
-        <restriction base="string">
-            <enumeration value="none"/>
-            <enumeration value="stagingin"/>
-            <enumeration value="staginginout"/>
-            <enumeration value="stagingout"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="StorageAccessProtocolType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="afs"/>
-                    <enumeration value="dcap"/>
-                    <enumeration value="file"/>
-                    <enumeration value="gsidcap"/>
-                    <enumeration value="gsiftp"/>
-                    <enumeration value="gsirfio"/>
-                    <enumeration value="http"/>
-                    <enumeration value="https"/>
-                    <enumeration value="nfs"/>
-                    <enumeration value="rfio"/>
-                    <enumeration value="root"/>
-                    <enumeration value="xrootd"/>
-                    <enumeration value="uftp"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="StorageCapacity_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="online"/>
-                    <enumeration value="installedonline"/>
-                    <enumeration value="nearline"/>
-                    <enumeration value="installednearline"/>
-                    <enumeration value="offline"/>
-                    <enumeration value="cache"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="StorageManagerType_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="castor"/>
-                    <enumeration value="dcache"/>
-                    <enumeration value="enstore"/>
-                    <enumeration value="gpfs"/>
-                    <enumeration value="sse"/>
-                    <enumeration value="tsm"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="RetentionPolicy_t">
-        <restriction base="string">
-            <annotation>
-                <appinfo>
-                    <enumeration value="custodial"/>
-                    <enumeration value="output"/>
-                    <enumeration value="replica"/>
-                </appinfo>
-            </annotation>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="Latitude_t">
-        <restriction base="float">
-            <minInclusive value="-90"/>
-            <maxInclusive value="90"/>
-        </restriction>
-    </simpleType>
-
-    <simpleType name="Longitude_t">
-        <restriction base="float">
-            <minExclusive value="-180"/>
-            <maxInclusive value="180"/>
-        </restriction>
-    </simpleType>
-
-
-    <!-- END DATA TYPES -->
-
-</schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/AccessPolicy.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/AccessPolicy.json b/modules/airavata-job-monitor/src/main/resources/schema/AccessPolicy.json
new file mode 100644
index 0000000..8f6cfe1
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/AccessPolicy.json
@@ -0,0 +1,13 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}],
+  "properties": {
+    "EndpointID": {
+      "type": "string",
+      "description": "The ID of the Endpoint this AccessPolicy is for"
+    }
+  },
+  "required": ["EndpointID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/Activity.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/Activity.json b/modules/airavata-job-monitor/src/main/resources/schema/Activity.json
new file mode 100644
index 0000000..8bd2495
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/Activity.json
@@ -0,0 +1,31 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "UserDomainID": {
+      "type": "string",
+      "description": "An ID"
+    },
+    "EndpointID": {
+      "type": "string",
+      "description": "The ID of the Endpoint managing Activity"
+    },
+    "ShareID": {
+      "type": "string",
+      "description": "The ID of the Share servicing this Activity"
+    },
+    "ResourceID": {
+      "type": "string",
+      "description": "The ID of the Resource executing this Activity"
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The IDs of other Activities related to this one",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/bbbc35d3/modules/airavata-job-monitor/src/main/resources/schema/AdminDomain.json
----------------------------------------------------------------------
diff --git a/modules/airavata-job-monitor/src/main/resources/schema/AdminDomain.json b/modules/airavata-job-monitor/src/main/resources/schema/AdminDomain.json
new file mode 100644
index 0000000..8ed4606
--- /dev/null
+++ b/modules/airavata-job-monitor/src/main/resources/schema/AdminDomain.json
@@ -0,0 +1,51 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}],
+  "properties": {
+    "Distributed": {
+      "type": "boolean",
+      "description": "true if the services managed by the AdminDomain are geographically distributed"
+    },
+    "Owner": {
+      "type": "array",
+      "description": "Identification of persons or legal entities that own the resources in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "IDs of Services in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ChildDomainID": {
+      "type": "array",
+      "description": "IDs of AdminDomains aggregated by this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ParentDomainID": {
+      "type": "string",
+      "description": "The ID of the AdminDomain that this AdminDomain participates in"
+    },
+    "ComputingServiceID": {
+      "type": "array",
+      "description": "IDs of ComputingServices in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StorageServiceID": {
+      "type": "array",
+      "description": "IDs of StorageServices in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}


[3/3] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata

Posted by la...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c00025f4
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c00025f4
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c00025f4

Branch: refs/heads/master
Commit: c00025f4935ce63f6f42d9c787f3400c3a2afb8d
Parents: bbbc35d 703a92b
Author: lahiru <la...@apache.org>
Authored: Tue Mar 11 15:40:58 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Tue Mar 11 15:40:58 2014 -0400

----------------------------------------------------------------------
 .../registry/jpa/impl/ExperimentRegistry.java           | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------