Sesam Workflows Knowledge Centre Help library Using Sesam with Python OneWorkflow Overview
What is OneWorkflow?
The main purpose of OneWorkflow is to
- Enable a user to compose and execute custom computational workflows that fit the computational problem and run seamlessly in an execution environment that fits the size of the problem
A computational workflow needs to be specified before it is executed. The specification of a workflow is called a Job. The Job is a detailed recipe of the computational tasks to be done.
When submitting the job to a OneWorkflow compute service, it will be executed autonomously. The compute service can reside anywhere; locally on the client computer or in the cloud.
OneWorkflow Concepts
Concept | Description |
---|---|
Job | The specification of a workflow is called a Job. |
Work Item | An abstract concept representing a part of a workflow. |
Work Unit | A Work Item type that represents an atomic unit of computational work taking specified input and returning a result |
ParallelWork | A composite Work Item type that composes a collection of other work items, typically work units, that can execute independently |
Worker | A Worker is executed by the Computational Service to process a Work Unit. In OneWorkflow, the the Work Unit will contain a WorkerCommand, so the Worker will execute the task specified by the WorkerCommand. |
WorkerCommand | Represent an imperative message from the client to the worker to execute a particular task. The WorkerCommand is specific to the task. |
OneWorkflow Computational Services | The Computational Service will receive a job and orchestrate its execution by invoking the Worker on each Work Unit in the job. |
The figure below depicts the composition pattern of workflows: | |
![]() |
The job contains a single root WorkItem, typically a ParallelWork. ParallelWork contains one or more WorkItems, typically a set of WorkUnits that can be executed in parallel. A WorkUnit contains input to the Worker. In OneWorkflow, that input is a WorkerCommand. When the worker receives a WorkerCommand, it will execute the task specified by the command.