|
|
1.1 ! root 1: %\documentstyle [11pt,ucl-rn-pic,tgrind,a4] {article} ! 2: \documentstyle [11pt,ucl-rn,tgrind] {article} ! 3: \author {S.E. Kille} ! 4: \date {June 1990} ! 5: \rnnumber{RN/90/29} ! 6: \title {Using the OSI Directory to achieve \\ User Friendly Naming} ! 7: \begin {document} ! 8: \maketitle ! 9: \begin {abstract} ! 10: The OSI Directory has user friendly naming as a goal. A simple minded usage ! 11: of the directory does not achieve this. Two aspects not achieved are: ! 12: ! 13: \begin{itemize} ! 14: \item A user oriented notation ! 15: \item Guessability ! 16: \end{itemize} ! 17: ! 18: This proposal sets out some conventions for representing names in a friendly ! 19: manner, and shows how this can be used to achieve really friendly naming. ! 20: \end {abstract} ! 21: ! 22: \tableofcontents ! 23: \listoffigures ! 24: \listoftables ! 25: \pagebreak ! 26: ! 27: \section {Why a notation is needed} ! 28: ! 29: Many OSI Applications make use of Distinguished Names (DN) as defined in the ! 30: OSI Directory \cite{CCITT.Directory}. ! 31: The main reason for having a notation for ! 32: is for interacting with a user ! 33: interface. This proposal is coming dangerously close to the sin of ! 34: standardising interfaces. However, there are aspects of presentation which ! 35: it is desirable to standardise. ! 36: ! 37: In very many cases, a user will be required to ! 38: input a name. This notation is designed to allow this to happen in a ! 39: uniform manner across many user interfaces. The intention is that ! 40: the name can just be typed in. There should not be any need to engage in ! 41: form filling or complex dialogue. ! 42: ! 43: A secondary goal, is to have a common ! 44: format to be able to unambiguously refer to names. ! 45: This notation should {\em not} be needed to write on business cards or in ! 46: the minutes of meetings. If this is the case, the directory has failed to a ! 47: large extent. It should be possible to take the ``human'' description given ! 48: at the meeting, and use it directly. The means in which this happens will ! 49: become clear later. In practice, it will often be useful to explicitly write ! 50: down directory names, even though it is not strictly needed. ! 51: ! 52: \section {A notation for Distinguished Name} ! 53: ! 54: \subsection {Goals} ! 55: ! 56: The following goals are laid out: ! 57: ! 58: \begin {itemize} ! 59: \item It should be intuitive for the majority of names encountered ! 60: \item It should be fully general ! 61: \item It should be possible to lay it out in a number of ways ! 62: \end {itemize} ! 63: ! 64: \subsection {Informal definition} ! 65: ! 66: This notation is designed to be convenient for common forms of name. ! 67: Some examples are given. ! 68: My directory (distinguished) name would be written: ! 69: ! 70: \begin{verbatim} ! 71: Steve Kille, Computer Science, University College London, GB ! 72: \end{verbatim} ! 73: ! 74: This may be folded, perhaps to display in multi-column format. ! 75: For example: ! 76: ! 77: \begin {verbatim} ! 78: Steve Kille, ! 79: Computer Science, ! 80: University College London, ! 81: GB ! 82: \end{verbatim} ! 83: ! 84: or ! 85: ! 86: \begin {verbatim} ! 87: Steve Kille ! 88: Computer Science ! 89: University College London, GB ! 90: \end{verbatim} ! 91: ! 92: Another name might be: ! 93: ! 94: ! 95: \begin {verbatim} ! 96: Christian Huitema, INRIA, FR ! 97: \end{verbatim} ! 98: ! 99: An example, showing how different attribute types are handled: ! 100: ! 101: ! 102: \begin {verbatim} ! 103: James Hacker ! 104: locality=Basingstoke ! 105: Widget Inc ! 106: GB ! 107: \end{verbatim} ! 108: ! 109: An example showing quoting of a comma in an Organisation name: ! 110: ! 111: \begin {verbatim} ! 112: L. Eagle, "Sue, Grabbit and Runn", GB ! 113: \end{verbatim} ! 114: ! 115: ! 116: \subsection {Formal definition} ! 117: ! 118: ! 119: The structure is specified in a BNF grammar in Figure~\ref{BNF}. ! 120: ! 121: \begin{figure} ! 122: \begin {verbatim} ! 123: <name> ::= <name-component> ! 124: | <name-component> <spaced-separator> <name> ! 125: ! 126: <spaced-separator> ::= <optional-space> ! 127: <separator> ! 128: <optional-space> ! 129: ! 130: <separator> ::= "," ( <CR> ) ! 131: | <CR> ! 132: ! 133: <optional-space> ::= *( " " ) ! 134: ! 135: <name-component> ::= <attribute> ! 136: | <attribute> <optional-space> "+" ( <CR> ) ! 137: <optional-space> <name-component> ! 138: ! 139: <attribute> ::= <string> ! 140: | <key> <optional-space> "=" <optional-space> <string> ! 141: ! 142: <key> ::= 1*( <keychar> ) ! 143: <keychar> ::= letters, numbers, and space ! 144: ! 145: <string> ::= *( <stringchar> | <pair> ) ! 146: | '"' *( <stringchar> | "," | "+" | "=" | <CR> ) '"' ! 147: ! 148: <special> ::= "," | "=" | '"' | <CR> | "\" | "+" ! 149: <pair> ::= "\" <special> ! 150: <stringchar> ::= any char except <special> ! 151: ! 152: \end{verbatim} ! 153: \caption {BNF Grammar for Distinguished and Purported Name} ! 154: \label {BNF} ! 155: \end{figure} ! 156: ! 157: ! 158: The quoting mechanism is used for the following cases: ! 159: ! 160: \begin {itemize} ! 161: \item Strings containing ``,'', ``+'', ``=''or ``\verb|"|'' or \verb|<CR>| ! 162: \item Strings with leading or trailing spaces ! 163: \item Strings containing consecutive spaces ! 164: \end {itemize} ! 165: ! 166: A list of valid keywords for well known attribute types used in naming is ! 167: given in Table~\ref{keywords}. This is a list of keywords which must be ! 168: supported. These are chosen because they appear in common forms of name, ! 169: and can do so in a place which does not correspond to the default schema ! 170: used. ! 171: If other attributes are used for naming, this can always be ! 172: extended locally. ! 173: ! 174: \begin{table} ! 175: \begin{center} ! 176: \begin {tabular}{l l} ! 177: Key & Attribute (X.520 keys) \\ ! 178: \hline ! 179: Locality & LocalityName \\ ! 180: Area & LocalityName \\ ! 181: Organisation & OrganizationName \\ ! 182: Organization & OrganizationName \\ ! 183: \end {tabular} ! 184: \end{center} ! 185: \caption {Standardised Keywords} ! 186: \label {keywords} ! 187: \end{table} ! 188: ! 189: ! 190: Only string type attributes are ! 191: considered, but other attribute syntaxes could be supported locally. ! 192: It is assumed that the interface will translate from the supplied string ! 193: into PrintableString or T.61. ! 194: ! 195: The \verb|"+"| notation is used to specify multi-component RDNs. In this ! 196: case, the types for attributes in the RDN must be explicit. ! 197: ! 198: The name is presented/input in a little-endian order. If no type are given, ! 199: a type hierarchy (schema) is assumed as: ! 200: ! 201: \begin {verbatim} ! 202: Common Name, (((Organisational Unit)*, Organisation,) Country) ! 203: \end{verbatim} ! 204: ! 205: Explicitly typed RDNs may be inserted into this hierarchy. Two types of ! 206: object are named. They are distinguished by context in the application: ! 207: ! 208: \begin{description} ! 209: \item[Common Name Object] Typically a leaf object and a person. In this ! 210: case, the LHS RDN is assumed to be common name, and other RDNs follow the ! 211: hierarchy. ! 212: ! 213: \item[Other Object] Typically a non-leaf object. ! 214: \end{description} ! 215: ! 216: ! 217: \section {Purported names} ! 218: ! 219: ! 220: A purported name is what a user supplies to an interface for resolution ! 221: into one or more distinguished names. ! 222: The same ! 223: notation is used as for distinguished name. ! 224: A purported name may differ from a distinguished name in a number of ways ! 225: which are itemised below. ! 226: ! 227: Typically, an ! 228: interface will display a distinguished name, using the distinguished name ! 229: notation. However, it may display a purported name, as this will be more ! 230: pleasing to the user. The most common example of this is where the higher ! 231: components of the distinguished name are not displayed (abbreviation). ! 232: ! 233: The ways in which a purported name may vary from a distinguished name are ! 234: now described: ! 235: ! 236: \begin {description} ! 237: \item[Abbreviation] Some of the more significant components of the DN will ! 238: be omitted, and then defaulted in some way (e.g., relative to a local ! 239: context). For example: ! 240: ! 241: \begin {verbatim} ! 242: Steve Kille ! 243: \end{verbatim} ! 244: ! 245: \item[Component Omission] ! 246: An intermediate component of the name may be omitted. Typically this will ! 247: be an organisational unit. For example: ! 248: ! 249: \begin {verbatim} ! 250: Steve Kille, University College London, GB ! 251: \end{verbatim} ! 252: ! 253: ! 254: In some cases, this can be combined with abbreviation. For example: ! 255: ! 256: \begin {verbatim} ! 257: Steve Kille, University College London ! 258: \end{verbatim} ! 259: ! 260: \item[Approximation] Approximate renditions or alternate values ! 261: of one or more of the components ! 262: will be supplied. For example: ! 263: ! 264: \begin {verbatim} ! 265: Stephen Kille, CS, UCL, GB ! 266: \end{verbatim} ! 267: ! 268: or ! 269: ! 270: \begin{verbatim} ! 271: Steve Keill, Comp Sci, Univarstiy College London, GB ! 272: \end{verbatim} ! 273: ! 274: ! 275: \item[Friendly Country] A ``friendly country name'' can be used instead of ! 276: the ISO 3166 two letter code. For example: UK; USA; France; Deutchland. ! 277: ! 278: \item[Type Changing] A type may be omitted, even where it does not follow ! 279: the hierarchy. Type variants can be explored. ! 280: The previous distinguished name: ! 281: \begin {verbatim} ! 282: James Hacker ! 283: locality=Basingstoke ! 284: Widget Inc ! 285: GB ! 286: \end{verbatim} ! 287: ! 288: Could be represented by the purported name: ! 289: ! 290: \begin {verbatim} ! 291: James Hacker ! 292: Basingstoke ! 293: Widget Inc ! 294: GB ! 295: \end{verbatim} ! 296: ! 297: ! 298: \end {description} ! 299: ! 300: ! 301: \section {Matching a purported name} ! 302: ! 303: The major utility of the purported name is to provide the important ``user ! 304: friendly'' characteristic of guessability. A user will supply a purported ! 305: name to a user interface, and this will be resolved onto a distinguished ! 306: name. ! 307: When a user supplies a purported name there is a need to derive the DN. In ! 308: most cases, it should be possible to derive a single name from the purported ! 309: name. In some cases, ambiguities will arise and the user will be prompted ! 310: to select from a multiple matches. This should also be the case where a ! 311: component of the name did not ``match very well''. ! 312: ! 313: There is an assumption that the user will simply enter the name correctly. ! 314: The purported name variants are designed to make this happen! There is no ! 315: need for fancy window based interfaces or form filling for many applications ! 316: of the directory. Note that the fancy interfaces still have a role for ! 317: browsing, and for more complex matching. This type of naming is to deal ! 318: with cases where information on a known user is desired and keyed on the ! 319: user's name. ! 320: ! 321: \subsection {Environment} ! 322: ! 323: ! 324: ! 325: ! 326: All matches occur in the context of a local environment. ! 327: The local environment defines a ! 328: sequence of name of a non-leaf objects in the DIT. ! 329: This environment effectively defines a list of acceptable name abbreviations ! 330: where the DUA is employed. It also defines an order in which to operate. ! 331: ! 332: ! 333: This list is defined in the context of the number of name components ! 334: supplied. This allows varying heuristics, depending on the environment, to ! 335: make the approach have the ``right'' behaviour. ! 336: ! 337: ! 338: In most cases, the environment will start at a local point in the DIT, and ! 339: move upwards. Examples are given in Tables~\ref{e1} and~\ref{e2}. ! 340: Table~\ref{e1} shows an example for a typical local DUA, which has the ! 341: following characteristics: ! 342: ! 343: \begin{description} ! 344: \item[One component] Assumed first to be a user in the department, then a ! 345: user or department within the university, the a national organisation, and ! 346: finally a country. ! 347: \item[Two components] Most significant component is first assumed to be a ! 348: national organisation, then a department (this might be reversed in some ! 349: organisations), and finally a country. ! 350: \item[Three or more components] The most significant component is first ! 351: assumed to be a country, then a national organisation, and finally a ! 352: department. ! 353: \end{description} ! 354: ! 355: ! 356: ! 357: \begin{table} ! 358: \begin{center} ! 359: \begin{tabular}{l l} ! 360: Number of & Environment \\ ! 361: Components & \\ ! 362: \hline ! 363: 1 & Physics, University College London, GB \\ ! 364: & University College London, GB \\ ! 365: & GB \\ ! 366: & -- \\ ! 367: \hline ! 368: 2 & GB \\ ! 369: & University College London, GB \\ ! 370: & -- \\ ! 371: \hline ! 372: 3+ & -- \\ ! 373: & GB \\ ! 374: & University College London, GB \\ ! 375: ! 376: \end{tabular} ! 377: \end{center} ! 378: \caption {Local environment for private DUA} ! 379: \label{e1} ! 380: \end{table} ! 381: ! 382: \begin{table} ! 383: \begin{center} ! 384: \begin{tabular}{l l} ! 385: Number of & Environment \\ ! 386: Components & \\ ! 387: \hline ! 388: 1,2 & US \\ ! 389: & CS \\ ! 390: & -- \\ ! 391: \hline ! 392: 3+ & -- \\ ! 393: & US \\ ! 394: & CA \\ ! 395: \end{tabular} ! 396: \end{center} ! 397: \caption {Local environment for US Public DUA} ! 398: \label{e2} ! 399: \end{table} ! 400: ! 401: ! 402: \subsection {Matching} ! 403: ! 404: ! 405: A purported name will be supplied, usually with a small number of components. ! 406: This will be matched in the context of an environment. ! 407: ! 408: Where there are multiple components to be matched, these should be matched ! 409: sequentially. If an unambiguous DN is determined, the match continues as if ! 410: the full DN had been supplied. ! 411: For example if ! 412: ! 413: \begin{quote} ! 414: \begin{verbatim} ! 415: Stephen Kille, UCL ! 416: \end{verbatim} ! 417: \end{quote} ! 418: ! 419: is being matched in the context of environment \verb|GB|, first \verb|UCL| ! 420: is resolved to the distinguished name: ! 421: ! 422: \begin{quote} ! 423: \begin{verbatim} ! 424: University College London, GB ! 425: \end{verbatim} ! 426: \end{quote} ! 427: ! 428: Then the next component of the purported name is taken to determine the ! 429: final name. ! 430: If there is an ambiguity (e.g., if \verb|UCL| had made two matches, ! 431: both paths are explored to see if the ambiguity can ! 432: be resolved. Eventually a set of names will be passed back to the user. ! 433: ! 434: ! 435: Each component of the environment is taken in turn. ! 436: If the purported name has more ! 437: components than the maximum depth, the environment element is skipped. ! 438: The advantage of this will be seen in the example given later. ! 439: ! 440: ! 441: ! 442: ! 443: ! 444: ! 445: A match of a name is considered to have three levels: ! 446: ! 447: \begin{description} ! 448: \item[Exact] A DN is specified exactly ! 449: \item[Good] ! 450: Initially, a match should be considered good if ! 451: it is unambiguous, and exactly matches an attribute value in the entry. ! 452: For human names, a looser metric is probably desirable (e.g., \verb|S Kille| ! 453: should be a good match of \verb|S. Kille|, \verb|S.E. Kille| or \verb|Steve ! 454: Kille| even if these are not explicit alternate values). ! 455: \item[Poor] Any other substring or approximate match ! 456: \end{description} ! 457: ! 458: Following a match, the reference can be followed, or the user prompted. ! 459: If there are multiple matches, more than one path may be followed. ! 460: There is also a shift/reduce type of choice: should any partial matches be ! 461: followed or should the next element of the environment be tried. ! 462: The following heuristics are suggested, which may be modified in the light ! 463: of experience. The overall aim is to resolve cleanly specified names with a ! 464: minimum of fuss, but give sufficient user control to prevent undue searching ! 465: and delay. ! 466: ! 467: \begin{enumerate} ! 468: \item Always follow an exact match. ! 469: \item Follow all good matches if there are no exact matches. ! 470: \item If there are only poor matches, prompt the user. If the user accepts ! 471: one or more match, they can be considered as good. If all are rejected, ! 472: this can be treated as no matches. ! 473: \item Automatically move to the next element of the environment if no ! 474: matches are found. ! 475: \end{enumerate} ! 476: ! 477: When the final component is matched, a set of names will be identified. ! 478: If none are identified, proceed to the next environment element. ! 479: If the user rejects all of the names, processing of the next environment ! 480: element should be confirmed. ! 481: ! 482: The exact approach to matching will depend on the level of the tree at which ! 483: matching is being done. ! 484: We can now consider how attributes are matched at various levels of the DIT. ! 485: ! 486: ! 487: There is an issue of approximate matching. Sometimes it helps, and ! 488: sometimes just returns many spurious matches. When a search is requested, ! 489: all relevant attributes should be returned, so that distinguished and ! 490: non-distinguished values can be looked at. This will allow a distinction to ! 491: be made between good and poor matches. It is important that where, for ! 492: example, an acronym exactly matches an organisation, that the user is not ! 493: prompted about other organisations where it matches as a substring. ! 494: ! 495: \subsection {Top Level} ! 496: ! 497: In this case, a match is being done at the root of the DIT. ! 498: Three approaches are suggested, dependent on the length of supplied name. ! 499: All lead to a single level search of the top level of the DIT. ! 500: ! 501: \begin{description} ! 502: \item[Exactly 2] This is assumed to be a 3166 two letter country code, or an exact ! 503: match on a friendly country or organisation (e.g., UK or UN). ! 504: Do exact match on country and friendly country. ! 505: \item[Greater than 2] Make ! 506: an approximate and substring match on friendly country and organisation. ! 507: ! 508: \end{description} ! 509: ! 510: ! 511: ! 512: ! 513: ! 514: ! 515: \subsection {Intermediate Level} ! 516: ! 517: Once the root level has been dealt with, intermediate levels will be looking ! 518: for organisational components (Organisation, Locality, Org Unit). ! 519: In some cases, private schema control will allow the system to determine ! 520: which is at the next level. In general this will not be possible. ! 521: In each case, make a substring and approximate match search of one level. ! 522: The choice depends on the base object used in the search. ! 523: ! 524: \begin {enumerate} ! 525: \item If DN has no Organisation or Locality, filter on Organisation and ! 526: Locality. ! 527: \item If DN has Org Unit, filter on Org Unit. ! 528: \item If DN has Organisation, filter on Locality and Org Unit. ! 529: \item If DN has Locality, filter on Organisation. ! 530: \end {enumerate} ! 531: ! 532: These allow some optimisation, based on legal choices of schema. Keeping ! 533: filters short is usually desirable to improve performance. ! 534: ! 535: A few examples of this, where a base object has been determined (either by ! 536: being the environment or by partial resolution of a purported name), and the ! 537: next element of a purported name is being considered. This will generate a ! 538: single level search. What varies is the types being filtered against. ! 539: If the DN is: ! 540: ! 541: \begin{verbatim} ! 542: University College London, GB ! 543: \end{verbatim} ! 544: ! 545: The search should be for Org Unit or Locality. If the DN is: ! 546: ! 547: \begin{verbatim} ! 548: Organisation=UN ! 549: \end{verbatim} ! 550: ! 551: the search should be for Org Unit or Locality. ! 552: ! 553: There may be some improvements with respect to very short keys. Not making ! 554: approximate or substring matches in these cases seems sensible\footnote{It ! 555: might be desirable to allow ``\verb|*|'' as a part of the purported name ! 556: notation}. ! 557: ! 558: \subsection {Bottom level} ! 559: ! 560: The ``Bottom Level'' is to deal with leaf entries in the DIT. This will ! 561: often be a person, but may also be a role, an application entity or ! 562: something else. ! 563: ! 564: The last component of a purported name may either reference a leaf or ! 565: non-leaf. For this reason, {\em both} should be tested for. ! 566: As a heuristic, if the base object for the search has two or more ! 567: components it should be tested first as a bottom level name and then ! 568: intermediate. Reverse this for shorter names. This optimises for the ! 569: (normal) case ! 570: of non-leaves high up the tree and leaves low down the tree. ! 571: ! 572: For bottom level names, make an ! 573: approximate and substring match against Common Name, Surname, and User ID. ! 574: Where common name is looked for, ! 575: A full subtree search will be used when at ! 576: the second level of the DIT or lower, otherwise a single level search. ! 577: ! 578: For example, if I have resolved a purported name to the distinguished name ! 579: ! 580: \begin{verbatim} ! 581: University College London, GB ! 582: \end{verbatim} ! 583: ! 584: and have a single component \verb|Bloggs|, this will generate a subtree ! 585: search. ! 586: ! 587: \section{Examples} ! 588: ! 589: ! 590: This is all somewhat confusing, and a few examples are given. These are all ! 591: in the context of the environment shown in Table~\ref{e1} on ! 592: Page~\pageref{e1}. ! 593: ! 594: If ``Joe Bloggs'' is supplied, a subtree search of ! 595: ! 596: \begin{verbatim} ! 597: Physics, University College London, GB ! 598: \end{verbatim} ! 599: ! 600: will be made, and the user prompted for ``Joseph Z. Bloggs'' as the only ! 601: possible match. ! 602: ! 603: If ``Computer Science'' is supplied, first ! 604: ! 605: \begin{verbatim} ! 606: Physics, University College London, GB ! 607: \end{verbatim} ! 608: ! 609: will be searched, and the user will reject the approximate match of ``Colin ! 610: Skin''. Then a subtree search of ! 611: ! 612: \begin{verbatim} ! 613: University College London, GB ! 614: \end{verbatim} ! 615: ! 616: will be made, looking for a person. Then a single level search will be made ! 617: looking for Org Unit, and ! 618: ! 619: \begin{verbatim} ! 620: Computer Science, University College London, GB ! 621: \end{verbatim} ! 622: ! 623: will be returned without prompting (exact match). ! 624: ! 625: ! 626: Supplying ``Steve Kille'' will lead to a failed subtree search of ! 627: ! 628: \begin{verbatim} ! 629: Physics, University College London, GB ! 630: \end{verbatim} ! 631: ! 632: and lead straight to a subtree search of ! 633: ! 634: \begin{verbatim} ! 635: University College London, GB ! 636: \end{verbatim} ! 637: ! 638: This will lead to an exact value match, and so a single entry returned ! 639: without prompting. ! 640: ! 641: ! 642: If ``Andrew Findlay, Brunel'' is supplied, the first element of the ! 643: environment will be skipped, single level search of ``Brunel'' under ``GB' ! 644: will find: ! 645: ! 646: \begin{verbatim} ! 647: Brunel University, GB ! 648: \end{verbatim} ! 649: ! 650: and a subtree search for ``A Findlay'' initiated. This will yield ! 651: ! 652: \begin{verbatim} ! 653: Andrew Findlay, Computing and Media Services, Brunel University, GB ! 654: ! 655: Dr A J Findlay, Manufacturing and Engineering Systems, ! 656: Brunel University, GB ! 657: \end{verbatim} ! 658: ! 659: ! 660: and the user will be prompted with a choice. ! 661: ! 662: ! 663: This approach shows how a simple format of this nature will ``do the right ! 664: thing'' in many cases. ! 665: ! 666: \section {Support required from the standard} ! 667: ! 668: Fortunately, all that is needed is there! It would be useful to have ! 669: ``friendly country name'' as a standard attribute. ! 670: ! 671: ! 672: \section{Support of OSI Services} ! 673: ! 674: The major focus of this work has been to provide a mechanism for identifying ! 675: Organisations and Users. A related function is to identify applications. ! 676: Where the Application is identified by an AET (Application Entity Title) ! 677: with an RDN of Common Name, this proposal leads to a natural usage. ! 678: For example, if a filestore in named ``gannet'', then this could easily be ! 679: identified by the name: ! 680: ! 681: \begin{verbatim} ! 682: Gannet, Computer Laboratory, Cambridge University, GB ! 683: \end{verbatim} ! 684: ! 685: In normal usage, this might lead to access (using a purported name) of: ! 686: ! 687: \begin{verbatim} ! 688: FTAM gannet,cambridge ! 689: \end{verbatim} ! 690: ! 691: A second type of access is where the user identifies an Organisation ! 692: (Organisational Unit), and expects to obtain a default service. ! 693: The service is implied by the application, and should not require any ! 694: additional naming as far as the user is concerned. It is proposed that this ! 695: is supported by User Friendly Naming in the following way. ! 696: ! 697: \begin{enumerate} ! 698: \item Determine that the purported name identifies a non-leaf object, which is ! 699: of object class Organisation or Organistaional Unit or Locality. ! 700: ! 701: \item Perform a {\em single level} search for Application Entities which ! 702: support the required application contexts. This assumes that all services ! 703: which are supporting default access for the organisation are registred at ! 704: one level below (possibly by the use of aliaes), and that other services ! 705: (specific machines or parts of the organisation) are represented further ! 706: down the tree. This seems to be a reasonable layout, and its utility can be ! 707: evaluated by experiment. ! 708: ! 709: \end{enumerate} ! 710: ! 711: \section {Experience} ! 712: ! 713: An experimental implementation of this has been written by Colin Robbins. ! 714: The example in Figure~\ref{usage} shows that it can be very effective at ! 715: locating known individuals with a minimum of effort. ! 716: ! 717: \begin{figure} ! 718: \begin{small} ! 719: \begin{verbatim} ! 720: -> t hales, csiro, australia ! 721: Found good match(es) for 'australia' ! 722: Found exact match(es) for 'csiro' ! 723: Please select from the following: ! 724: Trevor Hales, OC, HPCC, DIT, IICT, CSIRO, AU [y/n] ? y ! 725: The following were matched... ! 726: Trevor Hales, OC, HPCC, DIT, IICT, CSIRO, AU ! 727: ! 728: -> g michaelson, queensland, au ! 729: Found exact match(es) for 'au' ! 730: Please select from the following: ! 731: University of Queensland, AU [y/n] ? y ! 732: Axolotl, AU [y/n] ? n ! 733: Please select from the following: ! 734: George Michaelson, Prentice Computer Centre, University of Queensland, AU ! 735: [y/n] ? y ! 736: Manager, University of Queensland, AU [y/n] ? n ! 737: The following were matched... ! 738: George Michaelson, Prentice Computer Centre, University of Queensland, AU ! 739: ! 740: -> r needham, cambridge ! 741: Found good match(es) for 'cambridge' ! 742: Please select from the following: ! 743: Roger Needham, Computer Lab, Cambridge University [y/n] ? y ! 744: The following were matched... ! 745: Roger Needham, Computer Lab, Cambridge University ! 746: ! 747: -> kirstein ! 748: Found good match(es) for 'kirstein' ! 749: The following were matched... ! 750: Peter Kirstein ! 751: ! 752: ! 753: \end{verbatim} ! 754: \end{small} ! 755: \caption {Example usage of User Friendly Naming} ! 756: \label{usage} ! 757: \end{figure} ! 758: ! 759: ! 760: \section {Relationship to other work} ! 761: ! 762: Colin Robbin's work on the interface ``Tom'' and implementation of a ! 763: distribution list interface strongly influenced this proposal. ! 764: ! 765: Some of the ideas used here originally came from a UK Proposal to the ! 766: ISO/CCITT Directory Group on ``New Name Forms'' \cite{NNF}. This defined, ! 767: and showed how to implement, four different types of names: ! 768: ! 769: \begin{description} ! 770: \item[Typed and Ordered] The current Distinguished Name is a restricted ! 771: example of this type of name. ! 772: ! 773: \item[Untyped and Ordered] This is the type of name proposed here (with some ! 774: extensions to allow optional typing). It is seen as meeting the key user ! 775: requirement of disliking typed names, and is efficient to implement. ! 776: ! 777: \item[Typed and Unordered] This sort of name is proposed by others as the ! 778: key basis for user friendly naming. Neufeld shows how X.500 can be used to ! 779: provide this \cite{Neufeld.Descr}, and Peterson proposes the Profile system ! 780: to provide this \cite{Profile.2}. The author contends that whilst typed ! 781: naming is interesting for some types of searching (e.g., yellow page ! 782: searching), it is less desirable for ! 783: naming objects. This is born out by operational experience with OSI ! 784: Directories \cite{THORN.RARE.LSPX}. ! 785: ! 786: \item[Untyped and Unordered] Surprisingly this form of name can be supported ! 787: quite easily. However, a considerably gain in efficiency can be achieved by ! 788: requiring ordering. In practice, users can supply this easily. Therefore, ! 789: this type of name is not proposed. ! 790: \end{description} ! 791: ! 792: ! 793: \section {Proposal} ! 794: ! 795: This approach should be tested out experimentally, with the QUIPU ! 796: implementation. This will involve: ! 797: ! 798: \begin{itemize} ! 799: \item An interface to generate strings in this form from DNs, with control over ! 800: \begin{itemize} ! 801: \item Folding (line, column, or max width) ! 802: \item Presence of commas at EOL ! 803: \item A DN to be abbreviated against ! 804: \end{itemize} ! 805: ! 806: \item A routine to resolve a purported name in the context of an environment. ! 807: \end{itemize} ! 808: ! 809: The Distribution List interface seems to be an ideal system to experiment ! 810: with. ! 811: ! 812: A specification should then be progressed, and made widely available. ! 813: Perhaps as a RARE Document or RFC. ! 814: ! 815: \bibliographystyle{alpha} ! 816: \bibliography{../../bib/sek} ! 817: ! 818: \pagebreak ! 819: \appendix ! 820: ! 821: \section{Pseudo-code for the matching algorithm} ! 822: ! 823: The following pseudo-code is intended to clarify the matching algorithm. ! 824: The language uses ASN.1 data types, with flow control `C'-like, but with ! 825: keywords upper--cased. ! 826: ! 827: \tagrindfile{algo}{Matching Algorithm}{algo} ! 828: ! 829: ! 830: ! 831: \end {document} ! 832:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.