One document matched: draft-zhao-slp-customization-05.txt-14698.txt

Differences from 05.txt-04.txt







INTERNET DRAFT                                            Weibin Zhao
draft-zhao-slp-customization-05.txt               Henning Schulzrinne
[Target Category: Experimental]                   Columbia University
August 29, 2002                                          Erik Guttman
Expires: March 1, 2003                               Sun Microsystems
                                                  Chatschik Bisdikian
                                                       William Jerome
                                                                  IBM


                  Selection and Sort Extension for SLP


Status of This Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

Abstract

   This document defines the Selection and Sort Extension for the
   Service Location Protocol. These extensions allow a User Agent to
   request that the URL entries in a Service Reply be bounded to the
   specified number, or be sorted according to the specified sort key
   list. Using these two extensions together can facilitate discovering
   the best match.





Zhao, et al.            Expires: March 1, 2003                  [Page 1]

Internet Draft             SLP Customization             August 29, 2002


1. Introduction

   This document defines the Selection and Sort Extension for the
   Service Location Protocol (SLP [RFC2608]). These extensions allow a
   User Agent (UA) to request that the URL entries in a Service Reply
   (SrvRply) be bounded to the specified number, or be sorted according
   to the specified sort key list. A Directory Agent (DA) or Service
   Agent (SA) that supports the Selection and/or Sort Extension MUST
   include the attribute keyword "selection-enabled" and/or "sort-
   enabled" in its advertisement (DAAdvert or SAAdvert). A UA SHOULD
   check these attributes of the contacting DA/SA before it uses the
   Selection and/or Sort Extension to query the DA/SA.

   Using the Selection Extension, a UA can opt for finding a few (not
   all) services, which is useful if the UA uses a low-bandwidth
   channel. Using the Sort Extension, a UA can ask the DA/SA to sort
   matched URL entries, which helps the UA to choose a service from
   multiple candidates. As sort at the server side does not need to pass
   attributes to the UA, it is more efficient than sort at the client
   side. Furthermore, using the Selection and Sort Extension together
   can facilitate discovering the best match, such as finding a service
   that has the maximum speed or the minimum load, or has a speed
   closest to a reference value.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted according to in RFC 2119 [RFC2119].

2. Selection Extension

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Selection Extension ID = TBD1 |  Next Extension Offset (NEO)  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | NEO, cont'd   |      Number of URL Entries    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 1. Selection Extension

   The format of the Selection Extension is shown in Figure 1. A UA uses
   this extension in a Service Request (SrvRqst) to limit the maximum
   number (say n) of URL entries to be returned. When a DA/SA receives a
   SrvRqst with a Selection Extension, it MUST use a Selection Extension
   in the corresponding SrvRply to indicate the total number (say m) of
   matched URL entries if the DA/SA supports this extension, otherwise
   the DA/SA MUST set the error code in the corresponding SrvRply to
   OPTION_NOT_UNDERSTOOD [RFC2608]. If n < m, then only the first n



Zhao, et al.            Expires: March 1, 2003                  [Page 2]

Internet Draft             SLP Customization             August 29, 2002


   matched URL entries are returned, else all m matched URL entries are
   returned. As a special case, a UA may set n to zero to obtain the
   number of matched URL entries without retrieving the entries
   themselves.

   We denote a Selection Extension as Select(number). Thus, Select(3)
   means that the corresponding SrvRply can have at most three URL
   entries.

3. Sort Extension

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Sort Extension ID = TBD2   |  Next Extension Offset (NEO)  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | NEO, cont'd   |   length of <sort-key-list>   |<sort-key-list>\
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 2. Sort Extension

   The format of the Sort Extension is shown in Figure 2. A UA uses this
   extension in a SrvRqst to request the URL entries in the
   corresponding SrvRply be sorted according to the sort-key-list. The
   sort-key-list is defined using ABNF [RFC2234] as follows:

   sort-key-list  = sort-key / sort-key "," sort-key-list
   sort-key       = key-name ":" type ":" ordering [":" ref-value]
   key-name       = attr-tag from section 5 of RFC 2608
   type           = "s" / "i"
                    ; "s" for string type
                    ; "i" for integer type
   ordering       = "+" / "-"
                    ; "+" for increasing order
                    ; "-" for decreasing order
   ref-value      = intval from section 5 of RFC 2608

   Each sort-key in the sort-key-list has a key-name, a type specifier,
   an ordering specifier, and an optional reference value. The key-name
   MUST be a valid attribute name, and its type is explicitly specified.
   Although SLP has five attribute types (integer, string, boolean,
   opaque and keyword), we only consider integer sort and string sort
   since keyword attributes (they have no values) never need to be
   sorted, and boolean and opaque attributes can be sorted as strings if
   needed. The integer sort uses the integerOrderingMatch rule defined
   in X.520 [X520], whereas the string sort is performed based on
   lexical ordering. Strings are compared using the rules defined in
   section 6.4 of RFC 2608.



Zhao, et al.            Expires: March 1, 2003                  [Page 3]

Internet Draft             SLP Customization             August 29, 2002


   Only integer keys may have a reference value, causing the sort to be
   based on the distance to the reference value. A reference-based sort,
   such as "X:i:+:12", requires the following two steps:

   Step 1. For each matched service, if its attribute X has a value of
           x, then use |x-12| as its metric.

   Step 2. Use the metrics obtained in Step 1 to sort attribute X
           for matched services.

   The SLP sort rules are adapted from the LDAP sort rules defined in
   RFC 2891 [RFC2891]. Note that sort in SLP is a best effort, no sort
   error will be returned from a DA/SA to a UA.

   (1) The sort-key-list is in order of highest to lowest sort key
       precedence (section 1.1 of RFC 2891).

   (2) Each attribute SHOULD only occur in the sort-key-list once
       (section 1.1 of RFC 2891). If an attribute is included in the
       sort-key-list multiple times, only its first occurrence is
       considered, all other occurrences are ignored.

   (3) For a multi-valued attribute, the least value in each entry
       SHOULD be used in sort (section 2.2 of RFC 2891).

   (4) An entry missing one or more of the sort keys is treated as
       having NULLs for those missed keys (section 2.2 of RFC 2891).

   (5) NULL is considered as a larger value than all other valid
       values (section 2.2 of RFC 2891).

   (6) As the attribute type in SLP is not enforced, an attribute may
       have inconsistent values. For the purpose of sort, inconsistent
       values may exist only when an attribute is sorted as integer.
       Inconsistent values SHOULD be treated as NULLs.

   When a DA/SA receives a SrvRqst with a Sort Extension, the DA/SA
   SHOULD set the error code in the corresponding SrvRply to
   OPTION_NOT_UNDERSTOOD [RFC2608] if the DA/SA does not support the
   Sort Extension, or to zero if the DA/SA has successfully performed
   the requested sort.

   We denote a Sort Extension as Sort(sort-key-list). The following
   examples illustrate how to use the Sort Extension.

   o Integer sort on speed (decreasing order).

     Sort(speed:i:-)



Zhao, et al.            Expires: March 1, 2003                  [Page 4]

Internet Draft             SLP Customization             August 29, 2002


     [Note] "i" means integer sort, and "-" means decreasing order.

   o Integer sort on load (increasing order) and speed (decreasing
     order).

     Sort(load:i:+,speed:i:-)

     [Note] "+" means increasing order.

   o String sort on model (increasing order).

     Sort(model:s:+)

     [Note] "s" means string sort.

   o Integer sort on speed (increasing order), based on a reference
     value 12.

     Sort(speed:i:+:12)

     For example, if we have four matched services, with the "speed"
     attribute as 8 (URL1), 10 (URL2), 12 (URL3), and 15 (URL4), then
     the sorted URL list will be "URL3,URL2,URL4,URL1" (based on the
     metric ordering of |12-12| < |12-10| < |12-15| < |12-8|).

4. Using the Selection and Sort Extension Together

   In addition to being used individually, the Selection and Sort
   Extension can be used together to facilitate discovering the best
   match, such as finding a service with the maximum speed. When these
   two extensions appear in the same SrvRqst message, they MUST be
   processed in the order of their presence. We show some examples next.

   o Find the minimum load

     Sort(load:i:+)
     Select(1)

   o Find the top three speeds

     Sort(speed:i:-)
     Select(3)

   o Find the minimum load among the top three speed

     Sort(speed:i:-)
     Select(3)
     Sort(load:i:+)



Zhao, et al.            Expires: March 1, 2003                  [Page 5]

Internet Draft             SLP Customization             August 29, 2002


     Select(1)

   o Find the service that has a speed closest to 12

     Sort(speed:i:+:12)
     Select(1)

5. IANA Considerations

   The Selection and Sort extension IDs, TBD1 and TBD2, described in
   Section 2 and Section 3, respectively, are to be assigned by IANA out
   of the SLP extension space (RFC 2608, Section 9.1) reserved for
   "mandatory to implement" extensions (i.e., the 0x4000-0x7FFF range).

6. Security Considerations

   There are no new security issues beyond those described in RFC 2608.

7. Acknowledgments

   Ira McDonald provided good suggestions.

8. Normative References

   [RFC2608] E. Guttman, C. Perkins, J. Veizades and M. Day, "Service
       location protocol, version 2", RFC 2608, June 1999.

   [RFC2119] S. Bradner, "Key words for use in RFCs to indicate
       requirement levels", BCP 14, RFC 2119, March 1997.

9. Non-normative References

   [X520] International Telephone Union, "The Directory: Selected
       Attribute Types", X.520, 1997.

   [RFC2234] D. Crocker and P. Overell, "Augmented BNF for Syntax
       Specifications: ABNF", RFC 2234, November 1997.

   [RFC2891] T. Howes, M. Wahl and A. Anantha, "LDAP Control Extension
       for Server Side Sorting of Search Results", RFC 2891,
       August 2000.

10. Authors' Addresses

   Weibin Zhao
   Henning Schulzrinne
   Department of Computer Science
   Columbia University



Zhao, et al.            Expires: March 1, 2003                  [Page 6]

Internet Draft             SLP Customization             August 29, 2002


   1214 Amsterdam Avenue, MC 0401
   New York, NY 10027-7003
   Email: {zwb,hgs}@cs.columbia.edu

   Erik Guttman
   Sun Microsystems
   Eichhoelzelstr. 7
   74915 Waibstadt
   Germany
   Email: Erik.Guttman@sun.com

   Chatschik Bisdikian
   William F. Jerome
   IBM T. J. Watson Research Center
   P.O.Box 218
   Yorktown Heights, NY 10598-0218
   Email: {bisdik,wfj}@us.ibm.com

11. Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.






Zhao, et al.            Expires: March 1, 2003                  [Page 7]


PAFTECH AB 2003-20262026-04-24 04:20:20