Salutation and SLP
by Pete St. Pierre,Sun Microsystems and Tohru Mori, IBM Jpan
The Technical Committee of the Salutation Consortium is now working to enhance the
Salutation Architecture to support directory-based service discovery by utilizing Service Location
Protocol (SLP). This work will achieve better scalability of the architecture in large workgroup
or enterprise environments.
The current proposal has the Salutation Manager (SLM) searching for a SLP directory agent
through multicast, broadcast, or manual configuration. If it finds one, the SLM will use SLP
protocol instead of Salutation protocol to register and un-register Functional Units it supports
with the SLP directory. Furthermore, the SLM will use SLP Protocol to search for services
requested by Salutation client applications.
For a small workgroup, where a directory service is not available or not necessary, the SLM may
not find a SLP directory agent. In this case, SLM will use Salutation protocol broadcasts to find
other SLMs and advertise the capabilities of the Functional Units it supports. Salutation Protocol
is also used to locate the services requested by Salutation client applications.
The Salutation API is designed to make Salutation applications unaware of the underlying
transport and discovery protocols. Therefore the application programmer does not need to know
if a directory exists or not. Furthermore, since the SLP directory agent can be a gateway to a
LDAP-based directory, the Salutation API and SLM provide a single application interface to all
three of these protocols. Salutation, SLP, and LDAP are all complementary with Salutation
providing a single API into each.
SLP Components: There are three discreet components to SLP. These are Service Agents (SA),
User Agents (UA) and Directory Agents (DA). A Service Agent is a process working on the
behalf of one or more services to advertise the services. A User Agent is a process working on
the user's behalf to establish contact with a useful service. The UA may retrieve service
information from a Directory Agent. A Directory Agent collects and caches service
advertisements from SAs.
SLP Message Types: SLP supports a number of message types. In discussing the basic
operation of SLP entities in a Salutation environment, we will describe the use of SLP messages
for registering and de-registering services, requesting services, and replying to service requests.
- SrvReg: A Service Agent issues one SrvReg message for each instance of a service that it
provides. These messages contain a URL for the service, a set of attribute/value pairs that
describe the service, and a lifetime for the service.
- SrvAck: A Directory Agent returns a SrvAck message when a SrvReg message has been processed. SrvAck messages are unicast to the Service Agent that sent the registration.
- SrvDeReg: A Service Agent issues a SrvDeReg when an instance of a service becomes
unavailable.
- SrvRqst: A User Agent issues a SrvRqst message to locate a service. The request may
include a set of attribute/value pairs for selecting services that meet certain criteria.
- SrvRply: A Directory Agent responds with SrvRply when a service provided matches the
criteria specified in a SrvRqst. A SrvRply that contains no URLs may be generated in response
to a SrvRqst message.
SLP also supports messages for requesting the attributes of a specific service, requesting a list of
all available services, and for Directory Agents to advertise themselves. Complete explanation of
these messages can be found in the Service Location Protocol specification.
How Salutation Utilizes SLP in Enterprise Networks
As part of the FU registration process, a Service Agent sends a SrvReg message to a Directory
Agent. This registration contains the service URL for the specific instance of the service, as well
as attribute/value pairs that describe the service. Directory Agents that have been configured in
the network cache these registrations. Once a registration has been cached, a DA responds with a
SrvAck message. Service registrations also contain a lifetime. If the service has become
unavailable but was unable to de-register itself, lifetime values allow a DA to expire cached
registrations. This situation should only occur if an SA is unable to issue an SrvDeReg message.
During normal operation SAs will periodically refresh their registrations with subsequent SrvReg
messages. These "refresh" messages are not required to contain a full set of attributes, though
may contain updated information if the values have changed.
User Agents make requests from DAs when a service is required. There are different ways a UA may discover a DA. In addition to statically configuring the UA with the address of the DA, a UA may request the address of a DA using the Dynamic Host Configuration Protocol (DHCP). While these two options exist, it is important that SLP be able to operate without manual configuration. For this reason, a UA may use the SrvRqst to find a DA. The SrvRqst is multicast to the IANA assigned multicast address for Service Location Protocol. The "service" requested in this message is called "directory-agent". Because this is a multicast request, it may receive more than one unicast reply. The resulting list of directory agents can then be used for other service requests.
Once a UA has the address of a DA, subsequent service requests can be made directly to that
entity. Let us look at printers as an example. If a UA is trying to locate a printer service, a
SrvRqst is constructed. This message contains the service type "printer", with an optional list of
attributes and values. The attribute/value pair describes the type of printer desired. This message
is unicast to a directory agent either pre-configured, or discovered through the multicast. The DA
receiving the SrvRqst performs a lookup on the cached registrations, attempting to match the
attributes and values requested. A SrvRply is then unicast to the requesting UA. This reply
contains zero or more service URLs, depending on the match results. The client may then use
the service URL to locate the printer.
Summary: SLP brings the scalability of directory based service discovery to Salutation to create a robust platform for service discovery. Using SLP and Salutation together, network appliances of the future can be designed to discover and communicate with each other in environments that range from the corporate office to the kitchen counter.