Activiti BPM Suite – Sweet!

There are definitely changes afoot in the open source BPM market, with both Alfresco’s Activiti and camunda releasing out-of-the-box end-user interfaces and model-driven development tools to augment their usual [Java] developer-friendly approach. In both cases, they are targeting “citizen developers”: people who have technical skills and do some amount of development, but in languages lighter weight than Java. There are a lot of people who fall into this category, including those (like me) who used to be hard-core developers but fell out of practice, and those who have little formal training in software development but have some other form of scientific or technical background.

Prior to this year, Activiti BPM was not available as a standalone commercial product from Alfresco, only bundled with Alfresco or as the community open source edition; as I discussed last year, their main push was to position Activiti as the human-centric workflow within their ECM platform. However, Activiti sports a solid BPMN engine that can be used for more than just document routing and lifecycle management, and in May Alfresco released a commercially-supported Alfresco Activiti product, although focused on the human-centric BPM market. This provides them with opportunities to monetize the existing Activiti community, as well as evolving the BPM platform independently of their ECM platform, such as providing cloud and hybrid services; however, it may have some impact on their partners who were relying on support revenue for the community version.

The open source community engine remains the core of the commercial product – in fact, the enterprise release of the engine lags behind the community release, as it should – but the commercial offering adds all of the UI tools for design, administration and end-user interface, plus cluster configuration for the execution engine.

Activiti Administrator cluster monitoringThe Activiti Administrator is an on-premise web application for managing clusters, deploying process models from local packages or the Activiti Editor, and technical monitoring and administration of in-flight processes. There’s a nice setup wizard for new clusters – the open source version requires manual configuration of each node – and allows nodes within the cluster to be auto-discovered and monitored. The monitoring of process instances allows drilling into processes to see variables, the in-flight process model, and more. Not a business monitoring tool, but seems like a solid technical monitoring tool for on-premise Activiti Enterprise servers.

The Activiti Editor is a web-based BPMN process modeling environment that is a reimplementation of other open-source tools, refactored with JavaScript libraries for better performance. The palette can be configured based on the user profile in order to restrict the environment, which would typically be used to limit the number of BPMN objects available for modeling in order to reduce complexity for certain business users to create simple models; a nice feature for companies that want to OEM this into a larger environment. Models can be shared for comments (in a history stream format), versioned, then accessed from the Eclipse plug-in to create more technical executable models. Although I saw this as a standalone web app back in April, it is now integrated as the Visual Editor portion of Kickstart within the Activiti Suite.

Activiti SuiteThe Activiti Suite is a web application that brings together several applications into a single portal:

  • Kickstart is their citizen development environment, providing a simple step editor that generates BPMN 2.0 – which can then be refined further using the full BPMN Visual Editor or imported into the Eclipse-based Activiti Designer – plus a reusable forms library and the ability to bundles processes into a single process application for publishing within the Suite. In the SaaS version, it will integrate with cloud services including Google Drive, Alfresco, Salesforce, Dropbox and Box.
  • Tasks is the end-user interface for starting, tracking and participating in processes. It provides an inbox and other task lists, and provides for task collaboration by allowing a task recipient to add others who can then view and comment on the task. Written in Angular JS.
  • Profile Management to , for user profile and administration
  • Analytics, for process statistics and reports.

The Suite is not fully responsive and doesn’t have a mobile version, although apparently there are mobile solutions on the way. Since BP3 is an Activiti partner, some of the Brazos tooling is available already, and I suspect that more mobile support may be on the way from BP3 or Alfresco directly.

They have also partnered with Fluxicon to integrate process mining, allowing for introspection of the Activiti BPM history logs; I think that this is still a bit ahead of the market for most process analysts but will make it easy when they are ready to start doing process discovery for bottlenecks and outliers.

I played around with the cloud version, and it was pretty easy to use (I even found a few bugs Smile ) and it would be usable by someone with some process modeling and lightweight development skills to build apps. The Step Editor provides a non-BPMN flowcharting style that includes a limited number of functions, but certainly enough to build functional human-centric apps: implicit process instance data definition via graphical forms design; step types for human, email, “choice” (gateway), sub-process and publishing to Alfresco Cloud; a large variety of form field types; and timeouts on human tasks (although timers based on business days, rather than calendar days, are not there yet). The BPMN Editor has a pretty complete palette of BPMN objects if you want to do a more technical model that includes service tasks and a large variety of events.

Although initially launched in a public cloud version, everything is also available on premise as of the end of November. They have pricing for departmental (single-server up to four cores with a limit on active processes) and enterprise (eight cores over any number of servers, with additional core licensing available) configurations, and subscription licensing for the on-premise versions of Kickstart and Administrator. The cloud version is all subscription pricing. It seems that the target is really for hybrid BPM usage, with processes living on premise or in the cloud depending on the access and security requirements. Also, with the focus on integration with content and human-centric processes, they are well-positioned to make a play in the content-centric case management space.

Instead of just being an accelerator for adding process management to Java development projects, we’re now seeing open source BPM tools like Activiti being positioned as accelerators for lighter-weight development of situational applications. This is going to open up an entire new market for them: an opportunity, but also some serious new competition.

Activiti 2014 

Activiti Update 2013: New Functionality And New Partners

I had a briefing on the latest version of Alfresco’s Activiti BPM a couple of months back, but decided to wait until the news about their new partners – BP3 and Edorasware – was released before I posted. This strong showing of enterprise support partners is crucial for them following the defection of camunda from the Activiti fold, since many large enterprises won’t deploy an open source product without some level of support from the open source vendor directly or via their partner channel.

Alfresco’s interest in Activiti is as a part of their open source enterprise content management suite: they don’t offer Activiti as a standalone commercial open source product, only bundled within their ECM. Activiti exists as an Apache-licensed open source project with about 1/3 of its main developers – likely representing more than 1/3 of the actual development effort – being Alfresco employees, making Alfresco the main project sponsor. Obviously, Alfresco’s document-centric interests are going to be represented within the Activiti project, but that doesn’t make it unsuitable as a general purpose BPMS; rather, Alfresco makes use of the BPM platform functionality for the purpose of document flow and tasks, but doesn’t force content concepts into Activiti or require Alfresco in any way to use Activiti. Activiti is continuing to develop functionality that has nothing to do with ECM, such as integration with MuleESB.

Activiti was one of the first BPMS platforms to execute BPMN 2.0 natively, and provides full support for the standard. It’s not a “zero-code” approach, but intended as a developer tool for adding high-performance, small-footprint BPM functionality to applications. You can read more about full Activiti functionality on the main project site and some nuances of usage on the blog of core developer Joram Barrez; in this post, I just want to cover the new functionality that I saw in this briefing.

Activiti BPM 5.12 ad hoc task collaborationLike all of the other BPMS out there, Activiti is jumping on the ad hoc collaborative task bandwagon, allowing any user to create a task on the fly, add participants to the task and transfer ownership of the task to another participant. The task definition can include a due date and priority, and have subtasks and attached content. Events for the task are showing in an activity feed sidebar, including an audit trail of the actions such as adding people or content to the task, plus the ability to just post a comment directly into the activity feed. The Activiti Explorer UI shows tasks that you create in the My Tasks tab of the Tasks page, although they do not appear in the Inbox tab unless (I think) the task is actually assigned to you. If someone includes you as a participant (“involves” you) in a task, then it shows in the Involved tab. This is pretty basic case management functionality, but provides quite a bit of utility, at least in part because of the ability to post directly to the activity feed: instead of having to build data structures specific to the task, you can just post any information in the feed as a running comments section. Mostly unconstrained, but at least it’s in a collaborative environment.

Activiti BPM 5.12 table-driven process definitionThe other big new thing is a table-driven process definition as an alternative to the full BPMN modeler, providing a simpler modeling interface for business users to create models without having to know BPMN, or for fast process outlining. This allows you to create a process definition, then add any number of tasks, the order of which implies the sequence flow. Each task has a name, assignee, group (which I believe is a role rather than a direct assignment to a person) and description; you can also set the task to start concurrently with the previous task, which implies a parallel branch in the flow. Optionally, you can define the form that will be displayed for this task by adding a list of the properties to display, including name, type and whether each is mandatory; this causes an implicit definition of the process instance variables. The value of these properties can then be referenced in the description or other fields using a simple ${PropertyName} syntax. You can preview the BPMN diagram at any time, although you can’t edit in diagram mode. You can deploy and run the process in the Activiti Explorer environment; each task in the process will show up in the Queued tab of the Tasks page if not assigned, or in the Inbox tab if assigned to you. The same task interface as seen in the ad hoc task creation is shown at each step, with the addition of the properties fields if a form was defined for a task. The progress of the process instance can be viewed against the model diagram or in a tabular form. Indeed, for very simple processes without a lot of UI requirements, an entire process could be defined and deployed this way by a non-technical user within the Explorer. Typically, however, this will be used for business people to prototype a process or create a starting point; the model will then make a one-way trip into the Eclipse modeling environment (or, since it can be exported in BPMN, into any other BPMN-compliant tool) for the developers to complete the process application. Once the simple table-driven process is moved over to the Eclipse-based Activiti Modeler, it can be enhanced with BPMN attributes that can’t be represented in the table-driven definition, such as events and subprocesses.

There were a few other things, such as enhanced process definition and instance management functions, including the ability to suspend a process definition (and optionally, all instances based on that definition) either immediately or at a scheduled time in the future; some end-user reporting with configurable parameters; and integration of an SMS notification functionality that sent me a text telling me that my order for 2 iPads was shipped. Sadly, the iPads never arrived. Winking smile

We finished with a brief description of their roadmap for the future:

  • Hybrid workflow that allows on-premise and cloud (including instant deployment on CloudBees) for different tasks in same flow, solving the issue of exposing part of process to external participants without putting the entire process off premise.
  • Project KickStart, which builds on the table-driven process definition that I saw in the demo to provide better UI form display (making a real contender as a runtime environment, rather than just for prototyping) and the ability to make changes to the process definition on the fly.
  • Polyglot BPM, allowing Activiti to be called from other (non-Java) languages via an expanded REST API and language-specific libraries for Ruby, C#, Javascript and others.

It’s great to see Activiti continue to innovate after so much change (losing both the original product architect and their main partner) within a short period of time; it certainly speaks to their resiliency as an organization, as you would expect from a robust open source project.

Activiti April 2013 

I also talked with Scott Francis of BP3 about their new Activiti partnership; apparently the agreement was unrelated to the camunda departure, but definitely well-timed. I was curious about their decision to take on another BPM product, given their deep relationship with IBM (and formerly with Lombardi), but they see IBM BPM and Activiti as appealing to different markets due to organizational cultural choices. Certainly to begin with, most of their new Activiti customers will be existing Activiti customers looking for an enterprise support partner, just as many of their new IBM BPM customers are already IBM BPM customers; however, I’ve been in a couple of consulting engagements recently where organizations had both commercial and open source solutions under evaluation, so I’m anticipating a bit of channel conflict here. BP3 has no existing Activiti customers (or any other BPM other than IBM), and has no significant open source contribution experience, but plans to contribute to the Activiti open source community, possibly with hybrid/HTML mobile front-ends, REST APIs architecture and other areas where they have some expertise from building add-ons to IBM BPM. Interestingly, they do not plan to build/certify WAS support for Activiti; although they didn’t see this as a big market, I’m wondering whether this also just cuts a bit too close to the IBM relationship.

Aside from the obvious potential for awkwardness in their IBM relationship, I see a couple of challenges for BP3: first, getting the people with the right skills to work on the Activiti projects. Since the IBM BPM skills are pretty hard to come by, they won’t be redeploying those people, so presumably have to train up other team members or make some new hires. The other challenge is around production support, which is not something that BP3 does a lot of now: typically, IBM would be the main production support for any IBM BPM installation even if BP3 was involved, although BP3 would support their own custom code and may act as triage for IBM’s support. With Activiti, they will have to decide whether they will offer full production support (and if not them, then who?) or just provide developer support during business hours.

Stick A (Open Source) Fork In It: camunda BPM Splits From Activiti

At the end of 2012, I had a few hints that things at Alfresco’s Activiti BPM group was undergoing some amount of transition: Tom Baeyens, the original architect and developer of Activiti (now CEO of the Effektif cloud BPM startup announced last week), was no longer leading the Activiti project and had decided to leave Alfresco after less than three years; and camunda, one of the biggest Activiti contributors (besides Alfresco) as well as a major implementation consulting partner, was making noises that Activiti might be too tightly tied to Alfresco’s requirements for document-centric workflow rather than the more general BPM platform that Activiti started as. I’m not in a position to judge how Alfresco was controlling the direction and release cycle of Activiti, who was making the biggest contribution to the open source efforts, or what was said behind closed doors, but obviously things reached a breaking point, and this week camunda announced that they are forking a new open source project from Activiti, to be known as camunda BPM.

This is big news in the world of open source BPM. There are a few players already – Activiti, BonitaSoft, jBPM and Processmaker, to name a few – and it’s not clear that there’s enough demand for open source BPM software to warrant another entrant. Also, there has to be some hard feelings between the parties here, and this is a small community where you can’t really afford to make enemies, because you never know who you’re going to end up working with in years to come. This parting of the ways is described as “sad” by both camunda in their announcement post and by Joram Barrez (current Activiti lead core developer) in his post, and puts Activiti and camunda in direct competition for both existing Activiti users and future business. Signavio, whose process modeler is deeply integrated with camunda BPM, issued a press release stating that the camunda BPM fork will be good for Signavio customers, and including a nice quote from Tom Baeyens; keep in mind that Signavio just provided the funding for Baeyens’ new startup. It’s like the Peyton Place of BPM.

Leaving the personal (and personnel) aspects aside, camunda BPM is offering some significant additional capabilities beyond what is available in Activiti, mostly through open-sourcing their previously proprietary Activiti add-ons. I had a briefing a couple of weeks ago with Jakob Freund, camunda’s CEO, to get caught up on what they’re doing. camunda is about 20 people now, founded 4-1/2 years ago and completely self-funded. That makes them a bit small for launching an enterprise software product – including the implementation and support aspects – but also not driven to unreasonable growth since they have no external investors to please. Having once grown a consulting company to about twice that size without external funding, I can understand the advantages of maintaining the organic growth: control to pick the projects and products that you want to build, and to hand-pick a great team.

camunda BPM, as with Activiti (and jBPM, for that matter) are not claiming to be zero-code BPM suites – some would argue that even those claiming to be, aren’t – but are BPM engines and capabilities intended to be embedded within line-of-business enterprise applications. They see the zero-coding market as being general tooling for non-strategic processes, and likely served equally well or better by outsourcing or cloud solutions (Effektif, anyone?); instead, camunda targets situations where IT is a competitive differentiator, and BPM is just part of the functionality within a larger application. That doesn’t mean that there’s nothing for the non-technical business analyst here: BPMN is used as a bridge for business-IT alignment, and camunda is bringing their previously proprietary BPMN round-tripping capabilities into the new open source project. Their BPMN plugin for Eclipse provides an easy-to-use modeler for business analysts, or round-tripping with Signavio, Adonis and other modeling tools; camunda blogged back in June 2012 about how to integrate several different BPMN modelers with camunda BPM, although they have a definite preference for Signavio.

camunda BPM is a complete open source BPM stack under an Apache License (except for Eclipse, the framework for the designer/developer UI, which uses the Eclipse Public License). The Community (open source) edition will always be the most up-to-date edition – note that some commercial open source vendors relegate their community edition to being a version behind the commercial edition in order to drive revenue – with the Enterprise (commercial) edition lagging slightly to undergo further testing and integrations. The only capabilities available exclusively in the Enterprise edition are WebSphere Application Server (WAS) integration and Cockpit Pro, a monitoring/administration tool, although there is a Cockpit Light capability in the Community edition. You can see a Community-Enterprise feature comparison here, and a more complete list here. Unless you’re tied to WAS from the start, or need quite a bit of support, the Community edition is likely enough to get you up and running initially, allowing for an easier transition from open source to commercial.

However, the question is not really whether camunda has some great contributions to make to the Activiti code base (they do), but whether they can sustain and build an open source fork of Activiti. They have some good people internally to provide vision – Daniel Meyer for the core process engine architecture, Bernd Rücker for a technical consulting/product management view, Jakob Freund for the business aspects of BPM – and a development team experienced with the Activiti and camunda code bases. They have showed significant leadership in the Activiti open source community and development, so are likely capable of running a camunda BPM open source community, but need to make sure that they dedicate enough resource to it to keep it vital. There is a German camunda community already, but that’s not the same as an open source community, and also is only in German, so they have some work to do there.

And then there’s the existing Activiti and camunda users. Existing camunda customers probably won’t be freaked out about the fork since the contributions important to them were being made by camunda anyway, but existing Activiti users (and prospects) aren’t just going to fall into camunda’s lap: they might be weighing the additional functionality against the bigger company, stable brand and existing community behind Activiti. Given some of the new UI features being rolled into Activiti from the Alfresco team, it’s fair to say that Alfresco will continue to innovate Activiti, and attempt to maintain their solid standing in the open source BPM market. There’s likely a small window for existing Acitiviti users to shift to camunda BPM if they want to: right now, the engine is identical and the migration will be trivial, but I expect that within six months, both sides will make enough changes to their respective projects that it will become a more significant effort. In other words, if you’re on Activiti or camunda now and are thinking of switching, do it now.

camunda could be ruffling a few feathers by declaring an open source fork rather than just rolling their proprietary offerings into the Activiti project; they might have been able to become a stronger influencer within the project by doing that, counteracting any (perceived) document-centric influence from Alfresco. Again, I’m not internal to either of the companies nor part of the Activiti open source community, so that’s just speculation.

Meanwhile, Alfresco remains officially silent on the whole business. Given that they had advance warning about this, that’s a pretty serious PR mistake.