View Javadoc

1   /*
2    * Copyright 2010 Fraunhofer Gesellschaft, Munich, Germany,
3    * for its Fraunhofer Institute for Computer Architecture and Software
4    * Technology (FIRST), Berlin, Germany. All rights reserved.
5    * http://www.first.fraunhofer.de/
6    */
7   
8   package net.kwfgrid.gwes;
9   
10  public class Constants {
11  
12      //////////////////////////////////////////////////
13      // Declaration general strings
14      //////////////////////////////////////////////////
15  
16      /** true */
17      public static final String TRUE = "true";
18  
19      /** false */
20      public static final String FALSE = "false";
21  
22      //////////////////////////////////////////////////
23      // Declaration of property names of system properties and workflow properties (gwes.properties).
24      //////////////////////////////////////////////////
25  
26      /** version of gwes */
27      public static final String PROP_SYSTEM_GWES_VERSION = "net.kwfgrid.gwes.version";
28  
29      /**
30       * default time period in milliseconds after which COMPLETED or TERMINATED workflows are removed from memory.
31       */
32      public static final String PROP_SYSTEM_GWES_WORKFLOW_EXPIRYTIME_MEMORY = "gwes.workflow.expirytime.memory";
33  
34      /**
35       * default time period in milliseconds after which COMPLETED or TERMINATED workflows are removed from database and
36       * file systems.
37       */
38      public static final String PROP_SYSTEM_GWES_WORKFLOW_EXPIRYTIME_DATABASE = "gwes.workflow.expirytime.database";
39  
40      /**
41       * Time period in ms for sleeping between two cycles if the workflow did not change.
42       * A higher number reduces the CPU load of the GWES but slows down the workflow processing.
43       * After a modification or change of state the workflow sleep time is set to sleeptime.min
44       * and is doubled between each workflow processing cycle until it reaches sleeptime.max.
45       * Sleeptime.min should be in the same range as the shortest duration of a remote workflow activity.
46       */
47      public static final String PROP_SYSTEM_WORKFLOW_SLEEPTIME_MIN = "gwes.workflow.sleeptime.min";
48      public static final String PROP_SYSTEM_WORKFLOW_SLEEPTIME_MAX = "gwes.workflow.sleeptime.max";
49  
50      /**
51       * Class with implementation of activity plugin, e.g., gwes.activity.soap.class=... 
52       */
53      public static final String PROP_SYSTEM_GWES_ACTIVITY_ = "gwes.activity.";
54      public static final String PROP_SYSTEM_GWES_ACTIVITY__CLASS = ".class";
55  
56      /**
57       * Default analysis method for new workflows.
58       * You can override this property for each workflow by means of the workflow property "workflow.analysis".
59       * <pre>
60       * karp-miller (default) - invoke Karp-Miller-Tree analysis to detect dead places etc.
61       * false                 - switch off workflow analysis.
62       * true                  - switch on default workflow analysis.
63       * </pre>
64       */
65      public static final String PROP_SYSTEM_GWES_WORKFLOW_ANALYSIS = "gwes.workflow.analysis";
66  
67      /**
68       * use gwes.ganglia.enabled=true in order to send statistics about workflows and activities from GWES to Ganglia
69       * this configuration is used only for SENDING information to Ganglia, not for retrieving information!
70       */
71      public static final String PROP_SYSTEM_GWES_GANGLIA_ENABLED = "gwes.ganglia.enabled";
72  
73      /** path to gmetric, e.g., "/usr/bin/gmetric" */
74      public static final String PROP_SYSTEM_GWES_GANGLIA_GMETRIC = "gwes.ganglia.gmetric";
75  
76      /** only needed for ganglia version < 3.0.0 */
77      public static final String PROP_SYSTEM_GWES_GANGLIA_MULTICAST_CHANNEL = "gwes.ganglia.multicast.channel";
78  
79      /** only needed for ganglia version < 3.0.0 */
80      public static final String PROP_SYSTEM_GWES_GANGLIA_MULTICAST_PORT = "gwes.ganglia.multicast.port";
81  
82      /** only needed for ganglia version < 3.0.0 */
83      public static final String PROP_SYSTEM_GWES_GANGLIA_MULTICAST_INTERFACE = "gwes.ganglia.multicast.interface";
84  
85      /**
86       * default timeout for invocation of activities in milliseconds.
87       * gwes.activity.timeout.running includes the duration of the states RUNNING and ACTIVE (including idle time).
88       * You may override this timeout by setting &lt;property name=&quot;timeout.running&quot;&gt;...&lt;/property&gt;
89       * as child of &lt;transition&gt;
90       */
91      public static final String PROP_SYSTEM_GWES_ACTIVITY_TIMEOUT_RUNNING = "gwes.activity.timeout.running";
92  
93      /**
94       * gwes.activity.timeout.active includes the duration of the states ACTIVE only (only processing time).
95       * You may override this timeout by setting &lt;property name=&quot;timeout.active&quot;&gt;...&lt;/property&gt;
96       * as child of &lt;transition&gt;
97       */
98      public static final String PROP_SYSTEM_GWES_ACTIVITY_TIMEOUT_ACTIVE = "gwes.activity.timeout.active";
99  
100     /**
101      * Maximum number of attempts for invoking an activity related with this workflow.
102      * The workflow property PROP_ACTIVITY_MAXATTEMPS may override this value.
103      */
104     public static final String PROP_SYSTEM_GWES_ACTIVITY_MAXATTEMPTS = "gwes.activity.maxattempts";
105 
106     /**
107      * If set to "true", then the GWES uses one local Globus Toolkit credential proxy for all workflows,
108      * e.g., generated with "gwes-grid-proxy-init.sh". The location of the proxy file can be defined in cog.properties.
109      * Use this method only for private GWES installations behind a firewall.
110      */
111     public static final String PROP_SYSTEM_GWES_CREDENTIAL_DEFAULT_CERTIFICATE = "gwes.credential.default.certificate";
112 
113     /**
114      * If set to "true", then the user delegates his user credential with the userId each time when he initializes
115      * a new workflow, e.g., using the GWES Command Line Interface (CLI) (GWESClient.sh -credential) or the GWES
116      * portlets.
117      * Remark: this feature does not work when uploading workflows via the GWES servlets.
118      */
119     public static final String PROP_SYSTEM_GWES_CREDENTIAL_WORKFLOW_CERTIFICATE = "gwes.credential.workflow.certificate";
120 
121     /**
122      * Internal base url of the gwes used for communication within a firewall (e.g. from Servlets).
123      */
124     public static final String PROP_SYSTEM_GWES_SERVICE_BASE_URL_INTERNAL = "gwes.service.base.url.internal";
125 
126     /**
127      * External base url of the gwes used for communication from outside a firewall (e.g. from an Applet).
128      * The translation from external to internal URL is normally done by port forwarding, e.g. by Apache. 
129      */
130     public static final String PROP_SYSTEM_GWES_SERVICE_BASE_URL_EXTERNAL = "gwes.service.base.url.external";
131 
132     /**
133      * URI of graphviz service provided by LinuxToolbox for graph layout.
134      */
135     public static final String PROP_SYSTEM_GRAPHVIZ_SERVICE_URI = "graphviz.service.uri";
136 
137     /** geometry of the java workflow montitor applet */
138     public static final String PROP_SYSTEM_GWUI_GEOMETRY = "gwui.geometry";
139 
140     /** path to load the GWorkflowDL XSD files from. */
141     public static final String PROP_SYSTEM_GWORKFLOWDL_XSD_PATH = "gworkflowdl.xsd.path";
142 
143     /** turn XML schema validation on or off.*/
144     public static final String PROP_SYSTEM_GWORKFLOWDL_XML_VALIDATION = "gworkflowdl.xml.validation";
145 
146     /** Implementation of net.kwfgrid.gwes.operationmapper.OperationMapper that maps Red to Yellow operations */
147     public static final String PROP_SYSTEM_GWES_OPERATIONMAPPER_RED2YELLOW_CLASS = "gwes.operationmapper.red2yellow.class";
148 
149     /** Implementation of net.kwfgrid.gwes.operationmapper.OperationMapper that maps Yellow to Blue operations */
150     public static final String PROP_SYSTEM_GWES_OPERATIONMAPPER_YELLOW2BLUE_CLASS = "gwes.operationmapper.yellow2blue.class";
151 
152     /** Implementation of net.kwfgrid.gwes.operationmapper.OperationMapper that maps Blue to Green operations */
153     public static final String PROP_SYSTEM_GWES_OPERATIONMAPPER_BLUE2GREEN_CLASS = "gwes.operationmapper.blue2green.class";
154 
155     /** Implementation of net.kwfgrid.gwes.ProvenanceHandler */
156     public static final String PROP_SYSTEM_GWES_PROVENANCE_HANDLER_CLASS = "gwes.provenancehander.class";
157 
158     /** Implementation of net.kwfgrid.gwes.GWESLogger */
159     public static final String PROP_SYSTEM_GWES_LOGGER_CLASS = "gwes.logger.class";
160     public static final String PROP_SYSTEM_GWES_LOGGER_CLASS_DEFAULT = "net.kwfgrid.gwes.GWESBasicLogger"; 
161 
162     /**
163      * Enable automatic workflow persistence (true/false). You can override this property by means of the workflow
164      * property "workflow.persistence".
165      * ///ToDo: Include also "token.data.persistence" to define, if data token values should be put into database.
166      */
167     public static final String PROP_SYSTEM_WORKFLOW_PERSISTENCE = "workflow.persistence";
168 
169     /** Base URL to the eXist DB SOAP interface for storing workflows. */
170     public static final String PROP_SYSTEM_WORKFLOW_REPOSITORY_URL = "workflow.repository.url";
171 
172     /** User name for the eXist DB */
173     public static final String PROP_SYSTEM_WORKFLOW_REPOSITORY_USER = "workflow.repository.user";
174 
175     /** Password for the eXist DB */
176     public static final String PROP_SYSTEM_WORKFLOW_REPOSITORY_PASSWORD = "workflow.repository.password";
177 
178     /**
179      * Name of the XML database collection, which contains the resource descriptions
180      * to be used during the resource matching process
181      */
182     public static final String PROP_SYSTEM_RESOURCE_REPOSITORY_DGRDL_COLLECTION = "resource.repository.dgrdl.collection";
183 
184     /** URL to the resource matcher service */
185     public final static String PROP_RESOURCE_RESMATCH_SERVICE_URL = "resource.resmatch.service.url";
186 
187     /**
188      * Minimum quality a hardware must have in order to be considered for job submission.
189      * quality = e.g. number cpus / load (depends on scheduler implementation).
190      * 1 = idle, 0 = occupied
191      */
192     public static final String PROP_SYSTEM_RESOURCE_PRORATER_MIN_QUALITY = "resource.prorater.min_quality";
193 
194     /**
195      * Period in milliseconds between two assignments to the same hardware.
196      * This number should be bigger than ResourceUpdater.period in ResourceUpdater.properties.
197      */
198     public static final String PROP_SYSTEM_RESOURCE_PRORATER_WAIT = "resource.prorater.wait";
199 
200     /**
201      * Time interval in milliseconds for gathering enabled transitions from all workflows for scheduling them together.
202      */
203     public static final String PROP_SYSTEM_RESOURCE_PRORATER_INTERVAL = "resource.prorater.interval";
204 
205     /**
206      * Depricated: Service URL of K-Wf Grid Scheduler.
207      * @deprecated
208      */
209     public static final String PROP_SYSTEM_SCHEDULER_SERVICE_URL = "net.kwfgrid.scheduler.service.url";
210 
211     /**
212      * Deprecated: Service URL of WCT.
213      * @deprecated
214      */
215     public static final String PROP_SYSTEM_WCT_SERVICE_URL = "net.kwfgrid.wct.service.url";
216 
217     //////////////////////////////////////
218     // workflow properties
219     //////////////////////////////////////
220 
221     /** Number of completed activities within this workflow (e.g. for progress bar). */
222     public static final String PROP_ACTIVITIES_COMPLETED = "activitiesCompleted";
223 
224     /** Number of terminated activities within this workflow */
225     public static final String PROP_ACTIVITIES_TERMINATED = "activitiesTerminated";
226 
227     /**
228      * Maximum number of attempts for invoking an activity related with this workflow.
229      * The property PROP_TRANSITION_ACTIVITY_MAXATTEMPTS may override this value.
230      */
231     public static final String PROP_ACTIVITY_MAXATTEMPTS = "activity.maxattempts";
232 
233     /** Time of the initialization of this workflow (in milliseconds since 1970) */
234     public static final String PROP_BIRTHDAY_MS = "birthdayMs";
235 
236     /** Workflow Analysis: measure for the Karp-Miller-Tree complexity of this workflow */
237     public static final String PROP_COMPLEXITY = "complexity";
238 
239     /**
240      * Workflow Analysis: This workflow contains a decision
241      * (e.g., a conflict where two transitions compete for the same token). Conditions which
242      * resolve the decision are not regarded.
243      * <pre>
244      * "TAKE_CONFLICT" if input place contains only one token
245      * "TAKE_CHOICE"   if input place contains more than one token
246      * "PUT_CONFLICT"  if output place has capacity for only one more token
247      * "PUT_CHOICE"    if output place has capacity for more than one token
248      * </pre>
249      */
250     public static final String PROP_DECISION_ = "decision.";
251 
252     /** Class of application domain of this workflow (for WCT). */
253     public static final String PROP_DOMAIN = "domain";
254 
255     /** The distiguished name of the workflow owner's credential. */
256     public static final String PROP_DN = "DN";
257 
258     /** Duration in milliseconds status being undefined and not yet initialized. */
259     public static final String PROP_DURATION_UNDEFINED_MS = "durationUndefinedMs";
260 
261     /**  Duration in milliseconds status being initiated and not running. */
262     public static final String PROP_DURATION_INITIATED_MS = "durationInitiatedMs";
263 
264     /**  Duration in milliseconds status being running (not including active). */
265     public static final String PROP_DURATION_RUNNING_MS = "durationRunningMs";
266 
267     /** Duration in milliseconds status being active. */
268     public static final String PROP_DURATION_ACTIVE_MS = "durationActiveMs";
269 
270     /** Duration in milliseconds status being suspended. */
271     public static final String PROP_DURATION_SUSPENDED_MS = "durationSuspendedMs";
272 
273     /** Total workflow duration in milliseconds. */
274     public static final String PROP_DURATION_TOTAL_MS = "durationTotalMs";
275 
276     /** Time of the completion or termination of this workflow (in milliseconds since 1970). */
277     public static final String PROP_END_TIME_MS = "endTimeMs";
278 
279     /** Beginning of string with critical error message. */
280     public static final String PROP_ERROR_ = "error.";
281 
282     /**
283      * <pre>
284      * "abortOnActivityTerminated" (default)
285      * "continueOnActivityTerminated"
286      * "suspendOnActivityTerminated"
287      * </pre>
288      */
289     public static final String PROP_FAULT_MANAGEMENT_POLICY = "faultManagementPolicy";
290 
291     /**
292      * <pre>
293      * "true" if workflow is unbounded (e.g., may have infinit loop)
294      * "false" if workflow is bounded
295      * </pre>
296      */
297     public static final String PROP_IS_UNBOUNDED = "isUnbounded";
298 
299     /**
300      * Stores the sequence of transitions. The format is the ID of the transition
301      * followed by a space.
302      */
303     public static final String PROP_OCCURRENCE_SEQUENCE = "occurrence.sequence";
304 
305     /**
306      * <pre>
307      *  "true" (default) - use fault tolerance mechanism to restart failed activities
308      *  "false"
309      * </pre>
310      * @deprecated use maxattempts instead!
311      */
312     public static final String PROP_REDISTRIBUTION_OF_FAILED_ACTIVITIES = "redistributionOfFailedActivities";
313 
314     /**
315      * If set to "true", then all activities triggered by transition occurrences are only simulated and not executed in
316      * real. Default value is "false".
317      * /// ToDo: implement
318      * /// ToDo: docu in FAQ and known issues
319      */
320     public static final String PROP_SIMULATION = "simulation";
321 
322     /**
323      * <pre>
324      * "UNDEFINED"
325      * "INITIATED"
326      * "RUNNING"
327      * "SUSPENDED"
328      * "ACTIVE"
329      * "TERMINATED"
330      * "COMPLETED"
331      * "FAILED"
332      * </pre>
333      */
334     public static final String PROP_STATUS = "status";
335 
336     /**
337      * String with the userID of the user who initiated the workflow. The userID may contain the client login name of
338      * the user or the distinguished name (DN) of his X509 certificate when using TLS.
339      */
340     public static final String PROP_USER_ID = "userID";
341 
342     /**
343      * Beginning of string with non-critical warning message.
344      */
345     public static final String PROP_WARN_ = "warn.";
346 
347     /**
348      * Type of analysis that should be invoked when initializing new workflows.
349      * <pre>
350      * "karp-miller" (default) - invoke Karp-Miller-Tree analysis to detect dead places etc.
351      * "false"                 - switch off workflow analysis.
352      * "true"                  - switch on default workflow analysis.
353      * </pre>
354      */
355     public static final String PROP_WORKFLOW_ANALYSIS = "workflow.analysis";
356 
357     /**
358      * Type of workflow description this workflow has been converted from.
359      * Example: "GWorkflowDL version 2.0".
360      */
361     public static final String PROP_WORKFLOW_CONVERTED_FROM = "convertedFrom";
362 
363     /** Defined as number of edges divided by number of places and transitions. */
364     public static final String PROP_WORKFLOW_BRANCHINGFACTOR = "workflow.branchingFactor";
365 
366     /** Defined as the sum of the total activity duration of all activities (in milliseconds). */
367     public static final String PROP_WORKFLOW_SEQUENTIAL_EXECUTION_PATH_SIZE_MS = "workflow.sequentialExecutionPathSizeMs";
368 
369     /**
370      * Defined as the sequential execution path size divided by the active workflow duration. Does not consider the time
371      * used in workflow status running, initiated, suspended, etc.
372      */
373     public static final String PROP_WORKFLOW_SPEEDUP_ACTIVE = "workflow.speedupActive";
374 
375     /**
376      * Defined as the sequential execution path size divided by the makespan. The makespan is defined as the
377      * total workflow duration.
378      */
379     public static final String PROP_WORKFLOW_SPEEDUP_TOTAL = "workflow.speedupTotal";
380 
381     /**
382      * <pre>
383      * "true" (default) - store workflows in database
384      * "false"          - do not store workflows in database
385      * </pre>
386      */
387     public static final String PROP_WORKFLOW_PERSISTENCE = "workflow.persistence";
388 
389     //////////////////////////////////////////////////
390     // ToDO: workflow properties not yet documented in FAQ
391     //////////////////////////////////////////////////
392 
393     public static final String PROP_LEVEL = "level";
394     public static final String PROP_WORKFLOW_RUNTIME_VERSION = "workflow.runtime.version";
395     public static final String PROP_WORKFLOW_PROBABILITY = "workflow.probability";
396     public static final double PROP_WORKFLOW_PROBABILITY_DEFAULT = 1d;
397 
398     /**
399      * Minimum threshold value of the probability of a workflow.
400      * Workflows with lower probability are not considered for scheduling analysis.
401      * Default value is 0.01 = 1%
402      */
403     public static final String PROP_WORKFLOW_PROBABILITY_MIN  = "workflow.probability.min";
404     public static final double PROP_WORKFLOW_PROBABILITY_MIN_DEFAULT  = 0.01d;
405 
406     //////////////////////////////////////
407     // transition properties
408     //////////////////////////////////////
409 
410     /** depricated. use yellow2blue.refinement.failed instead */
411     public static final String PROP_TRANSITION_AAB_REFINEMENT_FAILED = "aab.refinement.failed";
412 
413     /**
414      * <pre>
415      * "true": A activity related to this transition failed and the fault management tries to recover
416      *         the failure.
417      * </pre>
418      */
419     public static final String PROP_TRANSITION_ACTIVITY_HAS_FAILED = "activityHasFailed";
420 
421     /**
422      * Maximum number of attempts for invoking an activity related with this transition.
423      * The input token property PROP_TOKEN_ACTIVITY_MAXATTEMPTS may override this value. 
424      */
425     public static final String PROP_TRANSITION_ACTIVITY_MAXATTEMPTS = "activity.maxattempts";
426 
427     /**
428      * If a transition contains a breakpoint property, the GWES suspends the
429      * execution of the workflow when reaching the transition. The GWES then sets the property value to
430      * "REACHED". When resuming the workflow, the GWES sets the value to "RELEASED" until the
431      * breakpoint is reached again. Valid values are:
432      * <pre>
433      * empty
434      * "REACHED"
435      * "RELEASED"
436      * </pre>
437      */
438     public static final String PROP_TRANSITION_BREAKPOINT = "breakpoint";
439 
440     /**
441      * The transition will generate output tokens with a "data.group" property that is a combination of the input token
442      * data groups. If, e.g., a token from one input place belongs to data.group="a" and the token from a second input
443      * place belongs to data.group="b", then the output token will get data.group="a x b".
444      * The property "combine.data.groups" contains a list of edge expressions that are subset of the input,
445      * read, or write edge expressions of the transition, e.g., set combine.data.groups="input, output" if you want to
446      * combine the data groups of the tokens connected via the edge expressions "input" and "output".
447      * Valid values:
448      * <pre>
449      * "edgeExpression1, edgeExpression2, ..."
450      * </pre>
451      */
452     public static final String PROP_TRANSITION_COMBINE_DATA_GROUPS = "combine.data.groups";
453 
454     /**
455      * Maximum value of the duration in milliseconds for a activity being in status "active" regarding all activities
456      * triggered by this transition.
457      */
458     public static final String PROP_TRANSITION_DURATION_ACTIVE_MS_MAX = "durationActiveMs.max";
459 
460     /**
461      * Arithmetic mean value of the duration in milleseconds of the activities being in status "active". This mean
462      * value is calculated as average over all activities triggered by this transition.
463      */
464     public static final String PROP_TRANSITION_DURATION_ACTIVE_MS_MEAN = "durationActiveMs.mean";
465 
466     /**
467      * Standard deviation of durationActiveMs.mean.
468      */
469     public static final String PROP_TRANSITION_DURATION_ACTIVE_MS_STDDEVIATION = "durationActiveMs.stdDeviation";
470 
471     /**
472      * Exponential smoothing of durationActiveMs.
473      */
474     public static final String PROP_TRANSITION_DURATION_ACTIVE_MS_EXPSMOOTH = "durationActiveMs.expSmooth";
475 
476     /**
477      * Minimum value of the duration in milliseconds for a activity being in status "active" regarding all activities
478      * triggered by this transition.
479      */
480     public static final String PROP_TRANSITION_DURATION_ACTIVE_MS_MIN = "durationActiveMs.min";
481 
482     /**
483      * Maximum value of the total activity duration in milliseconds of all activities triggered by this transition.
484      */
485     public static final String PROP_TRANSITION_DURATION_TOTAL_MS_MAX = "durationTotalMs.max";
486 
487     /**
488      * Arithmetic mean value of the total activity duration in milliseconds calculated as average over all activities
489      * triggered by this transition.
490      */
491     public static final String PROP_TRANSITION_DURATION_TOTAL_MS_MEAN = "durationTotalMs.mean";
492 
493     /**
494      * Standard deviation of durationTotalMs.mean.
495      */
496     public static final String PROP_TRANSITION_DURATION_TOTAL_MS_STDDEVIATION = "durationTotalMs.stdDeviation";
497 
498     /**
499      * Exponential smoothing of durationTotalMs.
500      */
501     public static final String PROP_TRANSITION_DURATION_TOTAL_MS_EXPSMOOTH = "durationTotalMs.expSmooth";
502 
503     /**
504      * Minimum value of the total activity duration in milliseconds of all activities triggered by this transition.
505      */
506     public static final String PROP_TRANSITION_DURATION_TOTAL_MS_MIN = "durationTotalMs.min";
507 
508     /**
509      * Ignore "data.group" property from specific tokens.
510      * <pre>
511      * "read" and/or "write": Ignore "data.group" property from tokens on read and write places
512      * "control": Ingore "data.group" property from control tokens
513      * </pre>
514      */
515     public static final String PROP_TRANSITION_IGNORE_DATA_GROUPS = "ignore.data.groups";
516 
517     /**
518      * Workflow Analysis: "false" if the transition will never fire
519      * <pre>
520      * "true"
521      * "false"
522      * </pre>
523      */
524     public static final String PROP_TRANSITION_IS_QUASI_LIVE = "isQuasiLive";
525 
526     /** Last operation name used by this transition. */
527     public static final String PROP_TRANSITION_LAST_OPERATION_NAME = "last.operation.name";
528 
529     /** Last resource name used by this transition. */
530     public static final String PROP_TRANSITION_LAST_RESOURCE_NAME = "last.resource.name";
531 
532     /** Number of completed or terminated activities triggered by this transition. */
533     public static final String PROP_TRANSITION_NUMBER_ACTIVITIES = "numberActivities";
534 
535     /**
536      * Priority of this transition (high number = high priority = comes first if possible!).
537      * The default priority is 0 (as defined in class TransitionPriorityComparator).
538      * @see net.kwfgrid.gwes.TransitionPriorityComparator
539      */
540     public static final String PROP_TRANSITION_PRIORITY = "priority";
541 
542     /** "true" if automatic workflow refinement from red to yellow failed. */
543     public static final String PROP_TRANSITION_RED2YELLOW_REFINEMENT_FAILED = "red2yellow.refinement.failed";
544 
545     /**
546      * Remove the resource.allocation.group property from the output tokens of this transition.
547      * This is used when the spacial co-scheduling should be resetted within workflows, e.g., in
548      * iterations
549      */
550     public static final String PROP_TRANSITION_REMOVE_RESOURCE_ALLOCATION_GROUP = "remove.resource.allocation.group";
551 
552     /**
553      * String (without spaces) that defines the instance group to which this transition belongs to.
554      * Transitions with the same instance group that are connected by arcs are scheduled on the same
555      * resources (spacial co-scheduling).
556      */
557     public static final String PROP_TRANSITION_RESOURCE_ALLOCATION_GROUP = "resource.allocation.group";
558 
559     /**
560      * depricated. use yellow2blue.refinement.failed instead.
561      */
562     public static final String PROP_TRANSITION_RESOURCEMATCHER_REFINEMENT_FAILED = "resourcematcher.refinement.failed";
563 
564     /**
565      * Fault management.
566      * <pre>
567      * "true"
568      * </pre>
569      * @deprecated Use activity.maxattempts instead!
570      */
571     public static final String PROP_TRANSITION_REVERTED_TO_YELLOW = "revertedToYellow";
572 
573     /**
574      * status of the last activity triggered by this transition.
575      * <pre>
576      * "UNDEFINED"
577      * "INITIATED"
578      * "RUNNING"
579      * "SUSPENDED"
580      * "ACTIVE"
581      * "TERMINATED"
582      * "COMPLETED"
583      * "FAILED"
584      * </pre>
585      */
586     public static final String PROP_TRANSITION_STATUS = "status";
587 
588     /** Default value for timeout.running and timeout.active. */
589     public static final String PROP_TRANSITION_TIMEOUT = "timeout";
590 
591     /** Timeout for this activity in state running or active in milliseconds (including waiting time). */
592     public static final String PROP_TRANSITION_TIMEOUT_RUNNING = "timeout.running";
593 
594     /** Timeout for this activity in state active in milliseconds (not including waiting time). */
595     public static final String PROP_TRANSITION_TIMEOUT_ACTIVE = "timeout.active";
596 
597     /**
598      * depricated. Use red2yellow.refinement.failed instead.
599      */
600     public static final String PROP_TRANSITION_WCT_REFINEMENT_FAILED = "wct.refinement.failed";
601 
602     /** "true" if automatic workflow refinement from yellow to blue failed. */
603     public static final String PROP_TRANSITION_YELLOW2BLUE_REFINEMENT_FAILED = "yellow2blue.refinement.failed";
604 
605     /**
606      * xmlns:XXX.
607      * This property maps an XML namespace prefix onto a specific namespace URI. Replace "XXX"
608      * by the namespace prefix string. The namespace prefixes defined by this property can be used
609      * within the conditions and edgeExpressions of this transition.
610      * The following namespace prefixes are predefined:
611      * <pre>
612      * xmlns:tns=[target namespace as defined in the correspondig WSDL]
613      * xmlns:gwdl="http://www.gridworkflow.org/gworkflowdl"
614      * xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
615      * xmlns:xsd="http://www.w3.org/2001/XMLSchema"
616      * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
617      * </pre>
618      */
619     public static final String PROP_TRANSITION_XMLNS_ = "xmlns:";
620 
621     //////////////////////////////////////////////////
622     // transition properties not yet documented in FAQ
623     // ToDo: Document in FAQ!
624     //////////////////////////////////////////////////
625     public static final String PROP_TRANSITION_EDITOR_POSITION_X = "editor_positionX";
626     public static final String PROP_TRANSITION_EDITOR_POSITION_Y = "editor_positionY";
627 
628     /**
629      * In case of a conflict (decision) this transition is pre selected and will occurr with the highest priority.
630      * With the occurrence of this transition, this property will be removed. The value of this property is ignored. 
631      */
632     public static final String PROP_TRANSITION_PRE_SELECTED = "preSelected";
633 
634     //////////////////////////////////////
635     // place properties
636     //////////////////////////////////////
637 
638     /**
639      * Workflow Analysis: "true" if the place will be marked when the workflow completes.
640      * <pre>
641      * "true"
642      * "false"
643      * </pre>
644      */
645     public static final String PROP_PLACE_IS_FINALLY_MARKED = "isFinallyMarked";
646 
647     /**
648      * Workflow Analysis: "false" if the place can never get a token.
649      * <pre>
650      * "true"
651      * "false"
652      * </pre>
653      */
654     public static final String PROP_PLACE_IS_QUASI_LIVE = "isQuasiLive";
655     
656     //////////////////////////////////////////////////
657     // place properties not yet documented in FAQ
658     // ToDo: Document in FAQ!
659     //////////////////////////////////////////////////
660     public static final String PROP_PLACE_EDITOR_POSITION_X = "editor_positionX";
661     public static final String PROP_PLACE_EDITOR_POSITION_Y = "editor_positionY";
662     public static final String PROP_PLACE_TOKEN_FORM_URLS = "token.form.urls";
663     public static final String PROP_PLACE_TOKEN_SERVLET_URLS = "token.servlet.urls";
664     public static final String PROP_PLACE_TOKEN_FORM_GEOMETRIES = "token.form.geometries";
665     public static final String PROP_PLACE_TOKEN_FORM_TITLE = "token.form.title";
666 
667     //////////////////////////////////////
668     // token properties
669     //////////////////////////////////////
670 
671     /**
672      * Maximum number of attempts for invoking an activity related with this input token.
673      * /// ToDo: docu in FAQ
674      */
675     public static final String PROP_TOKEN_ACTIVITY_MAXATTEMPTS = "activity.maxattempts";
676 
677     /**
678      * String that identifies the group to which the data on the token belongs. If a transition has serveral input or
679      * read places it tries to group tokens with the same data.group identifier. If a token does not contain a
680      * data.group identifier, then it is treated as an arbitrary group (wild card).
681      */
682     public static final String PROP_TOKEN_DATA_GROUP = "data.group";
683 
684     /**
685      * Spatial co-allocation: The property value is the resource name where the corresponding resource allocation group
686      * has been mapped onto. "XXX" denotes the identifier specified by the transition property
687      * "resource.allocation.group".
688      */
689     public static final String PROP_TOKEN_RESOURCE_ALLOCATION_GROUP_ = "resource.allocation.group.";
690 
691     /**
692      * Simulation of activities: This property stores the simulated activity duration in Milliseconds.
693      * /// ToDo: implement
694      * /// ToDo: docu in FAQ and known issues
695      */
696     public static final String PROP_TOKEN_SIMULATION_DURATION_ACTIVE_MS_STEP_ = "simulation.durationActiveMs.step.";
697 
698     public static final String WORKFLOW_DESCRIPTION_TYPE_DEFAULT = "GWorkflowDL version 2.1";
699 }