I also did this research. Here are the key points that are relevant to our particular use case:
Bonita uses a zero-coding approach, which means they provide an easy-to-use IDE to create your processes without the need for coding. To achieve this, Bonita has a connector concept. For example, if you want to use a web service, they provide you with a graphic wizzard. The disadvantage is that you need to write a simple XML-SOAP envelope manually and copy it into a graphic text field. The problem with this approach is that you can implement the use cases that Bonita designed. If you want to integrate a system in which Bonita has not developed a connector, you need to encode such a connector yourself, which is very painful. For example, Bonita offers a SOAP connector for using SOAP web services. This slot 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 an outdated application with SOAP 1.1, you cannot easily integrate this system into your process. The same is true for databases. There are only a few database connectors for dedicated database versions. If you have a version that does not match the connector, you must encode it yourself.
In addition, Bonita does not support LDAP or Active Directory Sync in the free community release, which is a pretty show operator for the production environment. Another thing to keep in mind is that Bonita is licensed under the GPL / LGPL, which can cause problems when you want to integrate Bonita into another enterprise application. In addition, community support is very weak. There are several posts that are more than two years old, and these posts are still not responding.
Another important thing is Business-IT-Alignment. Simulation processes are a collaborative discipline in which IT and business intelligence are tuned. That's why you need adequate tools for both groups of users (for example, Eclipse Plugin for developers and an easy-to-use web designer for business people). Bonita offers only Bonita Studio, which must be installed on your computer. This IDE is quite technical and not suitable for business users. Therefore, it is very difficult to implement Business-IT-Alignment with Bonita.
Bonita is a BPM tool for very simple and simple processes. Because of the zero-coding approach, the search curve is very low, and you can start modeling very quickly. You need less programming skills, and you can implement your processes without the need for coding. But once your processes become very complex, Bonita may not be the best solution due to lack of flexibility. You can implement the use cases that Bonita designed.
jBPM:
jBPM is a very powerful open source BPM engine that has many features. The web designer even supports prefabricated models of some van der Aalst workflow templates (workflowpatterns.com). Business-IT-Alignment is implemented because jBPM offers Eclipse integration as well as a web designer. How complicated you can define forms in a web modeler, but not in the Eclipse plugin, as far as I know. To summarize, jBPM is a good candidate for use in a company. Our showstopper was scalable. jBPM is rule based. This causes all process instances to be stored as BLOBS in the database. This is a critical showstopper when you consider search and scalability.
In addition, the learning curve is very high due to complexity. jBPM does not offer a service task, such as BPMN-Standard. Instead, you must define your own Java service tasks, and you need to register them manually in the engine, which leads to fairly low-level programming.
Activiti:
In the end, we went with Activiti because it is a very easy-to-use framework-based mechanism. It offers an Eclipse plugin as well as a modern AngularJS web model. Thus, you can implement Business-IT-Alignment. The REST API is protected by Spring Security, which means that you can very easily extend the engine using the Single Sign-on features. Because of Apache License 2.0 there is no copyleft, which means that you are completely free in terms of use and extensibility, which is very important in a productive environment.
In addition, BPMN coverage is very good. Not all BPMN elements are implemented, but I do not know a single engine that does this.
Activiti Explorer is a demo interface demonstrating the use of Activiti APIs. Since this interface is based on VAADIN, it can be extended very easily. The community is very active, which means that you can get help very quickly if you have problems.
Activiti offers good integration points for external form technologies, which is very important for productive use. Form technology of all candidates is very limited. Therefore, it makes sense to use a standard form-technology, such as XForms, in combination with the engine. Even such more complex things are implemented through formKey-Attribute.
Activiti does not follow a zero-coding approach, which means that you need a bit of coding if you want to organize services. But even communication with SOAP services can be achieved using the Java Service Task and Apache CXF. Not enough coding effort.
I hope that my key points will help by making a decision. To be clear, this is not an advertisement for Activiti. The right product choice depends on your specific use case. I only want to note the most important points in our project.
Best regards ben