Back to DevDoc
Main concepts of SimExplorer workflows
Data
Prototype -> A type and a name (analogy to the 'C' prototype declaration: int a). Variable -> A prototype associated with a value of matching type.
Task
A Task represents a work to be achieved (executing a Java or C model, processing data, generating files...). A Task can be associated to:
- a set of parameters (it can be source code, system commands,… or anything that describes the bahavior of a type of Task),
- file ressources (executable file, jar libraries, data files or directory requiered for the task execution, ...).
In the platform, Task is a generic class, from which more specific tasks can be implemented as plugins. For instance, a GroovyTask (executing arbitrary Java code) or a NetlogoTask (executing NetLogo simulation) have been easily extended from the super class Task.
Capsule
A Capsule represents a structure, which can:
- be connected to other Capsules by transition
- encapsulate a Task
Transition
A transition describes the precedence relationship between two capsules. The variables migrates from a Capsule to another one through the transitions. A Transition is always completed on the local environment.
A condition can be assigned to a transition, so that the transition is only completed if the condition is true.
Exploration
A particular Task (the exploration Task) combined with a particular transition (the exploration transition), offers to explore space of parameters. The Task at end of an exploration transition will be executed in parallel for each explored value of space of parameters.
The exploration enables to run numerous instances of a single algorithm with differents input variables or ressources.
Aggregation
An aggregation is also a particular Transition. It enables to merge results of Tasks, which have been run in parallel using an Exploration Task and Transition.
Task -> A work to do (execute octave function, launch a model...). Context -> A structured space containing variables values. MoleJob -> A Task associated with a Context, the Job executes a task in a given Context. Environment -> An execution environment implemented to execute Jobs (Local processors, Clusters, Grids...). ExecutionJob -> A set of MoleJob associated with an environment, an ExecutionJob represent the execution of on a given environment.
Workflow
Workflow -> A direct graph of capsules and data migrations between them. Capsule -> A spot encapsule a Task in order to be integrated into a workflow. Transition -> Describes precedence relationship between capsules, variables migrates from capsule to capsules through transitions. Mole -> A workflow with a start capsule, able to be executed
Other concepts
MoleTask -> Allow to add a nested mole in a task. Can be then integrated in a capsule, thus in a workflow, thus in a mole. The aim is to add an abstraction level, that allow to group a mole in a unique task. URIFile -> Uniform file access based on URI. Storage -> A storage space of an execution environment JobService -> A job management system of an execution environment Resource -> A resource is an entity needed for a task execution, it may be a file, a software piece. Replica -> A copy of file on a remote storage of an environment.












