In this short blog post I want to talk about the concept of workflow engines and what they are really good for. A workflow engine is the most misunderstood concept in modern software development. Many developers still believe a workflow engine is simply the description of steps to go for getting a work done => the Work-Flow.Continue reading “A Workflow Engine is Answering the ‘Why’”
With its latest version, the Open Source Workflow Engine Imixs-Workflow fully integrates the AI Framework SpaCy v3.1. SpaCy has become an industry standard over the last two years with a huge ecosystem. SpaCy can be combined with a variety of plugins and so called pipelines, to process any kind of data within a machine learning environment.
The Imixs Workflow project Imixs-ML follows a generic approach to combine machine learning frameworks with BPMN. The project provides a core API and a Rest Service Interface. This makes it easy to combine the workflow management platform with the AI ecosystem from spaCy. The integration is based on the Imixs Micro Kernel architecture which allows a modern model based development.
The Imixs-ML project is hosted on Gibhub.
Processing Business Documents with AI
An example of how AI can be combined with BPM, is the processing of business documents. The concepts of natural language processing (NLP) with its sub domains of entity recognition and classification allows the analysis of business documents in various ways. For example, payment information like IBAN/BIC and an payment date can be extracted from an invoice document to be processed by the Imixs Workflow engine. With the classification of documents, for example, customer orders can be automatically routed to the responsible sales department. This all is embedded into a continuous learning technology where the Imixs Workflow engine automatically refines the ML models based on the decisions made by humans actors in a specific business process. Starting from scratch is possible even if only a small training database exists.
One new feature of SpaCy 3.1 is the new multi-label classifier. This new pipeline allows the learning of new categories within an existing ML model. For a continuous learning system like Imixs-ML this is a great feature to extract more data from a business task with the help of AI.
The real-time processing of a continuous stream of business data and events is becoming increasingly important in modern IT architectures. This type of architecture, in which events are building the centre of data processing, is also known as a Reactive Streaming Architecture. In the following we will show how to solve some of the related challenges with the help of a workflow technology.
Let’s take a closer look at this type of architecture first. Basically, the event-based processing of data is not new and has actually been developed for decades in various specialized domains such as the financial sector. But since the last few years, new standards for processing data streams have emerged. Technologies like Apache Kafka, Storm, Flink or Spark are gaining popularity and pushing a new hype.
From industrial production systems to multiplayer computer games, so-called Streaming Architectures are used more and more frequently in order to be able to process big data in real time. Streaming architectures have developed into a central architectural element of modern technology companies. In many companies real-time streams have become the core system in their architecture.
The goal is to be able to integrate new system solutions more quickly and to connect any kind of data streams. The streaming architecture is not only found at technology giants such as Ebay, Netflix or Amazon, but today in every modern technology company that is working on the digitization of its business processes. So what are the main challenges in building such an architecture?Continue reading “Stream Analytics with Imixs-Workflow”
With the new release v5.2.0, the open source workflow engine Imixs-Workflow now supports the asynchronous execution of BPMN events.
This feature is a big step forward especially in a microservice architecture. The new so called AsyncEvents make it much more easier to decouple a Rest API call from the processing life cycle of the workflow engine. In this way the request-response pattern shows better performance and allows a very clear design of complex business processes.
The AsyncEvents were already part of the Imixs-Microservice project in a pre-release and become now a core feature of the Imixs-Workflow engine. Especially in more complex architectures, the use of the so-called SAGA Pattern is an important building block. With asynchronous events Imixs-Workflow is now supporting this design pattern as a core feature. Read also our blog about building powerful microservice solutions with the SAGA Pattern.
In my last blog I explained the core concepts behind the Microservice Saga Pattern. In this blog I will address the problem from a more practical perspective by demonstrating how Imixs-Workflow can be used as a Saga Orchestrator within a Microservice architecture. First, I would like to give a brief review of the main concepts of the saga pattern. Later I show some implementation examples.Continue reading “Microservice Saga Pattern with Imixs-Workflow”
Everyone is talking about cloud technologies and of course every modern project relies on a microservice architecture. A variety of technologies and methods contribute to the success of this architecture pattern. But what does cloud native actually mean for the business world? How do companies and organizations implement business processes successfully beyond the big technology promises?
The basic idea of a microservice architecture is to break down the technical requirements of a software system into the smallest possible and therefore manageable services. The advantage: services created in this way can be developed independently of each other with different technologies by different teams. At the same time, we see new methods and technologies to connect, monitor and scale these services.
But just looking at the technology does’t mean that software can be developed faster and better. I would therefore like to compare some of these methods and technologies from the microservice architecture with the requirements for the development of business applications.Continue reading “Cloud Native and Business Transactions”
The ‘Business Process Model And Notation’ standard is a well designed notation for describing business workflows. BPMN 2.0 becomes the standard for modeling business logic and fits very well the model driven software design in agile software projects.
The BPMN language, which is based on XML, was intended for users at all levels, from the business analysts who create the initial design, to the developers who implement the technical details, and finally, to the business users responsible for managing and monitoring the processes. BPMN 2.0 has evolved to become a complete specification trying to fit the needs to all people involved in the design of a business process. But writing BPMN in XML and visualizing business processes becomes nearly impossible without the use of a graphical tool.Continue reading “BPMN 2.0 – The Extension Mechansim”
In the following short tutorial I will explain how you can manage multiple versions of a workflow model and how Imixs-Workflow supports multiple model versions in a productive business application.
The Imixs-Workflow engine supports multiple model versions from the same process model. Each time a running process instance is updated, the Imixs-Workflow engine applies the same model version as the process instance was created with. Therefor the Imixs-Workflow engine compares the internal model version with the model versions provided by the model repository. In case the current model version is no longer supported, the active process instance will be automatically upgraded to the latest version available in the repository. With this feature it is possible to manage different versions of the same workflow process. To distinguish different model versions, you need a versioning concept.
The concept of “Semantic Versioning” from Tom Preston-Werner will be the basis for the versioning method of process models. Applying the semantic versioning, the version number is separated into three digits:
1. 2. 3 | | |-- patch level | |-------- minor version |-------------- major version
The first digit indicates the major version number. This is in our case the general main release of a model. The major version number should only be increased if a general redesign of whole the process model was done.
The minor version number is used for new functions and enhancements in the process flow. For example after adding a new task or a new event, the minor version number should be increased.
The last digit is used for the Patch Level of a model. It indicates bug fixes or changes of naming or wording.
The semantic versioning can be perfectly used for the BPMN model file. This helps you to manage different version within your modellng tool:
We typically prefix the filename with the process name to maintain different workflows in the same directory. In the example above we have an Invoicing workflow in the version 1.0.0. The model file itself should also be stored in a code repository like Git. This allows you to remove deprecated models from your code base.
The Model Version
Also the Imixs-Workflow Model holds a separate version number. This version number is mandatory and can be maintained in the Workflow Profile of the Imixs-BPMN modeling tool:
We prefix the version number again with the process name followed by a two-digit version number. Applied to the “Semantic Versioning” only the Major and Minor Version number is used here!
The reason for this shorter version number is, that the model repository of a business application should not hold different patch levels of the same model. Remember, the patch level is only used to indicates bug fixes or changes of naming or wording. Only if the model is extended functional the minor version number is increased or in case of a new process variant the major version number:
Modelversion File Version Comment ---------------------------------------------------------- invocing-1.0 invocing-1.0.0.bpmn First draft invocing-1.0.1.bpmn typo invocing-1.1 invocing-1.1.0.bpmn additional approval invocing-1.1.1.bpmn change mail message invocing-1.1.2.bpmn change history text invocing-2.0 invocing-2.0.0.bpmn new Invoicing process
In this example version 1.0 of the Invoicing process was first patch with a typo and next extended with an additional approval, which leads to Minor version 1.1. In this version again then some text changes were made. And finally a complete new Invoicing process was designed, with leads to the new Major version 2.0.
From the view of the running process instances only 3 different model versions exist. From the view of the code repository the model file exists in 6 different versions.
With the concept of “Semantic Versioning” process models can be easily handled in different versions. Even if you need to patch an already running model, you don’t need to worry about polluting the model repository of your business application if you use only 2 digits for internal model version.
Today, when you design a modern business application, you have to deal more and more with constantly changing business rules. The reason for this is that not only the software industry follows the agile path. Business processes are also subject to a permanent change. At the same time, however, business processes are becoming increasingly complex as more and more information is influencing our business world. In the following I will show how business processes and their rules can be modeled with the help of BPMN.
With the new version 1.8, Imixs-BPMN is now available for all current Eclipse platforms and also fully integrated into the latest version of Eclipse Oxygen.
Imixs-BPMN in based on the Open Source BPMN modelling tooling for Eclipse Oxygen, which is currently available in version 1.4.3. See the Eclipse BPMN Homepage for what’s new. The current version 1.8 of Imixs-BPMN can be installed from here.
Imixs-BPMN takes the full advantage of all the capabilities from the BPMN 2.0 standard and complements them with the requirements to a modern workflow management system. Imixs-BPMN enhances the Eclipse BPMN2 modelling Framework with the aspects of a human-centric workflow model executable on the Imixs-Workflow Engine.
The Imixs-Workflow engine provides a set of modern Java Enterprise Services to create and manage process instances based on a BPMN 2.0 definition. The Imixs-Workflow engine can be embedded into a Java Enterprise application as well be deployed into a Microservice Architecture as a Docker Container. See the Imixs-Microservice Project for more details.
Also for older versions of the Eclipse Platforms (Eclipse Mars, Eclipse Neon) Imixs-BPMN is still are available.