220 likes | 232 Views
This paper explores two mechanisms, global attributes and preference filters, to improve the efficiency and extendability of the Service Location Protocol (SLP). It discusses their implementation and concludes with the advantages they bring to SLP.
E N D
Improving SLP Efficiency and Extendability by Using Global Attributes and Preference Filters Weibin Zhao Henning Schulzrinne {zwb,hgs}@cs.columbia.edu Department of Computer Science Columbia University
Outline • Background • Service discovery • Service Location Protocol (SLP) • Two new mechanisms for SLP • Global attributes • Preference filters • Implementation • Conclusions Zhao, Schulzrinne
Service 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 Zhao, Schulzrinne
Mechanisms and Systems • Mechanisms • Directory services • Multicast • Existing systems • Jini: Sun (Java) • UPnP: Microsoft (XML) • SLP: IETF (IP) • Salutation: Consortium (network independent) Zhao, Schulzrinne
Service Location Protocol (SLP) • IETF standard for service discovery in IP networks UA UA SA multicast query unicast query unicast registration SA SA DA UA: User AgentSA: Service AgentDA: Directory Agent Zhao, Schulzrinne
Motivating Example • Find all services that support SCTP • SCTP: Stream Control Transmission Protocol • Current SLP needs • Three steps • Use a SrvTypeRqst to get a service type list • Use a SrvRqst to query each service type • Combine query results together • N+1 queries • If there are N service types Zhao, Schulzrinne
Observation • 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 Zhao, Schulzrinne
Solution: Global 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) Zhao, Schulzrinne
Attribute 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 Zhao, Schulzrinne
Definition 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 Zhao, Schulzrinne
Advantages • 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 Zhao, Schulzrinne
Advanced 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 Zhao, Schulzrinne
Motivating Example • Find a printer with the minimum queue length • Current SLP needs • Find all printers and their queue length attribute • Sort them based on the queue length attribute • Choose the printer with the minimum queue length Zhao, Schulzrinne
Observation • 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 Zhao, Schulzrinne
Solution: Preference Filters • Search filters • Compared with a specify value • equal, greater than, less than • Preference filters • Compared with each other • min, max, sort, selection Search Filter Preference Filter Service Database Matched Service Preferred Service Zhao, Schulzrinne
Advantages • Reduce the amount of data transferred to the client • Useful for low bandwidth channel • wireless • Better support thin clients • Filter search results at server Zhao, Schulzrinne
Design • 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 Zhao, Schulzrinne
Selection 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 Zhao, Schulzrinne
Sort 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:+) Zhao, Schulzrinne
Generic 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) Zhao, Schulzrinne
Implementation • SrvRqst processing • Global attributes • Multiple service types or a service type wildcard • Ignore service type information during the search • Discard those search results that do not match any specified service types • Preference filters • Ignore the filter during the search • Apply the filter to the search results Zhao, Schulzrinne
Conclusions • 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 Zhao, Schulzrinne