Professional Support
Bonita People
"Our commitment: to simplify the Workflow development !" Miguel Valdes Faura
Miguel Valdes Faura
Project Lead

Nova Bonita

Nova Bonita is the name of new version of Bonita v4. “Nova” technology is based on the “Process Virtual Machine” conceptual model for processes. The Process Virtual Machine defines a generic process engine enabling support for multiple process languages (such BPEL, XPDL…).
On top of that, it leads to a pluggable and embeddable design of process engines that gives modelling freedom to the business analyst. Additionally, it enables the developer to leverage process technology embedded in a Java application. For more information about the Process Virtual Machine, check Nova Bonita FAQs http://wiki.bonita.objectweb.org/xwiki/bin/view/Main/FAQ on the Bonita web site http:// bonita.objectweb.org.

Nova Bonita Services

Services in Nova Bonita is all about pluggability. Standard (StandAlone Java based) and Enterprise (JEE Server based) versions of Nova Bonita can be easily configured thanks to the services container.
To allow that, each workflow related service has been thought in terms of an interface with different possible implementations. Persistence, identity, security, timers, asynchronous execution, task management or history/logs are example of configurable services.

Nova Bonita APIs

If you are already familiar with previous Bonita versions and you have already developped your own applications on top of Bonita, we want to minimize your effort when migrating to Bonita v4. Compatibility from Bonita v3 to v4 is one of our main concern.

At the same time, we took the chance to review and to improve Bonita v3 APIs in this new major version so basically the Bonita v3 API spirit is still there but we applied some improvements in Nova Bonita to simplify some operations and to add added value features. Nova Bonita APIs has been refactored each milestone release until become stable in this first release candidate version.

Nova Bonita APIs are divided into 5 different areas:

  • DefinitionAPI: to create/modify major process elements into the engine (packages, processes, activities, role mappers, variables by calling java methods instead of importing xpdl files. It will allows also to modify the execution of runtime elements such as tasks and instances.
  • QueryDefinitionAPI: to get workflow definition data for packages, processes, activities, role, mappers, .....
  • RuntimeAPI: to manage process, instance and task life cycle operations as well as to set/updates variables.
  • QueryRuntimeAPI: to get recorded/runtime informations for packages, processes, instances, activities, tasks (support for dynamic queries will be added in the future). It allows also to get tasks (aka manual activities) list parametrized by the with state for the authenticated user and as well to get/list variables in a particular or a set of workflow instances.
  • ManagementAPI: to deploy workflow processes into the engine. XPDL files and advanced entities such hooks, mappers and performer assignments can be deployed individually or in one shot.
There's also a generic API that allow to execute specific commands that should be needed by the workflow based application.
  • CommandAPI: to allow developpers to write and execute its own commands packaged within its application.