I have been working on BonitaSoft REST API in order to meet following customers’ requirements:
- The customer has multiple line of business (LOB) applications.
- The customer has decided to make a strategic move to offer solutions to their existing and new customers rather than one or more products from their multiple LOBs which can be accessed by a web application dashboard. These solution span across multiple LOB applications and is envisioned to leverage functionality offered by these applications using service API.
- In this regard, one key fundamental architectural component that got introduced is workflow tool, BonitaSoft. The workflow tool is used to execute one or more workflows which forms part of one or more business processes which comprises the above said solution. Another strategic move is to develop APIs on top of existing functionality which shall then be used by workflow.
- Bonita comes with following out of the box applications/subsystems:
- Bonita workflow engine which executes workflow
- Bonita portal which is used by business users to work with workflows.
- Bonita studio which is used by business/process analyst to create workflows.
- Customers want to use only two of the above, e.g., Bonita Workflow engine and Bonita studio and NOT the Bonita portal to be able to create seamless and consistent experience for existing customer with rollout of the new release. For UI, they still want to use their existing web experience.
- This requires the UI application to be integrated with Bonita Engine using standard API, EJB or REST based integration. As customer wants the Bonita engine to be placed in separate server container, REST based integration becomes the way to go.
- This is where existing UI needs to be integrated with Bonita engine using REST API integration.
Following represents a very high-level diagram of integration of custom UI application with Bonita engine using REST APIs: