Compare Workflow Engines

The term “workflow engine” is not clearly defined in software development and therefore we would like to give a brief overview of different aspects and types of workflow engines in the following blog post.

If you take a look at the Github page awesome-workflow-engines, you will find an impressive number of open source workflow engines. But not all of these engines solve the same problem. The idea behind the term ‘workflow’ can be very different and so the functionality of a workflow engine. In general a workflow is a series of tasks or activities that are required to complete a specific process. Such a process can involve multiple people, teams, microservices or even other IT systems. Thus, it becomes clear that when comparing Workflow Engines, various aspects must be taken into account.

Continue reading “Compare Workflow Engines”

New AI for Automated Document Import

The latest version 4.5.3 of our Business Process Management suite Imixs-Office-Workflow now includes an improved AI module. The system can import documents and automatically recognize and assign their content. For example, incoming invoices and delivery notes can be processed automatically in background. This significantly shortens throughput times in document based business workflows.

The open source module Imixs-ML is based on a machine learning approach in combination with pattern recognition. Good results are achieved even with small amounts of data. In addition, Imixs-Office-Workflow includes a self-learning AI system. This means that the system permanently improves its ability to recognize content from new documents in the background without having to import big training data.

After an automated document import – e.g. from an e-mail mailbox or an Office scanner – the user can check the data and correct it where necessary.

Model Your Business Process Quick & Easily

With the Imixs Workflow Technology, all kinds of business processes can be easily modelled with BPMN 2.0. Even complex approval processes like the 4-eyes principle are supported by the Imixs Workflow engine.

Due to its openness Imixs-Office-Workflow supports many open interfaces to various IT solutions and server systems. Thus, integration into an existing enterprise IT can be done very easily.

Through our consulting concept, we help companies to digitize their business processes. Get in touch with us and find out more!

Imixs-Admin Runs on Jakarta EE 10!

With our latest version 6.0.0 of the Imixs-Admin client we launched our first Jakarta EE10 project. Imixs-Admin is developed with Java 11, Jakarta EE 10 and Faces 4.0. It runs on Wildfly version 27.0.0.Alpha4.

This project is a first prove of concept to demonstrate the compatibility of Imixs Workflow with Jakarta EE 10. In the course of the implementation, we also migrated the Imixs Rest Client library Melman to Jakarta EE 10.

We will soon provide our next version of Imixs-Office-Workflow – a enterprise business process management suite – running on Jakarta EE 10 too.

License Switch GPL-3.0 to EPL 2.0

We consider to switch the licence model for Imixs-Workflow from GPL-3.0 to EPL 2.0. The new license model will affect the Jakarta EE 9 development stream. Older versions of Imixs-Workflow will not be affected from this change.

The Eclipse Public License is a modern license which reflects the norms and expectations of an industry that has changed a lot in the last years. The EPL has been approved by the Free Software Foundation (FSF) and the Open Source Imitative (OSI).

As a weak copyleft license, the EPL is a middle ground of sorts between permissive options (like the MIT License or Apache License 2.0) and strong copyleft licenses (like GPL v2 and GPL v3.) A core requirement of the EPL – one that’s not part of permissive licenses – is that derivative works of EPL-licensed code must also be licensed under the EPL. As such, anyone who distributes a program that constitutes such a derivative work must also make their source code available. Find more details here.

In addition we plan that the new license will include also a secondary license for GPL-2.0+ compatibility. In this way you can still license your work under GPL if you like.

The notion of a “Secondary License” is intended to permit combining content licensed under the EPL-2.0 with an otherwise incompatible license, specifically the GNU General Public License, v2.0 or greater. This means that the content that includes a Secondary License clause may be combined with content distributed under the terms of that Secondary License, and the combined content can be then be collectively distributed under the terms of that Secondary License.

Does EPL-2.0 change the scope of the copyleft?

The EPL-2.0 is a weak copyleft license. In its simplest terms, that means that if you have modified EPL-2.0 licensed source code and you distribute that code or binaries built from that code outside your organization, you must make the source code available under the EPL-2.0.

Can I take a Program licensed under the EPL, compile it without modification, and commercially license the result?

Yes. You may compile a Program licensed under the EPL without modification and commercially license the result in accordance with the terms of the EPL.

Can I modify the EPL-2.0 License?

No. Everyone is permitted to copy and distribute copies of the new Agreement; however, in order to avoid inconsistency, the agreement is copyrighted and may only be modified by the Agreement Steward who reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify the Agreement.

Find also more details see the EPL FAQs. If you have any questions please add your comments here.

Why AWS & Azure Are Not Kubernetes

When you hear about Kubernetes for the first time these days, you might get the impression that Kubernetes has a lot to do with AWS or Azure. If you read blogs or tutorials about Kubernetes or even if you join conferences, AWS and Azure is everywhere. It seems like a stupid idea not to believe that Kubernetes is based on these Internet platforms and can exist outside them.

But Kubernetes is far away from being a product or internet service that is only offered by Amazon or Microsoft. Rather, Kubernetes is an open source platform which is supported and developed by the Linux Foundation. Many people are working on the concepts for this open platform on a daily basis. And the goal of Kubernetes is to provide an open and powerful platform for operating container-based applications and Microservices.

It was never a walk in the park to setup and operate a stable and highly available cloud environment consisting of many servers. With Kubernetes companies and organizations should be enabled to run a server infrastructure for container-based applications by there own. Google has published his own experiences in this area and handed it over to the Linux Foundation in order to share that knowledge with others. And it was never the goal to make a product or put organizations in a dependent situation. On the other hand, it is a big business for companies like Microsoft and Amazon to offer their services based on the concepts of Kubernetes. Binding customers to their platforms is the new way of licencing. And they do a lot of marketing to succeed.

Build Your Own Cluster

Believe it or not, you can set up your own Kubernetes cluster and run it successfully in just a few hours. The concepts of Kubernetes provide many solutions for the problems that normally arise when operating large server environments. The result will be a stable and sustainable cloud infrastructure that you can control yourself.

Of course, Kubernetes is a complex system of many different building blocks. It takes time to get used to it. But today there are also a lot of concepts available to achieve success quickly. So don’t hesitate and take control of your personal cloud platform.

If you like, you can take a look at our open source project ‘Imixs-Cloud‘, which shows a simple and stable approach for the operation of a Kubernetes cluster.

Imixs Workflow & SpaCy 3.1

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.

Dynamic Classification

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.

If you like to learn more about the BPMN and AI start a dicsussion on Github or ask our experts.

Imixs Workflow on Jakarta EE 9

Imixs-Workflow is the first open source workflow engine running on Jakarta EE 9. The latest version 6.0 can be run on every modern application server supporting the new cloud native industry standard. This allows you to digitize your business processes in a modern, portable and open IT environment.

Jakarta EE is a set of specifications that enables the world wide community of java developers to work on cloud native Java enterprise applications. Imixs-Workflow integrates into this technology and provides you a powerfull, stable and sustainable way to map your business processes according to the BPMN 2.0 standard.

For many years, Java EE has been a major platform for mission-critical enterprise applications. Imixs Workflow was founded on this technology from the first beginning. In order to accelerate business application development for a cloud-native world, the Java EE specification moved to the Eclipse Foundation enabling a community-driven collaboration and a more open innovation.

Version 6.0.0 and Java 11

With version 6.0.0, Imixs Workflow adapted the existing technology to the new Jakarta EE 9 specification and modernized various areas of the open source workflow engine. At the same time, with this release, the switch to Java 11 is now completed.

Rule Engine based on GraalVM

The integrated business rule engine of Imixs Workflow is now based on the GraalVM technology. With the new rule engine, business rules can now be written in different popular languages and can be combined with additional features and libraries. This allows the design and the execution of more complex business processes based on the BPMN 2.0 standard.

With the Jakarta EE 9 application ‘Imixs-Process-Manager‘, the Imixs Workflow project provides a reference application for a quick start. The project is hosted on Github.

Imixs Workflow is 100% open source and we invite you to participate in it. There are different ways how you can do that. Join the Imixs Workflow Project now on GitHub. You can help to improve the project by reporting bugs or start a new discussion.

Stream Analytics with Imixs-Workflow

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”

Imixs-Cloud – Running SQL in Kubernetes

For most self managed Kubernetes environments the SQL database is one of the most important infrastructure parts. Typically SQL database servers are not designed to run on distributed nodes in an environment like Kubernetes. One solution is to run a single SQL database in a Kubernetes POD with a distributed filesystem like Longhorn or Ceph. This works well for example with PostgreSQL in most situations. Of course this can have some performance impacts and requires fast SSDs. Another solution is to run a distributed SQL Database like Cockroach. With the latest version of the Imixs-Cloud project we now offer a smart solution to run a SQL Database cluster within a self managed Kubernetes cluster.

Note: CockroachDB does not support the isolation level of transactions required for complex business logic. For that reason the Imixs-Workflow project does NOT recommend the usage of CockroachDB. See also the discussion here.

CockroachDB

CockroachDB is a distributed SQL database with a build in replication mechanism. This means that the data is replicated over several nodes in a database cluster. This increases the scalability and resilience in the case that a single node fails. With its Automated-Repair feature the database also detects data inconsistency and automatically fixes faulty data on disks. The project is Open Source and hosted on Github.

CockroachDB supports a lower level of ACID transactions. This means guaranteed atomicity, isolation, consistency, and durability of data is not the same quality as in a PostgreSQL database . However CockroachDB can be used in combination with Jakarta EE and JPA. Supporting the PostgreSQL wire protocol, CockroachDB can be used with the standard PostgresSQL JDBC driver.

See how CockroachDB can be used within the Imixs-Cloud project .

You can find a install guide here.