|
|
1.1 ! root 1: % run this through LaTeX with the appropriate wrapper ! 2: ! 3: \section {The OSI Directory} ! 4: The OSI Directory is designed to provide ! 5: for the management of information objects. ! 6: The Directory's representation of an information object, ! 7: typically called an {\em entry}, ! 8: contains information about a person, a place, an organization, etc. ! 9: Each entry consists of one or more attributes. ! 10: ! 11: Each attribute consists of a type, ! 12: indicating what kind of attribute it is, ! 13: and one or more values ! 14: (one of which is termed the {\em distinguished value\/}). ! 15: Attribute values are structured using a data definition language ! 16: called Abstract Syntax Notation One (ASN.1). ! 17: This structuring is important. ! 18: With structuring, ! 19: different programs using the Directory will interpret information in the same ! 20: way. ! 21: In addition, ! 22: the Directory will perform type-checking on the values in order ! 23: to keep things consistent. ! 24: ! 25: \subsection {Naming} ! 26: One of the attributes of an entry is particularly special: ! 27: it is referred to as the {\em Relative Distinguished Name\/} (RDN) of ! 28: the entry. ! 29: The RDN is formed by taking the name of the attribute and its ! 30: distinguished value. ! 31: For example, ! 32: if the attribute in question was called \verb"countryName" and it had ! 33: a distinguished value of \verb"US", then we might say that the RDN ! 34: for the entry was \verb"countryName=US". ! 35: Of course, ! 36: this is strictly a ``user-friendly'' notation: ! 37: the Directory uses a concise binary format for representing an RDN. ! 38: Fortunately, ! 39: the pilot project software allows simple textual strings to be used in their ! 40: place and converts back and forth accordingly. ! 41: ! 42: In the OSI Directory, ! 43: information is primarily organized according to a hierarchical tree ! 44: structure. ! 45: The top of the tree is termed the {\em root}, ! 46: and has no explicit name. ! 47: To find the name of an object, ! 48: termed its {\em Distinguished Name\/} (DN), ! 49: one concatenates the RDNs found when traversing the tree by starting ! 50: at the root and proceeding directly to the object's entry. ! 51: ! 52: For purposes of discussion, ! 53: we write a Distinguished Name as an ordered series of RDNs separated by ! 54: an \verb"`@'"-sign with the most significant RDN appearing at the left; ! 55: e.g., ! 56: \begin{quote}\small\begin{verbatim} ! 57: countryName=US@organizationName=NYSERNet Inc. ! 58: \end{verbatim}\end{quote} ! 59: refers to an entry with an RDN of \verb"organizationName=NYSERNet Inc." ! 60: whose parent has an RDN of \verb"countryName=US". ! 61: In turn, ! 62: this parent entry is an immediate child of the root. ! 63: ! 64: To avoid any potential ambiguity when using an interface to the Directory ! 65: such as \man fred(1c) or \man dish(1c), ! 66: one prefixes a \verb"`@'"-sign to a string when referring to a fully ! 67: qualified Distinguished Name; ! 68: e.g., ! 69: \begin{quote}\small\begin{verbatim} ! 70: @countryName=US@organizationName=NYSERNet Inc. ! 71: \end{verbatim}\end{quote} ! 72: always refers to the same entry regardless of context. ! 73: Note that this is a convention only for interface programs such as these. ! 74: ! 75: As a rule, ! 76: unless searching, ! 77: text before the \verb"`='"-sign is not case sensitive, ! 78: neither is text after the \verb"`='"-sign. ! 79: ! 80: The Directory itself is distributed, ! 81: being composed of {\em Directory System Agents\/} (DSAs). ! 82: A group of DSAs under a common administration is responsible for a portion of ! 83: the tree, ! 84: termed a {\em Directory Management Domain\/} (DMD). ! 85: When a user wishes to access the Directory, ! 86: a {\em Directory User Agent\/} (DUA) is invoked. ! 87: This DUA contacts a DSA and issues requests. ! 88: The DSA may (or may not) have the information locally available. ! 89: If not, ! 90: a decision has to be made: ! 91: either the DSA can contact another DSA to get the information ! 92: (this is called {\em chaining\/}); or, ! 93: the DSA can tell the DUA to contact another DSA directly ! 94: (this is called {\em referral\/}). ! 95: ! 96: In short, ! 97: the DSAs provide mechanisms for traversing the tree and manipulating the ! 98: information contained therein. ! 99: ! 100: In the context of the pilot project, ! 101: each participating organization runs its own DMD for that organization. ! 102: This usually consists of a single DSA containing information on that ! 103: organization, ! 104: with some of this information being replicated on additional DSAs. ! 105: ! 106: \section {Ramifications on the White Pages Service} ! 107: In order to appreciate the ``feel'' of the white pages service, ! 108: it is instructive to compare the white pages to an existing facility. ! 109: ! 110: You might be familiar with an older facility called WHOIS. ! 111: This uses a centralized database to keep track of information on various ! 112: people, networks, hosts, and so on. ! 113: This facility has proven useful for many years. ! 114: Only recently, ! 115: with the explosive growth of the Internet, ! 116: has the WHOIS mechanism become unworkable. ! 117: ! 118: \subsection {Unique Identification of Users} ! 119: Each entry in the WHOIS database is identified by a unique key, ! 120: called a {\em handle}. ! 121: This is (typically) a short string such as \verb"MTR". ! 122: For a community many orders of magnitude larger than the current entries in ! 123: the WHOIS database, ! 124: a handle must contain some structure. ! 125: This makes it possible to delegate naming authority to different organizations ! 126: and thus de-centralize management of the white pages service. ! 127: ! 128: In the white pages service, ! 129: a Directory Distinguished Name is used to uniquely identify a person. ! 130: Thus, ! 131: while \verb"MTR" might be enough to identify someone named ``Marshall Rose'' ! 132: in the WHOIS database, ! 133: the DN ! 134: \begin{quote}\small\begin{verbatim} ! 135: c=US ! 136: @o=Performance Systems International ! 137: @ou=Research and Development ! 138: @ou=Mountain View ! 139: @cn=Marshall Rose ! 140: \end{verbatim}\end{quote} ! 141: serves as the handle for the same person in the white pages service. ! 142: (That's progress for you!) ! 143: ! 144: Of course, ! 145: you don't {\em really\/} have to type all that information in. ! 146: The user interfaces provided with the pilot project allow you to manage very ! 147: short strings to refer to these DNs. ! 148: These interfaces also provide a means for incrementally building up a DN from ! 149: scratch. ! 150: ! 151: Actually, ! 152: the handle in the example above is probably a somewhat longer than the average. ! 153: In terms of the pilot project, ! 154: a handle probably looks closer to: ! 155: \begin{quote}\small\begin{verbatim} ! 156: c=US@o=Organization Name@ou=Unit Name@cn=FirstName LastName ! 157: \end{verbatim}\end{quote} ! 158: While this is still a far cry from a simple three or four letter acronym, ! 159: it is the price one pays for using a service designed to meet the needs of a ! 160: global (or galactic) population. ! 161: ! 162: \subsection {Searching the White Pages} ! 163: When the WHOIS database is searched, ! 164: {\em all\/} entries in the database are examined for a match. ! 165: Since the current size of the WHOIS database is estimated at roughly 70,000 ! 166: entries, ! 167: this is an appropriate strategy. ! 168: ! 169: Unfortunately, ! 170: the potential size of the white pages is many orders of magnitude larger than ! 171: that of the WHOIS database. ! 172: As such, ! 173: the information contained in the white pages is distributed. ! 174: This makes management of the information a shared responsibility, ! 175: and has the potential to address organization-specific privacy concerns. ! 176: ! 177: Thus, ! 178: when the white pages service is invoked, ! 179: searches are performed relative to a particular {\em area}. ! 180: This is similar to the White Pages of the telephone system~---~there are ! 181: several white pages, one for each particular geographical area. ! 182: As such, ! 183: before you can find someone's entry in the white pages, ! 184: you have to already know the area in which they are listed. ! 185: ! 186: The default area is the portion of the Directory corresponding to your own ! 187: organization. ! 188: Of course, ! 189: if you specify a user's handle (a fully-qualified Distinguished Name), ! 190: this bypasses the default area and goes directly to the portion of ! 191: the Directory containing the desired entry. ! 192: ! 193: Usually, ! 194: when you are trying to find an entry, ! 195: you have only partial information. ! 196: For example, ! 197: you might know parts of the name of the organization and the person you're ! 198: looking for. ! 199: In this case, ! 200: it is natural to use an iterative process to find the information you desire. ! 201: You begin by finding the organization(s) likely to contain the entry, ! 202: you then initiate a search starting at that area. ! 203: ! 204: Having said that, ! 205: I'll let you in on a little secret: ! 206: in addition to people, ! 207: organizations and organizational units also have entries in the Directory. ! 208: As such, ! 209: searching an {\em area\/} is nothing more than starting a search at a ! 210: particular node at the tree. ! 211: Thus, ! 212: you might look for the organization starting at the \verb"@c=US" node. ! 213: In order to make searching easy, ! 214: the pilot project requires that all organizations be listed directly under ! 215: this node. ! 216: How the subtree is structured beyond that is an organization-specific matter, ! 217: although the pilot project provides various guidelines. ! 218: ! 219: Thus, ! 220: to find someone, ! 221: you look for the organization name in the \verb"@c=US" area. ! 222: This should give you back a single entry in the Directory, ! 223: perhaps two or three at the most. ! 224: You then look for that person in the area corresponding to that entry. ! 225: To make this easier, ! 226: the white pages user interface, \pgm{fred}, has a special command syntax ! 227: which directs it to find out the names of the likely organizations and then ! 228: search each one for the person you're looking for, automatically! ! 229: ! 230: Of course, ! 231: if you have the cycles and network bandwidth to burn, ! 232: in theory there is nothing to stop you from simply going to the top of the ! 233: tree and searching for the person. ! 234: However, ! 235: this is {\em very\/} resource-expensive, ! 236: particularly in terms of time. ! 237: Since time is probably the most valuable resource you have, ! 238: it is worth it to issue two commands which complete quickly, ! 239: rather than one command which may take hours. ! 240: ! 241: There are two user interfaces provided with the pilot software. ! 242: With the ``simple'' one, ! 243: you follow this two-step process. ! 244: With the ``complicated'' one, ! 245: you can form {\em arbitrarily\/} complex queries to the Directory. ! 246: Thus, ! 247: if you want to type just one command and don't mind typing a bit more, ! 248: you can still have an optimized search. ! 249: Both of these interfaces will be introduced in due course. ! 250: ! 251: \subsection {Structure of Information} ! 252: In addition to a handle, ! 253: an entry in the WHOIS database consists of a {\em type}, ! 254: which indicates what kind of user is recorded by the entry ! 255: (e.g., a person); ! 256: and, ! 257: several {\em fields}, each containing a textual description. ! 258: ! 259: For example, ! 260: an entry for a person might look like: ! 261: \begin{quote}\small\begin{verbatim} ! 262: Rose, Marshall T. (MTR) [email protected] ! 263: PSI, Inc. ! 264: PSI California Office ! 265: POB 391776 ! 266: Mountain View, CA 94039 ! 267: (415) 961-3380 ! 268: \end{verbatim}\end{quote} ! 269: The first line contains both the handle and all fields available for searching. ! 270: Here, ! 271: the handle is \verb"MTR", ! 272: and there are two fields available for searching: ! 273: a name and a mailbox. ! 274: The remainder of the entry is a textual annotation. ! 275: ! 276: Because the Directory must accommodate many kinds of access from various users ! 277: and programs. ! 278: It is important that the information contained therein be highly structured. ! 279: As noted earlier, ! 280: this allows universal understanding of the information, ! 281: and hence consistent interpretation. ! 282: Fortunately, ! 283: most of the information is represented by textual strings. ! 284: ! 285: It is important to remember however that all information associated with an ! 286: entry is contained in an attribute. ! 287: This attribute has a type, ! 288: describing both its syntax and semantics. ! 289: For example, ! 290: the \verb"surName" attribute of a person has a textual string syntax and ! 291: semantics corresponding to someone's last name. ! 292: ! 293: How the information associated with an entry is displayed to you ! 294: is {\em strictly\/} a function of the interface you use when talking to the ! 295: Directory. ! 296: The Directory will enforce all of the syntactic constraints associated with ! 297: the attributes, ! 298: but only the users of the Directory can assign meaning to the attribute ! 299: semantics. ! 300: ! 301: With this in mind, ! 302: here's an entry associated with a person, ! 303: as it might be displayed by a user interface: ! 304: \begin{quote}\small\begin{verbatim} ! 305: Marshall Rose (3) [email protected] ! 306: aka: Marshall T. Rose ! 307: ! 308: Principal Scientist ! 309: PSI, Inc. ! 310: PSI California Office ! 311: POB 391776 ! 312: Mountain View, CA 94039 ! 313: ! 314: Telephone: +1 415-961-3380 ! 315: FAX: +1 415-961-3282 ! 316: ! 317: Mailbox information: ! 318: Internet: [email protected] ! 319: UUCP: uupsi!mrose ! 320: ! 321: Principal Implementor of the ISO Development Environment ! 322: ! 323: Name: Marshall Rose, Mountain View, ... ! 324: \end{verbatim}\end{quote} ! 325: Of course, ! 326: there are dozens of possible ways that this information could have been ! 327: displayed. ! 328: Or {\em not\/} displayed~---~for example, ! 329: there are other attributes which the interface may not care (or be able) to ! 330: display, ! 331: such as access control information, passwords, and so on. ! 332: ! 333: Appendix~\ref{person:attributes} on page~\pageref{person:attributes} lists all ! 334: of the attributes which may be present for a person participating in the pilot ! 335: project.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.