Extensible Workflow System (Ewoks)#
Ewoks is a project to automate data processing and experiments at large-scale facilities as well as making data processing more scientific (reproducible) and FAIR (traceable).
New user of Ewoks?
The Getting started page will give instructions to start using Ewoks on a local computer.
You know about Ewoks and want to start creating workflows?
The Tutorials page provide guided instructions to create and execute Ewoks workflows.
⚠️ Still in construction!
You know how to create Ewoks workflows and are looking for existing Ewoks tasks?
The Task catalog is the page to check: it provides a searchable list of tasks, regrouped by experimental techniques and projects.
Want to know more about Ewoks in general?
To get a bird’s eye view of Ewoks, you can have a look at the articles and presentations in the Press page. Or keep scrolling for more info!
What is Ewoks?#
Ewoks is a collection of Python projects to design and run data processing via workflows.
The Ewoks ecosystem is composed of:
ewoks to submit and execute workflows with any supported execution engine, be it locally or remotely.
ewokscore that defines the specification of Ewoks workflows.
ewoksweb: a web service to create, edit and execute workflows.
several bindings for workflow management systems, depending on the use case.
several ewoksapps exists that define workflows and tasks for specific domains (ex:
tomwer
for tomography,ewoksxrpd
for X-Ray powder diffraction data processing).
All Ewoks projects are open-source and can be found on the ESRF Gitlab in the ewoks and ewoksapps subgroups.
Example
Ewoks is used at ESRF beamlines to azimuthally integrate diffraction images automatically during acquisition.
But it can do much more! See the task catalog for a list of possible operations (to be expanded soon with a workflow catalog).
Features#
Ewoks is not yet another workflow management system. To ensure the longevity of workflows and their implementation, Ewoks was designed to be a meta workflow system. This allows workflows to be isolated from the underlying software technologies used to execute and manage them.
The meta workflow approach allows for supporting a diverse set of use cases tailored to individual scientists on one end of the spectrum and large-scale facilities on the other end.
automated workflows distributed on a compute cluster
interactive worfkflows run as a desktop application
create, manage and execute workflows as a web service
workflows with loops and conditional links
workflow tasks written in Python or defined by command line tools
parallel execution of tasks within the same workflow
job scheduling for integration in other systems (acquisition control, data portal)