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