Chapter 11. Integrating services with a BPMN 2.0 process

 

This chapter covers

  • Providing a clean separation between processes and integration logic
  • Explaining the BPMN 2.0 web services support
  • Using Apache Camel to implement integration logic
  • Using Mule ESB to implement integration logic

Up to now, we’ve been focusing on the Activiti process engine running BPMN 2.0 process definitions. But let’s think about a use case where we’d want an order process accessing an order or enterprise resource planning (ERP) application, like SAP. Using what we’ve covered so far, we could implement a service task with a Java class or a Spring bean. In chapter 7, we saw that we can invoke a web service using a Java service task, so that could be a good approach.

But, if we want to send a message to a queue or communicate with a legacy system that only supports COBOL copybooks, this gets harder and harder. Wouldn’t it be nice to leverage an integration platform like an enterprise service bus (ESB) or something similar to implement this integration functionality? The Activiti project contains integration with Mule ESB (from MuleSoft) and Apache Camel without the need for glue coding.

11.1. Invoking services from a BPMN 2.0 process

11.2. Using the BPMN 2.0 web service task

11.3. Integrating with Apache Camel

11.4. Integrating with Mule ESB

11.5. Summary