Overview

The Activiti Engine will have a clear focus on being light weight and easy to use for Java developers. In that respect, Activiti will continue on the successful path that we started at jBPM. The big difference between Activiti and jBPM will not be in the engine, but in the more sophisticated tools that we'll be able to build on top.

Here we explain in a bit more detail how the different Activiti components combine to form a complete solution for BPM in the full context of software development.

Activiti Components

Activiti Engine

To see concrete how this works concrete with processes and API, check out our 10 minute tutorial

Features

This is the heart of the Activiti project.  It's a Java process engine that runs BPMN 2 processes natively.  It will have the following key properties:

A couple of features deserve extra highlighting because they improve the collaboration between non technical business users and technical developers.

First of all event listeners.  That features allows to execute an out-of-the-box action, a piece of custom Java code or a script upon certain events in the diagram.  This means that developers can decorate a process with extra technical details that don't show up in the diagram.  This improves the collaboration between business people and technical people as the business people will not be confronted with technical aspects in the diagram.

Secondly custom activities.  Activiti Engine comes with BPMN support and a lot of activity types out-of-the-box.  But non technical business people might still create an extensive description with a certain activity that doesn't match any of the activity types.  In that case, the developer has 2 options.  One option is to iterate back to the business person and propose a different model based on existing activity types.  Or --and this is unique for Activiti--, the developer can write a custom activity in Java code that implements the complex behaviour described by the business person.  In that case the diagram will remain as given by the business person, simplifying communication between business and IT.

Another innovation that you can expect from us are BPMN shortcuts.  When we previous developed jPDL, we got great feedback from the community about the compactness and readability of that language.   BPMN is very readable, but in some areas a bit too verbose.  But we also realize that standards support is vital for open source so we are very committed to BPMN 2.0.  For those specific areas where BPMN 2.0 is too verbose, we'll introduce shortcuts.   For example a simple activiti attribute might be introduced that is equivalent for a more verbose BPMN 2.0 XML section.  Note that these are not proprietary extensions as it is always translatable to valid (but longer) BPMN XML.  It's only a mechanism to allow for more compact XML descriptions.  And we'll be collecting the feedback form the community and feed that information back into the specification.

The Process Virtual Machine

The Process Virtual Machine is the architectural base layer of the Activiti Engine. It allows for easy pluggability of activity types, features and complete process languages. The core Activiti team is dedicated to building out the native BPMN 2.0 process language. BPMN 2.0 will be the predominant language used on the business side of BPM. And hence we want to simplify the bridge between business modeling and making those processes executable.

But there are many developer oriented process languages that are very easy to build on the Process Virtual Machine. One candidate language for which we call out to the community to help us is jPDL 4. We will support and encourage the community to build out jPDL 4 and other domain specific process languages. There are numerous other languages that could be build on top of the Process Virtual Machine. We even envision companies building their own variants of domain specific process languages.

Activiti Explorer

Activiti Explorer is an example web application that provides access to the Activiti Engine runtime for all users of the system.   It includes task management, process instance inspection, management features and viewing reports based on statistical history data.

Task management

Primary use cases:

Manager use cases:

Process owner use cases:

Management

Reports

All events related to process instance executions are stored in a process history database.  Since the steps/activities in the original process definitions are meaningful to business people, the statistics on these activities can contain very interesting information for business people.  For example, the average time spend in each activity or the average deal size per country. 

Process instance inspection

Process owners and admins should be able to inspect the runtime details of process instances.

Table based process design

A simple process-designer is included in Explorer, formerly known "Kickstart". This allows you to build simple processes with a table-based view and allow adding form's to the created process. This is an example of how you can leverage the BPMN 2.0 pojo model to create processes on the fly, without the need for an advanced editor or XML-editing.

Activiti Modeler

The Activiti Modeler can be used to author BPMN 2.0 compliant processes graphically using a browser. The process files are stored by the server in a database model repository.

The Activiti Modeler is no longer under active development by the core team, but remains available as part of the Activiti Explorer web application.

Activiti Designer

The Activiti Designer is an Eclipse plugin which allows you to model BPMN 2.0 processes from within your IDE-environment. It also has built-in support for the activiti-specific extentions to enable you to use the full potential of both the processes and the engine.

There are various plugability-points to allow for additional building-blocks to be added to the process on top of the regular BPMN 2.0, tailored for your specific use-cases and business-domain.