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?
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.
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.