Come on guys/girls/CTOs/CEO/Architects/Developers! there is no battle between jBPM5 and Activiti5. If you are here because you are looking for the right option, I will give you some recommendations to choose one rather than the other. I will not make a detailed comparison between features, instead I will make a more project to project overall comparison (Write me back if you want a feature to feature comparison). I’m not a Red Hat / JBoss or Alfresco employee, so I will express my personal opinion about these two projects and why I decide to write and participate in jBPM5/Drools as a community member.
In this post I will highlight some points about these two projects. However the conclusion is that you can choose either jBPM5 or Activiti5 and they will improve and change the way that you are used to developing applications.
The main similarities between this two projects are:
- BPMN2 process modeling and execution environment
- They are both BPM Systems (implementing the BPM discipline)
- Open Source – ASL (Apache Software Licence)ed
- Both were originally developed by JBoss (it’s not a secret that Activiti5 is jBPM4 design and jBPM5 is Drools Flow code base)
- Maturity, both were written from the scratch and both started about 2 years and a half ago.
- Human Task Life Cycle Management. The only difference between jBPM5 and Activiti5 is that jBPM5 implements the WebService-HumanTask standard to describe the Human Task Management Life Cycle. If you are interested to know about this standard and the advantages of adopting it, you can read the introduction chapter of the WS-HT specification here.
- Both projects uses different flavors of the Oryx editor for modeling BPMN2 processes. jBPM 5 uses a fork for the Open Source project maintained by Intalio. Activiti5 used a different branch maintained by Signavio.
Now, which are the main differences between them?
- The companies / The business model
- The project leaders / Community
- The goals of the projects
- Future / which one should I choose?
Based on these four points and on your personal/company requirements, you can make a long-term decision about which is the best project for you to adopt.
Disclaimer: if you are a java developer learning new technologies, doing your first applications or trying to understand a BPMS, you can take advantage of this comparison. It’s important to notice that knowing both projects will help you to improve your skills, learn best practices, architectural designs, a new way of developing applications, a cool discipline and a bunch of cool stuff. Go ahead and pick one, when you learn the concepts behind one of them, in order to adopt the other, you have to learn a new API, adapt some concepts and learn wider ones.
The companies / the business behind the projects
Both projects are distributed under the ASL (Apache Software License), from the licensing perspective it is exactly the same. You can use both of them without restrictions. Once again, if you are a developer learning something new, both of them will fit perfectly. If you don’t have too much BPM expertise, both of them will look alike.
My community perception about Red Hat and, as far as I know, the Red Hat/JBoss business is about services, the money comes from selling services and support. If you are thinking about spending your money on Red Hat, you can buy support for the SOA Platform Stack. However, until now you cannot buy support strictly for jBPM. This is probably a great advantage, which means that if you buy support from Red Hat, you will get support for the full stack of middleware. Red Hat is specialized in providing that service.
I worked with Alfresco’s CMS and understood how its community works and the business around CMS, but I’m still confused about their business plans for Activiti5. As a company, they can embed the Activiti5 runtime inside the CMS project as they did with jBPM3, or they can sell services about the BPM System solution. In the official web page(www.activiti.org), they don’t mention anything about Alfresco selling Activiti5 services. I’m not sure if Alfresco is planning to provide them in the near future.
The project leaders and the community
It’s well known that all the community members who know JBPM4.x history move to Activiti5 based on the similarity of the code base and configurations. So the jBPM 4.x community is the same as in Activiti5.
New adopters are asking a lot of questions about jBPM5 and Activiti5.
The jBPM5 community will be probably populated by jBPM 3.x users that want to have the official support from Red Hat/JBoss plus the new ones that understand the great advantages of using a BPM System on top of a Rule Engine. The Drools Flow community and those who use it, can easily migrate their application to use the new jBPM5 dependencies. Community migration efforts are already being done and a tool for migration is being developed for those jBPM 3.x users.
You can find some useful links about jBPM5 here:
http://blog.athico.com/2011/01/recent-jbpm-5-blogs-articles-videos-and.html
Please feel free to write me back if you have a specific topic or a set of topics that you want to read about. I really enjoy writing about jBPM5 and Drools, but comparisons are fun too!
Right now, jBPM5 is an independent project separated from Drools but highly integrated with the rule engine. The project leader, Kris Verlaenen, is doing a great job trying to get a first stable release at the end of this month.
On the Activiti5 side both Tom Baeyens and Joram Barrez are doing an excellent job trying to get attention and adoption from their re-branded BPMS.
*add whatever you want here
Project’s Goals
As far as I know, they have very different perspectives and goals. The Activiti5 team is fighting for adoption, while the jBPM5 team is struggling for improving concepts, giving us a new twist, great features and flexibility.
There is no way to say that one is better than the other when they have different goals in their roadmaps. If you are fighting for adoption, you will focus on conferences, tooling and integration. The project roadmap for adoption has short period releases and stable deliverables.
If your project roadmap includes features that were never developed, long period releases will probably be required. From my point of view Drools Flow was an innovative project built from the scratch to show that the interaction between a rule engine with a BPMS gives richer features and a great degree of flexibility to model real situations.
Right now, jBPM5 is a more ordinary project. A lot of the work that is being done now is about tooling and demos to show common usage. jBPM5 will look very good in the next few months, after the first stable release.
Future / Which one should I choose?
There is no simple answer. If you are looking for a simple lightweight BPMS both are good. If this is your first experience with a BPMS, no matter what you choose, you will be happy and you will have trouble with both.
If you want to join a community to contribute to these projects both are good. I can’t give an opinion about the Alfresco community, because I’m not so involved but it looks like an active community. From the jBPM5 perspective you will find a pretty active community as well. Right now, as a result of mixing Drools and jBPM3 communities, you will see strong activity in the Forums and in the IRC channel.
The important question here that you may ask to yourself is:
Am I choosing a BPMS for the next couple of years or is it just for a little project?
If the answer of this question is:
- I’m just starting OR I will create a simple web app that shows the basic features OR the application will not be used by a large amount of users OR the application will not be critical for the organization OR we don’t have complex business processes and we don’t have complex business situations, both projects will work well.
- I need to build a middle-sized application that uses business process extensively, this business processes are not so complex (no more than 20 activities each, without too much exceptional branches) and the application is not critical for the company, both projects will work well.
- I need to build a new architecture that gives me the ultimate flexibility to express complex/ real life business scenarios AND I understand the power of a Rule Engine AND I understand the advantages of using it in conjunction with a BPMS (handling in an unified way my business logic and my business processes, using the same APIs, being as declarative as possible), you really need to try jBPM5! This is not the common case, usually only advanced users that already developed more than one BPM application, notice this kind of advantages. If you don’t know how to leverage the power of a rule engine, both projects will give you the same amount of features. If you analyze the common features of a BPMS, there is no clear advantage between both projects. When you start to understand the power and advantages of the Rule Engine or when you really need a Rule Engine working together with a BPMS,x you clearly know what to choose for the next two years.
Conclusion
As I mention in the post introduction:
You can choose jBPM5 or Activiti5, both will teach you and let you implement the BPM discipline main stages. Both are Open Source and ASL licenced.
If you are not only thinking in adopting a new technology and you already face some BPM implementation with jBPM3/jBPM4 or the old OSWorkflow you probably notice and know the advantages of using a Rule Engine in conjunction with the BPMS. If you are at that point please take a look at jBPM5 and the Drools integration, you will probably be amazed. If you want to take a look at a running application designed using the concept of Rule Engine and BPMS together you can take a look at the following posts. Notice that Drools + jBPM5 offers you a full platform for declarative application programming. Adding important features like the advantages of a CEP engine(Drools Fusion) and a Centralized Repository for all your business assets (Drools Guvnor).
35 Comments
Well thought out comparison and overview. I think there is a subtle difference in the two projects, one is targeting embedding and filling a process engine architectural requirement, the other is filling an architectural layer in your organization.
Business Process Management (BPM) vs Business Enterprise Logic Layer (BELL)
They both have a long ways to go, but for FOSS it is good to see the functionality and reach expanding into the enterprise.
Hi Eric, first of all thanks for reading.
I totally agree with your opinion except that the different is not subtle. I don’t know anyone that understand that difference and choose for a long term adoption the solution that it’s not the one with a wider enterprise focus. I understand that it’s easier to understand just the BPM layer, but when you make a decision for a long period of time you must do a good research in order to choose wisely.
Greetings.
Hi,
Your article explains the differences and similarities between Activiti and jBPM5. As I understand it you haven’t found a lot of differences. When you look more closer at the two projects I do think that there are some differences:
1. Activiti has a very broad set of partners including SpringSource, MuleSource and FuseSource. This brings a lot of functionality to Activiti including OSGi support, Camel integration, Spring integration and web service and Mule support. I don’t see that activity around jBPM.
2. Activiti brings a wider toolset: the Activiti Explorer, Probe, Modeler, Cycle, Designer and Kickstart.
3. There is a lot of confusion surrounding the jBPM project now that the only Red Hat supported version is still version 3. Version 4 was and never will be supported and with version 5 the fusion with the Drools project brings a lot of integration issues and questions to the picture which makes it very hard to have a stable version in the coming months.
Activiti is build from the ground up with a great database model, API and architecture and is stable already.
@Eric I really don’t understand your point about embedded vs filling an architectural layer in your organization. Right, Activiti will be used as an embedded process engine in Alfresco, but as you know jBPM is used for the very same purpose in the current version of Alfresco. So when you look at it, Alfresco is just replacing jBPM with Activiti. As Activiti provides a REST API in addition to the Java API and Spring integration, there are plenty of options to use Activiti in enterprise environments. That could not be said of jBPM (at least 3 and 4), because there was no remoting API available.
Best regards,
Tijs Rademakers
Lead developer Activiti Designer
Author of Activiti in Action –> http://www.manning.com/rademakers2
Hi Tijs,
First of all thanks for reading, now with your comment I have Red Hat and Alfresco guys into the discussion!
Let me add some extra comments about your points:
1) In the first point you mix Partners with Features, and I can only talk about features, because I’m not sure if Red Hat has partners like Alfresco does. So, if you want to talk about Features, the following list also apply to jBPM5:
– Spring -> Done and Working! https://github.com/droolsjbpm/droolsjbpm/tree/master/drools-container/drools-spring
– Mule -> Done, both jBPM and Drools http://svn.codehaus.org/mule/branches/mule-3.x/modules/jbpm/ , http://svn.codehaus.org/mule/branches/mule-3.x/modules/drools/
– OSGI -> Done, for both jBPM and Drools https://github.com/droolsjbpm/droolsjbpm/tree/master/osgi-bundles
– Camel -> Done, https://github.com/droolsjbpm/droolsjbpm/tree/master/drools-camel
You help me to prove that if a developer wants to use a BPM engine can choose one, and the functionality provided by the other project will be more or less the same. I’m not fighting here, I’m just want to show people that both projects can be used for the same environments.
2 and 3) About tooling I have more questions than comments:
, Thanks for that!
a) can you share the location of the Signavio’s designer source code? I would like to understand the differences between the Signavio’s version and the Intalio branch that is currently using jBPM5. If both projects are distributed under ASL license, we as community wants to see the source code and at least know the features provided by both of them. If you can give me light on this I will really appreciate that.
b) You mention that the project itself has more tooling that jBPM5, that’s totally true and it’s pretty cool to see that a company is putting money in order to create really good tooling, but: All this tooling is recently build right? all the tooling is not in version 5, it’s more like version 1 for all the UIs. As always the first versions of the tooling only provide an initial set of features, and usually when money is involved the features selected are just for marketing purposes (I’m not saying that it’s wrong). You cannot say that the tooling is mature enough as the jBPM 4.x code base that takes a lot of time to write, right? Once again, I’m just asking here.. with no intentions to fight. By the way, if are both Open Source Projects, both tooling can be easily shared between projects, making jBPM5 having the same tooling than Activity5. I need to recognize, you just give me a great idea about cloning repositories and make all the Activiti5 tooling available for the jBPM5 runtime environment
c) you mention project stability and supported version and as I mentioned my blog post, can you clarify the Alfresco’s business model around Activiti5? are you guys providing Enterprise support for Activiti5? in your answer you make it look as Alfresco will never want to provide support for Activiti5, because it’s main business model is around the CMS (that for me makes perfect sense). When you mention that Activiti5 it’s being used for the same purpose of jBPM3.x you confuse me more, you mean that Activiti5 has no more new features that the one provided by jBPM3.x? What are the extra features that Alfresco CMS will use from Activiti5 that previous versions didn’t provide?
About the answer to @Eric comment, once again, you just help me to make my point. In my reply to Eric I said:
“I don’t know anyone that understand that difference (between using a BPMS and a BPMS + Rule Engine + CEP) and choose for a long term adoption the solution that it’s not the one with a wider enterprise focus.” What Eric, My Post and I were trying to say is that for a BPMS solution both projects can give a large amount of features, but if you look forward (this is not about if you can embed or use a BPMS as a system) and you want to use a Rule Engine, a Centralized repository for managing your processes and rules and you add the fact that the BPMS will run on top of the Rule Engine, you get an enormous set of benefits in functionality and also at Enterprise Level solution (not just a Business Process Management solution). With just the possibility of doing inferences over your business processes you get a Smarter BPMS.
Good to know that you are writing an Activiti5 book, congrats for that. I’m also writing a jBPM5 Developer Guide and I hope to get it out soon to be able to write more blog posts for the community audience.
I hope to get your feedback about my questions,
Greetings!
Hello, great discussions here. I am very glad that I found your forum where I can understand the differences between the competing projects. We are still in dimemma of how to proceed – jbpm5 or activiti or abandon the open source model at all and go with someone like Oracle.
We are trying to integrate a j2ee application with jbpm5, but we are getting so many errors, and this does not work the same way the example “hello world” flow works. Salaboy’s book is more for jbpm3. Where can I get real help for jbpm5?
The jboss communities is of some help, but not really helping us to resolve the issues. Sometimew I am not sure whether open source is a right choice for these reasons.
I would appreciate any pointers where we can really see some solutions to the problems we are facing.
Thanks,
R
Hi Ravi,
Thanks for commenting here. Reading your comments about open source I was thinking that you probably misunderstood something, at least in my perspective. If you are having troubles with jBPM5 we are here to help, and usually with open source projects you can also switch to the “Oracle” approach paying the community members to help you on the adoption of these new technologies. Using this approach you will pay only for what you need and you will not be tied under any particular contract. What you get from community projects is the flexibility and innovation to solve your problems better and the possibility of integrate with your current solutions. But you need to remember open source != free.
DId you check the jBPM forums and mailing lists? we usually try to answer as much as we can and we are all giving consultancy and trainings. Most of the time the problems and errors comes with the misunderstood of background topics like in this case BPM and Rule Engines.
I’m trying to finish the second version of the jBPM book now completely focused on jBPM5 so stay tuned.
Cheers
Hi Mauricio,
Thanks for your detailed response. First off I’m no Alfresco employee, I’m a Activiti community member and the author for the Activiti in Action book. Second, I’m a big fan of open source projects in general and both jBPM as well as Activiti are great projects. Although I’m a bigger fan of Activiti
First let me respond to your responses:
1. I really meant the community and partner part of Activiti instead of focusing on features. I was not referring to these companies as partners of Alfresco, they are part of the Activiti community. So without any financial agreements these companies are helping the Activiti community to make a better BPM product, of course with mutual benefits. I don’t see these kind of involvement from companies like SpringSource, MuleSource and FuseSource around the jBPM project.
2a You are absolutely right that the Signavia modeler contribution is a bit vague. You can find more information about the source repository and the build procedure at the Activiti Wiki http://docs.codehaus.org/display/ACT/How+to+build+Activiti+Modeler+from+Signavio. Both jBPM as well as Activiti provide a web based modeler based on the Signavio open source code base. So not a lot of differences there. What differs is that Activiti provides integration with the Cycle and Designer tools. Starting with the february 1st release of Activiti you can import a model from the Activiti modeler / Signavio modeler to the Activiti Designer.
2b I agree with you that some tools of Activiti need more functionality to call them really mature. So Activiti Probe needs more reporting functionality, we will a lot of new functionality in Cycle in the coming months and the Designer will also be expanded. But yes I can without any doubt say that the Activiti Engine is a robust, mature and production ready BPM engine. With the work of the Activiti core team (Tom, Joram and Frederik) and their profound knowledge and experience they built a fully new engine that’s rock solid. Activiti Explorer is a very nice tool to do workflow management (although most companies will built their own application) and Activiti Kickstart shows a innovative and easy way to do business process modeling without the need for technical knowledge. Of course both projects can benefit from each other as they are ASL licensed.
2c As you know I’m no Alfresco employee, so I just express my peronal views and opinions. Activiti is an independent project funded by Alfresco. The short term focus for Alfresco is to use the Activiti engine in their CMS system. So it will replace jBPM as its workflow engine. For the longer term I would expect that Alfresco will provide a broader business model behind Activiti and maybe also become a BPM player. But this is not something that you can do in a few weeks, so a lot of investigation, market analysis etc is needed. But you can expect that something will be started in this area. At this moment Camunda and Atos Origin (the company I work for) are providing support, training and consultancy for Activiti.
About my response to Eric’s post I don’t agree that there is a real difference between jBPM and Activiti from an enterprise perspective. I do think that the REST api of Activiti is a real benefit. And right the mixture of processes and rules bring great potential. But even there I see no real difference other than the tighter integration between jBPM and Drools from a project level. It’s clear that the Drools engine is the best open source rule engine. So also Activiti will support the Drools engine as you already mentioned in one of your tweets. A difference may be that Activiti will provide another web interface on top of the Drools engine, in addition to Guvnor.
I think that there are differences between Activiti and jBPM, but that just brings more choice for developers looking for an open source process engine. An idea I was thinking about is that we work out a couple of processes with jBPM and Activiti. In that way we can show the similarities and differences between Activiti and jBPM with plain source code. I think this can help developers with making a choice between both projects. Since we are both writing a book I think we are very capable of taking on this exercise. How would you think about this?
Best regards,
Tijs Rademakers
Lead developer Activiti Designer
Author of Activiti in Action –> http://www.manning.com/rademakers2
Hi Tijs,
I agree with most of points that you mention, and as I imagine this conversion will probably become recursive in the topics (that’s why in my original post I didn’t mention features, “partners”, etc). It’s good to know that this is just a “fans” conversation and not company related stuff.
I notice that we are both agree on Drools(“It’s clear that the Drools engine is the best open source rule engine”) and the Community vision, that’s a big step forward and also “And right the mixture of processes and rules bring great potential.” But the most important in my perspective: “Of course both projects can benefit from each other as they are ASL licensed.”, will help us to show that both projects can provide the same features if the UI’s are shared. The whole point behind my blog post was to mention that jBPM5 and Activiti provides the same features and the advantages from jBPM5 are the one related with the tighter integration with the Rule Engine as you mention: “But even there I see no real difference other than the tighter integration between jBPM and Drools from a project level.” .
I agree with creating plain code samples, and make them both run with Alfresco’s UIs doing a refactoring in all your tooling backend code. I can say without doubt that jBPM5 has all the features required to run with the Activiti’s UIs. As a second step we can show the differences and advantages of the tight integration with the Rule Engine.
Greetings
Hi Mauricio,
I would like to start with the plain code samples. I don’t see a direct benefit from using the Activiti UI in the jBPM and the Activiti examples. Can’t we just start with implementing the same process definition with jBPM and Activiti to show developers the differences and similarities between jBPM and Activiti?
Best regards,
Tijs Rademakers
Lead developer Activiti Designer
Author of Activiti in Action –> http://www.manning.com/rademakers2
Hi Tijs,
I think that for the community having the UIs ready for both projects people will be able to compare core concepts and practices. If we just start with plain code examples, we need to propose a business use case and based on that business use case we can provide different implementations. Remember that jBPM5 is more than a BPMS (running on top of drools), so if you want to use process centric vision for your examples starting with a process definition most of the great advantages of not using a process centric vision (like in jBPM5) will be missed. I agree with creating examples, but you need to recognize that the knowledge based approach in Drools and jBPM5 can cover more situations and use cases than a pure BPMS. If you are agree with defining a business use case and then based on the technology that we choose, we can implement different solutions providing different advantages. At that point I don’t think that we can continue comparing Activiti and jBPM5, because both solution will have different focus, will provide different flexibility and also will present different levels of complexity.
What do you think?
Greetings.. and I really appreciate this kind of tech talks, I hope we can meet and have a long talk about these topics in person. A big part of the learning experience is when you share what you know with others.
Hi
Nice to see your comparison. I’ve a question.
I’ve a BPMN2 script. I want to parse the script and display the process diagram. I know that eclipse has BPMN2 process editor. I don’t want to use that but display the process diagram programmatically. Is it possible to display that? If possible, can you please explain how to do that?
Thank you.
Hi there, I’m not sure what do you want to achieve with that.
But if you have your BPMN2 xml file you can parse it and create a simple representation graph with any graphical library in java.
Greetings
Thank you for your reply. But I’m not sure what API support is available to parse BPMN2 script. I come across JBPM-JPDL.jar. If you have used that, can you please comment on this?
Thank You.
Wow, nice discussion, but too bad it’s now fairly dated (January). Drools now has jBPM5 and is working on a 5.2 release. JBoss doesn’t offer support for it yet, but is (from what I hear) gearing up for it sometime around March 2012. I don’t really know what’s up with Activiti, but I know they really have something against jBPM and JBoss. As far as “supporters” go, Mule doesn’t have a current integration solution for jBPM5, having thrown their support to Activiti.
If anything, this discussion has left me more confused than anything. I was hoping to get some clarification on the strengths and weaknesses of each, but now I’m just scratching my head more than ever… It sure would be nice to see a CURRENT comparison of the two products. Did that comparison of the two using similar workflows ever materialize?
I don’t think that much has changed. I certainly don’t understand your point about Activiti having something against jBPM and/or JBoss. It’s a great thing about open source that you can compare these two process engines and even look into the source code and the unit tests, which one you like most.
Best regards,
Tijs Rademakers
PS I do work for Alfresco now
In the history of the Activiti project, they sounded upset at JBoss for abandoning jBPM4, that’s all.
In my perspective the discussion is still relevant. in a simple sentence ” if you just want a BPMS both can do the work, when you need something else and smarter (knowledge based/smart solutions) jBPM5 + Drools can help a lot”
As I mention in some of my comments, doing that comparison will not help if you don’t understand the previous sentence.
Cheers
Well, I know this wasn’t meant to be a general sounding board for jBPM5/Activiti issues, but I just wanted to throw my hat in here again. Because of some issues beyond my control, I’ve switched from jBPM5 to Activiti. My first impressions:
* In general, the Activiti documentation is better than the jBPM5 documentation. This is a big deal to a person like me who loves and depends on complete, accurate documentation. This is not to say the Activiti documentation is error-free; I found several errors that cost me hours of productivity. To their credit, the developers acknowledged the errors and pointed me to some resources that did work. But even though it is better than jBPM5, the Activiti docs could be even better.
* Activiti worked straight “out of the box”. I had continuous errors with jBPM5 that I never got fully resolved, but Activiti worked correctly the first time I tried it. It even works under the lighter-weight Tomcat server (as opposed to the full JBoss AS that jBPM5 requires).
* High learning curve. With jBPM5, I was up and setting up custom (test) workflows within about a day. I’ve been researching Activiti for almost a week now, and I still have no idea how to create a workflow that actually does anything, even just something silly like print out a string to console.
* Community is responsive. The community is just about as responsive as the jBPM community, so this is a wash, comparatively. But I’ve gotten timely (normally within a day) responses to my questions. This is critical with a community developed system like Activiti. So I give Activiti high marks on this, but the jBPM5 community is just about as responsive. I guess the only way Activiti could score better on this point would be to answer all of my queries within minutes, as opposed to hours, which is of course probably impossible.
* Graphically, Activiti is good. The web interface is cleaner than jBPM5 (which looks like it was just hurriedly hobbled together) and is easy to use. It looks like it’s actually complete and some thought went into it. The Eclipse workflow builder is cleaner than jBPM5′s, though could use some color (why so monochromatic?).
* The tutorials suck. Activiti “comes with” one “10 minute” tutorial. It’s fine, though riddled with errors. All the online tutorials I’ve been able to find for Activiti are (1) outdated and don’t represent the current implementation of Activiti and (2) are just incomplete (these tutorials were not written by or hosted on Activiti.org). The tutorial authors seem to assume you know everything they do, and skip numerous critical steps. Some complete and accurate tutorials and sample projects for Activiti are sorely needed. I look forward to the day I can actually create a workflow that does something–anything. Even though it didn’t work as well initially, by this time with jBPM5, I could do numerous things with workflows.
* Database-centric. Activiti requires and uses its database often, and requires it. This isn’t necessarily a bad thing. jBPM5 will use a database if you configure it to, but it’s an intrinsic feature of Activiti. This actually makes a lot of sense, since most users are going to want to record their workflow operation and status. Like jBPM5, Activiti will let you use most popular databases; it doesn’t really care which one you use. Most popular databases are supposed.
For several of the reasons above, I’m looking forward to the book _Activiti_in_Action_, but that’s not due out until February, and I need something demonstrable before then (like, the end of next week), so I’m just hoping for a miracle. And I hope by the time the book is released, it’s still accurate.
tl/dr; Activiti looks good in many respects, but still has a long way to go, especially in the tutorials and sample projects arena
I will take the chance to express my perspective on some topics that you mention. Please feel free to give me your feedback:
jBPM5 do not required JBoss AS, it is completely environment agnostic and can be configured with any container or without any container at all.
The Database centric point is a design topic that you can be agree or not with it, I mean inside jBPM5 we have several mechanism to extract that information and provide the same functionality without impacting the performance of the process engine when we query that information.
About tutorials and documentations I agree with you, we need to improve the current status of all those documents and provide more tutorials and hands on lab. But I’m continuously adding and improving the community training and nobody from the community give us feedback to improve that. I’m trying to spread the word and push the community to contribute back at least with feedback and not just saying there is not enough documentation.
Once again for a BPMS I think that both projects will give you the desired functionality, but in my perspective you need to look a little bit to the future and try to understand if learning about a Rule Engine and the Complex Event Processing features will give you the flexibility to build killer apps with a lot of value added for the business. In terms of the functionality (not screens in some web app that you will need to redo if the client wants to integrate the designer or the task list in a swing application) I think that Drools and jBPM5 really provides you a full set of features to solve most of the business situations out there, not just the process dimension.
My two cents..
Hi Frecklefoot,
Nice summary of your Activiti experiences. I agree that the 10 minute tutorial needs some updates. I’ll look into this. Your comment about the Activiti in Action book I don’t get. You can already download 10 chapters of the book by buying the MEAP. And it already contains A LOT of information to get you started. The book is written against the latest version of Activiti.
Best regards,
Tijs Rademakers
Well, we want to use jBPM5 and the rest of Drools, but can’t. It has a serious limitation that we can’t ignore or work around.
Let me ask you this related question: since they both use BPMN2.0 (which is XML), shouldn’t a workflow designed in Activiti be able to run under jBPM5 and vice-versa? Is BPMN2.0 that versatile?
It’s a like every standard, different implementations will provide different extensions. I’m pretty sure that by the end of this year we will be able to support the most common features inside the Business Process Execution profile described in the specification. We are focused in that and I’m trying to help in the jBPM5 project to support more of the features described there. In the other hand you need to know that the BPMN2 specification as any specification has missing bits and those needs to be implemented by each vendor. We, as community member, should help to improve the compatibility between the open source engines.
What kind of issues do you have with jBPM5 and Drools? We are always trying to help in the jBPM forum and mailing lists.
Cheers
Mule doesn’t support it, an ESB we’re heavily committed to. Mule Soft doesn’t plan on supporting jBPM5 for the foreseeable future, but they do support Activiti and, in fact, recommend it. This is an about-face with what they said a few months ago, calling Drools and jBPM the “best of breed” BPM suite. But they only support version 3 and 4 and, of course, we’d want to use jBPM5.x.
I’m having some meetings with some core devs from mule, and I’m pretty sure that we can create a generic integration between them as well as you can create your own integration of those components. We will be doing a complete integration, I mean not just jBPM5, the complete Drools and CEP features with the ESB. You need to understand that it will not be just like the Activiti integration, this integration will allow you to integrate smoothly all the concepts together isolating the transport layer and coding the business logic using a complete declarative approach. That will be there in the future and I will be probably involved.. but once again that will be a community effort, if you need to use that inside a company we are open to contributions or sponsorships.
Cheers
Tijs: Thanks for the tip about the book; I’ll purchase the MEAP posthaste!
I’m curious about Alfresco’s strategy regarding Activiti. Correct me if I’m wrong, but Alfresco needed in a workflow engine for their document management system. Activiti was built as a solution for that. But it’s open-source. JBoss makes jBPM5 available for free, but offers support for a fee. As far as I can tell, Alfresco doesn’t sell any support for Activiti, so what’s the revenue stream for Activiti?
salaboy: That’s great to hear that you’re working with Mule Soft, however, I’m not completely confident that an integration will be available soon, especially since they flat out told us it’s not a planned feature for any of their next few releases. But I’m glad that you’re working towards it.
As far as sponsorships go, we were looking at purchasing support from JBoss on the Enterprise version of Drools (I think they call it BRMS). We’re willing to work through jBPM5′s rough edges, but the non-Mule thing is a deal-breaker.
Any chance of a jBPM5 book coming out (beyond the User Guide)?
@Frecklefoot Activiti was started as a standalone open source project funded by Alfresco. One of the main targets of Activiti was to make it available to be used as a workflow engine in the Alfresco document management system. But the other main target was to build an embeddable BPMN 2.0 engine for a broad audience.
You’re right that Alfresco doesn’t provide support itself for Activiti outside the use as a workflow engine in its Alfresco enterprise product. But there are other companies such as Camunda that provide this support. The revenue stream for Alfresco is the Alfresco enterprise product.
Best regards,
Tijs
@Tijs: The high-level architecture of jBPM5 and Activiti are almost identical; I wonder why they bothered spinning off a new project in the first place? Since jBPM5 is free anyway, I wonder why Alfresco saw a need to hire away developers from it? I’m not sore or anything, it’s just curious.
I’m reading your book (bought the MEAP), and I have to say, while it is well-written, I didn’t expect to have to have an advanced knowledge of Maven to follow it. We use Maven here, but I don’t have to edit pom’s or really do anything special to get our projects to run. In fact, we have several developers devoted solely to keeping the poms in shape. So I was a bit taken aback when, right in Chapter 1, you started throwing Maven at the reader. So here I am, a week later, still in Chapter 1, still trying to get your first sample to run. I took a few days to get familiar with Maven, but apparently that wasn’t good enough. Now I want to go back to jBPM5 more than ever. I was able to start building stuff in it right away, but with Activiti, I have to know a whole bunch of OTHER STUFF first.
I know it doesn’t matter one way or another to you whether we use Activiti or not. We HAVE to. I just wish it was easier to get into… or at least worked.
Hi Frecklefoot,
Can you elaborate a little bit more about : “The high-level architecture of jBPM5 and Activiti are almost identical;” because in my perspective are very different. About knowing maven, it’s something that you really need to know in order to use these frameworks. When you find the solutions to your problems you can easily write some blog posts about how to tackle down the most common problems that someone new to maven will have. I’m facing the same issue with the jBPM5 book. If I spend 1 chapter introducing maven the book will end up having two thousand pages. I’m sure that maven is well documented out there and is something that you will need to learn in order to use any java framework this days.
Cheers
Re: high-level architecture: Both have an Eclipse plug-in to create & edit workflows. Both use a database of some sort to store workflows, both have a web-based editor to create & edit workflows, etc. At the code level, they’re very different, but the high-level architecture looked very similar to me.
Re: Maven. No, I don’t think you should have to spend time in your book explaining Maven, but it’s not very well documented. I found errors even in Apache’s web docs about it. There are several books on Maven, but few which target the current version of Maven, 3.0.3. From what I understand, knowledge is transferable between 2 and 3, but most books I saw were written for 1, which is a different beast. There are also Maven “cook books”, but they’re not going to help you learn the system. I know Maven is becoming more popular, but it’s not used universally, and I didn’t have to learn it to start using jBPM5. I’ve been using Java for 11 years, but I never even heard of Maven until 2 months ago when I started here.
Maven is up and coming–I’m going to have to learn it eventually. Got that. It’s a bummer that I encountered right when I’m trying to get familiar with a new system. But I’d expect code straight from the book to actually work, whether I knew Maven or not.
oh architecture you mean tooling.. Usually when we talk about the project architectures we talk about the components inside the project, but I see your point.
Yes the code for the book should work just running the basic maven commands. I mean mvn clean install to build it up and run the tests. If you want to use the projects with eclipse just running mvn eclipse:eclipse in the project will set up everything for you and you can work as normal.
Cheers
@Frecklefoot I understand your point about jBPM 5 and Activiti having the same high level architecture, but when you go a bit deeper there are quite a lot of differences for developers working with the BPMS.
Your remark about the Activiti in Action book is something I would like to discuss with you further. Please use my twitter tijsrademakers to get in contact. You should not have to do anything in the pom to get you started. All the examples and Maven configuration files are already available for you at the Google code repository http://code.google.com/p/activitiinaction/.
Hi,
I have been trying to compare both Activiti and jBPM because my company is thinking of integrating a workflow engine in one of our existing applications. We use Spring + Hibernate (no JPA), so two things are of the essence:
1. transactionality, i.e. a change to an entity and to its associated process instance (creation, step completion, etc.) must be done in the same transaction
2. being able to access spring beans from within the process (to evaluate expressions that determine the flow depending on entity values, affecting entity fields on a service task, etc.)
I must say, while this integration with Activity is trivial (we’re talking about a 3-4 hours to develop a POC that demonstrates these features and more), we still haven’t managed to do something similar with jBPM5. Also, while in the Activiti documentation the Sspring integration is ver well documented, all we seem to find on the topic for jBPM is links to (apparently) old (undocumented) code (for example: http://community.jboss.org/thread/160011). Also, i’m still unsure that the “drools-spring” applies to jBPM or only to Drools…
In a nutshell: i don’t doubt that jBPM does everything we need and more, but as it stands we are very much inclined to forget it and move on with Activiti, since we simply can’t integrate it our existing application. And we didn’t even get to the second point defined above…
Sure.. Once again.. as you mention you can do almost the same BPMS feature with both projects. but as you can imagine integrating a rule engine a process engine and the complex event features is far more complicated that a single BPMS, but the functionality is much more powerful. You should ask yourself if you will need that in the future, because most of the companies that are adopting Drools & jBPM5 already deal with that in the past don’t want to make the same mistakes again of adopting just a BPMS.
Cheers
I spent 4 days on Activiti 5.7 and 4 days on jBPM5.1. My experience with Activiti was totally positive. I think it is simple, extensible and easy to integrate with. It is well designed and built. Very clean. I liked the feature that Java Service Task can be used to invoke Spring beans which is awesome. For JBMN 5.1 I think it is still a work in progress. The demo script is unacceptable buggy. I barely found an example (http://community.jboss.org/message/584417) to allow invoking Java instances and very disappointed. The jBPM console looks pretty amateurished. JBPM5 supporters has talked about the value of having an rule engine to reflect real life business activities. Don’t know how much value it is if the product is unusable and poor quality. I give Activiti 5.7 A- and jBPM5.1 C-. That’s all folks.
Hi Hung,
Thanks for your comment. I really appreciate the time you spent writing it. In the other hand I don’t like when people give scores to open source projects just testing them 4 days. With your comment, you help me to confirm the whole point of this posts. If your requirements are small (=> 4 days of research) and you don’t have experience with rule engines or complex event processing I’m pretty sure that both projects will do what is needed. I never talk/argue/discuss about UI that are 90% discarded after the first iteration of your projects because doesn’t meet real business requirements. I’ve also notice that you confuse Product and Project, and you mention that jBPM5 is unusable.. as a Product maybe.. but because it’s not a Product most of the people that understand that difference really don’t care because they want just a project that works and give the flexibility they need for more advanced things than just BPM. It’s not by chance that world wide conferences about Business Process and Business Rules are starting to converge.
Thanks once again, and please avoid the scoring stuff!
Cheers
4 Trackbacks/Pingbacks
[...] This post was mentioned on Twitter by Patrick Jenner, Tijs Rademakers. Tijs Rademakers said: I really had to respond to the #Activiti vs #jbpm dumb question article
http://bit.ly/hsfH0f [...]
[...] This post was mentioned on Twitter by Felipe Kenobi, Mauricio Salatino. Mauricio Salatino said: asking for #activiti lead community feedback about #jbpm vs #activiti personal comparison -> http://bit.ly/gAOiwG [...]
[...] jBPM5 vs Activiti5? dumb question? – http://salaboy.wordpress.com/2011/01/19/jbpm5-vs-activiti5-dumb-question [...]
[...] http://salaboy.com/2011/01/19/jbpm5-vs-activiti5-dumb-question/ [...]