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] RE: Issue 147 - some comemnts and questions


Quoting "Yaron Y. Goland" <ygoland@bea.com>:

> To me the issue of foreach versus flow is one of 'least
> surprise'.
I feel the issue is consistency and maintainability.

Solutions like <Foreach> and <bundle> add additional
concurrency constructs when we should really be
economising on concepts. Also I don't like the modal
nature of your <foreach>. I would prefer to keep a
general purpose iteration construct separate from
a concurrency construct. I believe effort is better
spent thinking through incorporating dynamic branching
into <flow>.


>Personally I think it is less surprising to have a
>serial foreach turn into a parallel foreach then it is
>to have a flow which normally means "do these things
>in parallel" turn into "do these things in parallel
>except certain things which should be done in parallel more
>>than once".
You misunderstood my proposal. I am trying to provide
a solution to what I believe van aalst calls the
"multiple instances decided at runtime" workflow design
pattern. I think Axel Martin has a proposal too about a
year ago. I am trying to sketch out a more declarative,
less verbose way and more straightforward way of stating
what I believe will be a common design pattern:

<flow>
    <foreach counterName="foo" parallel="yes">
       <startCounterValue="..."/> <finishCounterValue="....">
       <scope name="foo">
       </scope>
    </foreach>

    <foreach counterName="foo" parallel="yes">
       <startCounterValue="..."/> <finishCounterValue="....">
       <scope name="bar">
       </scope>
    </foreach>

    <foreach counterName="foo" parallel="yes">
       <startCounterValue="..."/> <finishCounterValue="....">
       <scope name="acme">
       </scope>
    </foreach>

    .
    .
    .
</flow>

> But this is really a question of art, not science.

Perhaps I am mistaken but I suspect to do anything
useful with parallel <foreach>, one will need query
expressions like

"//someXMLVariable[$counterName]"

(can I have a variable as an index?)

Otherwise how is one going to give dynamically created
scopes unique values?

I believe <foreach> without parameterised
modules/sub-processes will encourage a BASIC style of
programming,circa 1985. We know far more about language design in
2005.

Cheers,
Andrew








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