ewoks 1.0#
Many workflow management systems exist to deal with data processing problems that can be expressed as a graph of tasks, also referred to as a computational graph or workflow. The main purpose of a workflow management system is to provide a framework for implementing tasks, creating graphs of tasks and executing these graphs.
The purpose of ewoks (Extensible Workflow System) is to provide an abstraction layer between graph representation and execution. This allows using the same tasks and graphs in different workflow management systems.
ewoks has been developed by the Software group of the European Synchrotron.
Getting started#
Install ewoks
pip install ewoks
Create a test workflow in JSON format (“acyclic1” is an test workflow that ships with ewoks)
ewoks convert acyclic1 --test test.json
Execute the test workflow and print the output of all tasks
ewoks execute test.json --outputs all
For a desktop GUI, install ewoks with the orange binding
pip install ewoks[orange]
Open the test workflow in the GUI
ewoks execute test.json --engine orange
For a web GUI, install ewoksserver with the frontend
pip install ewoksserver[frontend]
Start the ewoks web server, open the link in a web browser and load the test.json file
ewoks-server
Further Ewoks documentation#
About creating and editing workflows#
ewoks tutorial on workflow creation: create a workflow from the Python interface
ewoksorange : create and execute workflows with a desktop GUI
ewoksweb: web frontend to create, visualize and execute workflows
ewokscore : create workflows and implement tasks
About executing workflows#
About setting up infrastructure for workflow execution#
ewoksjob: distribute workflow execution
ewoksserver: REST server to manage and execute workflows
About developping Ewoks#
ewoksutils : developer utilities