The Service Location Protocol
(SLPv2) is an IETF proposed standard
for service discovery in IP network. There are three different entities in
an SLP system: UA, SA and DA.
- User Agent (UA):
A UA initiates service discovery on behalf of one or more applications.
It sends queries to all SAs via multicast or to a DA via unicast.
- send service type request (SrvTypeRqst),
get service type reply (SrvTypeRply).
- send service request (SrvRqst),
get service reply (SrvRply).
- send attribute request (AttrRqst),
get attribute reply (AttrRply).
- Service Agent (SA):
An SA works on behalf of one or more services.
It responds directly to UA queries.
If DAs exist, it registers the services with DAs.
- send service registration (SrvReg),
get service acknowledgment (SrvAck).
- send service deregistration (SrvDeReg),
get service acknowledgment (SrvAck).
- Directory Agent (DA):
A DA serves as a centralized information repository in an SLP system.
It accepts SA registrations and answers UA queries.
DA support is optional in an SLP system;
it is introduced for performance and scalability considerations.
There are several important concepts in SLP.
- Service Location: SLP is a method for locating service. How to access
the service is another issue. Some service discovery systems combine
the service location and access together, e.g. Jini.
- URL: In SLP, the URL means unique service ID as well as service
location. Here
is a discussion on this issue in SLP mailing list.
- Service Scope: SLP uses service scope to achieve scalability.
All SLP entities (DA/SA/UA) should be configured with proper scopes,
and all SLP messages should set scope properly.
- Service Type: Each service registration in SLP must have a service
type. It is a classification for services, and it is used as a wildcard
for service searching. A standardized service type has a template.
- Naming Authority: A standardized service type should be registered
with a naming authority (IANA or private enterprise numbers).
- Language Tag: Each service can be registered in several different
languages (e.g., English, Chinese), and thus result in several different
entries in the registration database.