David
David

Reputation: 27

BPMN and BPEL relationship with SOA

I am a bit confused about the relationships between BPMN, BPEL and SOA.

In short words I understand it like this:

BPMN is graphical notation for process witch is using web services. So BPMN combine multiple web services in some order. Then BPEL is representation of this process created using BPMN in XML (executable level). So it is orchestration of multiple web services. The result of BPEL is new service, which I can use in SOA (among with other services)

Do I understand it correctly ? If not please try to explain it as simple as possible. Maybe real life example would help

Thank you very much

Upvotes: 0

Views: 422

Answers (3)

de05ARG
de05ARG

Reputation: 13

BPMN has the focus in the interaction within pieces of business logic, describes as process and subprocess and their relation with an user input. Usually you will have a process with some tasks, they always will follow a flow described in the process sometimes involving different bifurcation options, or events trigger-catching mechanism.

BPEL : It's main focus it's based on orchestrate (meaning putting all together) different external services, sources. Interacting with some internal logic, it can also use some task for an user to interact but not as a main thing.

Usually a BPMN process will be offered as a WS in a composite, Same as a BPEL. The main difference it's that BPMN will take as priority (user input, business logic representated in steps ), BPEL will take as priority( organizing different sources of data, writing, retrieving info to external systems and so). In a high level you could think of it as A Service BPMN uses multiple BPEL services to interact with external system.

So the complexity of different systems interactions decrease in a BPMN process by passing all of that to BPEL services. Making a more understandable diagram of how the business process work. This as a simple approach, hope it helps. Best!

All of this at a high level

Upvotes: 0

Drux
Drux

Reputation: 466

Let's start at the high level. SOA is an over-arching concept that can be applied across an enterprise's technology solutions. To that end it is more a philosophy for how you approach your solutions to ensure certain principle's are followed independent of the technology used to implement that solution.

I've used several BPMN engines / suites and have encountered some BPEL solutions within that work. In my experience BPEL seems to lean towards orchestrating system based processes, coordinating complex logic where multiple systems need to interact in order to achieve a business outcome. BPMN can also do this, but many implementations put significantly more focus on the Business Processes that require both coordination of system and of users.

It is important to note that BPMN is silent on implementation portion of the process. While it is intended to capture the "what" of a process, it is silent on how to actually make the items in the diagram execute in the manner indicated. This is indicative of the underlying difference between "Business Process Modeling Notation" and "Business Process Execution Language". The latter at leas implies that execution be included for you to be in compliance while the former is nearly a means to say "This is a notation that can be used to display / understand a business process. Implementation is not part of the specification."

This gets easily blurred as the actual software for BPMN generally gets pulled towards inclusion of implementation, either as an engine for doing the bookkeeping for process execution (e.g. what is currently happening, what is next after that, what happened before) like Camunda, or a full end to end BPM Suite like IBM BPM (now part of their "Digital Process Automation" suite). These include implementation for Process execution, but that is not required by the BPMN standard.

Upvotes: 1

Suncatcher
Suncatcher

Reputation: 10621

So it is orchestration of multiple web services

Do I understand it correctly?

No. Both BPMN and BPEL are notations, which are used for denoting, representation and execution of processes, not web-services (!!!). And they had no single interconnection in terms of implementation and statement

Then BPEL is representation of this process created using BPMN in XML (executable level)

is not true. Yes, there are tools (very outdated) that allows converting from BPEL to BPMN and vice-versa, but generally it's not that simple and mainly this is manual work. Very good point about the "ease" of converting BPMN2BPEL is given in Wiki. BPMN and BPMEL is two competing approaches for solving the same problem, like DOCX ad ODF format for documents, like Android and iOS, etc. You can choose either tool, but for some of the tasks some of the tools suit better.

The result of BPEL is new service, which I can use in SOA (among with other services)

generally correct. The result of any BPEL scheme is web-service which represents the process, and you can grab this service as a WSDL-file and push to any WS-tool (SOA is not a tool, it is an architecture).

With BPMN it's a more complicated task, it requires BPMS, engine which will compile/render your service into smth executable like Web-service or Web-app.

Upvotes: 0

Related Questions