Implementing a Business Collaboration with BPMN and Bonita

Free Download: Paper and Processes

This showcase demonstrates a little example of two interacting processes in a business collaboration. In this collaboration, there are two partners: A customer and a supplier. The customer creates an order and sends it to the supplier. Then it waits for the supplier’s response. If  a response is received  rejecting the order, the process is finished. If the order has been accepted, the process waits for a shipment notification.

The supplier’s process is triggered by the arrival of the order. The supplier either accepts or rejects the order. The order response is sent back to the customer. If the order has been accepted, the supplier creates and sends a shipment notification when the goods have been shipped.

This example has been implemented with the Open Source BPMS „Bonita Open Solution„. The customer and the supplier use separate Bonita installations. The message exchange use a simple message queue, implemented in a MySQL database. This implementation would also allow to change one partner’s implementation, e.g. by using another BPMS or a individual software development.

The attached paper describes in detail how this solution was designed and implemented. Starting with a BPMN 2.0 conversation diagram, the choreography and the collaboration diagrams are developed, as well as the data structures and messages. Different implementation alternatives for the message exchange are discussed. The Bonita processes are explained in detail. Finally, it is demonstrated how the implemented processes are executed and how the users interact with these processes.

If you don’t use Bonita, this paper may still be interesting, because it discusses some aspects that are relevant for every business collaboration, such as:

  • Conversations and choreographies
  • Collaborations
  • Message exchange
  • Message and timer events
  • Defining message structures and implementing them with XML schema
  • Implementation alternatives for business-to-business integration
  • Correlating messages and process instances

Downloads

Download Paper „Creating a Simple Business Collaboration Scenario with a BPMS“.

Here you can download the Bonita processes:

  1. Customer’s processes: Place_Order–1.0.bar (~5 MB)
  2. Supplier’s processes: Respond_to_Order–1.0.bar (~5 MB)

These processes have been developed in Bonita version 5.4, but they also work in version 5.5. Ideally, the customer’s processes and the supplier’s processes are executed on different computers in a network. However, it is also possible to run both processes in one Bonita installation. The user then receives both the tasks of the customer and of the supplier in one task list.

Prerequisites:

  • You need to set up a MySQL database and create a table for the messages to be exchanged. This is explained in the paper. You can also use another database system, if you replace the MySQL connectors in the processes by the connectors for your database system.

Installation:

  1. Uncheck “Drop database on startup” in Bonita Studio’s preferences dialog (in the “Edit” menu).
  2. Import the .bar-files into Bonita studio. „Place_Order–1.0.bar“ has to be imported into the customer’s Bonita installation, „Respond_to_Order–1.0.bar“ into the supplier’s installation.
  3. Enter the access data of your database into the database connectors. This is also explained in the above paper.
  4. Deploy the processes.
  5. The only user is „admin“ (password: „bpm“)
  6. Start the processes „Retrieve order responses“ (customer) and „Retrieve orders“ (supplier). These two processes must be started exactly once, at the beginning.
  7. Now the customer can create orders by starting the process „Place order“.
  8. Wait 10 seconds and refresh the view in order to see the tasks for received orders etc. in the inbox.

Known problems:

  • The processes “Retrieve order responses” and “Retrieve orders” contain loops that are repeated every 10 seconds, i.e. they run endlessly. In order to avoid problems when re-deploying these processes, the process instances of these processes should be deleted by the administrator before closing Bonita. In some cases we had problems deleting these instances and we had to re-start the server before we could delete them.

More details can be found in the paper.