jose-navarro / workflowmaker

Design and execute workflows made of console applications
MIT License
0 stars 0 forks source link

WorkFlowMaker

What is it for?

WorkFlowMaker allows you to design and execute workflows created from the combination of so-called console applications.

A "console application" is one that does not have a graphical interface and runs in a command window. Typically, these applications interact with the user through parameters passed on the command line, the keyboard (for entering data), and data files (input/output).

It is common for applications of this type to be generated in research and even production environments, since they are not affected by the complexity of developing a graphical user interface.

On certain occasions, it will be necessary to combine several of these applications to achieve more elaborate results. Normally this is done through a manual process. The user executes, one by one, the required applications until obtaining the final result.

This can be a tedious and error-prone process. In cases where it is necessary to combine a specific set of console applications, it would be interesting to have scripts that automate this process. However, not everyone is capable of writing such scripts, so they will depend on other people who are capable of doing so.

WorkFlowMaker tries to solve this problem by allowing users without programming knowledge to combine these console applications using a graphical tool that allows them to add/remove applications to a workflow and connect the inputs and outputs of these applications using connections. With such a tool, a user without programming knowledge but with knowledge of the domain in which they are working will be able to generate scripts that execute their workflows without the need to write a line of code.

To achieve this, WorkFlowMaker imposes a few restrictions that explain how console applications should be programmed. From these restrictions, it is possible to formalize the definition of these applications and, from here, draw these workflows and generate scripts to execute them. Obviously, developers who want to be able to integrate their console applications with WorkFlowMaker will have to respect these restrictions.

Are there any installers?

Yes.

In the Releases section you can download the WorkFlowMaker installer for Windows, the .deb package for Ubuntu based distributions.

In addition, and for the Windows platform, there are two more installers that include two sets of test applications (the image processing and text file processing toolkits). By installing these two test toolkits, it is possible to start practicing with WorkFlowMaker without having to go through the process of formalizing your own tools. For the Linux platform a .deb package for the image processing toolkit is also included (not for the text processing one).

Furthermore, the test applications include the source code, so developers may see how WorkFlowMaker-compliant applications must be implemented.

Are there any user guides?

The user guides for the WorkFlowMaker suite may be found at the following path of the repository:

/docs/user guide/*.pdf

The information related to the two test sets is also available in the repository;

How may I build from source code?

Read the document /docs/user guide/Building WorkFlowMaker.pdf

Features

Benefits

Use cases

Get started

  1. Download the WorkFlowMaker installer / deb package from the Releases section.
  2. Install WorkFlowMaker on your computer.
  3. Define your tasks (console applications) using ToolKitEditor. This is, clearly, a task for the developer(s) of the said applications. For Windows platforms, there are two installers for sample toolkits including (1) the definition of the toolkit and a single workflow plus (2) the binaries of the tools in the toolkit, so these are ready to use and (3) guides to understand the toolkit. See the Releases section to download these. For Linux platforms these sample toolkits are also available, but the tools are not prebuilt.
  4. Create new workflows running WorkflowEditor. Add tasks and connect their input and outputs by means of connections. This may be done by anyone with enough knowledge about what the applications do; no programming skills are thus required.
  5. Run WorkflowLauncher to assign data values to input and output file names and keyboard parameters to the workflow of your choice. Generate the script. Again, no programming skills are needed.
  6. Run your workflow by executing the script.

Note that step 3 above require the adaptation of the console applications so these comply with the requisites set by WorkFlowMaker.

One of the requisites is that the options controlling the behaviour of the console application as well as the names of the input and output files must be written in the so-called "option files". In the samples code folder, a library named "simple_options_file_parser" has been included. It may be used to parse the said option files. In fact, all the sample programs in the two example (text, image processing) toolkits use this library to read their respective option files.

The licence

The MIT License

SPDX short identifier: MIT

Copyright 2024 Centre Tecnològic de Telecomunicacions de Catalunya-CERCA

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: