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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: Re: [sca-assembly] Misadventures exploring "@coupledTo" for proposedresolution of ASSEMBLY-227


To compare the syntax of the prosumer v. groupID, I made up an example 
below that provides the same end result with different sytax. Note, I 
didn't use the @mustConnectTo/@coupledTo, as I do not like the idea of 
producers stating which consumers they are connected to in the component 
type (or vice versa). Since groupID is confusing, I used the attribute 
name 'label'. If you don't like these names use 'bananas' and 'apples' ;-)



1) Prosumer syntax:

BPEL process 'P1' has an introspected component type that contains 
consumer 'consumer1', producer 'producer1' and a prosumer 'prosumer1'.

Composite 'composite1' uses P1 as a component. consumer1 and producer1 
are connected via channel 'channel1'. prosumer1 is connected to channel 
'channel2'. consumer1 is promoted as consumer2; producer1 is promoted as 
producer2; and consumer1, producer1, prosumer1 are promoted as prosumer2.

a) component type of BPEL process P1

<componentType ...>
   <consumer name="consumer1" />
   <producer name="producer1" />
   <prosumer name="prosumer1"/>
</componentType>

b) composite1

<composite name="composite1" ...>

   <consumer name=consumer2" promotes="component1/consumer1"/>
   <producer name=producer2" promotes="component1/producer1"/>
   <prosumer name="prosumer2" promotesConsumers="component1/consumer1"
             promotesProducers="component1/producer1"
             promotesProsumers="component1/prosumer1"/>

   <component name="component1">
      <implementation.bpel process="ns1:P1" />
      <consumer name="consumer1" source="channel1"/>
      <producer name="producer1" target="channel1" />
      <prosumer name="prosumer1" target="channel2" />
   </component>

   <channel name="channel1" />
   <channel name="channel2" />

</composite>

c) component type of composite1

<componentType ...>
   <consumer name="consumer2" />
   <producer name="producer2" />
   <prosumer name="prosumer2"/>
</componentType>



2) Label syntax

BPEL process 'P1' has an introspected component type that contains 
consumer 'consumer1', producer 'producer1'. It also contains a consumer 
'prosumer-c1' and a producer 'prosumer-p1' both of them have the same 
label 'label1' => they have to be connected together via a channel.

Composite 'composite1' uses P1 as a component. consumer1 and producer1 
are connected via channel 'channel1'. prosumer1-c1 and prosumer-p1 are 
connected via channel 'channel2'. consumer1 is promoted as consumer2; 
producer1 is promoted as producer2. consumer1, prosumer-c1 are promoted 
as prosumer-c2 with a label 'label2'. Similarly producer1, prosumer1-p1 
are promoted as prosumer-p2 with a 'label2'.

a) component type of BPEL process P1

<componentType ...>
   <consumer name="consumer1" />
   <producer name="producer1" />
   <consumer name="prosumer-c1" label="label1"/>
   <producer name="prosumer-p1" label="label1"/>
</componentType>

<composite name="composite1" ...>

   <consumer name=consumer2" promotes="component1/consumer1"/>
   <producer name=producer2" promotes="component1/producer1"/>
   <consumer name=prosumer-c2" promotes="component1/consumer1
             component1/prosumer-c1" label="label2"/>
   <producer name=prosumer-p2" promotes="component1/producer1"
             component1/prosumer1-p1" label="label2"/>

   <component name="component1">
      <implementation.bpel process="ns1:P1" />
      <consumer name="consumer1" source="channel1"/>
      <producer name="producer1" target="channel1" />
      <consumer name="prosumer-c1 source="channel2"
      <producer name="prosumer-p1" target="channel2" />
   </component>

   <channel name="channel1" />
   <channel name="channel2" />

</composite>

<componentType ...>
   <consumer name="consumer2" />
   <producer name="producer2" />
   <consumer name="prosumer-c2" label="label2"/>
   <producer name="prosumer-p2" label="label2"/>
</componentType>


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