A service discovery mechanism may allow clients in a distributed computing
environment to search for services. The service discovery mechanism may
allow a client to request a capability credential from a service. The
distributed computing environment may include a mechanism for a client to
negotiate service access rights and to then obtain a capability
credential that may be used to obtain the service's access interface to
the set or subset of the service's capabilities that were requested or
negotiated by the client. In one embodiment, the client may present to
the service a set of desired capabilities. The service may then respond
with a capability credential that may convey to the client the rights to
use the requested capabilities. A complete service advertisement may be
needed to create a message endpoint for accessing the service. In an
embodiment, the capability credential may be used by a client to obtain a
complete advertisement for only the requested or negotiated capabilities.
The capability credential may provide an additional level of security for
the service provider. The capability credential that may be used to
receive the complete advertisement may also be used to construct a
message gate to communicate with the service where the gate embeds the
capability credential in each message to the service.