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.
Like 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.
The 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.
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.
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.
Sandy –
Thanks for covering the Activiti update, and BP3’s part within it! Like you, I’m encouraged by the direction and progress that the Activiti BPM folks have made over the last 6 months, and I think BP3 is well-positioned to help. I thought I’d give you a few updates on BP3 and Activiti –
1. Right, we see open-source vs. commercial as largely a cultural choice within our customer base – so far we haven’t observed any channel conflict at all, but obviously that is something we’ll treat with care. We’ll continue to be a great IBM BPM champion and advocate and partner – and we also aspire to be a great Activiti BPM partner
2. BP3 has had customers on other products – at the time we talked we didn’t have any active projects on other products (We’ve done some work with customers who use Oracle, Bonitasoft, and Appian in the past).
3. Since we talked, we now have established our first Activiti customer relationship.
4. You’re right, we’re not reassigning our Lombardi/IBM BPM consultants -they have their hands full with work already! However, we have the scale and financial wherewithal to hire for Activiti BPM. We’ve already made our first new hire in that area and we’re reassigning one of our technical consultants to it as well.
5. re: support: we are, in fact, providing both development support and production support. Our first customer is a development support customer, but we have a few requests in for production support as well, which we’re working on putting on paper.
It turns out, our investment in building our BP Labs subscription offerings for IBM BPM customers translates well to helping with product (and production) support for Activiti. We’re already staffed in more than one geography and have many of the right skills on that team to cover our needs. We have a couple folks on our team that worked in Lombardi’s support organization, and we understand how to run a support operation – we’ve been thoughtful about our approach to subscription and support services (and after all, Lance and I helped get such services kickstarted at Lombardi as well, so we have some opinions on how it should work).
6. We’re looking at how to contribute a good mobile / UI framework to Activiti, based on what we’ve learned building Brazos for IBM BPM. Fun stuff to figure out.
We have a lot of work to do to prove ourselves in the Activiti BPM community, but I hope that Activiti customers will give us a chance, given our prior investment and reputation within the IBM BPM and Lombardi communities. It is precisely this reputation and mutual respect that led us to work with Activiti BPM folks and Alfresco in the first place! Early signs are really positive –
I would think the mobile/UI framework would be obvious – Maqetta.org (dojo)
Ed, I’ve never seen Maqetta before, do you have any comments on why it’s the obvious choice?
Pardon me but your marketing parade should be honest, still. Since when is this true? Since a future date? Because now this simply isn’t true:
“Activiti was one of the first BPMS platforms to execute BPMN 2.0 natively, and provides full support for the standard”
Take the example of conditional event. It’s not supported in any way…And that’s just an example…
Too bad…
Hi Jik, thanks for your comment. I’m not sure what you mean by “marketing parade”, these were the notes from a briefing that I had at the time of the latest Activiti release. I don’t validate all of the details that I hear in a briefing and I may have misinterpreted something that the vendor said about their product.
In looking at their documentation, it’s clear that they do not support the full BPMN 2.0 standard, although they do support a large subset of it. My bad. I couldn’t find a chart showing exactly what they support, just a list in the documentation, but a good reference is the camunda BPMN support (nice chart at http://docs.camunda.org/api-references/bpmn20/ showing the supported elements in orange) since it hasn’t been that long since the two projects forked.
As for being one of the first to execute BPMN 2.0 natively, that was true in 2010 when Activiti first released (https://www.column2.com/2010/05/open-source-bpm-with-alfrescos-activiti/) – most other engines at that time either ran BPEL or converted BPMN to a proprietary execution language.
I’m just curious which is Jik’s dog in the fight? 🙂
My dog is Activiti! But it should stop doing meow 🙂 I tried jBPM before and I found it too buggy…
Ok, thanks. Maybe I was a bit too harsh and imprecise with my comment. Sorry…
I thought you are doing marketing for Activiti, that’s why I wrote “marketing parade”. The product has lots of great things, especially the querying API and lightweightness, but lacks in other basic areas. I was mainly pointing at the part: “… and provides full support for the standard”. Please, note this is not true. Actually you already mentioned that in your reply-comment. They don’t support conditional event, compensation, transaction and so on. Lots of parts are still experimental. The diagrammer is buggy and incomplete or simply incorrect in terms of symbols. I am even wondering who uses an incomplete product. I would love to, but it became so frustrating to live with all the limitations and bugs which only God knows when will be fixed… The thing is, if you write the things they declare, you are doing what most of the press does these days: they reproduce what politicians say and call it news, instead of them themselves doing their own investigation to gauge reality. Activiti might be good for demos and prototypes, but in my opinion is not usable for production in a strategic way. Simply too risky, in my opinion. My hope is Camunda does a better job, cause I invested a few good weeks in trying to learn Activiti and I have an interest in its success. Just it’s pretty sore until now…
Thank you for your reply.
Jik
Jik, if someone paid me to do product reviews, I’d spend a lot more time on researching the facts for myself. 🙂 Unless I end up working with a vendor product with one of my enterprise clients, I usually don’t have the chance to see all the warts.
I got the idea now. Thank you for clarifying 😉 I am interested in any posts on Activiti and BPM , in general.