ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matth...@offthelip.org>
Subject Re: asynchronous process -> service communication
Date Tue, 01 Jul 2008 14:52:36 GMT
On Tue, Jul 1, 2008 at 2:48 AM, Stelianos G. Sfakianakis <sgsfak@gmail.com>

> Hi,
> I am trying to build a BPEL process that will initiate the
> communication with some "partner" service and later on will block in
> waiting a callback form this service. So it will basically contain a
> <invoke> and a <receive> (for the callback) inn a sequence. It seems
> that I am confused with the way ODE supports this use case. From
> <http://ode.apache.org/implicit-correlations.html> and the
> magicSession example it seems that the <invoke>/<receive> combination
> will do the trick with no need for correlation. But in the same web
> page for a process to service interaction it is said that the
> "Stateful Exchange Protocol" should be used instead according to
> <http://ode.apache.org/stateful-exchange-protocol.html> But the
> "Stateful Exchange Protocol" documentation lacks any example of use
> (although I understand the notion of state, state identifiers, etc.
> some example would be much clearer). Also I just don't see the need
> for having state in this specific scenario, what I need is my process
> to accept the callback which as I see it would be enough with the
> simple "implicit correlation" (I assume that the session identifier
> will be passed as a SOAP/WS-Addr header somehow...)

The stateful exchange protocol is the specification, implicit correlation
describes its implementation in ODE. So they both describe the same thing,
only the first is generic whereas the second describes how it works in ODE.

Both only apply when you're dealing with services that support this
protocol, so you would have to implement it. Otherwise you have to rely on
classic correlation which would be the only way for the engine to know which
process instance is supposed to be called back. Thing is, even if in your
service doesn't really have state, as soon as you start a process instance
and mean to call it back, state exists. Because the engine needs to a way to
differentiate that specific instance from the others. Correlation is then a
way to "bind" that state to the data present in messages.

Btw you have attached all your WSDL documents but not your BPEL so I can't
really see on which message you would be able to correlate.


> I have used the EclipseBPEL plugin (and actually the Lompoz
> distribution which has better integration with ODE,
> http://lomboz.objectweb.org/downloads/drops/R-3.3-200710290621/) to
> create a sample process (called Test2, please check attached files).
> After various tests I have not managed to find a working solution.. A
> major obstacle seems to be how to specify the endpoint reference for
> the callback (which should be the process itself), which with the
> "correlation" issue makes things quite complex. Can you please take a
> look and either provide some example for this kind of (common)
> scenario or at least some guidance/workaround?
> thank you for your time!
> best regards
> Stelios

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message