home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-svrloc-template-conversion-00.txt < prev    next >
Text File  |  1997-07-31  |  23KB  |  674 lines

  1.  
  2. Service Location Working Group                          Pete St.  Pierre
  3. INTERNET DRAFT                                          Sun Microsystems
  4.                                                             31 July 1997
  5.  
  6.           Conversion of LDAP Schemas to and from SLP Templates
  7.               draft-ietf-svrloc-template-conversion-00.txt
  8.  
  9.  
  10. Status of This Memo
  11.  
  12.    This document is a submission by the Service Location Working Group
  13.    of the Internet Engineering Task Force (IETF).  Comments should be
  14.    submitted to the srvloc@corp.home.net mailing list.
  15.  
  16.    Distribution of this memo is unlimited.
  17.  
  18.    This document is an Internet-Draft.  Internet-Drafts are working
  19.    documents of the Internet Engineering Task Force (IETF), its areas,
  20.    and its working groups.  Note that other groups may also distribute
  21.    working documents as Internet-Drafts.
  22.  
  23.    Internet-Drafts are draft documents valid for a maximum of six months
  24.    and may be updated, replaced, or obsoleted by other documents at
  25.    any time.  It is inappropriate to use Internet-Drafts as reference
  26.    material or to cite them other than as ``work in progress.''
  27.  
  28.    To learn the current status of any Internet-Draft, please check
  29.    the ``1id-abstracts.txt'' listing contained in the Internet-Drafts
  30.    Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (North
  31.    Europe), ftp.nis.garr.it (South Europe), munnari.oz.au (Pacific Rim),
  32.    ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
  33.  
  34.  
  35. Abstract
  36.  
  37.    LDAP and SLP are both useful mechanisms for locating service related
  38.    information on a network.  While they do perform similar functions,
  39.    the way in which the information they provide is formated is very
  40.    different.  This document describes a set of rules and mappings for
  41.    translating between the ASN.1 based LDAP schema and an SLP Template
  42.    as described in the ``Service Template and service:  Scheme''
  43.    draft.[1]
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. St.Pierre                Expires 31 January 1998                [Page i]
  57.  
  58. Internet Draft            Schemas and Templates             31 July 1997
  59.  
  60.  
  61.  
  62.  
  63.                                 Contents
  64.  
  65.  
  66.  
  67. Status of This Memo                                                    i
  68.  
  69. Abstract                                                               i
  70.  
  71.  1. Motivation                                                         1
  72.  
  73.  2. ASN.1 and BER Encodings                                            1
  74.  
  75.  3. Mapping from Templates to Schemas                                  2
  76.      3.1. Data Type Mappings  . . . . . . . . . . . . . . . . . . .    2
  77.      3.2. Integer . . . . . . . . . . . . . . . . . . . . . . . . .    2
  78.      3.3. String  . . . . . . . . . . . . . . . . . . . . . . . . .    3
  79.      3.4. Boolean . . . . . . . . . . . . . . . . . . . . . . . . .    3
  80.      3.5. Opaque  . . . . . . . . . . . . . . . . . . . . . . . . .    3
  81.      3.6. Enumerations  . . . . . . . . . . . . . . . . . . . . . .    4
  82.      3.7. Multi-valued Attributes . . . . . . . . . . . . . . . . .    4
  83.      3.8. Optional Attributes . . . . . . . . . . . . . . . . . . .    4
  84.      3.9. Literal Attributes  . . . . . . . . . . . . . . . . . . .    5
  85.     3.10. Explicit Matching . . . . . . . . . . . . . . . . . . . .    5
  86.     3.11. Sample Translation  . . . . . . . . . . . . . . . . . . .    5
  87.  
  88.  4. Mapping from Schemas to Templates                                  5
  89.      4.1. Data Conversions  . . . . . . . . . . . . . . . . . . . .    6
  90.      4.2. Integer . . . . . . . . . . . . . . . . . . . . . . . . .    6
  91.      4.3. Strings . . . . . . . . . . . . . . . . . . . . . . . . .    6
  92.      4.4. Boolean . . . . . . . . . . . . . . . . . . . . . . . . .    6
  93.      4.5. Octet String  . . . . . . . . . . . . . . . . . . . . . .    6
  94.      4.6. Enumeration . . . . . . . . . . . . . . . . . . . . . . .    6
  95.      4.7. Rules for Other ASN.1 Primitive Types . . . . . . . . . .    7
  96.      4.8. Set Of  . . . . . . . . . . . . . . . . . . . . . . . . .    7
  97.      4.9. Real  . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  98.     4.10. bitstring . . . . . . . . . . . . . . . . . . . . . . . .    8
  99.     4.11. Object Identifier . . . . . . . . . . . . . . . . . . . .    8
  100.     4.12. Sequence Of . . . . . . . . . . . . . . . . . . . . . . .    8
  101.     4.13. Sample Translation  . . . . . . . . . . . . . . . . . . .    9
  102.  
  103.  5. Notes on Matching Operators                                        9
  104.  
  105.  6. References                                                        10
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. St.Pierre                Expires 31 January 1998                [Page 1]
  113.  
  114. Internet Draft            Schemas and Templates             31 July 1997
  115.  
  116.  
  117. 1. Motivation
  118.  
  119.    SLP templates are intended to create a simple encoding of the
  120.    syntactic and semantic conventions for individual service types,
  121.    their attributes, and conventions.  This can easily be generated,
  122.    transmitted, read by humans and parsed by programs, as it is a string
  123.    based syntax with required comments.
  124.  
  125.    On the other hand, directory schemas serve to formalize directory
  126.    entry formulation for use with X.500 and LDAP. These directories
  127.    server to store information about many types of entities.  Network
  128.    services are one such entity.
  129.  
  130.    The ability to register services across both SLP and schema based
  131.    directory services is a much needed capability.  In order to
  132.    facilitate this, mappings must be created between the SLP template
  133.    grammar and the directory schemas
  134.  
  135.    The simple notation and syntactic/semantic attribute capabilities
  136.    of SLP will map well into directory schemas.  This means that
  137.    service templates will easily be converted into directory schemas.
  138.    The reverse is not true.  Only a certain restricted set of types,
  139.    matching rules and encoding conventions will be directly mappable
  140.    into service type templates.  There are rules to cover the cases
  141.    where mapping cannot be done directly.  It is believed that the cases
  142.    which are not supported are the exception rather than the rule.
  143.  
  144.    This document will outline the correct mappings for the four basic
  145.    data types supported by SLP to the ASN.1/BER encoding used by the
  146.    LDAP directory schema.  Likewise, rules and guidelines will be
  147.    propsed to facilitate consistent mapping of ASN.1 based schemas to be
  148.    translated in the SLP template grammar.
  149.  
  150.  
  151. 2. ASN.1 and BER Encodings
  152.  
  153.    ASN.1 defined schemas are assumed to be encoded using the Basic
  154.    Encoding Rules(BER) defined in CCITT Recommendation x.209.  This
  155.    document refers heavily to the X.209 specification for on-the-wire
  156.    encoding of ASN.1 values.  BER supports 4 types of encodings:
  157.    Universal, Application, Context Specific and Private.  All SLP types
  158.    will map to Universal BER encoded values.
  159.  
  160.    Within the scope of Universal types, there are both primitive
  161.    encodings and constructed encodings.  A primitive encoding a data
  162.    value encoding in which the contents octets directly represent the
  163.    value.  Constructed encodings are a data value encoding in which the
  164.  
  165.  
  166.  
  167.  
  168. St.Pierre                Expires 31 January 1998                [Page 2]
  169.  
  170. Internet Draft            Schemas and Templates             31 July 1997
  171.  
  172.  
  173.    contents octets are the complete encoding of one or more other data
  174.    values.  [2]
  175.  
  176.    This document will deal primarily with mapping ASN.1 primitive
  177.    encodings to SLP data types.  All discussions of bit ordering assume
  178.    bit 8 is the most significant bit.
  179.  
  180.  
  181. 3. Mapping from Templates to Schemas
  182.  
  183. 3.1. Data Type Mappings
  184.  
  185.    SLP supports four data types.  Each of these data types can be mapped
  186.    to a specific ASN.1 type.  In this way, translation of data types can
  187.    be described easily.  All SLP data types are encoded as strings in
  188.    the protocol.
  189.  
  190.    ASN.1 supports a much larger range of values.  As such, a subset
  191.    will be selected to map SLP values.  ASN.1 uses BER encoding as
  192.    described in CCITT Recommendation X.209 [2].  BER encodings are based
  193.    on tupples containing a Type, Length and Contents.
  194.  
  195.    Complexity is added when the SLP data type is expressed as an
  196.    enumeration.  This section describes the translation of each data
  197.    type to its corresponding ASN.1 type.  A discussion of proper
  198.    enumeration handling follows these mappings.
  199.  
  200.  
  201.      SLP Type     ASN.1 Type
  202.      ---------------------------
  203.      Integer      Integer
  204.      String       String
  205.      Boolean      Boolean
  206.      Opaque       Octet String
  207.  
  208.  
  209.  
  210. 3.2. Integer
  211.  
  212.    Both SLP templates and ASN.1 support Integers, therefore there
  213.    is a one to one mapping between an SLP Integer attribute and an
  214.    ASN.1 Integer attribute.  On the wire encoding of these two is very
  215.    different, though.
  216.  
  217.    In SLP, all integers are encoded as strings.  An integer value of
  218.    17869 would be represented by a 5 byte string containing the values
  219.    of the characters '1', '7', '8', '6', and '9' in the character set
  220.    specified in the request or repsonse packet.
  221.  
  222.  
  223.  
  224. St.Pierre                Expires 31 January 1998                [Page 3]
  225.  
  226. Internet Draft            Schemas and Templates             31 July 1997
  227.  
  228.  
  229.    The ASN.1 Integer type is encoded in BER according to the rules in
  230.    section 8 of the X.209 specification.
  231.  
  232.    The encoding of an ASN.1 integer value shall be primitive.  The
  233.    contents octets shall consist of one or more octets.  The rules
  234.    ensure that an integer value is always encoded in the smallest
  235.    possible number of octets.
  236.  
  237.    Also, The contents octets shall be a two's complement binary number
  238.    equal to the integer value, and consisting of bits 8 to 1 of the
  239.    first octet, followed by bits 8 to 1 of the second octet, followed by
  240.    bits 8 to 1 of each octet in turn up to and including the last octet
  241.    of the contents octets.
  242.  
  243.  
  244. 3.3. String
  245.  
  246.    SLP strings are encoded as described in section 20.5 of the SLP
  247.    protocol specification [3].  All value strings are considered case
  248.    insensitive for matching operations.  As such, these strings are
  249.    mapped to the ASN.1 caseIgnoreString syntax.
  250.  
  251.  
  252. 3.4. Boolean
  253.  
  254.    Boolean attributes may have one of two possible values.  In SLP,
  255.    these values are represented as strings, TRUE and FALSE. In SLP's
  256.    string encoding of a boolean value, case does not matter.
  257.  
  258.    ASN.1 supports a Universal, primitive type of boolean.  X.209
  259.    specifies that the Contents field of a FALSE boolean value be encoded
  260.    as a single octet with a value of zero.  A boolean whose value is
  261.    TRUE shall be encoded as a single octet whose value shall be any
  262.    non-zero value, at the sender's option.
  263.  
  264.  
  265. 3.5. Opaque
  266.  
  267.    SLP values that are encoded as Opaque are really a series of octets.
  268.    While SLP uses the construct of <len>:<radix-64-data>, this maps
  269.    very nicely to the tag/length1/value BER encoding of the ASN.1 Octet
  270.    String.
  271.  
  272.    The <len> field of the SLP encoding will not match the len field of
  273.    the BER encoding, as radix-64 encoding results in a 4 to 3 expansion
  274.    of the original data.  Likewise, data presented in radix-64 notation
  275.    must be converted back to the original byte stream to be encoded in
  276.    the Contents field of the BER encoding.
  277.  
  278.  
  279.  
  280. St.Pierre                Expires 31 January 1998                [Page 4]
  281.  
  282. Internet Draft            Schemas and Templates             31 July 1997
  283.  
  284.  
  285. 3.6. Enumerations
  286.  
  287.    The SLP template grammar provides for the definition of enumerations.
  288.    Enumerations are defined by listing all possible values for the
  289.    attribute following any help text provided for that attribute.  While
  290.    the template syntax allows for creation of enumerations, the SLP
  291.    protocol does not strictly enforce enumerations.  These enumerations
  292.    are still treated as text strings within the protocol, and values
  293.    outside the scope of the enumeration defined may be present.  The
  294.    template enumeration is intended as a guideline to client side
  295.    applications as to what values may be expected.
  296.  
  297.    An ASN.1 enumeration commonly maps a text string to a numerical
  298.    value.  In the BER encoding, the numerical value is passed as an
  299.    integer across the wire.  The receiving side must then translate
  300.    the the value to the associated string as defined in the ASN.1
  301.    description.  Because of this difference, SLP values that are
  302.    encoded as ASN.1 enumerations must be sure the enumeration covers all
  303.    possible values.
  304.  
  305.  
  306. 3.7. Multi-valued Attributes
  307.  
  308.    Multi-valued attributes are defined in an SLP template using the
  309.    'M' flag.  This flag indicates that an attribute may have more than
  310.    one value.  All values for a given attribute must be of the same
  311.    encoding type.  As such, the ASN.1 syntax for SET OF. Use of ``SET
  312.    OF'' assures all values will be of the same encoding type.
  313.  
  314.  
  315. 3.8. Optional Attributes
  316.  
  317.    SLP uses the 'O' flag to indicate an attribute may or may not be
  318.    present.  These optional attributes are defined using the ``May''
  319.    clause in an ASN.1 definition.  All other attributes must be defined
  320.    as a ``Must''
  321.  
  322.  
  323. 3.9. Literal Attributes
  324.  
  325.    ASN.1 does not have a mechanism to indicate that the values of an
  326.    attribute may not be translated from one language to another.
  327.  
  328.  
  329. 3.10. Explicit Matching
  330.  
  331.    The SLP template syntax uses a flag of 'X' to indicate that an
  332.    attribute must match exactly with a query made by a client.  There
  333.  
  334.  
  335.  
  336. St.Pierre                Expires 31 January 1998                [Page 5]
  337.  
  338. Internet Draft            Schemas and Templates             31 July 1997
  339.  
  340.  
  341.    is, however, no mechanism to prevent clients from using the
  342.    sub-string operator with explicit matching attributes.  Common
  343.    practice would be to map this to the ASN.1 matching syntax of
  344.    ``MATCHES EXACTLY''.
  345.  
  346.  
  347. 3.11. Sample Translation
  348.  
  349.    TBD: Take SLP Template for a Service and convert to LDAP schema
  350.  
  351.  
  352. 4. Mapping from Schemas to Templates
  353.  
  354.    ASN.1 employs a much richer set of data types than provided by SLP.
  355.    The table below show the mapping of selected ASN.1 data type to their
  356.    nearest SLP equivalent.  Because of the complexity and flexibility of
  357.    ASN.1, a complete list cannot be provided.
  358.  
  359.    As sample of some enco
  360.  
  361.  
  362.     ASN.1 type      SLP type
  363.     ---------------------------------------
  364.     Integer         Integer
  365.     Strings         String
  366.     Boolean         Boolean
  367.     Octet String    Opaque
  368.     Enumeration     String
  369.     Set Of          'M' flag
  370.     Real            String
  371.     Bit String      String
  372.     Object IdentifierString
  373.     Sequence Of     Multiple Attributes
  374.  
  375.  
  376.  
  377. 4.1. Data Conversions
  378.  
  379. 4.2. Integer
  380.  
  381.    Both SLP templates and ASN.1 support Integers, therefore there
  382.    is a one to one mapping between an SLP Integer attribute and an
  383.    ASN.1 Integer attribute.  On the wire encoding of these two is very
  384.    different, though.
  385.  
  386.    Details on the encoding is summarized in the SLP template to ASN.1
  387.    section above, as well as being explained in detail in [3] and
  388.    [X209].
  389.  
  390.  
  391.  
  392. St.Pierre                Expires 31 January 1998                [Page 6]
  393.  
  394. Internet Draft            Schemas and Templates             31 July 1997
  395.  
  396.  
  397. 4.3. Strings
  398.  
  399.    Strings are supported between both SLP and ASN.1.  SLP encoding
  400.    of the strings must conform to the rules for handling special
  401.    characters, as outlined in [3]
  402.  
  403.  
  404. 4.4. Boolean
  405.  
  406.    Boolean values are supported by both SLP and ASN.1, though on the
  407.    wire encodings will vary.  [2] specifies zero and non-zero encoding
  408.    for booleans, where SLP encodes booleans using the strings TRUE and
  409.    FALSE.
  410.  
  411.  
  412. 4.5. Octet String
  413.  
  414.    An ASN.1 octet string should be mapped to an Opaque in an SLP
  415.    template.  An octet string is a sequence of bytes, where an Opaque is
  416.    a sequence of bytes that has been encoded using radix64.
  417.  
  418.  
  419. 4.6. Enumeration
  420.  
  421.    SLP templates support the concept of enumerations through the listing
  422.    of values in the attribute definition.  This is similar to the ASN.1
  423.    definition of enumerations, though encodings vary.  In SLP enumerated
  424.    values are passed between client and server as strings.  BER encodes
  425.    the ASN.1 enumeration by passing the number of the elements position
  426.    in the enumeration.  This requires both sides to have knowledge of
  427.    the specific enumeration prior to decoding an enumerations value.
  428.  
  429.         color-supported = STRING M
  430.             none
  431.             # This attribute specifies whether the Printer supports
  432.             # color and, if so, what type.
  433.             none, highlight, three color, four color, monochromatic
  434.  
  435.  
  436.  
  437. 4.7. Rules for Other ASN.1 Primitive Types
  438.  
  439.    It is reasonable to think that all ASN.1 data types can be accurately
  440.    represented using the very basic data types defined in ASN.1.  As
  441.    such, data types that do not map directly to SLP data types should
  442.    be defined as either a String, or as Opaque.  ASN.1 types that may
  443.    only contain valid characters for Strings, as defined in [3] should
  444.    be encoded as strings.  If a value may contain illegal string values,
  445.  
  446.  
  447.  
  448. St.Pierre                Expires 31 January 1998                [Page 7]
  449.  
  450. Internet Draft            Schemas and Templates             31 July 1997
  451.  
  452.  
  453.    the SLP Opaque type should be used.  In either case, the first line
  454.    of the help text should indicate the original ASN.1 data type.
  455.  
  456.  
  457. 4.8. Set Of
  458.  
  459.    Sets can be accommodated in an SLP template by specifying the
  460.    attribute is multivalued.  The flag 'M' is used to indicate an
  461.    attribute Can have multiple values.  All values must be of the same
  462.    type.  As such, a multivalued attribute of type string could have
  463.    values of "one, 2, three", but the value 2 would be returned as
  464.    a string, not an integer.  Likewise, a multivalued integer could
  465.    not have a value of "1, 2, three", as all values would need to be
  466.    converted to strings, which are illegal for an attribute of type
  467.    integer.
  468.  
  469.  
  470. 4.9. Real
  471.  
  472.    There is no direct mapping between floating point numbers and any SLP
  473.    data types.  As such, attributes should be defined as type String.
  474.    Comments can be added to the attribute help text indicating the value
  475.    was originally an ASN.1 real.  For example
  476.  
  477.         weight = STRING
  478.             # ASN.1:  Real
  479.             # The objects weight in pounds.
  480.  
  481.  
  482.  
  483.  
  484.  
  485. 4.10. bitstring
  486.  
  487.    While the wire encoding of strings and bitstrings is quite different,
  488.    it is not unreasonable to represent a bitstring as a series of ones
  489.    and zeros.  As such, the ASN.1 bitstring is mapped to the SLP String
  490.    type, where all characters in the string are either ones or zeros.
  491.  
  492.         mask = STRING
  493.             # ASN.1:  Bitstring# The mask used to convert this number.
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504. St.Pierre                Expires 31 January 1998                [Page 8]
  505.  
  506. Internet Draft            Schemas and Templates             31 July 1997
  507.  
  508.  
  509. 4.11. Object Identifier
  510.  
  511.    Object identifiers are commonly used in the ASN.1 world to identify
  512.    object and attributes.  Object ID's are a numerical representation of
  513.    an elements place in the naming heirarchy.  Each element at the level
  514.    of a heirarchy has a unique number assigned within that level of the
  515.    heirarch.  A sample object ID would be the naming tree for SNMP MIBs.
  516.  
  517.    iso(1) org(3) dod(6) internet(1) mgmt(2) mib(1) would be written as
  518.    the string 1.3.6.1.2.1
  519.  
  520.    Because this representation reduces down to a string of dot separated
  521.    numbers, this maps easily to the SLP String type.  The help text for
  522.    this element should indicate it is an ASN.1 OID
  523.  
  524.         identifier = STRING
  525.             # ASN.1:  OID
  526.             # The object identifier for this SNMP agent.
  527.  
  528.  
  529.  
  530.  
  531.  
  532. 4.12. Sequence Of
  533.  
  534.    The ASN.1 construct 'Sequence Of' is probably the least intuitive to
  535.    map to an SLP template.  SLP attributes can only contain values of
  536.    like type.  By definition, this is an ASN.1 set.  ASN.1 sequences
  537.    are made of multiple values of different types.  For example, an
  538.    attribute named 'Engine' may be defined as:
  539.    SEQUENCE name String, status String
  540.  
  541.    In order to map this to an SLP template, we can create multiple
  542.    attributes and rely on the ordering for association.  The above might
  543.    translate as:
  544.  
  545.         engine-name = STRING M
  546.             # The name of one of this crafts engines.
  547.  
  548.  
  549.         engine-status = String M
  550.             unknown
  551.             # The name of one of this crafts engines.
  552.             unknown, running, shutdown
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560. St.Pierre                Expires 31 January 1998                [Page 9]
  561.  
  562. Internet Draft            Schemas and Templates             31 July 1997
  563.  
  564.  
  565.    To do this, we are relying on an assumption stated in the service:
  566.    Scheme Draft [SCHEME] that all values of a multivalued attribute
  567.    retain their order.  When new values are added, they are added to the
  568.    end of the list of values.
  569.  
  570.    As such, if we had
  571.    engine-name = right, left
  572.    engine-status = running, shutdown
  573.  
  574.  
  575.    We would assume that the engine named right is running and the engine
  576.    named left is shutdown.
  577.  
  578.  
  579. 4.13. Sample Translation
  580.  
  581.    In general, ASN.1 provides a much more robust set of data types than
  582.    provided for by SLP. As such, the more difficult task of converting
  583.    schemas from LDAP to templates for SLP.
  584.  
  585.  
  586. 5. Notes on Matching Operators
  587.  
  588.    While the SLP template grammar does not describe the matching
  589.    properties of attributes, ASN.1 does.  If chosing to add matching
  590.    properties to an SLP template when converting it to an ASN.1 based
  591.    schema, the following rules should be kept in mind.
  592.  
  593.    LDAP and SLP support the same matching operations, though using
  594.    slightly different matching symantics.  In addition to greaterOrEqual
  595.    and lessOrEqual, SLP provides for a simple less or greater match.
  596.  
  597.    LDAP Search Operators SLP Search Operators and (&) & or (|) | not
  598.    (!)  != equalityMatch (=) == substrings  greaterOrEqual (>=) >=
  599.    lessOrEqual (<=) <= present (=*) <keyword> approxMatch ( =) [TBD: Is
  600.    there an equivalent?]
  601.  
  602.    ASN.1 provides for three flavors of substring value matching.  These
  603.    are initial, any, and final.  In specifying the match capability of
  604.    an attribute, ASN.1 allows specification that a value may match the
  605.    leading part, any part, or the final part of a string value.  Using
  606.    the SLP search sematics, this is accomplished through the substring
  607.    (*) operator.  Searching for initial, any or final is handled through
  608.    specific placement of the operator.  The following example, taken
  609.    from RFC2165 illustrates this:
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616. St.Pierre               Expires 31 January 1998                [Page 10]
  617.  
  618. Internet Draft            Schemas and Templates             31 July 1997
  619.  
  620.  
  621.    inital:  "bob*" matches "bob", "bobcat", and "bob and sue" final:
  622.    "*bob" matches "bob", "bigbob", and "sue and bob" any:  "*bob*"
  623.    matches "bob", "bobcat", "bigbob", and "a bob I know"
  624.  
  625.  
  626. 6. References
  627.  
  628.  
  629.    [1]E. Guttman, C. Perkins, J. Kempf ``Service Templates and service:
  630.    Schemes'', Work in Progress, July, 1997
  631.    draft-ietf-svrloc-service-scheme-02.txt
  632.    [2]CCITT Recommendation X.209, ``Specification of Basic Encoding
  633.    Rules for Abstract Syntax Notation One (ASN.1), 1988
  634.  
  635.    [3]J. Veizades, E. Guttman, C. Perkins, and S. Kaplan.  ``Service
  636.    Location Protocol'', RFC 2165.  June 1997.
  637.  
  638.  
  639.  
  640.  
  641. Authors' Addresses
  642.  
  643.    Questions about this memo can be directed to:
  644.  
  645.    Pete St. Pierre
  646.    Sun Microsystems
  647.    901 San Antonio Avenue
  648.    Palo Alto, CA 94043
  649.    USA
  650.    Phone: +1 415 786-5790
  651.    email: Pete.StPierre@Eng.Sun.COM
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672. St.Pierre               Expires 31 January 1998                [Page 11]
  673.  
  674.