BPEL
1. A markup language for composing multiple services into an end-to-end business process
2. A workflow and process flow language
- Synchronous and asynchronous interactions
- Parallel processing
- Exception management
- Provides a way to integrate a set of heterogeneous services to implement business processes
3. Oracle BPEL Process Designer provides a wizard-driven model approach to exposing various systems and services as a Web service through WSDL generated to publish operations that can be performed by the service.
4. Oracle BPEL can be used for integration code but its not designed/optimised for it.. Oracle BPEL is a Business Process Execution Language and as such its optimised for managing and coding business processes, whereas an ESB is quite simply a highly efficient intergration product. Its principle objective is to join two different services together quickly, efficiently and bi-directional.
5. Primarily BPEL is used for Orchestration, data enrichment and also for Human interaction whereas ESB is used for Store and forward transport of data.
6. BPEL is used for bringing together multiple services. There is much more functionality and allows implementation of complex business logic
7. BPEL takes care of the stateful, long running, orchestration steps
8. BPEL operates on the canonical definitions of your business objects – such that
your BPEL process is clean (minimal transformations, assigns) with the focus on
the basic business logic and related compensatory error-handling logic
9. BPEL takes care of the stateful, long running, orchestration steps
- BPEL operates on the canonical definitions of your business objects - such that
your BPEL process is clean (minimal transformations, assigns) with the focus on
the basic business logic and related compensatory error-handling logic
10. Exception handling can be done in BPEL
11. BPEL can use Business rules, Human Workflow and Notifications.
Note
• ESB does not have the Sensors which can be used to monitor the activities that can send actions to Business Activity Monitoring (BAM) or database/jms.
ESB
1. ESB is quite simply a highly efficient intergration product
2. ESBs principle objective is join two different services together quickly, efficiently and bi-directional
3. Oracle ESB is not only quicker to “build” but its also quicker in its exection .An integration process in ESB product is approximately twice the speed of the same process in Oracle BPEL
4. ESB does not have the Sensors which can be used to monitor the activities that can send actions to Business Activity Monitoring (BAM) or database/jms
5. ESB is good for routing messages to multiple destination .It is also good for doing a transformation that have little or no business rules. This footprint is much smaller and incurs minimal overhead therefore the performance in better.
6. ESB (Enterprise Service Bus) implement messaging to enable services to be integrated in a message-based paradigm: both synchronous and asynchronous styles.
7. ESB virtualizes endpoints that BPEL is orchestrating
8. ESB is used for Store and forward transport of data.
So to recap
Use ESB when
You want a really low cost solution
Only need connectivity, simple transformations and routing
Use BPEL+ESB when
You need to code complex business logic
Integration with Workflow
Complex transforms potentially involving the database
Have Long running processes which may or may not be stateful.
The best practices around using BPEL and ESB together are as follows:
- BPEL takes care of the stateful, long running, orchestration steps
- BPEL operates on the canonical definitions of your business objects - such that
your BPEL process is clean (minimal transformations, assigns) with the focus on
the basic business logic and related compensatory error-handling logic
whereas,
- ESB virtualizes endpoints that BPEL is orchestrating
- ESB does the heavy lifting of transformations to and from the canonical definition to
endpoint definitions of the business objects
With an appropriately layered SOA architecture, one would look at ESB as a
repository of services that BPEL orchestrates. At deployment time, this layered
approach provides you the flexibility to dedicate servers to individual
tiers (BPEL and ESB) and thereby maximize the resource usage for your