220 likes | 364 Views
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)
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