How To Use Business Process Management for Orchestration of Micro-Services, People, and Robots
If your DevOps team is planning process automation, here are a few key things to know about the flexibility of BPM engines and how to implement them properly.
Join the DZone community and get the full member experience.Join For Free
DevOps teams working on automating business processes have a lot to consider on the technical side. Modern applications rely on the speed, flexibility, and innovation of microservices, but business applications often also need to interact with indispensable company legacy or proprietary software and SaaS platforms (like CRMs and ERPs).
The smooth coordination of information systems, applications, and services on the software side when they are needed is called orchestration. In the context of business processes, orchestration involves management of tasks, sequences of tasks, or entire end-to-end workflows with many types of software, systems, applications...and it can also coordinate work done by people and software robots. This makes the orchestration function of a digital automation platform built on a BPMN-standard process engine well suited to manage both technical and human interactions in a business process.
Orchestration is supposed to keep interactions simple and fast! Isn’t BPM only for big, complex flows? On the contrary: a BPM engine is very useful for the orchestration of many small or independent interactions.
Some key advantages of using a BPM engine for orchestration include:
- Better visibility on what is happening in transactions, especially when there are errors.
- Automatic error detection and handling. If human intervention might be needed, that can be included in the workflow logic.
- Access to data on process execution and individual process cases to use for status monitoring, reporting, and analytics. With information on how processes perform, organizations can continuously improve.
- A low-risk way to transition from old systems into modern ones without completely replacing them.
Orchestrating All the Actors: What a Workflow Engine Is Built For
A BPM (Business Process Management) workflow engine allows orchestration—and automation—of any service: microservices, operations managed through APIs, integrations with legacy and proprietary specialty software, integrations with SaaS platforms such as CRS and ERPs platform operations, and more.
Customer-facing and employee-facing systems or applications can involve many interactions between people and systems. A digital automation platform with a BPM workflow engine and a UI integration capability is well suited for orchestrating the mix of what both systems and people need to act on in a process in all the appropriate places.
Let’s consider how orchestration with BPM supports a variety of systems (IS): microservices, API accessible services, legacy systems...and then, the humans and their robotic assistants!
Orchestrating Modern Information Systems: Microservices & Services
Microservices are autonomous deployable entities that can interact with each other directly as needed. Microservices architectures are often used for business applications today, as they allow great flexibility and deployability using cloud-based components.
A complex process can be made up of many smaller, simpler processes, each one managing the workflow of an individual microservice. The BPM engine manages each of the pieces only as they are needed. The BPMN standard, coupled with the BPM engine in a digital automation platform, uses a graphical notation to define the orchestration logic so it is easier to see and understand the whole orchestration picture.
Services in business processes frequently include SaaS, PaaS, and IaaS that are accessed automatically or manually to exchange data and perform operations, usually through APIs. So orchestration of services as needed in a sequence of tasks that make up a business process can be done with a BPM engine through extensions, two-way connections between the engine and the service. BPM engines can handle multiple types of APIs and can even allow creation of custom APIs for proprietary and legacy systems.
Orchestrating Legacy Systems: Monoliths and API-Less
Legacy systems in companies worldwide are still supporting critical functions (Cobol is still running on a lot of mainframes!) These companies face a double challenge—keep up with the flexible, agile competition but also keep their foundational, legacy information systems. Innovative players are successfully integrating a mix of their legacy systems with modern technologies—like platforms to apply data science and analytics.
BPM used for orchestration can be an essential piece of this, to coordinate multiple systems that need to participate in processes to deliver new/better services to customers. If a legacy system is accessible through APIs, then a BPM engine can orchestrate them directly.
Many legacy systems do not have APIs, so software robots provided through RPA are very useful for interacting with legacy “old-school” user interfaces. (See more below on Software robots.)
A BPM engine provides workflow and interface capabilities to manage what people do: work assignment rules, delegation capabilities, management of deadlines, prioritization of work, multiple validation levels, and so on. Orchestration through a BPM engine can help link people and systems where needed so a company or organization can offer superior customer service.
The BPM engine is also easily integrated with user interfaces (web forms). A smooth back-end operation can invisibly fetch customer data from a legacy user database, call the appropriate employee(s) into the process when needed, coordinate all the necessary calls to and from the newest microservices, and ends with a customer who has obtained what they needed, when they needed it, through a pleasant and satisfying interaction.
Orchestrating Software Robots
In recent years we’ve seen a new set of actors emerge: software robots. Robotic Process Automation (RPA) replaces repetitive tasks (or sequences of actions) that might otherwise be done by people.
RPA robots can interface with microservices, services, and other software normally accessed by people through a user interface. These robots perform standardized, repetitive tasks faster and more accurately than humans, and do not get bored or make errors on tedious work like data extraction, data entry, or data search.
A BPM engine can integrate smoothly with RPA robots. It can control the deployment of RPA robots, and orchestrate their role in the process in the same way that it provides two-way access to other software.
Calling a robot to run an operation is conceptually the same as calling a service. However, robots can also have a user interface, instead of interacting only through APIs. As noted in Orchestrating legacy systems above, robots are very useful for interacting with legacy “old-school” user interfaces that do not have APIs. An RPA robot offers a way to access legacy systems in BPM orchestration.
Business process management technology is useful for automating business processes on many levels, offering DevOps teams multiple “ways in” to tie together the wide and deep mix of technologies that the business—and the people in it—depend on.
Published at DZone with permission of Miguel Valdes. See the original article here.
Opinions expressed by DZone contributors are their own.