OptimaJet offers two products to create and manage workflows:
- Workflow Server – developed as a separate solution with a frontend, admin panel and HTTP API for process control.
The solutions share a common process design and features but the implementation can differ. This comparison table describes the features of each solution. Although the products have a common base, there are self-contained:
|Feature||Workflow Engine||Workflow Server|
|Workflow version control|
|Integration with other components|
|Restful API/HTTP API/Swagger|
|Security (users, roles, permissions)||*||*|
* It can be integrated with your security provider, but development is required.
Let us take a closer look at the solutions.
How to choose? Workflow Engine or Workflow Server?
There are key elements that should be kept in mind in order to choose the solution that better fits specifications and requirements:
First, the functionality that is needed. It should be considered. If Workflow Engine's functionality is enough, so you might move forward and select this solution.
Which assembly is required - a standalone application or a library? If a quick start-up is a must, the best option is definitely the Workflow Server in a docker container.
If the applications are not written in .NET and there are no .NET developers available, then a better option will be Workflow Server.
In case of building the solution in an existing .NET application, it is better to choose Workflow Engine.
How the client's components or functionalities to the product will be added? If further enhancements will often go through the integration of external services - a better choice would be Workflow Server, otherwise - Workflow Engine.
The degree of customization is also important. If the solution implies a wide customization, Workflow Engine is the best option. If a lot of connections and additional servers are needed to integrate Workflow Server into the solution, as a result of architecture development, then it may be worth reconsidering the approach and embedding Workflow Engine into one of the servers.
In addition, the price. Workflow Engine is cheaper than Workflow Server.
Finally, the following relevant criteria should be evaluated to choose a solution properly:
|Criteria||Workflow Engine||Workflow Server|
|Set of functionalities||- Workflow Engine (Runtime). |
- Workflow Designer.
- Workflow version control.
- Integration with other components.
|- Everything that is supported in the Workflow Engine.|
- REST API.
- HTTP API.
- Administration panel.
- Simple user forms.
- Importing users from LDAP.
- Integration with OpenID.
- Logging to file/console/DB.
- Import/Export configuration.
- Form builder.
- End-user interface.
|Distribution type||Workflow Engine (Runtime), distributed as nuget packages:|
- .NET Framework 4.5 packages.
- .NET Standard 2.0 packages.
- React library.
- Angular library.
|It is a standalone .NET 6 application.|
|Cross-platform||Nuget packages are available for .NET Standard 2.0 and .NET Framework 4.5.||It works well on .NET 6.|
|Docker container||You can create your own docker container with Workflow Engine.||Yes, there is.|
The latest version of Workflow Server is available in the Downloads section. These instructions should be followed to run WorkflowServer with the provided database or Docker can be used to deploy it automatically.
First, a scheme must be created. It can be done either from scratch or by using one of the ready-made schemes on our test server. We highly recommend starting with the simplest, TestScheme, which contains three states and two transitions with commands.
After creating the scheme, the Workflow API can be used from the admin panel to manage the processes. For instance, a process based on the scheme can be created, the list of available commands is enabled, and commands are executed through this interface. Each section provides code examples of how to call methods from an external system using the HTTP API.
Access to the API and admin panel can be restricted from the Security tab on the Settings section.
In addition, an external system with users, roles, etc. might be integrated with the Workflow Server. More detailed information is provided in this guide.
The functionalities can be extended by applying the Code Actions or rebuilding WorkflowServer using the Visual Studio solution that is delivered with the package.
Starting with version 2.6, the user interface constructor and user form creator are available, like in a CMS. In version 2.7, users are authorized to access forms.
An instance of WorkflowRuntime must be created to start working. This object provides the access to the C# API for creating and managing workflow instances. The key functions are:
- CreateInstance – create a process (workflow) instance.
- GetAvailableCommands – get the list of available commands.
- ExecuteCommand – execute a command.
- SetState – set a state.
- DeleteInstance – delete a process (workflow) instance.
Further details can be read here.
We recommend starting with one of the examples, where WorkflowRuntime is already configured and an example of a workflow is given.
The current available sample applications for WebForms, ASP.NET MVC and ASP.NET Core are:
- WebForms (.NET Framework) samples
- ASP.NET MVC (.NET Framework) samples
- ASP.NET Core (.NET Core) samples
In case of Angular, there are examples based on the standard angular and angular boilerplate solutions. Unfortunately, other examples are not provided because they’re rarely used, and creating and supporting them requires considerable effort.
Workflow Engine stores basic information regarding processes in: WorkflowProcessScheme and WorkflowProcessInstance tables in the database. Further information can be read here.
Once acquaintance with the product is reached, is possible to start integrating it into a project. Our step-by-step integration guide gives guidance to move forward on the topic.
If managing users and roles in the schemes is planned, the engine must be integrated with the security system. This article explains in detail how to perform the task using the Basic Plugin.
WorkflowEngine has extensive design customization options. For example, owned Actions can be declared on the backend, and a set of parameters for the call might be specified. Based on this description, WorkflowDesigner automatically shows the form with the parameters specified.
The following terms are shared equally by Workflow Engine and Workflow Server.