You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by "Dwiputera Aries Fajar (CI/AFR-SG)" <ar...@sg.bosch.com> on 2008/08/14 09:27:07 UTC

Correlation set - BPEL2

Hi Guys,

When I saw the correlation set from the BPEL2 specs and after playing it around in ODE, there is 1 simple question which keep me wonder...

Let say your bpel process invokes SERVICE A asynchronously and send an xml data (the tag <NAME> is used as correlation ID). Afterwards, our BPEL is waiting (with the RECEIVE).

Let say SERVICE A take about 3 days to complete its task...and when it is finished,
How can this service know that it needs to send the reply (invoke) to my bpel process?

Let say this SERVICE A is a marketplace, which is hit by thousands of web service...how can the service know that it will need to return this result (from thousands of results) to my bpel process?

I know that inside WS-Addressing, they have some "return-address" field, which can be used as a reference to invoke or reply the result. But without WS-Addressing, how SERVICE A reply my invocation? Does it mean every web service needs to have some queue engine as its outer layer? Or is there any other mechanism which I'm not aware of?

Thanks,
Aries

Re: Correlation set - BPEL2

Posted by Alex Boisvert <bo...@intalio.com>.
On Thu, Aug 14, 2008 at 12:27 AM, Dwiputera Aries Fajar (CI/AFR-SG) <
ariesfajar.dwiputera@sg.bosch.com> wrote:

> Let say SERVICE A take about 3 days to complete its task...and when it is
> finished,
> How can this service know that it needs to send the reply (invoke) to my
> bpel process?


I would know because that's the application contract.  Nothing in BPEL
validates this; it's something that should be documented, checked and tested
at a higher level.


> Let say this SERVICE A is a marketplace, which is hit by thousands of web
> service...how can the service know that it will need to return this result
> (from thousands of results) to my bpel process?


Your request message should contain some information about the sender if it
intends to receives a reply.   This can be expressed in various forms, from
WS-Addressing headers to a customer number inside the message body.


> I know that inside WS-Addressing, they have some "return-address" field,
> which can be used as a reference to invoke or reply the result. But without
> WS-Addressing, how SERVICE A reply my invocation? Does it mean every web
> service needs to have some queue engine as its outer layer? Or is there any
> other mechanism which I'm not aware of?


There are various ways of doing it, but no standard outside of
WS-Addressing.  As another example, you could just include the service URL
in the request message.

Ode has its own protocol if you're interested:
http://ode.apache.org/implicit-correlations.html
http://ode.apache.org/stateful-exchange-protocol.html

alex