Monday 21 May 2012

When to use Oracle BPEL and OSB?

Often for the newbies of (Oracle) SOA Technologies, this question pops in mind stating when to use BPEL and OSB.

Fundamentally if you read the docs, you will see that both the now Oracle products have similar orchestration capabilities. This blog is written in the intention to clarify the question.

I will cover the one line answer and provide some references I found in the web.

One Liner:

Use of BPEL: State-full, high involvement of Data Manipulation.
Use of OSB: Stateless, Low involvement of Data Manipulation.

For a briefer differentiation, I found another blog in the web space which made my job easier. I have copied the content across to this blog.

Note: the copyright of the below content belongs to the author of the blog page.

Use OSB for:

  • Endpoint routing (providing location transparency) so that we do not care about the physical location of the endpoint.
  • Endpoint abstraction (interface transparency) so that we do not care about the exact data formats required by the endpoint because the OSB will take care of transformations.
  • Load balancing so that we do not care about which of multiple service implementations will actually service a request. 
  • Throttling so that we do not care about how use of services is restricted.  
  • Enrichment so that we do not care about how additional data is provided to the request to match the expected request and response formats.
  • Simple synchronous composition so that we do not care if our abstract service call is actually made up of two or more physical service calls.
  • Protocol conversion so that we do not care what physical transports are being used.
  • Sync/async abstraction so that we can treat services as fire and forget or query response according to the needs of the client.

Use BPEL for:
  • Complex composition of parallel flows that involve more than a couple of services.
  • Long running compositions that may run for minutes, hours or days.
  • Asynchronous compositions that require correlation of requests and responses.
  • Process abstraction that enables us to track processes and their interactions with multiple services.
  • Human workflow

2 comments: