Let me add clarity by distinguishing between BPM, Orchestration, and ESB, using design patterns and specifications.
Generally speaking, Orchestration has been defined as a composite model using process abstractions, process centralization, and state store design patterns. Due to the implementation of the state repository template and contrary to the previous mail, Orchestration supports long synchronous business processes like BPM.
The main practical difference between 2 is that Orchestration middleware (such as WebSphere Process Server, BizTalk, Oracle BPEL Manager, and Windows Workflow Foundation) supports most of the WS * specifications. This includes Ws BPEL, Ws Security, Ws Atomic Transaction, Ws Business Activity, Ws Reliable Messaging, etc., while most BPM tools do not.
As a result, feel free to use enterprise-level Orchestration, but be very careful about using BPM in this area.
In practice, BPM and Orchestration tools provide a graphical representation of the business process. The difference is that Orchestration can be expressed through the Vendor-Neutral BPEL (Business Process Execution Language), while BPM is expressed using the Specific Provider> BPMN (Business Process Modeling Designation). This is another reason to avoid using BPM tools at the SOA / Enterprise level.
In cases where the BPM tool implements the Ws * specifications, it is an orchestration tool for all practical purposes. The difference, again, is that BPM tools rely on vendor-specific BPMN and Orchestration tools, based on the Vendor-Neutral BPEL.
In cases where both BPM and Orchestration must coexist, restrict the BPM to the application architecture (such as the MVC style) and allow Orchestration to facilitate the sharing of enterprise assets.
ESB is a completely different animal. It should be used for asynchronous rather than synchronous processes and relies on a different set of design patterns (i.e. Service broker, asynchronous queue, intermediate routing, and Content Enricher patterns)