What is Workflow Server?
Workflow Server is a powerful software solution for business process management (BPM) which is designed to automate a wide variety of tasks and workflows. It supports the design, modeling, execution, monitoring, and optimization of business processes workflows. Besides, it enables enterprises to automate complete tasks or create notifications for task completion or interventions — from the beginning of a process to its fulfillment. The solution consist of two main modules: Admin and Forms. The form server differs from the administrative and process server. It can be run together with the administration server or as a standalone instance.
Although Workflow Server is based on Workflow Engine, it has additional functionalities, so embedding the Workflow Engine is not required because it is a complete solution with an administration panel, APIs for process control, and the frontend. Besides, it can be integrated with NodeJS, PHP, Ruby, .NET, or Java applications through REST APIs.
The Workflow Server GUI is really intuitive and easy to use. In the admin panel users can define several settings such as: file and DB logs, access credentials, role-based access control, reports generation, frontend customization, Git configuration export and import and many others. On the other hand, the Form manager module provides an end-user interface to manage, inherit and build forms. The drag-and-drop built-in visual designer that is available in the section: 'Workflow' -> 'Manage schemes', allows easily to create and modify schemes, manage and visualize workflow processes. The schemes might be created either from scratch or by using one of the ready-made schemes. You can try out our test server.
Some functionalities might be extended also by implementing the Code Actions or rebuilding Workflow Server using the Visual Studio solution that is delivered with the package.
Overall, Workflow Server supports the following features, so let us take a look:
- Written in .NET 6 and cross-platform.
- Form Manager module.
- Administrative panel.
- Workflow scheme designer.
- Simple user forms.
- Configuration Import and Export.
- Logging settings and reports features.
- Restful API/HTTP API/Swagger integration through Workflow API and Callback API.
- Workflow version control.
- Security settings and user account management.
Detailed information related to Workflow Engine can be read here.
Key features description
Written in .NET 6 and cross-platform
When considering cross-platform development, an application or software product is able to work well in more than one specific environment. This capability is often pursued in order to implement a software, for instance, in more than one operating system, so it can fit to Microsoft, Linux or Apple platforms.
Workflow Server was designed by considering a microservice architecture approach which enables the continuous delivery and deployment of large and complex systems as well as their maintenance, scalability, testing and integration.
- Workflow API - it is enabled for managing processes once a scheme has been created. It provides an interface to create a process based on the scheme, get the list of available commands, and execute a command. In each section there are available code examples of how to call methods from an external system by using the API.
- Callback API (webhooks) - several Callback servers can be connected to the Workflow Server through the admin panel on the Callback API page, and queries by using GET or POST methods can be implemented for retrieving data from the servers. Callback API allows hosting code related to Actions, Conditions or Rules on third-party servers.
Configuration Import and Export
Workflow Server offers a 'Developer Mode' which might be used during development cycle, for instance, you may share the configuration in Git for collaborative programming. Configuration Settings can be exported to a zip archive and also be imported to other location if it is required.
Logging settings and reports features
Logging to several targets is supported in Workflow Server such as: console, VS debug output, file, windows event log, database. The logging settings are available in Settings page in tab 'Log settings'.
Security settings and user accounts management
Application development that’s truly designed for business should consider adaptable architecture and business-class security features such as: application level security (per-user role or per-user basis), multi-tenant security where multiple users can access the same application, but only view the data they’re authorized to see, flexible authentication options that enable to take advantage of the authentication methods you already use, and so on.
Workflow Server provides robust security settings and user account management which include the following methods:
- Creating users through the admin panel interface.
- Adding and editing users by the Workflow API.
- Importing users via LDAP.
- Automatic user creation when logging in by external sources that support external authentication providers: OpenId (Facebook, Google, Okta).
Access to the API and admin panel might 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 information can be read in this guide.
Nowadays, companies store usernames, passwords, email addresses, printer connections, and other static data within directories. As is well known LDAP is an open application protocol for accessing and maintaining this kind of information and also tackle authentication, so users can sign on just once and access different files on the server. Workflow server supports importing users settings via LDAP. This functionality is available in the section: 'Settings' -> 'Security' tab. Accordingly, user properties must be defined in the Workflow configuration to encrypt the LDAP password in the database.
Workflow server implements IdentityServer4 which is a combination of middleware and services and also uses OpenID Connect and OAuth 2. 0 as authentication protocols. The application of these two protocols is considered to solve frequent security problems of today’s mobile and web applications. Basically, the IdentityServer middleware adds the necessary protocol heads, so client applications can talk to it using those standard protocols. Running inside the Workflow Server, it is used to authenticate users. Authentication can be completed by login and password and through external sources that support OpenId ( Facebook, Google, Okta and others).
Workflow Sever in a Docker container
Workflow Server can be deployed in a Docker container by executing a single command:
startcontainer.bat which represents an outstanding
advantage. Containers are self-contained components of software which include an application, system libraries, system settings, and
everything else the application needs in order to be run. Containers help to ensure that an application can be deployed and executed
properly no matter where it is hosted. A Docker container is partitioned from each other into different user space environments, and each
container runs as if it were the only system on the host machine. The Workflow Server installation procedure with a Docker image can be
reviewed in this section.
Workflow Server supports multitenancy and horizontal scalability
Multitenancy is a reference to the mode of software operation where multiple independent instances of one or multiple applications operate in a shared environment. The instances which are known as tenants are logically isolated, but physically integrated. WorkflowServer supports multitenancy, and it is possible to transfer a Tenant Id to a process and use it.
On the other hand, enterprises that are growing rapidly pay special attention to scalability when evaluating hardware and software. The scalability is the measure of a system’s ability to increase or decrease in performance and cost in response to changes in application and system processing demands. In the multi-server mode, any number of WorkflowServer instances can be connected to a single database. All these instances are independent; the only thing that unifies them in a cluster is the common database (or schema). The servers can be disconnected and connected to the database at any time; for the cluster to keep on working, one server is enough.
Workflow Server plugins and localization features
Workflow Server works well with plugins. They extend the Workflow Server functionality, elements might be customized in the Workflow Designer, and also predefined actions, conditions or authorization rules. Besides, the add-on or extensions, can perform additional processing of the Workflow Runtime standard events.
Regarding the localization features, Workflow Server supports several languages as part of the translation process, enabling the adaptation of a text or visual material into another language according to the cultural or linguistic characteristics of the target audience.