Process Application Platforms 2017: Bonitasoft

This report assesses the capabilities of Bonitasoft’s Process Application Platform, and also examines the partners and intellectual property that Bonitasoft’s can offer customers exploring associated technology implementations. This assessment report forms part of a series of reports from MWD Advisors which assesses business process application technology offerings – technology-related capabilities which support organisations wanting to design, develop, deploy, monitor and optimise partially- or wholly-automated business processes.
We strongly encourage you to read this report in conjunction with our accompanying Assessment Framework report at


Bonitasoft has undergone two important shifts in focus recently. Firstly, the introduction of a Business Data Model capability and a sophisticated UI Designer have supported its shift beyond BPM to offering a broad process application development platform. Secondly, Bonitasoft has clarified its position as a ‘low-code’ platform provider: rather than embracing ‘citizen developers’ wanting to build simple things quickly, it’s pursuing more complicated use cases being addressed by collaborating multi-disciplinary design and development teams with ‘classic’ development skills.

One of the biggest strengths of Bonita BPM is the extent to which teams can customise and change application behaviour layer-by-layer: the use of ‘contracts’ and REST APIs as core architectural elements ensures a clean separation between user interface, core logic and data management/integration logic. However the process monitoring and optimisation capabilities on offer are currently less well-developed.

Support for different types of work

Automated work: Bonita BPM does a decent job in helping you build and run process applications that work ‘straight-through’; you can design flows that operate asynchronously and reactively in response to external events, and if you license the Performance Edition there’s clustering functionality for the BPM Engine.

Transactional work: Bonita BPM’s primary focus is on supporting transactional work scenarios, and it covers all the core functionality bases well. A solid organisation model for your process applications and support for many important workflow patterns is a big help, and UI flexibility is a significant contributor. Support for monitoring and optimisation isn’t so strong, although Bonitasoft plans improvements in coming releases.

Exploratory work: Bonitasoft doesn’t explicitly address exploratory work scenarios and doesn’t offer a targeted case management capability, but some of the underlying platform capabilities needed to support the common features of exploratory work scenario requirements are present nevertheless.

Rapid prototyping / quick-start

Although Bonita BPM has a Business Data Modelling capability, Bonitasoft hasn’t elected to do what some other vendors have done and create a specialised ‘data-centric application’ development capability that enables teams to rapidly prototype or deliver simple forms-and-data applications quickly.

Change management

Bonita BPM’s ‘living applications’ capability gives you a lot of flexibility, and if you choose one of the paid-for Subscription Editions of Bonita BPM there’s some support for team working, code locking and versioning. However more advanced change management capabilities found in more expensive platforms (visual impact analysis, configuration management, process migration, and so on) are missing.

User experience options

UX flexibility is one of Bonita BPM’s strongest points. There’s a simple out-of-the-box process application UI, but the ability to create sophisticated custom application user experiences stands out. An extensive set of REST APIs means going further (and potentially even creating your own domain-specific tools) is also an option.

Deployment options

Bonita BPM is available as an on-premise licensed product, and is also supported as a hosted platform – though Bonitasoft does not offer Bonita BPM as a managed hosted service itself. If you want to use a cloud platform, Bonitasoft supports deployment on AWS (public cloud) and CloudFoundry (private cloud).

Inside Bonitasoft’s platform

Bonitasoft’s Process Application Platform offering revolves around Bonita BPM, which (depending on the edition you choose to license) provides a range of design-time and runtime capabilities for creating and deploying process applications flexibly, particularly where user experience customisation is important. Bonitasoft doesn’t currently offer Bonita BPM as a cloud-based service, but Bonitasoft does support customers who choose to deploy and manage it themselves on the AWS cloud platform. Bonita BPM is currently at version 7.4.

In addition to Bonita BPM, Bonitasoft also offers a range of education, support and implementation services (as well as working through implementation partners).

Key tools and capabilities

The main elements of Bonita BPM are as follows:

  • BPM Studio. This is an Eclipse-based (desktop-resident) toolset used for defining all the key aspects of your process applications (processes, data, rules, organisation models, integration points and application user interfaces).
  • BPM Engine. This is the runtime platform for Bonita BPM process applications.
  • BPM Portal. This is a web application that serves both as an administration interface for your Bonita BPM process applications (and as a host for performance reports); and as a container for simple process application user interfaces (for example, hosting standardised user task lists and forms) if you choose not to develop your own custom application front-ends.

Bonitasoft provides Bonita BPM in four editions, as follows:

  • Community Edition is an open-source, community-supported version of the technology, licensed under the GNU GPL, that’s free to download. It contains all the core features of the product; you can develop, run and manage process applications using Community Edition with no restrictions.
  • Subscription Editions are supported by Bonitasoft on a commercial basis and add extra features that improve Bonita BPM’s capabilities in three key areas:
    • Teamwork – adds a team repository and code management facilities, as well as supporting the definition of multiple user profiles for BPM Studio that you can use to create tailored tools for different kinds of users (analysts, developers, and so on). Teamwork Edition also includes a richer set of user interface widgets and a broader set of connectors for commercial business applications (such as SAP).
    • Efficiency – includes all Teamwork features, and adds Process Monitoring and case visualisation, the ability to change process dependencies dynamically at runtime (connector implementations, application parameters, form implementations and so on), additional UI widgets, and mobile support for BPM Portal.
    • Performance – includes all Teamwork and Efficiency features, and adds support for multi-server clustering and failover, multi-tenancy and error management functionality.

User experience options

Bonita BPM provides you with three main choices regarding user experience for your process applications.

Firstly, there’s an off-the-shelf user experience option that uses the web-based BPM Portal to host straightforward user task lists and forms that you can easily configure (to a limited extent) using BPM Studio. Here, each business process is made available for invocation directly from within the BPM Studio (to anyone with relevant permissions). There’s a mobile web app available for BPM Portal on iOS and Android devices, too.

Secondly, Bonita BPM Studio includes a specialised UI Designer tool that enables you to create discrete, stand-alone web-based application user experiences for your process applications. These user experiences are composed from collections of custom menus, pages and forms – and the resulting experiences are role-based, so you can easily create applications that present personalised information and functionality to individuals with particular roles (see Mapping, Modeling and Application design below for more information).

Lastly, there’s a comprehensive set of REST APIs exposed by the Bonita BPM runtime if you want to build completely custom user experiences for your process applications. There are APIs not only for invoking processes and getting and setting data in processes and tasks, but also APIs that enable you to programmatically create new applications and their constituent parts – allowing you, if you want, to build custom tools or embed Bonita BPM in a broader platform.

Deployment options

Bonita BPM is available as an on-premise licensed product, and is also supported as a hosted platform – though Bonitasoft does not offer Bonita BPM as a managed hosted service itself. The product is licensed on a per process instance basis, via annual subscription, and pricing is tiered based on the number of process instances you invoke in each license period.

The Bonita Platform is implemented as a set of Java applications, and so requires a Java application server (Tomcat, Wildfly and Oracle WebLogic Server are all supported for the current Bonita BPM version). The Bonita Platform requires a RDBMS, too, and MySQL, Postgres, SQL Server and Oracle are all supported.

If you want to use a cloud platform to host Bonita BPM, Bonitasoft supports deployment on AWS (for public cloud) and CloudFoundry (for a private cloud implementation).

Using the products: core capabilities

Rapid prototyping / quick-start

Although Bonita BPM has a Business Data Modelling capability, Bonitasoft hasn’t elected to do what some other vendors have done and create a specialised ‘data-centric application’ development capability that enables teams to rapidly prototype or deliver simple forms-and-data applications quickly.

Mapping, modeling and application design


You’ll use the BPM Studio’s Diagramming tool to design process models. Here, you can define processes using the standard BPMN 2.0 constructs (swimlanes, activities, gateways, timers, events, exceptions, and so on) and also attach KPIs, which instruct the runtime platform to gather monitoring data, to process swimlane pools and individual activities.

It’s also possible to auto-generate simple process model documentation from the Diagramming tool (in PDF, HTML, Word and PowerPoint formats) along with other related and relevant application specification details (such as connectors, data types and organisational model details).


With Bonita BPM there’s no explicit and separate business rules definition tool. Instead, you’ll write conditions, expressions and functions (where necessary) in Groovy (a scripting language specifically designed for Java platforms). Function definitions are stored separately from process definitions, so can be easily reused.

Process gateway conditions are by default specified using simple decision tables, within which you specify evaluation expressions using Groovy.

If you want to specify expressions within your application user experience definitions (for example to validate data entered into form fields, or calculate form field values) you’ll use Javacript.


As of version 7 (released in 2015), Bonita BPM allows you to specify Business Data Models (BDMs) for any process applications running within a single tenant – enabling your applications to manage persistent data objects themselves, with data lifecycles independent of process lifecycles. ‘Traditional’ BPM platform process variables are still part of the platform, but as you would expect these are limited in extent and scope – their values are only referenceable within the context of a single process instance, for the lifetime of that instance. All objects in a BDM are automatically available as process variables for processes and tasks to use, and they’re also automatically available for use in passing data in and out of forms.

The data modelling tool in BPM Studio makes it very easy indeed to specify complex datatypes. In brief, you can define atomic business objects (such as customer, address, product) and then compose those to create more sophisticated record definitions (for example, reusing addresses in customer objects and supplier objects; or composing invoice records from a single header and one or more invoice lines). What’s more, you can use data models as the starting point for form definition if you want, automatically creating a first-cut form definition from a business object definition, rather than defining forms specifically to act as user interfaces for workflow activities.

Behind the scenes, objects you define in a BDM are stored in a relational database (the open-source, Java-based H2 is provided as default, but not recommended for production use).


Integration of business processes with external data sources and systems is typically carried out using connectors. Depending on the Bonita BPM subscription you choose, you’ll have a set of pre-built connectors available to you ‘out of the box’. The complete set includes connectors for the Alfresco ECM platform, generic CMIS-compliant ECM implementations, a range of RDBMSs, LDAP directories, Google Calendar, SugarCRM, SAP, Salesforce, Talend and generic Web services (SOAP and REST).

You specify the connectors you’ll want to use in your applications by attaching them to your process model, either at the level of a swimlane pool or an individual process task.

If you need to implement data transformation either inbound or outbound as part of connectivity to external systems, you have three options. First, you can write Groovy functions to transform individual fields; second, you can embed a specialised Java library of your choosing to do the work; and third, you can use a third party data integration platform (such as Talend) to do the work.

Work assignment and distribution

In Bonita BPM, you specify work assignment and distribution by referencing an organisation model that defines users and links them to groups and roles. With Bonita BPM’s organisation model you can define ‘transverse groups’ that don’t reflect formal organisational hierarchy; but instead are defined by some other characteristic (such as, for example, location or possession of some kind of skill).

Bonita BPM’s organisation model can be synchronised with information from an LDAP-conformant external user directory, either one-off or on a periodic basis. The Subscription Editions of Bonita BPM all include an LDAP synchroniser tool. Alternatively you can create your organisation model in BPM Studio and then import it into BPM Portal when you deploy your application(s).

User interfaces

The UI Designer is a web-based tool, launched from within BPM Studio. UI Designer is a graphical development tool for creating very flexible, responsive process application user interfaces that are decoupled from core business process and work management behaviour. It’s not the only choice you have, though: your processes will all be deployed with a simple out-of-the-box UI that you access from BPM Portal, comprising process invocation links, user task lists and simple task form presentations.

With UI Designer, you create application user experiences from collections of pages (dynamic HTML/Angular JS) that can contain task forms or other presentation elements you define (for example graphs and charts, external data, business object data and so on), menu definitions, layout definitions (specifying the arrangement of widgets) and themes (specifying visual elements like fonts, colours etc). If you’ve purchased one of the Bonita BPM Subscription Editions it’s also straightforward to define ‘fragments’, comprising widgets and layout containers, that can be easily stored, shared and reused across multiple pages and applications.

Applications in Bonita BPM combine these user experience elements with process definitions, forms associated with specific process tasks, and REST API extension definitions (often used within page code to get and set external data, for example data provided by connectors you use in a process).

The clear separation that exists in Bonita BPM’s architecture between your application’s presentation layer and core process and task logic is enforced through the concept of a ‘contract’. Each process and task defines one: it’s a set of preconditions that must be met in order for the process or task to be successfully invoked or completed. A contract associated with a claim review task, for example, might specify a ‘claim decision’ variable that must be set to ‘accept’ or ‘reject’. With this contract specified, your process application has complete freedom in the user interface that’s used for that task – as long as it provides a route for passing back that claim decision information.

Operation and execution

The Bonita BPM runtime environment is built around one or more Java servers (if you choose the Performance Edition you can cluster them) and a RDBMS server (for storing application metadata and any business objects you might have defined in a BDM). You may also set up a separate monitoring database, optimised for a query workload, and synchronise data between that and your operational data store.

If you choose a Subscription Edition (Performance, Efficiency or Teamwork) the runtime supports three deployment environments: Local (unique to each developer’s own workstation), Qualification (for testing) and Production. You can configure environmental parameters uniquely for each environment, and so minimise application (re)configuration as you promote an application towards Production.

When it comes to process and application testing, you have several features at your disposal. You can validate process diagrams in BPM Studio as you design them; you can also test connector configurations, and evaluate Groovy expressions. Additionally, you can choose to run a process in ‘debug mode’, which provides a trace of activity (you can choose to skip connector execution in debug mode).

Authorised administrators will use the BPM Portal to install process versions, update, start, stop and reconfigure running processes as required. It’s also possible, with running processes, to edit connector configurations as well as updating application user experience elements (as long as specified process or task contracts are not broken – see Design / User interfaces above).

Monitoring and improvement

As well as providing administration facilities for those with appropriate rights, BPM Portal is also by default the place you’ll act to monitor and potentially improve the processes you have under management. BPM Portal provides default views that show all open (running) and archived process instances for any installed processes. If you’ve opted for one of the Subscription Editions, you can go further and view any installed process graphically – showing you how the set of open instances is distributed in terms of progress through that process. If you have either the Performance or Edition, you can also assign, unassign, complete, skip and replay process tasks.

Subscription Edition customers also have an Analytics module at their disposal. This module presents a simple interface for browsing and running process reports; by default you can run simple reports that highlight average process instance completion times, and so on. It’s also possible for you to create and integrate custom reports that use any process, KPI definitions (see Design / Processes above) or business object data from the Bonita BPM runtime, if you want. To develop these custom reports you’ll use Jaspersoft Studio, as Bonitasoft currently embeds JasperReports in its BPM Portal.

An alternative more customised path is also now available, however: you can embed charts into application user interfaces using UI Designer to embed Bonitasoft’s set of charting widgets into application pages. Your chart widgets will access business data using the Bonita BPM REST API, enabling you to report on both process variables and business object data from your BDM (if you’ve defined one).

Change management

Bonita BPM’s ‘living applications’ concept – which enables you to change certain aspects of applications dynamically at runtime – is a significant strength of the platform. It comes via the platform’s use of ‘contracts’ to specify key interfaces between core functionality, user interface details, integration connectors, and application parameters. By specifying these contracts, the platform can ensure that if you make changes in one of these areas to a running application, the application will continue to function without interruption.

However when it comes to features that help you manage change to your applications over time, the facilities on offer are more mixed.

With the Bonita BPM platform, the various elements of your process applications will be stored in flat files. Each developer’s workstation has its own ‘repository’ (a directory in the local filesystem); if you elect to use one of the Bonita BPM Subscription Editions, you have the option of using a shared Subversion (SVN) team repository and synchronising the content of each developer’s own local repository with the shared master. However application definitions (and other definitions you create in BPM Portal) aren’t stored in a repository – you have to make separate arrangements for managing and sharing versions of these over time. And whereas BPM Studio manages locks on specification files when developers use them from a shared repository, items you create with UI Designer (pages, menus, and so on) are not automatically locked – you have to find another way to avoid potential conflicts between team members working in parallel. Lastly, more advanced change management capabilities found in more expensive platforms (visual impact analysis, configuration management, process migration, and so on) are missing.

Using the products: support for different kinds of work

Facilities to support automated work

When creating process applications that work ‘straight-through’, features like error handling, transaction control and compensation are crucial even though not always obviously so. Bonita BPM does a decent job here; there’s support for sophisticated process event handing, for example, and when you need to, you can code non-standard transaction control behaviours (for example wrapping two related activities within one transaction). There’s currently no support for process error compensation, however.

The Performance Edition of Bonita BPM provides clustering functionality for the BPM Engine runtime, and you can design flows that operate asynchronously and reactively in response to external events.

Facilities to support transactional work

Bonita BPM’s primary focus is on supporting transactional work scenarios, and it covers all the core functionality bases well.

Bonita BPM’s organisation model can be quite sophisticated (with the definition of transverse groups, for example) and the tools provide you with some useful work allocation patterns out of the box. For example, it’s easy to query the model to determine the user’s (or process initiator’s) manager; it’s also straightforward to implement the Retain Familiar workflow pattern (where a set of related tasks are all given to the performer of the first task) and the Separation of Duties workflow pattern (where a task cannot be given to the same person who completed another named task).

Bonita BPM provides a basic document storage system allowing you to store documents in the Bonita repository, but most customers will use the provided standards-based connectors to Alfresco and other CMIS-compliant systems. Through the provided connectors it’s possible to create, update and delete documents in a linked ECM platform; although there are currently no widgets available for document preview or search functionality, and if you need to manage document versions or collections of document references you won’t get much help from the platform.

Whereas Bonita BPM has the core facilities needed to support transactional work scenarios from a design-time and operational perspective, current limitations in Bonita BPM’s process monitoring and optimisation capabilities mean that a number of things you might want to do to support true process management and improvement are harder than they might be. For example, there’s no easy way to analyse individual or team-based views of work performance. Lastly, although Bonitasoft plans to address this in future releases, at the moment Bonita BPM doesn’t provide any facilities to help you determine or make process optimisations from analysis of work performance in relation to KPIs and SLAs.

Facilities to support exploratory work

Bonitasoft doesn’t explicitly address exploratory work scenarios and doesn’t offer a targeted case management capability, but some of the underlying platform capabilities needed to support the common features of exploratory work scenario requirements are present nevertheless.

The core capability Bonita BPM brings to the table here (apart from connectivity to third-party ECM systems for storing and managing case documents) is its Business Data Model, which enables you to specify one or more business object types that your applications can work with and manage independently of the scope of individual processes. This means that you can (for example) design an application for managing customer complaints that revolves around a core ‘complaint’ business object type, and involves multiple independent processes acting on shared instances of complaints.

There’s no concept of business object lifecycles or entity state modelling so it’s not easy to design case management applications that have explicit case stages and milestones, with stage-based process or task availability rules for example. However with targeted application design and programming effort it can be done.

Reference information

Regional capabilities

Bonitasoft has offices in the US (San Francisco and New York) as well as France (Paris and Grenoble).

It doesn’t currently work through resellers in other countries, although it has an extensive consulting and systems integration partner network (see below).

Industry capabilities

Bonitasoft has a number of specialised industry sales and marketing teams, although it doesn’t currently promote any industry-specific applications or accelerators. The company finds that financial services, insurance, government, education, telecoms, manufacturing and retail are the sectors it’s finding most traction – and as a result the company is now starting to build up specific practices in these areas.


Bonitasoft has an extensive network of partnerships with specialist consultancies and systems integrators spanning over 45 countries – including Atos, BP3, CGI and T-Impact. Some of these are exclusively focused on implementation; others sell Bonita BPM as well as providing implementation services.

Download PDF version