# Investigation of Microservice-Based Workflow Management Solutions for Industrial Automation
## 4 Strategies for Workflow Management in a Microservice Architecture
### WSO2 Enterprise Integrator  
WSO2 is an open source enterprise platform for APIs, applications, and web services deployed locally and on the Internet [71]. The WSO2 Enterprise Integrator (WSO2 EI) is one of the products offered by the WSO2 platform. It enables enterprise services to collaborate dynamically between SOA-based systems [67]. Of its capabilities, we have selected the modules that are most closely related to the workflow lifecycle. * **Tooling**: WSO2 Integration Studio (WSO2 IS) is among the modules offered by WSO2 EI. It is an eclipse-based drag-and-drop graphical development environment. It includes a visual tool palette, an option to import connectors to the tool palette, top-level integration constructs, and property views for complex configurations. Among its capabilities, there is the option to create BPMN or BPEL projects that enable the modeling of processes using the graphical interface provided by the tool and the generation of XML files. * **Deployment**: WSO2 Business Process Server (WSO2 BPS) allows the user to deploy or undeploy business processes written in BPMN or BPEL through its web interface in a very intuitive manner. One has to simply select the file from the filesystem and upload it. Using the features, we can manage BPMN or BPEL instances (created beforehand) through the \"Instances\" dashboard and filter them according to their status (active, suspended, or completed). Some server settings can be customized in the \"Configuration\" dashboard, i.e., it allows one to add users, roles, keystores, and data sources. Finally, it also allows for the checking of the webserver statistics through the \"Monitor\" dashboard, which has some indicators such as memory usage, system uptime, average response time, and fault count. * **Monitoring/interaction**: WSO2 BPMN Explorer enables interaction with deployed BPMN applications and allows the monitoring of the current status of workflows. Its main features are (1) a Dashboard tab where one can view statistics such as process instance count, the status of processes, and the status of task instances; (2) a Task tab to view, claim, and take action on BPMN tasks that require user intervention (e.g., filling a form); (3) a Processes tab to execute the deployed BPMN processes and view their diagrams; (4) a Monitoring tab to view the activity of specific process instances by providing the unique instance identifier, where one can see information such as start time, end time, and task state; and (5) a Reports tab to generate statistical reports of the current user's actions in all the BPMN processes. This alternative was implemented at the enterprise level in the multi-level hierarchical workflow execution approach presented in Section 4.2. The enterprise level, controlled by the WSO2 server, manages workflow orders written in BPMN and delegates on the Workflow Choreographer for workstation task execution at the production level, as presented in [67]. WSO2 orchestrates both human- and service-oriented tasks. Workflows can be designed and deployed easily using the tools and servers offered by the Enterprise Integrator package. This solution is able to manage multiple processes and instances simultaneously. Parallelism and concurrency are managed by WSO2, hiding the complex implementation of the concurrent task and relieving the user or the process developer of those duties. Process architecture and behavior are governed by the services that are to be orchestrated. WSO2 can implement most architectures and flow conditions, although asynchronous services are usually challenging. In addition to the design and deployment tools, the entire engineering lifecycle of the process is covered by WSO2, which enables the monitoring and control of the workflows during execution, as shown in Figure 6.  
We have identified certain advantages that differentiate WSO2 from similar tools: (1) Workflows can be designed intuitively through the graphical user interface using one of today's standard notation languages: BPMN or BPEL.