# Investigation of Microservice-Based Workflow Management Solutions for Industrial Automation
## 5 Discussion  
This section briefly analyzes the aforementioned alternative solutions for managing workflows. The different solutions follow different strategies to address the workflow challenges. These approaches are summarized in Table 1. On the other hand, the details of the technologies used to create each solution are listed in Table 2.  
Starting with the comparison in Table 1 and considering the extent of the workflow lifecycle covered by each solution, we have identified a lack of support in the generation stage. The alternatives presented do not provide comprehensive toolsets for the engineering process _as is_; instead, engineers have a choice to model their workflows using third-party software before using a WFM solution. In general, modeling software tools provide the functionality to output a machine-readable document from a visual representation of the workflow. Ideally, this should be understandable by any WFMS. Given the lack of standardization in the domain, this target is currently unachievable, as each software vendor has custom output formats. Therefore, the presented solutions require engineering effort to manually translate designs into the format used by each system unless they are integrated into a software suite that provides modeling. A commonality emerges between the solutions proposed when it comes to the modeling the representation of workflows, as no solution supports more than a single modeling language. The solutions use different languages to represent and implement the workflow (such as BMPN, BPEL, CPN, etc.). We even found novel composed solutions in which each workflow has a different scope and uses a different language for representation. In such cases, the systems can collaborate such that each one handles the workflows they can interpret and executes the corresponding part in its domain. Even so, there are no solutions so far that can accept workflows in different modeling languages as their input. This can be attributed to the need for interoperability in the field, as there are too many language standards, which could have resulted from the absence of a language powerful enough to comply with the requirements of every use case. However, this can also be attributed to the differences in scope between the goals pursued by each solution. The solutions use the same strategy for the architectural approach to web service composition. They all rely on an orchestration strategy to compose web services, reflecting a lack of the adoption of workflow choreography strategies. In each case, the controlling party of the orchestration is the software system provided as the WFM solution, which can interpret the workflow model and execute the calls for the services. Similarly, most solutions rely on a centralized system to provide the corresponding workflow recipe. These systems exist in organizations with hierarchical structures, where a system can globally coordinate operations but can present a single point of failure, which negatively affects reliability and availability. Having a decentralized source prevents these issues, but poses other problems when coordinating workflows and security. Taking a closer look at the content of Table 1, we can see that all the solutions presented in this work have similar parallel execution capabilities. Being able to execute several workflows in parallel and perform multiple service requests is considered a must for a workflow support system, as this enables them to work with asynchronous services. Although no quantitative measures are provided, commercial systems are expected to provide a better performance with regard to the number of parallel workflow instances, service requests, and qualities of service (QoS). Moreover, a feature that seems less relevant and is lacking in most solutions is the _support for user or human tasks_. The investigated solutions generally do not focus on automating tasks that require user input and do not include users as resources. Instead, the focus has been on software systems that can work autonomously by design.