tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raymond Feng" <enjoyj...@gmail.com>
Subject Re: Ask for help on promot and target
Date Tue, 25 Mar 2008 16:24:18 GMT
Hi,

Let me give a try:

1) @target

a) An SCA service represents a business function that a component provides, 
for example, a book store selling books.
b) An SCA reference represents a business function that a component 
consumes, for example, book store needs to use shopping cart and catalog.

The 'target' attribute of <reference> points to an SCA service that can 
provide the business function required by the reference. For example, if the 
BookStore component has a catalog reference as follows:

<component name="BookStoreComponent">
    <reference name="catalog" target="CatalogComponent/Catalog"/>
</component>

<component name="CatalogComponent">
    ...
</component>

The @target says CatalogComponent's Catalog service is the provider for 
catalog reference. If you change it to "NewCatalogComponent/Catalog", you 
basically switch to a new service provider: NewCatalogComponent's Catalog 
service.

2) @promote

In SCA, a pre-assembled composite can be reused as a building block for 
compositions. It's achieved by <implementation.composite>. For example, the 
Catalog service itself can be developed as a SCA composite. Inside the 
Catalog composite, there could be a few java components.

<component name="CatalogComponent>
    <implementation.composite composite="ns1:CatalogComposite"/>
    ...
</component>

Now the question is what services/references in the CatalogComposite will be 
made public for CatalogComponent. Service/Reference promotion is introduced 
for this purpose.

For example,

<composite name="CatalogComposite">
    <service name="Catalog" 
promote="InternalCatalogComponent/InternalCatalog">
         ...
    </service>

    <reference name="parnterCatalog" 
promote="InternalCatalogComponent/partnerCatalog">
         ...
    </reference>


    <component name="InternalCatalogComponent>
    ...
    </component>
</composite>

The @promote for the <service> says if CatalogComposite is used as a 
component for assembly, there is a service named Catalog that makes the 
InternalCatalogComponent's InternalCatalog service public. As a result, the 
CatalogComponent has a public Catalog service that can be wired to.

The @promote for the <reference> says if CatalogComposite is used as a 
component for assembly, there is a reference named partnerCatalog that makes 
the InternalCatalogComponent's partnerCatalog reference public. As a result, 
the CatalogComponent has a public partnerCatalog reference and a service 
provider can be defined for this reference.

Thanks,
Raymond
--------------------------------------------------
From: "Fengxiang" <meflyup@gmail.com>
Sent: Sunday, March 23, 2008 2:06 AM
To: <tuscany-user@ws.apache.org>
Subject: Ask for help on promot and target

> Dear all,
> My mother luangage is not english.So I can't got an deep understand with 
> the
> specification document of assembly of sca.
> Especially on attribution of promot and target, Could you give me an 
> detail
> explaination .
> Thanks.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-user-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-user-help@ws.apache.org


Mime
View raw message