Improving SLP Improving SLP Efficiency and Extendability Efficiency and Extendability
by Using by Using Global AttributesGlobal Attributes and and Preference FiltersPreference Filters
Weibin Zhao
Henning Schulzrinne{zwb,hgs}@cs.columbia.edu
Department of Computer Science
Columbia University
ICCCN'02 Zhao, Schulzrinne 2
OutlineOutline
Background Service discovery Service Location Protocol (SLP)
Two new mechanisms for SLP Global attributes Preference filters
Implementation Conclusions
ICCCN'02 Zhao, Schulzrinne 3
Service DiscoveryService Discovery
What is service discovery Service description framework
Services advertise their properties Clients specify their queries
Discovery A match of a client query with a service advertisement Service properties description service access point (URL)
Why do we need service discovery Zero-configuration, plug and play Adapt to changes of service availability
ICCCN'02 Zhao, Schulzrinne 4
Mechanisms and SystemsMechanisms and Systems
Mechanisms Directory services Multicast
Existing systems Jini: Sun (Java) UPnP: Microsoft (XML) SLP: IETF (IP) Salutation: Consortium (network independent)
ICCCN'02 Zhao, Schulzrinne 5
Service Location Protocol (SLP)Service Location Protocol (SLP) IETF standard for service discovery in IP networks
UA
SASA
UA SA
DA
multicast query
unicast query
UA: User Agent SA: Service Agent DA: Directory Agent
unicastregistration
ICCCN'02 Zhao, Schulzrinne 6
Motivating ExampleMotivating Example
Find all services that support SCTP SCTP: Stream Control Transmission Protocol
Current SLP needs Three steps
(1) Use a SrvTypeRqst to get a service type list
(2) Use a SrvRqst to query each service type
(3) Combine query results together N+1 queries
If there are N service types
ICCCN'02 Zhao, Schulzrinne 7
ObservationObservation
Current SLP Service type based discovery
Service type: printer Service properties: color, speed, resolution, etc.
Service URL
New requirement Discovery across multiple or all service types
ICCCN'02 Zhao, Schulzrinne 8
Solution: Solution: Global AttributesGlobal Attributes
Template Standardize attributes
Service template for each service type Different service types have different attributes Local attributes: specific to a service type
printer-resolution
Attribute template for all services Global attributes: applicable to all service types
transport-protocol (e.g., TCP, UDP, SCTP)
ICCCN'02 Zhao, Schulzrinne 9
Attribute NamespaceAttribute Namespace Why do we need namespace?
An attribute in current SLP Name is unique only within its service type Being defined and used along with its service type
When global attributes are used Possible name collisions between global and local attributes
How to define namespace? Use service type as prefix
nrsm-capacity, iptel-gw-capacity Use “service-” prefix for global attributes
service-transport-protocol
ICCCN'02 Zhao, Schulzrinne 10
Definition and UsageDefinition and Usage
Definition: attribute template Each template defines one or more attributes Being imported into service templates
Usage: in SrvRqst When local attributes are used
Exact one service type is specified When only global attributes are used
Multiple service types or a service type wildcard can be specified
ICCCN'02 Zhao, Schulzrinne 11
AdvantagesAdvantages Improve SLP efficiency
Defined once, imported afterwards Consistent definition and usage
Use one query to find services of multiple types Extend SLP functionality
Current SLP Standardized: service URL, service type, service scope Other attributes: attribute list
Standardize global attributes Service identifier: unique & persistent, identify a service Device identifier: unique & persistent, identify a device
ICCCN'02 Zhao, Schulzrinne 12
Advanced DiscoveryAdvanced Discovery Use service identifier to support
URL changes Multi-protocol services
service:printer:ipp://mpp.example.com service:printer:lpr://mpp.example.com
Use device identifier to support Multi-function device
A scanning and printing device
Use both to support Replicated service
Same service identifier, different device identifiers
ICCCN'02 Zhao, Schulzrinne 13
Motivating ExampleMotivating Example
Find a printer with the minimum queue length Current SLP needs
(1) Find all printers and their queue length attribute
(2) Sort them based on the queue length attribute
(3) Choose the printer with the minimum queue length
ICCCN'02 Zhao, Schulzrinne 14
ObservationObservation
Current SLP Server does not process search results
Return ALL matched URLs No specific order
Client needs to select one among multiple choices New requirement
Process search results Limit the number of results returned Sort the results Find the best match
ICCCN'02 Zhao, Schulzrinne 15
Solution: Preference FiltersSolution: Preference Filters
Search filters Compared with a specify value
equal, greater than, less than
Preference filters Compared with each other
min, max, sort, selection
Service Database Matched Service Preferred Service
Search Filter Preference Filter
ICCCN'02 Zhao, Schulzrinne 16
AdvantagesAdvantages
Reduce the amount of data transferred to the client Useful for low bandwidth channel
wireless
Better support thin clients Filter search results at server
ICCCN'02 Zhao, Schulzrinne 17
DesignDesign
Basic preference filters Selection filters
SLP selection extension Sort filters
SLP sort extension
Generic preference filters Compose basic filters
A sequence of SLP selection and sort extensions
ICCCN'02 Zhao, Schulzrinne 18
Selection FiltersSelection Filters select(N)
Assume M search results, if N<M, then return first N results, else return all M results
Server indicates the number (i.e., M) of search results in its reply.
Examples select(1) select(3) select(0)
Obtain the number of search results without retrieving the results themselves
ICCCN'02 Zhao, Schulzrinne 19
Sort FiltersSort Filters sort(sort-key-list)
sort-key = key-name : type : ordering : [ref-value] type: integer (i) or string (s) ordering: increasing (+) or decreasing (-) reference value: optional, for integer only
sort based on the distance to the reference value
Examples sort(load:i:+) sort(speed:i:+:12) sort(speed:i:-,load:i:+) sort (identifier:s:+)
ICCCN'02 Zhao, Schulzrinne 20
Generic Preference FiltersGeneric Preference Filters
Best match Minimum load
sort(load:i:+),select(1) Maximum speed
sort(speed:i:-),select(1) The speed closest to a reference value 12
sort(speed:i:+:12),select(1) The minimum load among top three in terms of speed
sort(speed:i:-),select(3),sort(load:i:+),select(1)
ICCCN'02 Zhao, Schulzrinne 21
ImplementationImplementation
SrvRqst processing Global attributes
Multiple service types or a service type wildcard
(1) Ignore service type information during the search
(2) Discard those search results that do not match any specified service types
Preference filters(1) Ignore the filter during the search
(2) Apply the filter to the search results
ICCCN'02 Zhao, Schulzrinne 22
ConclusionsConclusions
Simple but useful mechanisms Extend SLP attributes from local to global Enable generic preference filtering on search results
General applicability The rationale behind these mechanisms can be applied
to other service discovery systems as well IETF standardization
The draft on SLP selection and sort extension has been approved as an experimental RFC