OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [wsbpel] One more Topic for the "Review input from TC members" session of the F2FSome


If I understand you correctly, Mike, I concur -  these race conditions are a
critical issue. I was, in fact, going to pose as a use case precisely or at
least partially what you refer to here.  That is, the use case of
asynchronous but interdependent work flows.

This really needs a state transition diagram, but here is example:

n asynchronous workflows - let's say 2: A,B
m processses - let's say 3: X,Y,Z

Workflow A makes state changes (eg a price change) to X,Y,Z
Workflow B is started by X, which, based on its state, sends a message to Y
which changes its state, which in turn, based on its state, generates
message
for Z which changes its state.

A race condition occurs when, for example, A changes X but not yet Y and Z
while X, assuming Y is in a synchronized state vis a vis worklow A, has
already sent message to Y.

As service-oriented architectures and composite applications become
increasingly common, such multithreaded race conditions, including those
previously handled previously in proc, will need to be handled by some
coordinating process, presumably a workflow or similar system.

Is such a use case included as a WSBPEL goal?  I would advocate it should
be, since this is an example from the real world of business processes.

Ben

----- Original Message ----- 
From: "Marin, Mike" <MMarin@filenet.com>
To: <wsbpel@lists.oasis-open.org>
Sent: Friday, May 23, 2003 1:44 PM
Subject: [wsbpel] One more Topic for the "Review input from TC members"
session of the F2FSome


>
> The description of the underlying data model for the executable process
> seems to be missing from the specification. The two commonly implemented
> data models in BPM and workflow systems, includes what I will call
> shared data and path data.
>
> In the shared data model, all parallel activities share the data and so
> you have race conditions and last one win situations. In the path data
> model, each parallel path of activities has a copy of the data. In this
> case, you have problems with stall data and deciding how to merge the
> data together when the parallel paths meet. So, both models have some
> problems and benefits, and so, different products use different models
> and or variations.
> In the case of BPE, I have not been able to ascertain the type of
> underling model being use. So, I think that we need to clearly state the
> underling data model in the specification.
>
> For example, let assume the following pseudo-BPEL,
>
> Assume variables R, X, Y, Z are all in this scope, then
> Sequence
> {
>     Flow
>     {
>         Sequence
>         {
>               Receive into variable R  // read value "a"
>               Wait (randomly between zero and two hours)
>               Assign X with R
>          }
>         Sequence
>         {
>               Receive into variable R // read value "b"
>               Wait (randomly between zero and two hours)
>               Assign Y with R
>          }
>     }
>     Assign Z with R
> }
>
> In this example the two receive are executed in parallel (let assume
> they implement two operations that can be called at the same time, and
> both will be called in an arbitrary order). Note that having the two
> receive does not break any of the BPEL rules, because they are not
> conflicting receive (they are in a different partner link, port type,
> operation, and correlation set). Let further assume the receive are
> executed within seconds one from the other.
>
> The question is, what is the resulting value in X, Y, and Z. Do the
> values depend on which receive is triggered first? Or in which sequence
> finish first?
>
> The results may be either
> 1- (X=a, Y=a, Z=a) or (X=b, Y=b, Z=b) for shared data;
> 2- (X=a, Y=b, Z=a) or - (X=a, Y=b, Z=b) for path data.
> 3- any other permutation...
>
> --
> Regards,
> Mike Marin
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wsbpel-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: wsbpel-help@lists.oasis-open.org
>
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]