home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1837 < prev    next >
Text File  |  1995-08-16  |  11KB  |  396 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           S. Kille
  8. Request for Comments: 1837                              ISODE Consortium
  9. Category: Experimental                                       August 1995
  10.  
  11.  
  12.         Representing Tables and Subtrees in the X.500 Directory
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  This memo does not specify an Internet standard of any
  18.    kind.  Discussion and suggestions for improvement are requested.
  19.    Distribution of this memo is unlimited.
  20.  
  21. Abstract
  22.  
  23.    This document defines techniques for representing two types of
  24.    information mapping in the OSI Directory [1].
  25.  
  26.    1.  Mapping from a key to a value (or set of values), as might be
  27.        done in a table lookup.
  28.  
  29.    2.  Mapping from a distinguished name to an associated value (or
  30.        values), where the values are not defined by the owner of the
  31.        entry.  This is achieved by use of a directory subtree.
  32.  
  33.    These techniques were developed for supporting MHS use of Directory
  34.    [2], but are specified separately as they have more general
  35.    applicability.
  36.  
  37. 1.  Representing Flat Tables
  38.  
  39.    Before considering specific function, a general purpose technique for
  40.    representing tables in the directory is introduced.  The schema for
  41.    this is given in Figure 1.
  42.  
  43.    A table can be considered as an unordered set of key to (single or
  44.    multiple) value mappings, where the key cannot be represented as a
  45.    global name.  There are four reasons why this may occur:
  46.  
  47.    1.  The object does not have a natural global name.
  48.  
  49.    2.  The object can only be named effectively in the context of being
  50.        a key to a binding.  In this case, the object will be given a
  51.        natural global name by the table.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Kille                         Experimental                      [Page 1]
  59.  
  60. RFC 1837                 Representing Subtrees               August 1995
  61.  
  62.  
  63.    3.  The object has a global name, and the table is being used to
  64.        associate parameters with this object, in cases where they cannot
  65.        be placed in the objects global entry.  Reasons why they might
  66.        not be so placed include:
  67.  
  68.         o  The object does not have a directory entry
  69.  
  70.         o  There is no authority to place the parameters in the global
  71.            entry
  72.  
  73.         o  The parameters are not global --- they only make sense in the
  74.            context of the table.
  75.  
  76.    4.  It is desirable to group information together as a performance
  77.        optimisation, so that the block of information may be widely
  78.        replicated.
  79.  
  80.    A table is represented as a single level subtree.  The root of the
  81.    subtree is an entry of object class Table.  This is named with a
  82.    common name descriptive of the table.  The table will be located
  83.    somewhere appropriate to its function.  If a table is private to an
  84.    MTA, it will be below the MTA's entry.  If it is shared by MTA's in
  85.    an organisation, it will be located under the organisation.
  86.  
  87.    The generic table entry contains only a description.  All instances
  88.    will be subclassed, and the subclass will define the naming
  89.    attribute.  Two subclasses are defined:
  90.  
  91. -----------------------------------------------------------------------
  92. table OBJECT-CLASS ::= {
  93.     SUBCLASS OF {top}
  94.     MUST CONTAIN {commonName}
  95.     MAY CONTAIN {manager}
  96.     ID oc-table}
  97.  
  98.  
  99. tableEntry OBJECT-CLASS ::= {
  100.     SUBCLASS OF {top}
  101.     MAY CONTAIN {description}                                       10
  102.     ID oc-table-entry}
  103.  
  104. textTableEntry OBJECT-CLASS ::= {
  105.     SUBCLASS OF {tableEntry}
  106.     MUST CONTAIN {textTableKey}
  107.     MAY CONTAIN {textTableValue}
  108.     ID oc-text-table-entry}
  109.  
  110. textTableKey ATTRIBUTE ::= {
  111.  
  112.  
  113.  
  114. Kille                         Experimental                      [Page 2]
  115.  
  116. RFC 1837                 Representing Subtrees               August 1995
  117.  
  118.  
  119.     SUBTYPE OF name                                                 20
  120.     WITH SYNTAX DirectoryString {ub-name}
  121.     ID at-text-table-key}
  122.  
  123. textTableValue ATTRIBUTE ::= {
  124.     SUBTYPE OF name
  125.     WITH SYNTAX  DirectoryString {ub-description}
  126.     ID at-text-table-value}
  127.  
  128. distinguishedNameTableEntry OBJECT-CLASS ::= {
  129.     SUBCLASS OF {tableEntry}                                        30
  130.     MUST CONTAIN {distinguishedNameTableKey}
  131.     ID oc-distinguished-name-table-entry}
  132.  
  133. distinguishedNameTableKey ATTRIBUTE ::= {
  134.     SUBTYPE OF distinguishedName
  135.     ID at-distinguished-name-table-key}
  136.  
  137.                      Figure 1:  Representing Tables
  138.  
  139.  
  140. 1.  TextEntry, which define table entries with text keys, which may
  141.     have single or multiple values of any type.  An attribute is
  142.     defined to allow a text value, to support the frequent text key to
  143.     text value mapping.  Additional values may be defined.
  144.  
  145. 2.  DistinguishedNameEntry.  This is used for associating information
  146.     with globally defined objects.  This approach should be used where
  147.     the number of objects in the table is small or very sparsely
  148.     spread over the DIT. In other cases where there are many objects
  149.     or the objects are tightly clustered in the DIT, the subtree
  150.     approach defined in Section 2 will be preferable.  No value
  151.     attributes are defined for this type of entry.  An application of
  152.     this will make appropriate subtyping to define the needed values.
  153.  
  154. This is best illustrated by example.  Consider the MTA:
  155.  
  156.  
  157. CN=Bells, OU=Computer Science,
  158. O=University College London, C=GB
  159.  
  160. Suppose that the MTA needs a table mapping from private keys to fully
  161. qualified domain names (this example is fictitious).  The table might
  162. be named as:
  163.  
  164. CN=domain-nicknames,
  165. CN=Bells, OU=Computer Science,
  166. O=University College London, C=GB
  167.  
  168.  
  169.  
  170. Kille                         Experimental                      [Page 3]
  171.  
  172. RFC 1837                 Representing Subtrees               August 1995
  173.  
  174.  
  175. To represent a mapping in this table from "euclid" to
  176. "bloomsbury.ac.uk", the entry:
  177.  
  178. CN=euclid, CN=domain-nicknames,
  179. CN=Bells, OU=Computer Science,
  180. O=University College London, C=GB
  181.  
  182.  
  183. will contain the attribute:
  184.  
  185. TextTableValue=bloomsbury.ac.uk
  186.  
  187.  
  188. A second example, showing the use of DistinguishedNameEntry is now
  189. given.  Consider again the MTA:
  190.  
  191.  
  192. CN=Bells, OU=Computer Science,
  193. O=University College London, C=GB
  194.  
  195. Suppose that the MTA needs a table mapping from MTA Name to bilateral
  196. agreement information of that MTA. The table might be named as:
  197.  
  198.  
  199. CN=MTA Bilateral Agreements,
  200. CN=Bells, OU=Computer Science,
  201. O=University College London, C=GB
  202.  
  203. To represent information on the MTA which has the Distinguished Name:
  204.  
  205.  
  206. CN=Q3T21, ADMD=Gold 400, C=GB
  207.  
  208.    There would be an entry in this table with the Relative Distinguished
  209.    Name of the table entry being the Distinguished Name of the MTA being
  210.    referred to.  The MTA Bilateral information would be an attribute in
  211.    this entry.  Using a non-standard notation, the Distinguished Name of
  212.    the table entry is:
  213.  
  214.  
  215.    DistinguishedNameTableValue=<CN=Q3T21, ADMD=Gold 400, C=GB>,
  216.    CN=MTA Bilateral Agreements,
  217.    CN=Bells, OU=Computer Science,
  218.    O=University College London, C=GB
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Kille                         Experimental                      [Page 4]
  227.  
  228. RFC 1837                 Representing Subtrees               August 1995
  229.  
  230.  
  231. 2.  Representing Subtrees
  232.  
  233.    A subtree is similar to a table, except that the keys are constructed
  234.    as a distinguished name hierarchy relative to the location of the
  235.    subtree in the DIT. The subtree effectively starts a private "root",
  236.    and has distinguished names relative to this root.  Typically, this
  237.    approach is used to associate local information with global objects.
  238.    The schema used is defined in Figure 2.  Functionally, this is
  239.    equivalent to a table with distinguished name keys.  The table
  240.    approach is best when the tree is very sparse.  This approach is
  241.    better for subtrees which are more populated.
  242.  
  243.    The subtree object class defines the root for a subtree in an
  244.    analogous means to the table.  Information within the subtree will
  245.    generally be defined in the same way as for the global object, and so
  246.  
  247.    ---------------------------------------------------------------------
  248.    subtree OBJECT-CLASS ::= {
  249.        SUBCLASS OF {top}
  250.        MUST CONTAIN {commonName}
  251.        MAY CONTAIN {manager}
  252.        ID oc-subtree}
  253.  
  254.                      Figure 2:  Representing Subtrees
  255.  
  256.  
  257.    no specific object classes for subtree entries are needed.
  258.  
  259.    For example consider University College London.
  260.  
  261.    O=University College London, C=GB
  262.  
  263.    Suppose that the UCL needs a private subtree, with interesting
  264.    information about directory objects.  The table might be named as:
  265.  
  266.    CN=private subtree,
  267.    O=University College London, C=GB
  268.  
  269.  
  270.    UCL specific information on Inria might be stored in the entry:
  271.  
  272.    O=Inria, C=FR,
  273.    CN=private subtree,
  274.    O=University College London, C=GB
  275.  
  276.    Practical examples of this mapping are given in [2].
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Kille                         Experimental                      [Page 5]
  283.  
  284. RFC 1837                 Representing Subtrees               August 1995
  285.  
  286.  
  287. 3.  Acknowledgements
  288.  
  289.    Acknowledgements for work on this document are given in [2].
  290.  
  291. References
  292.  
  293.    [1] The Directory --- overview of concepts, models and services,
  294.        1993. CCITT X.500 Series Recommendations.
  295.  
  296.    [2] Kille, S., "MHS use of the X.500 Directory to Support MHS
  297.        Routing", RFC 1801, ISODE Consortium, June 1995.
  298.  
  299. 4.  Security Considerations
  300.  
  301.    Security issues are not discussed in this memo.
  302.  
  303. 5.  Author's Address
  304.  
  305.    Steve Kille
  306.    ISODE Consortium
  307.    The Dome
  308.    The Square
  309.    Richmond
  310.    TW9 1DT
  311.    England
  312.  
  313.    Phone:  +44-81-332-9091
  314.    Internet EMail:  S.Kille@ISODE.COM
  315.    X.400:  I=S; S=Kille; O=ISODE Consortium; P=ISODE;
  316.    A=Mailnet; C=FI;
  317.    DN: CN=Steve Kille,
  318.    O=ISODE Consortium, C=GB
  319.    UFN: S. Kille, ISODE Consortium, GB
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Kille                         Experimental                      [Page 6]
  339.  
  340. RFC 1837                 Representing Subtrees               August 1995
  341.  
  342.  
  343. A.  Object Identifier Assignment
  344.  
  345. -----------------------------------------------------------------------
  346. mhs-ds OBJECT IDENTIFIER ::= {iso(1) org(3) dod(6) internet(1)
  347.           private(4) enterprises(1) isode-consortium (453) mhs-ds (7)}
  348.  
  349. tables OBJECT IDENTIFIER ::= {mhs-ds 1}
  350.  
  351. oc OBJECT IDENTIFIER ::= {tables 1}
  352. at OBJECT IDENTIFIER ::= {tables 2}
  353.  
  354. oc-subtree OBJECT IDENTIFIER ::= {oc 1}
  355. oc-table OBJECT IDENTIFIER ::= {oc 2}                               10
  356. oc-table-entry OBJECT IDENTIFIER ::= {oc 3}
  357. oc-text-table-entry OBJECT IDENTIFIER ::= {oc 4}
  358. oc-distinguished-name-table-entry  OBJECT IDENTIFIER ::= {oc 5}
  359.  
  360. at-text-table-key OBJECT IDENTIFIER ::= {at 1}
  361. at-text-table-value OBJECT IDENTIFIER ::= {at 2}
  362. at-distinguished-name-table-key OBJECT IDENTIFIER ::= {at 3}
  363.  
  364.                  Figure 3:  Object Identifier Assignment
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Kille                         Experimental                      [Page 7]
  395.  
  396.