Friday, December 19, 2008

Do All ASync BPEL process require correlation?

Why I ask this?

Well it is natural to ask this question once you have read about correlation.
When to use correlation? And a even better question when not to use correlation?

When not to use correlations?

If you have 2 BPEL processes that behave in the following way you do not require correlation.

A calls B --> ASync(Invoke)
B send result back to A --> ASync(Invoke)

This scenario does not require you to use correlation if you are with in BPEL realm.

How does this work?

BPEL does this behind the scenes for you.
Well there is some thing called WS-Adressing that takes care of this.

When does this above rule break?

If you are using a Async callback in a flowN branch you break this rule as there will be more than one process waiting to receive the input. WS-Addressing is not enough.

The other scenario is when you have atleast 3 processes that work as stated below.

A calls B
B calls C
C calls A

Now how does C know which instance of A to call. This forces you to use correlation.

There are other complex scenarios that can make you use correlation that is a variance of the above.

Links

How to use correlation in FlowN
http://oraclebpelindepth.blogspot.com/search/label/FlowN

No comments: