Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Activiti 5.0 GA, the Apache 2 Licensed BPMN 2 Engine Released

Activiti 5.0 GA, the Apache 2 Licensed BPMN 2 Engine Released

This item in japanese

Alfresco has just released version 5.0 GA of the Activiti engine, an Apache2 licensed BPMN 2.0 implementation. InfoQ talked with project lead Tom Baeyens on the new release. Tom is also the creator and former project lead for the jBPM project.

The Activiti project is the only Apache2 licensed BPMN 2.0 implementation on the market right now. BPMN 2.0 is notable as a unifying standard for the workflow community. BPMN 1.0 defined a standard for modeling business processes and many of the well-defined workflow patterns. BPEL 1.0, another standard, defined the execution semantics of a workflow process in a runtime. Often, vendors provided BPMN 1.0 tooling and a BPEL execution engine. Problems arose however because it was possible to model BPMN 1.0 processes that couldn't be described in BPEL, which limited the applicability of BPMN. BPMN 2.0 fixes this by specifying both the modeling semantics as well as the execution semantics.

InfoQ What is workflow and why should the average Java developer care? What are the use cases?

Tom Baeyens A process is a description of sequential steps that can be executed by a BPM system like Activiti. A fundamental property of processes is that they can be represented as a diagram showing the steps and transitions in the form of a directed graph. In almost all business applications the requirements contain a sequence of high level steps. Extracting those steps into a process will result in a cleaner, simpler and easier to maintain application. And Activiti contains a lot of steps like user tasks and timers that are easy to use in a process, but hard to write yourself in Java.

InfoQ Can activiti be embedded? Used standalone? What different ways of using it or embedding it are supported?

TB Activiti can be embedded in any Java application. To Java developers, it's just a .jar that they have to put in their CLASSPATH. But Activiti can also be used as a standalone server.

InfoQ Why should somebody use activiti instead of alternative BPM engines?

TB Activiti is the easiest engine to get started with. We have made sure that all hurdles to embed it into your application have disappeared. There is even a demo setup that gets you up and running to evaluate Activiti in less then a minute. Activiti is transparant. Meaning that there is no magic going on. Developers know exactly what they get and how to get it. They are in full control. That is unlike the traditional BPM approach that was more focussed on the business users and that didn't take the developers needs into account. Also at runtime we allow for very tight integration between Java apps and Activiti whereas typical BPM products are monolithic and hard to integrate with an app. Activiti has a vibrant community. There are a lot of integrations that companies are making with Activiti. If you're using Spring Integration or an ESB, chances are good that it integrates with Activiti. See the team roster to see the contributors to the project, and to get an idea to what contributions exist.

InfoQ What is in the roadmap for the next iteration of activiti?

TB We're currently on monthly release cycle. On December 1st we're releasing 5.1, January 1st we'll be releasing 5.2 and so on. There are some very exciting features that we're planning like rules integration, web service integration, activity type pluggability in the modeler and so on. More details are available in the roadmap.

InfoQ What are the recommended ways for people to get started with Activiti? Does it integrate well with other frameworks (like the Spring framework, REST, Mule or alternative ESBs, Java EE6, and enterprise content management systems)?

TB To get started with Activiti I definitely recommend the demo setup and the userguide. We recommend that you select a small pilot case in your organisation when you start to use it for the first time. Once you got the hang of it, it will take you hours of weeks to build fully functional prototypes of applications. In the architecture of the Activiti Engine, we've made sure that it could integrate with all existing Java environments and frameworks. It's great to see a lot of companies help us build those integrations. SpringSource, for example has made sure that the whole engine can be configured by just declaring a bean in your Spring context file. That even includes smooth transaction management integration. Another example is MuleSoft. They are contributing web service invocation capabilities and also make sure that the Activiti Engine embeds nice in their products. There's already an out-of-the box REST interface. In the next release we plan to have documented support for how to configure and run Activiti in an app server environment. The code should be ready to do that, but we want to setup our CI environment for it before we expose this features in the docs.

InfoQ what is the target market for activiti and workflow in general? Are there tools to facilitate business analysts, as well as developers?

TB There are very distinct ways of how teams make use of a BPM platform like Activiti. Some teams are only developers and they just embed the engine in their apps and write the processes. In other environments, there are business people involved as well as developers and system administrators. Each organization has their own way of organizing this collaboration. With Activiti Cycle, we now have a collaboration environment where all these people can interact and collaborate without enforcing any particular way of working.

InfoQ Where should people go if they have questions?

TB Our user forum is the best place for people to ask all their questions

InfoQ What are the compelling motiviating reasons to use BPMN 2? Why switch from a proprietary markup language like jBPM's jPDL to BPMN2?

TB The nice part about BPMN 2.0 is that the whole industry is aligned around this one standard. Where before all tools and engines had their own proprietary language, now a vast number of tools are compatible with Activiti just because we support that standard.

InfoQ If there are problems using BPMN2, is it possible to customize Activiti and add new behavior?

TB When I created jBPM, one of the key goals was to create activity pluggability. This means that it should be possible to plug in new types of steps that you can include and configure in a process diagram. We succeeded in that goal with the design that we called the Process Virtual Machine. Activiti now also is based on the principles of the Process Virtual Machine. But this time, we're rolling out the same activity pluggability also to the tools around it. Activiti includes a web based modeler and an graphical process designer eclipse plugin. The goal now is that you just annotate your class that implements the runtime behavior with the names of the labels and some other information. Currently the designer eclipse plugin can already load that information from your classes, add your new activity type to the pallete and provide the user with a nice form to enter the configuration details for such activities.

Rate this Article