Process Application Platforms 2018: Bonitasoft

RESEARCH REPORT // FREE
 
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 http://www.mwdadvisors.com/2016/10/25/process-application-platforms/

Summary

With recent product releases, Bonitasoft has made two important shifts. Firstly, by introducing a Business Data Model capability and a sophisticated UI Designer, it’s shifted to offering a broad process application development platform (the renaming of its product to simply ‘Bonita’ emphasises this). Secondly, rather than focusing solely on ‘citizen developers’ wanting to build simple things quickly, it’s deliberately addressing more complicated use cases that need work from multi-disciplinary design and professional development teams. Support for team working and rapid application change management have been significantly boosted recently. One of the biggest strengths of Bonita is the extent to which teams can customise and change application behaviour layer-by-layer: the use of ‘contracts’ and REST APIs as core ensures a clean separation between user interface, core logic and data management/integration logic. The platform’s process monitoring and optimisation capabilities have also seen a recent boost.

Support for different types of work

Automated work: Bonita does a good 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 the Performance or Enterprise Edition provide enhanced runtime scalability and elasticity.

Transactional work: Bonita’s primary focus is on supporting transactional work scenarios, and it covers all the functionality bases well. A sophisticated 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 has also been significantly improved.

Exploratory work: Until recently Bonitasoft didn’t explicitly address exploratory work scenarios with a targeted case management capability, but a new ‘case overview’ interface, combined with strong underlying support for dynamic behaviour and data management, have changed the picture here.

Rapid prototyping / quick-start

The Bonita Platform offers a number of features that are helpful for rapid prototyping and application development – including the ability to auto-generate prototype forms from Business Data definitions, and the ability to very quickly specify the components of applications with one-click deployment.

Change management

Bonita’s ‘living applications’ capability gives you a lot of flexibility, and if you choose one of the paid-for Subscription Editions of Bonita there’s support for team working, code locking and versioning. Bonita 7.7 additionally brings more sophisticated change management facilities that work across distributed teams, as well as support for continuous delivery (integration and deployment) practices.

User experience options

UX flexibility is one of Bonita’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 is available as an on-premise licensed product, and is also supported as a hosted platform – partners provide managed hosting services. Bonitasoft supports deployment on AWS, Microsoft Azure and Google Cloud public platforms, as well as OpenStack private clouds.

Inside Bonitasoft’s platform

Bonitasoft’s Process Application Platform offering revolves around the Bonita Platform, 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. Bonita is currently at version 7.7. In addition to the Bonita Platform, 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 the Bonita Platform are as follows:

  • Bonita 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) – though user interfaces are defined through an embedded web-based UI Designer tool.
  • Bonita Runtime. This combines the core runtime engine for Bonita process applications with the Bonita Portal– a web application that serves both as an administration interface for your Bonita 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 user interfaces.
  • The Bonita Continuous Delivery add-on provides development teams with additional delivery automation, continuous integration and AWS-based provisioning; leveraging Jenkins, Git and Docker.
  • The Bonita Intelligent Continuous Improvement add-on provides additional predictive analytics features that delivers predictive process insights to process participants, and assist process improvement specialists with identification of bottlenecks and potential improvements.

Bonitasoft provides the Bonita Platform 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’s capabilities in three key areas. There are four Subscription Editions:
    • Teamwork – adds a team repository and code management facilities, as well as supporting the definition of multiple user profiles for Bonita 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 Bonita Portal.
    • Performance – includes all Teamwork and Efficiency features, and adds support for multi-server clustering and failover, multi-tenancy and error management functionality.
    • Enterprise – includes all Performance features, and adds support for unlimited runtime instances as well as unlimited application users, CPUs, processes and connectors across three runtime environments (one for production and two for non-production).

User experience options

Bonita 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 Bonita Portal to host straightforward user task lists and forms that you can easily configure (to a limited extent) using Bonita Studio. Here, each business process is made available for invocation directly from within the Bonita Studio (to anyone with relevant permissions). There’s a mobile web app available for Bonita Portal on iOS and Android devices, too.

Secondly, Bonita 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 designbelow for more information).

Lastly, there’s a comprehensive set of REST APIs exposed by the Bonita 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 in a broader platform.

Deployment options

The Bonita Platform is available as an on-premise licensed product, and is also supported in a cloud-hosted configuration – Bonitasoft supports deployment on AWS, Microsoft Azure and Google Cloud public platforms, as well as OpenStack private clouds, and partners (such as T-Impact) provide Bonita managed hosted services.

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 and Wildfly are supported for the current Bonita version). The Bonita Platform requires a RDBMS, too, and MySQL, PostgreSQL, SQL Server and Oracle are all supported.

Using the products: core capabilities

Rapid prototyping / quick-start

The Bonita Platform offers a number of features that are helpful for rapid prototyping and application development – including the ability to auto-generate prototype forms from Business Data definitions, and the ability to very quickly specify the components of applications with one-click deployment.

Mapping, modelling and application design

Processes

You’ll use the Bonita 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).

Rules

With Bonita 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 – and in keeping with Bonita’s ‘living applications’ proposition it’s possible to update Groovy scripts that are operating within running applications.

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 Javascript.

Data

As of version 7 (released in 2015), Bonita 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’ 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 release of Bonita 7.7 introduced a new access control scheme for BDMs, which means you can now ensure that only certain user roles can access certain BDM entities or attributes.

The data modelling tool in Bonita 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

Integration of business processes with external data sources and systems is typically carried out using connectors. Depending on the Bonita 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, UiPath (through which your processes can invoke RPA robots to drive actions in legacy systems), 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 pool or an individual task.

As well as integrating processes and tasks with external systems, you also have the option of connecting application forms (created with UI Designer) with external systems – you do this by creating REST API Extensions for your Bonita Engine runtime, and implementing those extensions with Groovy script.

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, you specify work assignment and distribution using an organisation model that defines actors (logical identities for task performers) and users (individual accounts), groups and roles. With this 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’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 all include an LDAP synchroniser tool. Alternatively you can create your organisation model in Bonita Studio and then import it into Bonita Portal when you deploy your application(s).

User interfaces

The UI Designer is a web-based tool, launched from within Bonita 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 Bonita 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), navigation 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 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 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). You can also define mechanisms that determine which user roles (profiles) will be able to access and use which applications.

The clear separation that exists in Bonita’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 runtime environment is built around one or more Java servers (if you choose the Performance or Enterprise 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, Teamwork or Enterprise) 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 Bonita 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 Bonita 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 interfacesabove).

Monitoring and improvement

As well as providing administration facilities for those with appropriate rights, Bonita Portal is also by default the place you’ll act to monitor and potentially improve the processes you have under management. Bonita 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 the Performance, Efficiency or Enterprise Editions, 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 / Processesabove) or business object data from the Bonita runtime, if you want. 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 REST API, enabling you to report on both process variables and business object data from your BDM (if you’ve defined one).

Further to this, new in Bonita 7.7 is an add-on called Bonita Intelligent Continuous Improvement, which uses machine learning-based predictive analytics – working from historical process data (accessed via Elasticsearch) and data about in-flight cases – to predict likely case outcomes and provide alerts for in-jeopardy situations (where the model predicts that a case will fail to perform in line with its associated process KPI).

Change management

Bonita’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.

With version 7.7, the capabilities on offer to help you manage change to applications have improved significantly – thanks to a feature called Bonita Continuous Delivery, available as an add-on to the Bonita Subscription Editions. Bonita Continuous Delivery provides Jenkins-based automation of application build and deployment, as well as an automated provisioning tool, based on Ansible, that works across on-premises environments and AWS, Microsoft Azure, Google Cloud or OpenStack-based cloud platforms.

With the Bonita platform, the various elements of your process applications will be stored in XML files. Each developer’s workstation has its own ‘repository’ (a directory in the local filesystem); if you elect to use one of the Bonita 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. With version 7.7 there’s also the ability to create and work with shared repositories, based on Git (using a remote Git repository like GitHub or Bitbucket). With this in place, teams of designers and developers can work on Bonita process applications in parallel.

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 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). Process error compensation is possible, too, through the Bonita Portal and its process event detection, handling and administration functionality.

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

Lastly, the partnership between Bonitasoft and RPA specialist UiPath plays well here. With connectors, your processes and tasks can invoke UiPath bots and have them automate actions across legacy systems; what’s more, UiPath bots themselves can invoke actions in Bonita process applications through the Bonita Engine API.

Facilities to support transactional work

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

Bonita’s organisation model can be 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 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’s currently no widget available for document search functionality, and if you need to manage document versions or collections of document references you won’t get much help from the platform.

With the release of the Intelligent Continuous Improvement add-on Bonita now provides facilities to help you determine and make process optimisations – as well as making real-time recommendations – from analysis of work performance in relation to KPIs and SLAs.

Facilities to support exploratory work

Until Bonita 7.7, the platform didn’t offer a targeted case management capability, even though many of the underlying platform capabilities needed to support the common features of exploratory work scenario requirements were still present. The release of version 7.7 marks more of a deliberate move towards specifically supporting case management styles of application, with a fully configurable ‘case overview’ view that provides a single entry point for users working on individual cases. By default the case overview provides access to all the tasks that are available for execution (together with their assignees, where relevant); a view of the core data and documents associated with the case; and a case timeline that shows all the actions that have been performed on the case to the current point.

Under the covers, core underpinning capability Bonita brings to the table for case management (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. You can build applications that manage collections of both structured and unstructured processes, all integrated with a central set of BDM entities and surfaced through a single unified case view. 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. You can define rules that determine which tasks and processes will be made available at runtime depending on case state, too.

Reference information

Regional capabilities

Bonitasoft has offices in the US (San Francisco and New York) as well as France (Paris and Grenoble). The company also has an extensive consulting and systems integration partner network (see below) that helps to resell Bonitasoft products and services; it currently has customers in over 70 countries.

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.

Partners

Bonitasoft has an extensive network of over 100 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 products as well as providing implementation services.

Download PDF version
RESEARCH REPORT // FREE