Nicola Ken Barozzi wrote:

> Peter Donald wrote:


>>   <provides>
>>     <role>
>>       <key>conn-manager</key>
>>       <interface>org.apache.avalon.ConnManager</interface>
>>     </role>
>>   </provides>
> 
> 
> hmmm... component provides roles or services?
> Role=interface+metadata...
> 
> <provides>
>   <service role="" interface=""/>
>     This is a cool service
>   </service>
> <provides>

Given that this is a discription relative to the source of service 
provision, the notion of role does not make sense.  A role makes sence 
to the consumer of the service - i.e.  "I need to use an instance of 
service XXX in role YYY". In this context the *role* value is simply a 
key within the scope fo the consuming component.

<provides>
   <service key="my-key" interface="TheInterface"/>
     This is a cool service
   </service>
<provides>

By seperating of the "role" attribute (by replacement with "key") we can 
more properly look at the question of a dependent component requirement 
for role fulfillment.  Role fulfillment covers not only providing a 
service matching an interface, but also the assessment of attributes 
declared under a dependency declaration relative to the attributes under 
published service.  I.e. to fullfill the role of a secure HTTP 
connection, a container can mediate the selection process based on 
service interface, service version, and the quality of service 
information declared by a provider relative to quality of service 
criteria declared by a consumer.

But it's Saturday afternoon so don't take me too seriously!

Cheers, Steve.


-- 

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:[EMAIL PROTECTED]
http://www.osm.net


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to