Open Source BPM with Alfresco’s Activiti

When Tom Baeyens announced that he and Joram Barrez stepped down from the jBPM project, he hinted about a new project, but details have been sparse until now except for a post that stated that they’re working on an open source BPMN 2.0 offering, plus one that gave unprecedented (for Tom) attention to ECM, which should have tipped me off as to their direction. Turns out that they have both joined Alfresco and are spearheading Activiti, an Apache-licensed open source BPM project, announced its Alpha 1 release today with a planned November GA date. From the press release:

An independently-run and branded open source project, Activiti will work independently of the Alfresco open source ECM system. Activiti will be built from the ground up to be a light-weight, embeddable BPM engine, but also designed to operate in scalable Cloud environments. Activiti will be liberally licensed under Apache License 2.0 to encourage widespread usage and adoption of the Activiti BPM engine and BPMN 2.0, which is being finalized as standard by OMG.

I met Tom face-to-face a couple of years ago when we ended up at different conferences in the same conference center and had a chat about total BPM world domination; interestingly, at the time he expressed that “BPMN should stick to being a modeling notation…and the mapping approach to concrete executable process languages should be left up to the vendors”; obviously, BPMN 2.0 execution semantics have changed his mind. 😉

Activiti Modeler - process designJohn Newton, CTO of Alfresco, and Tom Baeyens, in his new role as Chief Architect of BPM, briefed me last week on Activiti. The project is led by Alfresco and includes SpringSource, Signavio and Camunda; Alfresco’s motivation was to have a more liberally-licensed default process engine, although they will continue to support jBPM. Alfresco will build a business around Activiti only for content-centric applications by tightly integrating it with their ECM, leaving other applications of BPM to other companies. I’ll be very interested to see the extent of their content-process integration, and if it includes triggering of process events based on document state changes as well as links from processes into the content repository.

They believe that BPEL will be replaced by BPMN for most general-purpose BPM applications, with BPEL being used only for pure service orchestration. Although that’s a technical virtuous viewpoint that I can understand, there’s already a lot of commitment to BPEL by some major vendors, so I don’t expect that it’s going to go away any time soon. Although they are only supporting a subset of the BPMN 2.0 standard now – which could be said of any of the process modelers out there, since the standard is vast – they are committed to supporting the full standard, including execution semantics and the interchange format.

Activiti includes a modeler, a process engine, an end-user application for participating in processes, and an administration console. Not surprisingly, we spent quite a bit of time talking about Activiti Modeler, which is really a branded version of Signavio’s browser-based BPMN 2.0 process modeler. This uses AJAX in a browser to provide similar functionality to an Eclipse-based process modeler, but without the desktop installation hassles and the geeky window dressing. It is possible to create a fully executable process model in the Activiti Modeler, although in most cases a developer will add the technical underpinnings, likely in a more developer-oriented environment rather than the Modeler. Signavio includes a file-based model repository, which has been customized for inclusion in the Activiti Modeler; it would be great to see if they can do something a bit more robust to manage the process models, especially for cloud deployments. They are including support for certain proprietary scripting instead of using Java code for some interfaces, such as their Alfresco interface.

Activiti Explorer - end-user interfaceActiviti Explorer provides a basic end-user application for managing task lists, working on tasks, and starting new processes. Without a demo, it was hard to see much of the functionality, although it appears to have support for private task lists as well as shared lists of unassigned tasks; a typical paradigm for managing tasks is to allow someone to claim an unassigned task from the shared list, thereby moving it to their personal list.

The Activiti Engine, which is the underlying process execution engine, is packaged as a JAR file with small classes that can be embedded within other applications, such as is done in Alfresco for content management workflows. It can be easily deployed in the cloud, allowing for cross-enterprise processes. The only thing that I saw of Activiti Probe, the technical administration console, was its view on the underlying database tables, although it will have a number of other capabilities to manage the process engine as it develops. Not surprisingly, they don’t have all the process engine functionality available yet, but have been focusing on stabilizing the API in order to allow other companies to start working with Activiti before the GA release.

Activiti Cycle mockup - design collaborationI also saw a mockup of Activiti Cycle, a design-time collaboration tool that includes views (but not editing) of process models, related documents from Alfresco, and discussion topics. Activiti Cycle can show multiple models and establish traceability between them, since their expectation is that an analyst and a developer would have different versions of the model. This is an important point: models are manually forward-engineered from an analyst’s to developer’s version, and there are no inherent automated updates when the model changes, although there are alerts to notify when other versions of the same model are updated. This assumption that there can be no fully shared model between analyst and developer has formed a part of a long-standing discussion between Tom and I since before we met; although I believe that a shared model provides the best possible technical solution, it’s not so easy for a non-technical analyst to understand BPMN models once you get past the basic subset of elements. Activiti Cycle may not be in GA until after the other components, although they are working on it concurrently.

The screen shots that I saw looked nice, although I haven’t seen a demo yet; Tom gave credit to Alfresco’s UI designers for raising this above just another developer’s BPM tool into something that could be used by non-developers without a lot of customization. I’m looking forward to a demo next month, and seeing how this progresses to the November release and beyond.

One thought on “Open Source BPM with Alfresco’s Activiti”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.