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