Imixs Workflow 4.2.6 Released

The latest version 4.2.6 the open source workflow engine Imixs workflow is now officially released. Imixs-Workflow is a human centry workflow engine based on BPMN 2.0 and Java Enterprise. The new release contains several improvements of the Rest API as well as the Workflow Scheduler Feature which allows the automated execution of business processes.

Version 4.2.6 is also the official pre-release for the new Archive Feature of Imixs-workflow. The Imixs-Archive Feature is a comprehensive extension of the Imixs-Workflow technology. Process instances of a business process can now be stored and analyzed in an external archive system in a technology-neutral way. This also significantly improves the big-data analysis capabilities of business processes with the help of Imixs workflow.

The release Notes of version 4.2.6 can be viewed via GitHub.

Imixs-BPMN – Version 1.4.7 Released

The open source project Imixs-BPMN has released version 1.4.7. Besides the integration into the Eclipse platform Oxygen, the new version offers various improvements in modeling business processes based on the BPMN 2.0 standard.

Imixs Workflow is a human centric workflow engine that allows to model and to execute human-2-human business processes. Based on the Eclipse platform, Imixs-BPMN offers a professional and stable platform for modeling within the BPMN 2.0 standard. Both, responsibilities and access rights, as well as individual business rules can be modelled graphically.

Version 1.4.7 now represents business rules – so called ‘ conditions ‘ – and access rights (ACL) in a graphical way. This makes it easier to create process models and control them during the design phase.

In addition, Imixs-BPMN now supports so-called ‘Conditional-Events’ and ‘Split-Events’. The former can be used to model decisions based on business rules. Split-Events support parallelism. Split-Events play an important role for the mapping of audit-safe business processes. These new features increase the transparency of complex processes within an organisation.

Imixs-BPMN is open source and part of the Imixs-Workflow technology. The IMIXS Software Solutions GmbH supports enterprises and organisations in the development and implementation of digital business processes.

Improved Build and CI Support

The Imixs-Workflow project has now joined the Travis CI platform. With this CI and Build plattform the current build status of Imixs-Workflow can be easily monitored by the community. This increases the transparency and stability of our open source project. This Travis CI runs all the tests of the Imixs-Workflow and Imixs-BPM automatically. The check-in of pull requests will also be monitored. Committing improvements and bug fixes by the community becomes now easier.

The current build status can be checked here.

Imixs-BPMN – Data Objects

With the latest version 4.2.5, the Imixs-Workflow Engine, is now supporting BPMN Data Objects. This kind of model element can be used to model more complex wokflows processing input data:

With this new feature any kind of data object – e.g. a XML or HTML templates – can be associated with a BPMN Task. As a result, the task element will provide these data objects in the new item ‘dataObject’. This item can be injected into a running process instance. See the following code example which is injecting a ‘Invoice HTML template’ into a workitem:

...
ItemCollection task = model.getTask(1000);
List<List<String>> dataObjects = task.getItemValue("dataObjects");
if (dataObjects.size()>0) {
    List<String> firstDataObject = (List<String>) dataObjects.get(0);
    String templateName = firstDataObject.get(0);
    String content = firstDataObject.get(1);
    logger.info("DataObject name=" + templateName);
    logger.info("DataObject content=" + content);
  }
  if ("Invoice Template".equals(templateName) {
    // inject data...
    workitem.repalceItemValue("htmldocument",content);
  }
}
....

DataObjects are part of Imixs-Office-Workflow Version 3.2  to provide an easy and flexible way to create documents and templates during a business process.

Imixs-Cloud – a Lightweight Docker Swarm Environment

The Imixs-Project started the new subproject Imixs-Cloud.

Imixs-Cloud is a conceptual infrastructure project, describing a way to create a server environment for business applications. One of the main objectives of this project is to focus on simplicity and transparency. The general idea is to setup a lightweight docker based infrastructure with docker swarm. Within this infrastructure business applications like Imixs-Office-Workflow can be deployed in a fast and easy way.
Imixs-Cloud is developed as part of the Open Source project Imixs-Workflow and continuous under development. To contribute to this project please report any issues here. All source are available on Github.

Imixs-Workflow 4.2 Released

With version 4.2.0, the second minor release of Imixs-Workflow version 4 is now available. After the stability and performance improvements of version 4 were confirmed with the minor update 4.1, now the first feature update has been released. Imixs-Workflow 4.2 offers a number of additional features and technical improvements.

BPMN Modelling

Version 4.2 offers some awesome new possibilities to model a business process with BPMN 2.0. This includes, for example, the modeling of conditional events. A conditional event can be used to evaluate the output of an event during the processing life-cycle. The conditions can be easily added into the output flows.

conditional events

The business rules can be written in JavaScript or any script language supported by the JVM. E.g ’JavaScript or ‘Groovy’.

Another modelling improvement are the so called “Split-Events”. A Split-Event can be used to create new versions of the current process instance during the current processing life-cycle.

split event

A Split-Event creates a new version of the current process instance that can be immediately processed in parallel or stored in an archive state.

These new functions make modeling business processes more transparent and clearer.

The CDI Observer Pattern

The Imixs-Workflow engine provides now an observer pattern based on a set of CDI events. The events are fired when a process instance is loaded or updated. The observer pattern is part of the Java Enterprise Specification and can be used to adapt the behavior of workflow functionality in a powerful way. For example, the new archive feature adapts the persistence mechanism of Imixs-Workflow to transparently archive business data into various external archive systems.

Simulation & Testing

The project provides now a new Simulation Engine to be used to simulate the outcome of a concrete process instance based on a BPMN 2.0 model. This can be used in test- as also in production mode and enhances the test functionality of Imixs-Workflow. A lot additional improvements in JUnit tests are also part of this update.

All these additional functions increase the stability of Imixs-Workflow and allow developers the creation of highly scalable business applications. Find all release notes on GitHub.

JSON Web Token and JASPIC

The Imixs Project started a new JSON Web Token project called Imixs-JWT.

Imixs-JWT is a compact easy to use library to generate and verify JSON Web Tokens. The library is based on maven and can be add with the following dependency available from Maven Central:

<dependency>
 <groupId>org.imixs.jwt</groupId>
 <artifactId>imixs-jwt</artifactId>
 <version>1.0.0</version>
</dependency>

The following example shows how to build a JWT in Java:

import org.imixs.jwt.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.SecretKey;

...
// We need a signing key...
SecretKey secretKey = HMAC.createKey("HmacSHA256", "secret".getBytes());
String payload="{\"sub\":\"1234567890\",\"name\":\"John Doe\",\"admin\":true}";
JWTBuilder builder = new JWTBuilder().setKey(secretKey).setJSONPayload(payload);
System.out.println("JWT=" + builder.getToken());

// will result in:
// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
// eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
// TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

JASPIC Auth Module for JWT

The project also provides a JASPIC authentication module. JASPIC is an authentication standard and can be used in Java EE application servers. The module was tested with Wildfly 10 and can be used also with different application servers.

Imixs Joins the Java EE Guardians

The Imixs Software Solutions GmbH and the Open Source projekt Imixs-Workflow has joined the Java EE Guardians.

The Java EE Guardians is an independent group of people interested in moving Java EE forward. The purpose of this group is advocacy, raising awareness, finding solutions, collaboration and mutual support. We believe that together – including Oracle – we can prove that this is the dawn of a new era for an ever brighter future for Java, Java EE and server-side computing.

The Imixs-Workflow project supports the Java EE Guardians with a series of articles about the Java Enterprise Architecture. We published a new architectural approach to control a complex business process within a Microservice architecture running on the Java EE Stack.

The Imixs-Workflow project has evolved over several years and has been following the Java EE standard from the beginning. As a result, we were able to work with a stable code base and benefit directly from a multitude of modern software concepts. Some code of the Imixs-Workflow project has not changed over the years, other code was simplified by introducing new and modern language concepts within the Java EE platform. This will enable developers, community members and our customers to benefit from the sustainable and modern Java EE platform.