BPM vs ESB – Orchestration

business-process-managementeaiesborchestrationsoa

Can we safely say that if ESB provides Orchestration features, it is eligible to be an implementation of BPM?

I understand that BPM has a different purpose, which is to Model some business processes and the implementation of those business processes can be done by any simple Java/J2EE application, complex SOA application, or some application saying that I provide BPM. Is that right?

Best Answer

First Question:

Your statement is valid for some business processes which merely models request-response interaction.

But when it comes to complex business processes we need to consider some other features apart from orchestration features. Here I have list down few such scenarios.

  1. Let's take a business process which requires to maintain its state for a long period of time. We normally call them state-ful or long running business processes. To support these sort of business processes, there should be a state persistence mechanism. This functionality is not relevant to orchestration features.
  2. Consider a business process, which requires some compensation capabilities. In that case, some of the business process modelling standards like, WS-BPEL have defined its compensation mechanisms. So apart from orchestration features, there are some other features which are needed to be considered.

Second Question:

Yes. But there are several pros in a BPM engine compared to your mentioned implementation mechanisms.

One advantage is, it's not possible to achieve a level of modelling abstraction provided by a BPM engine from a Java application. Let's say we used a JAVA application to implement a business process logic and that business process went to production. Say we need to change a endpoint URL of its partner service. In this case, now the business process implementation need to be modified, re-compiled and deployed back into the production system. if we implement the business process with a business process language standard like WS-BPEL, we can change the business process configuration very easily and push it back to the production. This improves the efficiency and reduce the business maintenance cost. As well there are other reasons like easy adaptability and flexibility.

Related Topic