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] Link semantics in event handlers


Yuzo,

Very good question.  My interpretation of the semantics is that the flow
in each "thread" is independent, the one you called "natural."  This
sort of example brings out the importance of a relatively formal
operational semantics for BPEL which I believe should be one of the
outputs of this TC.

As for whether the concurrency between multiple incarnations of a
specific event handler is needed, I am sure reasonable people can
disagree.  My own belief is that in many if not most use cases, event
handlers will guard against interference in shared data (with the scope
and with each other) by enclosing some or most of their activities in
serializable scopes, thus naturally serializing (interfering) activities
including multiple instances.  When this is not the case (for instance
synchronous status query handlers that operate in read-only mode against
infrequently updated shared data) the concurrency simply reduces the
need for locking and helps performance and throughput.

My 2 pennies.

Satish

-----Original Message-----
From: Yuzo Fujishima [mailto:fujishima@bc.jp.nec.com] 
Sent: Monday, May 26, 2003 1:36 AM
To: wsbpel@lists.oasis-open.org
Subject: [wsbpel] Link semantics in event handlers

Hi,

According to 13.5.4.2 Message Events,
BPEL 1.1 allows one event handler
activity to run concurrently. This happens when multiple
event messages of a type are received in short invervals.

Suppose there is an event handler that is a <flow> containing
activities A, B, and C where C has synchronization dependencies
on A and B. 

A--->C<---B

Suppose this <flow> is started twice in a short interval and run
concurrently. Let's denote the two executions as "thread-1" and
"thread-2". Further suppose A completes in thread-1 and B
completes in thread-2.

Can C be started then, in both thread-1 and thread-2?

Or should C in thread-x wait until both A and B are completed in
thread-x? (I think this more natural.)

Anyway, concurrency will complicate the semantics and
implementation pretty much. Allowing concurrency for the 
price of complicacy may make sense in some situaions but may not in
others. My basic preference is to simplicity, but I'm not sure
yet for this specific case. Do you think the concurrency
essential?

Sincerely,
Yuzo Fujishima
NEC Corporation


---------------------------------------------------------------------
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]