OneWorkflow Overview

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

ConceptDescription
JobThe specification of a workflow is called a Job.
Work ItemAn abstract concept representing a part of a workflow.
Work UnitA Work Item type that represents an atomic unit of computational work taking specified input and returning a result
ParallelWorkA composite Work Item type that composes a collection of other work items, typically work units, that can execute independently
WorkerA 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.
WorkerCommandRepresent an imperative message from the client to the worker to execute a particular task. The WorkerCommand is specific to the task.
OneWorkflow Computational ServicesThe 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:
Workflow composition

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.