Tuesday, November 23, 2010

When to use OSB & BPEL?

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
Related blog topics:


  1. very nice article.. Some new article requests from my end...

    I am new to middleware technology that is OSB.. was working for Core java, jsp projects previously.. Please can u
    explain the meaning of
    [1] Exporting a wsdl, Consuming a wsdl
    [2] Publishing to a service.

    I am also completely new to SOA concepts as well.

    Thanks in Advance,

  2. Nice points to cover