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] Issue 2 - A modest proposal


Peter: i think it is agreed by all parties that dealing with a
prodigious number of sub-processes, would in the present spec be a very
great additional grievance ;-)
-maciej 

On Tue, 2004-09-28 at 13:21, Furniss, Peter wrote:
> irrelevancy:
> 
> the literary allusion of this subject line would suggest that the
> process should swifly eat its own sub-processes.
> 
> I'm trying to work out the connection
> 
> :-)
> 
> Peter
> 
> > -----Original Message-----
> > From: Trickovic, Ivana [mailto:ivana.trickovic@sap.com] 
> > Sent: 28 September 2004 18:23
> > To: 'Maciej Szefler'
> > Cc: wsbpel@lists.oasis-open.org
> > Subject: RE: [wsbpel] Issue 2 - A modest proposal
> > 
> > 
> > Maciej,
> > 
> > I find the proposal interesting (at least for locally defined 
> > reusable pieces of BPEL code). Would you give an example of 
> > an "another abstraction" where the scope abstractions can be declared?
> > 
> > Regards,
> > 
> > Ivana
> > 
> > 
> > > -----Original Message-----
> > > From: Maciej Szefler [mailto:mbs@fivesight.com]
> > > Sent: Samstag, 25. September 2004 21:51
> > > To: Trickovic, Ivana
> > > Cc: wsbpel@lists.oasis-open.org
> > > Subject: [wsbpel] Issue 2 - A modest proposal
> > > 
> > > 
> > > Ivana,
> > > 
> > > Keeping in mind the understandable desire by certain members
> > > of the committee to make these things macros and your desire 
> > > to address this issue, what do you think about the 
> > following approach:
> > > 
> > > We create the notion of a "parameterized scope" an 
> > "abstraction" of a 
> > > scope. These scope abstractions must be declared (in a scope, or in 
> > > another abstraction), using a syntax nearly identical to that of 
> > > scopes: <scope>
> > >    <variables>?
> > >    <correlationSets>?
> > >    <partnerLinks>?
> > >    <faultHandlers>?
> > >    <compensationHandlers>?
> > > 
> > >    <scopeDeclerations>
> > >      <scopeDeclaration typeName="typeName">
> > >        <parameters>
> > > 	 <param name="paramName" {message,element,}type="" />*
> > >        </parameters>
> > >        <faultHandlers?>
> > >        <compensationHandlers?>
> > >        <variables?>
> > >        <correlationSets?>
> > >        <partnerLinks?>
> > >        <any-activity>
> > >      </scopeDeclaration>
> > >    </scopeDeclerations>
> > >    ...
> > > </scope>
> > > 
> > > To use a scope abstraction we have a new "concretion" 
> > activity: <SCOPE 
> > > name="scopeName" type="typeName">
> > >    <arg paramName="paramname" replacement="visibleVarName" />* 
> > > </SCOPE>
> > > 
> > > So the construction:
> > > <scope>
> > >   <scope name="foo">
> > >      <empty/>
> > >   </scope>
> > > </scope>
> > > 
> > > is equivalent to;
> > > 
> > > <scope>
> > >   <scopeDeclerations>
> > >     <scopeDecleration typeName="fooType">
> > >       <empty/>
> > >     </scopeDecleration>
> > >   </scopeDeclerations>
> > > 
> > >   <SCOPE name="foo" type="fooType" />
> > > </scope>
> > > 
> > > 
> > > In the other direction, the concretion <SCOPE name="foo"
> > > type="bar"  can
> > > be defined simply in terms of an XML re-write rule: it is 
> > > equivalent to
> > > writing <scope name="foo"> with the body found in 
> > scopeDecleration of
> > > typeName="bar" subject to renaming of names found in the 
> > <parameters>
> > > block to the names specified in the <arg> elements. In order to keep
> > > this a pure "macro" we have to disallow recursion, and we 
> > > must disallow
> > > free variable or link names in the scope declarations (i.e. 
> > parameters
> > > are the only way to pass data around). 
> > > 
> > > To do functions:
> > > 
> > > <scope> 
> > >    <scopeDecls>
> > >       <scopeDecl typeName="multiply">
> > >           <parameters>
> > >              <vararg name="x" ../>
> > >              <vararg name="y" ../>
> > >              <vararg name="product"  ../>
> > >           </parametrs>
> > >           <assign>
> > >              <to variable="product" />
> > >              <from>$x * $y</from>
> > >           </assign>
> > >       </scopeDecl>
> > >    </scopeDecls>
> > > 
> > >    <scope>
> > >       <variables>
> > >         <variable name="a1"/>
> > >         <variable name="a2"/>
> > >         <variable name="a3"/>
> > >         <variable name="a4"/>
> > >         <variable name="a5"/>
> > >         <variable name="a6"/>
> > >       </variables>
> > >       <sequence>
> > >           <SCOPE name="s1" type="multiply">
> > >              <vararg paramName="x" varName="a1" />
> > >              <vararg paramName="y" varName="a2" />
> > >              <vararg paramName="product" varName="a3" />
> > >           </SCOPE>
> > >           <SCOPE name="s2" type="multiply">
> > >              <vararg paramName="x" varName="a2" />
> > >              <vararg paramName="y" varName="a3" />
> > >              <vararg paramName="product" varName="a4" />
> > >           </SCOPE>
> > >           <SCOPE name="s3" type="multiply">
> > >              <vararg paramName="x" varName="a4" />
> > >              <vararg paramName="y" varName="a5" />
> > >              <vararg paramName="product" varName="a6" />
> > >           </SCOPE>
> > > 
> > >       </sequence>
> > >    </scope>
> > > </scope>
> > > 
> > > 
> > > The appeal of this approach is that it gives you 
> > parameterization, and 
> > > can be done completely on the XML re-writing level (simple 
> > XSLT can do
> > > it) without introducing any new "native" BPEL constructs.
> > > 
> > > If you want to get even fancier, you can also have link parameters.
> > > 
> > > -maciej
> > > 
> > 
> > To unsubscribe from this mailing list (and be removed from 
> > the roster of the OASIS TC), go to 
> > http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/le
> > ave_workgroup.php.
> > 
> > 
> 
> To unsubscribe from this mailing list (and be removed from the roster of the OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php.
> 
> 

This is a digitally signed message part



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