Internet DRAFT - draft-zhao-slp-attr
draft-zhao-slp-attr
INTERNET DRAFT Weibin Zhao
October 7, 2005 Henning Schulzrinne
Expires: April 8, 2006 Columbia University
Enabling Global Service Attributes in the Service Location Protocol
draft-zhao-slp-attr-04.txt
Status of This Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
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.
This Internet-Draft will expire on April 8, 2006.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document describes enabling global service attributes in the
Service Location Protocol (SLP). A global service attribute describes
a service property common to all service types. Its name begins with
the "service-" prefix. It is defined via an attribute template, and
can be imported into any service template. A single Service Request
(SrvRqst) message can use global service attributes to search
services across multiple service types. Global service attributes can
Zhao/Schulzrinne Expires: April 8, 2006 [Page 1]
Internet Draft SLP Global Service Attributes October 7, 2005
be associated with certain special characteristics so as to support
advanced discovery scenarios, such as URL changes, multi-access-point
services, multi-function devices and replicated services.
1. Introduction
A global service attribute describes a service property common to all
service types. For example, transport protocol (such as TCP and UDP)
is a global service attribute since it describes a property common to
all service types. In contrast, a local service attribute describes a
service property specific to certain service type. For example,
printing quality (such as draft, normal and high) is a property
unique to printers, thus it is a local service attribute.
Currently, all service attributes in the Service Location Protocol
(SLP) [RFC2608] are local because they are named, defined and used in
the context of a particular service type. Specifically, each service
type defines its own attribute set via a service template [RFC2609];
an attribute name is unique only within its service type (i.e., two
different service types may use the same attribute name); and an
attribute is always used along with its service type. By only using
local service attributes, SLP cannot efficiently support certain
discovery scenarios. For example, if a User Agent (UA) wants to find
all services supporting SCTP (Stream Control Transmission Protocol)
[RFC2960], it needs three steps in current SLP: sending a Service
Type Request (SrvTypeRqst) message to obtain a list of service types,
then using a separate Service Request (SrvRqst) message to search
services of each type, and finally combining the search results. As a
SrvRqst message can only search services of a single type, n+1
searches are needed for n service types, which is inefficient if n is
large.
This document describes enabling global service attributes in SLP,
which can improve SLP efficiency and support advanced discovery
scenarios.
1.1. Notation Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119].
2. Enabling Global Service Attributes in SLP
To enable global service attributes in SLP, we need to assign a
separate namespace to global service attributes, define them via
attribute templates, and using them properly in searching services
Zhao/Schulzrinne Expires: April 8, 2006 [Page 2]
Internet Draft SLP Global Service Attributes October 7, 2005
across multiple service types.
2.1. Namespace
A global service attribute can be used with any service type. If it
has the same name as a local service attribute, then there will be a
confusion on which is which. Therefore, a separate namespace is
needed for global service attributes. To follow the common practice
of prefixing an attribute name with its service type, the "service-"
prefix MUST be used in naming global service attributes.
2.2. Definition
A global service attribute is defined using an attribute template.
Normally each global service attribute is defined using a separate
attribute template; several global service attributes MAY be defined
in the same attribute template only if they are to be used together.
Any service type that uses a global service attribute imports the
attribute's definition into its service template, similar to the C
include and Java import mechanisms. In this way, a global service
attribute only has one definition, and can be used consistently
across all service types.
2.2.1. Attribute Template Syntax
An attribute template is a simplified version of the service type
template [RFC2609]. It is defined using the following ABNF [RFC2234]:
attr-template = version attr-defs
version = "# attribute-template-version" version-no term
version-no = version-no from Section 3.1 of RFC 2609
term = term from Section 3.1 of RFC 2609
attr-defs = 1*(attr-def)
attr-def = attr-def from Section 3.1 of RFC 2609
2.2.2. Attribute Template File Name
Similar to the service type template file [RFC2609], an attribute
template file has a naming convention defined using the following
ABNF.
attr-tem-fname = attribute-name "." version-no "." langtag
attribute-name = id from Section 3.1 of RFC 2609
version-no = version-no from Section 3.1 of RFC 2609
langtag = langtag from Section 3.1 of RFC 2609
The file name of an attribute template is derived from the first
attribute name it defines. For example, if a global service attribute
Zhao/Schulzrinne Expires: April 8, 2006 [Page 3]
Internet Draft SLP Global Service Attributes October 7, 2005
"service-attr-x" is the first attribute in an attribute template, the
version number is 1.0, and the language tag is "en", then the
attribute template file name is "service-attr-x.1.0.en".
2.2.3. Importing Global Service Attributes
To support importing global service attributes, the ABNF of the
service type template defined in RFC 2609 is extended as follows.
attr-defs = *( attr-def / keydef / import-line )
import-line = "import" attr-tem-fname
attr-tem-fname = attr-tem-fname from Section 2.2.2 of this document
2.3. Basic Usages
A global service attribute can appear in any place where a local
service attribute is appropriate, such as the attribute predicate in
a SrvRqst message, the attribute list in a Service Registration
(SrvReg) or Attribute Reply (AttrRply) message, and the attribute tag
in a Service Deregistration (SrvDeReg) or Attribute Request
(AttrRqst) message.
In a SrvRqst message, when local service attributes are used, exactly
one service type MUST be specified; but when only global service
attributes are used, multiple service types or a service type
wildcard can be specified. A service type wildcard is defined as an
empty service type string; the length of the service type string is
zero. Therefore, a single SrvRqst message can use global service
attributes to search services across multiple or all service types.
For example, to find all services supporting SCTP, we can use a
single SrvRqst message that has a service type wildcard, and an
attribute predicate of "service-transport-protocol=sctp".
2.4. Advantages
Using global service attributes can improve SLP efficiency. First,
global service attributes only need to be defined once. Afterwards,
they can be imported into any service template. This avoids defining
the same attribute repeatedly in different service templates, and
ensures a consistent definition. Secondly, by using global service
attributes, a single SrvRqst message can search services across
multiple service types, which is more efficient than using multiple
SrvRqst messages, one for each service type.
3. Advanced Usages
Global service attributes can be associated with certain special
characteristics so as to support advanced discovery scenarios. For
Zhao/Schulzrinne Expires: April 8, 2006 [Page 4]
Internet Draft SLP Global Service Attributes October 7, 2005
example, service identifiers and device identifiers are URIs
[RFC2396], such as UUIDs [UUID]. They have two important
characteristics: uniqueness and persistence, i.e., each of them
uniquely and persistently identifies a service or a device. We can
define service identifiers and device identifiers as global service
attributes, and use them to support the following discovery
scenarios.
3.1. Supporting URL Changes
SLP uses service URLs as service keys, which may be changed (e.g.,
when a service moves). Therefore, retrieving a service based on its
service URLs may not always be feasible, but a UA can always find a
service based on its service identifier.
3.2. Discovering Multi-Access-Point Services
A multi-access-point service provides the same service via different
access points (i.e., different IP addresses, port numbers or access
protocols) residing at the same device. For example, a multi-protocol
printer may support IPP [RFC2910] and LPR access protocols, and have
two URLs as follows: service:printer:ipp://mpp.example.com and
service:printer:lpr://mpp.example.com. A multi-access-point service
advertises each access point separately, but all advertisements use
the same service identifier and the same device identifier to
indicate that they belong to the same service instance residing at
the same device. A UA can discover all advertisements of a multi-
access-point service by specifying the service identifier and the
device identifier as well as the service type (or a service type
wildcard) in a SrvRqst message.
3.3. Discovering Multi-Function Devices
A multi-function device provides different types of services at the
same device, such as a printing and scanning device. A multi-function
device advertises each service type separately, but all
advertisements use the same device identifier to indicate that they
reside at the same device. A UA can discover all advertisements of a
multi-function device by specifying the device identifier and a
service type wildcard (or all the service types the device supports)
in a SrvRqst message.
3.4. Discovering Replicated Services
A replicated service provides the same service at different devices.
It advertises the same service at each device separately, and all
advertisements use the same service identifier but different device
identifiers. A UA can discover all advertisements of a replicated
Zhao/Schulzrinne Expires: April 8, 2006 [Page 5]
Internet Draft SLP Global Service Attributes October 7, 2005
service by specifying the service identifier and the service type (or
a service type wildcard) in a SrvRqst message. Note that a replicated
service uses different device identifiers in its advertisements
whereas a multi-access-point service uses the same device identifier
in its advertisements.
4. Security Considerations
The security considerations for RFC 2609 apply to this document.
5. Acknowledgments
Erik Guttman's draft on the serviceid: URI scheme [Serviceid]
motivated this document directly. Jim Mayer, Mark Bakke and Ira
McDonald gave good suggestions. The authors also benefit from the
discussions in the SLP mailing list.
6. References
6.1. 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.
6.2. Informative References
[Serviceid] E. Guttman, "The serviceid: URI Scheme for Service
Location", draft-guttman-svrloc-serviceid-02.txt,
August 2002.
[RFC2609] E. Guttman, C. Perkins and J. Kempf, "Service
Templates and Service: Schemes", RFC 2609, June, 1999.
[RFC2234] D. Crocker and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
[RFC2396] T. Berners-Lee, R. Fielding and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396,
August 1998.
[RFC2910] R. Herriot, S. Butler, P. Moore, R. Turner and J. Wenn,
"Internet Printing Protocol/1.1: Encoding and Transport",
RFC 2910, September 2000.
Zhao/Schulzrinne Expires: April 8, 2006 [Page 6]
Internet Draft SLP Global Service Attributes October 7, 2005
[RFC2960] R. Stewart, Q. Xie, K. Morneault, C. Sharp,
H. Schwarzbauer, T. Taylor, I. Rytina, M. Kalla,
L. Zhang and V. Paxson, "Stream Control Transmission
Protocol", RFC 2960, October 2000.
[UUID] Universal Unique Identifier,
http://www.opengroup.org/onlinepubs/9629399/apdxa.htm.
7. Authors' Addresses
Weibin Zhao
Henning Schulzrinne
Department of Computer Science
Columbia University
1214 Amsterdam Avenue, MC 0401
New York, NY 10027-7003
Email: {zwb,hgs}@cs.columbia.edu
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
Zhao/Schulzrinne Expires: April 8, 2006 [Page 7]
Internet Draft SLP Global Service Attributes October 7, 2005
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.
Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Zhao/Schulzrinne Expires: April 8, 2006 [Page 8]