I'm not trying to sway the BPM vs. BPEL argument one way or the other, but I'd simply like to say that it is not a "vs.". Both have uses and both are synergistic with the other. If you use Oracle BPM, you're able to use BPEL as well for what it's best at. Your project might not need BPM, but here's my take on the BPM / BPEL fit and the overlaps as it applies to Oracle BPM and BPEL.
Services - Both Oracle BPM and BPEL can invoke services, but you usually think of BPEL for the orchestration of services and it is used in more system centric process types. Oracle BPM processes invoke BPEL processes when service orchestration is needed, but BPM processes can invoke a service that has been exposed in the composite directly using a Service activity.
Human Interaction - Both Oracle BPM and BPEL processes can invoke human tasks, but you usually think of BPM for processes involving human interaction. It's an oversimplification, but you usually consider human tasks in BPEL processes when exceptions need to be manually handled. Think of Oracle BPM processes when you have non-trivial human interaction going across multiple roles. You think of BPM when the flow of documents through a process is important. BPM processes illustrate what occurs in a process and who is involved because they have swimlane roles that clearly show who is involved in the human steps throughout the process. BPEL processes have no swimlanes and it is not obvious who a task will be automatically routed to.
Process Modeling - Both Oracle BPM and BPEL processes can be created and edited by IT, but BPM processes are maintained by both the business and IT. If you want business involvement, consider BPM for those processes. BPM processes are understood by subject matter experts, end users, managers, business analysts and IT. Oracle BPM is based on BPMN. BPMN is important because it is the syntax used by business people today to model processes in about any tool used for process modeling. BPM process modeling is more flexible than BPEL. A sequence flow in a BPM process can go anywhere in the process while BPEL process flow is limited to the block structure. BPM processes can be modeled by the business using the web based tool called Composer. Although a BPEL process will be understood by IT, it is more complex and is not designed to be reviewed by the business.
Execution - Both Oracle BPM and BPEL processes can be executed. They both run on separate engines running on Oracle's Service Component Architecture (SCA) as compiled code for rapid execution, but the models are stored in their native syntax (BPMN for BPM and BPEL for BPEL). Both share common services for logging, auditing, instance hydration/dehydration and routing.
Activity Types - BPMN activities tend to be more abstract and are much easier for everyone (especially the business) to understand.
Event Handling - Although both Oracle BPM and BPEL processes can handle events, BPM process event handling is far richer. BPM has start, end, intermediate and boundary events. BPM process events have catch and send events for messages, signals and errors. BPM processes have catch timer events (BPEL processes on the other hand only capture message and timer events within a scope). While BPM events can be defined as either interrupting or non-interrupting using a single event, for a BPEL process to manage non-interrupting events a much more complex process is required. BPM processes have the ability to start from a variety of messages, signals and/or timer events. BPEL processes can only start a process from a single channel. If multiple channels are needed to start a BPEL process, they must be defined outside of the process and instead in the Composite diagram.
User Interfaces - The user interfaces created for the human tasks in both Oracle BPM and BPEL processes can be based on ADF. With BPM, business people can also create user interfaces using a simple web based tool in Composer and immediately test the user interfaces and the rules they create using the Process Player tool also inside of Composer.
Patterns - Oracle BPM processes can have inclusive and parallel complex gateways enabling early release and aborting pending flows within the parallel or inclusive gateway structure. BPM processes have activity guides that let you set milestones within the BPM process that are available to be viewed at runtime.
Workspace - The Oracle BPM process Workspace can have calendar and holiday rules defined so you know when task can be assigned to users. The BPM task list can show the audit trail. BPM processes can have end user pie and bar charts based on process KPIs that end users can view from dashboards that they can create.
Hope this helps clear up the BPM "vs." BPEL" thing.
Join the Conversation
You are my hero. There you are. Resons to RETAIN BPM and better visualzation of process models are well stated and explained here.
Thanks for yet another expert review. I think its time for me to leverage BPEL as well.
Is BPEL light weight than BPM? I see both uses same BPMN engine. Please clarify.
My BPEL colleague argues and some of my onshore counterparts agree to it.
Although the Oracle BPM and BPEL engines share a common process core to handle the things that they both share like Security, Audit Trails, Service Invocation and data persistence, there is a separate engine for BPM and BPEL.
It's not so much that BPEL is lighter weight than BPM, it's instead that they have different functionality and are used for different things.
You would not want to use BPEL for a human centric process and you would not want to use BPM for a service orchestration process.
Hope this helps,
Thanks for the quick response. It is clear now.
amazing article, admiration my you have.
Its an awesome article,Clarifying many unanswered question of mine so far.
I am bit curious to know more about the reply you gave (You would not want to use BPEL for a human centric process and you would not want to use BPM for a service orchestration process.)
If we want to use/run human tasks in BPEL processes,Do we need create domain with BPM libraries.
I know we cant run BPM processes without BPM libraries installed in weblogic domain.But I havent tried anytime deploying BPEL composite with Human tasks in SOA weblogic domain.
If you just want to run BPEL processes and have a few human tasks that you would like to invoke from them, you would not have to install Oracle BPM. The architecture of Oracle SOA Suite is structured where there are different and separate engines for BPEL, BPM and Human Tasks.
Just as BPM processes do not have to contain only human tasks, BPEL processes do not have to contain only services. My recommendation though is that processes involving human tasks be modeled in BPM processes:
- For Clarity - BPMN modeled processes are very easy to understand for the business, IT and your business analysts).
- For Design Flexibility - Oracle BPM BPMN processes support the variety of process patterns that you will need to support the business's needs (see my recent blog BPM Process Patterns using Oracle BPM).
- For its Sweet Spot - Oracle BPM was built from the ground up with this intent in mind
Hope this helps,
Awesome Dan, It is very Helpful.
Also I have gone thru many of your recent articles on ADF in BPM.Those are helping many of us Alot. Glad we have you :)
Very helpful article.
Can you or someone in the forum share some tutorials on web services integrated with BPM. I didn't find any tutorials in Avio Consulting related to SOA BPM. As we know BPM can invoke various other services and process it further. Any document related to that will be highly appreciable
Thanks and Regards
i am working with BPMN and have a good knowledge about that . but i have a general knowledge about SOA .
my question is that can i launch Soa with BPMN or its nessesary to learn BPEL?