Question

I am evaluating BPM offerings to be used within our application. I wanted to find out

  1. the differences between Bonitasoft / jBPM and Activiti
  2. Some of these products provide forms generation capabilities - are they any good? Would you use it in place of custom web forms or in addition to custom web forms

Thanks

Was it helpful?

Solution

take a look at the activiti in action book from manning publication. This is still in MEAP edition so you can download the sample chapter.

Start reading from the section that reads "ACTIVITI AND JBPM". It also compares Activiti and Bonitasoft.

http://www.manning.com/rademakers2/ActivitiMEAPch01.pdf

Hope this helps.

OTHER TIPS

I did such a research, too. Here are the key-points which were relevant for our concrete use case:

1. Bonita:

Bonita has a zero-coding approach which means that they provide an easy to use IDE to build your processes without the need for coding. To achieve that, Bonita has the concept of connectors. For example, if you want to consume a web service, they provide you with a graphical wizzard. The downside is that you have to write the plain XML SOAP-envelope manually and copy it in a graphical textbox. The problem with this approach is that you only can realize use cases which are intended by Bonita. If you want to integrate a system which Bonita did not developed a connector for, you have to code such a connector on your own which is very painful. For example, Bonita offers a SOAP connector for consuming SOAP web services. This connector only works with SOAP 1.2, but not for SOAP 1.1 (http://community.bonitasoft.com/answers/consume-soap-11-webservices-bonita-secure-web-service-connector). If you have a legacy application with SOAP 1.1, you cannot integrate this system easily in your process. The same is true for databases. There are only a few database connectors for dedicated database versions. If you have a version not matching to a connector, you have to code this on your own.

In addition, Bonita has no support for LDAP or Active Directory Sync in the free community edition which is quite a showstopper for a production environment. Another thing to consider is that Bonita is licensed under the GPL / LGPL license which could cause problems when you want to integrate Bonita in another enterprise application. In addition, the community support is very weak. There are several posts which are more than 2 years old and those posts are still not answered.

Another important thing is Business-IT-Alignment. Modelling processes is a collaborative discipline in which IT AND the business analysts are involed. That is why you need adequate tools for both user groups (e.g. an Eclipse Plugin for the developers and an easy to use web modeler for the business people). Bonita only offers Bonita Studio, which needs to be installed on your machine. This IDE is quite technical and not suitable for business users. Therefore, it is very hard to realize Business-IT-Alignment with Bonita.

Bonita is a BPM tool for very trivial and easy processes. Because of the zero-coding approach, the lerning curve is very low and you can start modelling very fast. You need less programming skills and you are able to realize your processes without the need of coding. But as soon as your processes become very complex, Bonita might not be the best solution because of the lack of flexibility. You only can realize use cases which are intended by Bonita.

jBPM:

jBPM is a very powerful Open Source BPM Engine which has a lot of features. The web modeler even supports prefabricated models of some van der Aalst workflow patterns (workflowpatterns.com). Business-IT-Alignment is realizable because jBPM offers an Eclipse integration as well as a web-based modeler. A bit tricky is that you only can define forms in the web modeler, but not in the Eclipse Plugin, as far as I know. To sum up, jBPM is a good candidate for using in a company. Our showstopper was the scalability. jBPM is based on the Rules-Engine Drools. This leads to the fact that whole process instances are persisted as BLOBS in the database. This is a critial showstopper when you consider searching and scalability.

In addition, the learning curve is very high because of the complexity. jBPM does not offer a Service Task like the BPMN-Standard suggests In contrast, you have to define your own Java Service tasks and you have to register them manually in the engine, which results in quite low level programming.

Activiti:

In the end, we went with Activiti because this is a very easy to use framework-based engine. It offers an Eclipse Plugin as well as a modern AngularJS Web-Modeler. In this way, you can realize Business-IT-Alignment. The REST-API is secured by Spring Security which means that you can extend the Engine very easily with Single Sign-on features. Because of the Apache License 2.0, there is no copyleft which means you are completely free in terms of usage and extensibility which is very important in a productive environment.

In addition, the BPMN-coverage is very good. Not all BPMN-elements are realized, but I do not know any engine which does that.

The Activiti Explorer is a demo frontend which demonstrates the usage of the Activiti APIs. Since this frontend is based on VAADIN, it can be extended very easily. The community is very active which means that you can get help very fast if you have any problems.

Activiti offers good integration points for external form-technologies which is very important for a productive usage. The form-technologies of all candidates are very restrictive. Therefore, it makes sense to use a standard form-technology like XForms in combination with the Engine. Even such more complex things are realizable via the formKey-Attribute.

Activiti does not follow the zero-coding approach which means that you will need a bit of coding if you want to orchestrate services. But even the communication with SOAP services can be achieved by using a Java Service Task and Apache CXF. The coding effort is low.

I hope that my key points can help by taking a decision. To be clear, this is no advertisment for Activiti. The right product choice depends on the concrete use cases. I only want to point out the most important points in our project.

Best regards Ben

I was also having the same confusion about BPM selection. Now I am done with my research and going with Activiti.

Key points:

  • It's really easy to start working on it. It can be deployed in most commonly used server Apache Tomcat.
  • It provides couple or war files like activiti-explorer and activiti-rest for deployment. REST APIs are clear and focused. You can download the same from download activiti.
  • It's providing plugins for the Eclipse IDE to draw process diagram.
  • The core development members of Activiti are from the same project of jBPM.

While working with jBPM, the designer and drools are not properly synchronized at times. Even the REST APIs are not so descriptive and clear.

BonitaSoft, as open source, lacks many important features. It's good if you are going for a licensed version of it.

I would like to respond to the previous answer provided by @BenSchnarr. For the sake of transparency, I must say that I work for Bonitasoft.

I will not comment on our competitor's software but I would like to correct some statements that were made on Bonita BPM and provide some more information.

Zero code approach

At Bonitasoft we do not believe in a "zero code" approach. Bonita BPM is all about providing some out of the box tooling that you can quickly start to use while having several extension points at your disposal such as:

  • Custom connectors for interacting with third party systems
  • Custom widgets for creating your UI (process forms and business views)
  • Custom REST API extensions

With these extension points you are never blocked. You can always implement your own artifacts to customize the product for your needs and exchange them with our community.

LDAP / AD Sync

Bonita BPM does provide a tool to synchronize its organization with an LDAP or AD directory as part of the Subscription editions. Note that if you do not wish to purchase a Subscription edition, you are free to re-implement such a tool with the same APIs.

The purpose of the Subscription editions is clearly to help our customers go faster to production with features such as:

  • Organization synchronization
  • Live update capabilities
  • High availability clustering

Business-IT-Alignment

Bonita BPM Studio (our IDE) can be adapted to all kinds of profiles. Because we certainly do not expect Business Analyst to fully implement processes, we provide different user profile choices at startup. Our "Business Analyst" profile only displays our BPMN modeling views and hides more technical options.

Bonita BPM Engine licensing

The Bonita BPM Execution Engine is licensed under LGPL. This allows you to freely integrate it into other software without any legal risk.

Complexity of projects that Bonita BPM may handle

Bonita BPM customers and myself will disagree on that particular quote:

Bonita is a BPM tool for very trivial and easy processes.

Complex, large scale and critical BPM projects can clearly be handled with our solution as per our success stories.

Form generation

Our latest release Bonita BPM 7 is all about custom user interfaces. We provide an intuitive browser based tool called the UI Designer that allows to create forms and pages (business views) using cutting edge technologies such as AngularJS and Bootstrap.

The UIs created with our tool are both fast (client side processing as opposed to Vaadin) and responsive to different media types (phone, table, laptop and desktop).

We also provide full customization options such as:

  • The creation of custom widget to tackle rich interfaces
  • The creation and use of Bootstrap themes
  • The creation of custom application layouts

the good thing about jBPM5 is that is completely integrated with Drools and Drools fusion, allowing you to model and execute complex business scenarios. At least in my experience once you get the process engine the next step is to integrate it with a Rule Engine and probably with complex event processing features. jBPM provides all of this out of the box and the good thing is that you don't need to learn different APIs to use all the features.

You also need to evaluate the tooling that in jBPM5 supports the complete lifecycle providing you tools for authoring your processes and rules and a repository to manage and store your processes.

Another good thing is the jBPM5 community, there are a lot of people adopting the project and a book will go out before the end of the year.

Hope it helps Cheers

If you're specifically looking at web forms and piping data around, any of the form vendors like Typeform, Wufoo, etc. would be a better fit. You can use Zapier to then pipe data around to other apps from form submissions.

Here's a review of more generic BPM capabilities and a guide to BPM. You should really prioritize the app itself for end users, the user experience.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top