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. The blue components are part of the Activiti scope. The gray components are out of scope.
To see concrete how this works concrete with processes and API, check out our 10 minute tutorial
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 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 is a web application that provides access to the Activiti Engine runtime for all users of the system. It includes task management, viewing reports based on statistical history data and process instance inspection.
Primary use cases:
Manager use cases:
Process owner use cases:
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 owners and admins should be able to inspect the runtime details of process instances.
Activiti Probe is a web application that provides administration and monitoring capabilities to keep an Activiti Engine instance up and running. This is application is aimed at system administrators and operators whom are responsible for keeping systems and infrastructure up and running.
Probe use cases:
The Activiti Modeler is a customized version of the open source Signavio web based process editor. It can be used to author BPMN 2.0 compliant processes graphically. The process files are stored by the server on a central file system. That file system acts as the model repository.
Signavio primary's purpose is to author BPMN 2.0 process diagrams in a browser. But the scope of the project goes beyond just process modeling. They have a stencil set pluggability mechanism that allows them to support various kinds of diagram types like for example organization charts. Signavio normally stores the JSON formatted diagrams in the backend and then it provides export and import to specific file types like BPMN 2. But the backend they they have created specially for us is based on a simple file system and includes the export-import to the specific file format. That way the BPMN 2 processes are stored on the file system in the BPMN 2.0 file format.
Activiti Cycle is completely new type of BPM component. In short, it's a web based application that facilitates the collaboration between business people, developers and IT operational people. It's based on the notion of the Process Cycle Layer. Since it's unlike any other BPM component in the market. We've devoted a complete article to provide a detailed picture of The Process Cycle Layer.