Sync usage with man page.
[netbsd-mini2440.git] / external / bsd / openldap / dist / doc / rfc / rfc2714.txt
blob172ff30c90bc3de8662feade93d803d9c08ef425
7 Network Working Group                                            V. Ryan
8 Request for Comments: 2714                                        R. Lee
9 Category: Informational                                      S. Seligman
10                                                   Sun Microsystems, Inc.
11                                                             October 1999
14   Schema for Representing CORBA Object References in an LDAP Directory
16 Status of this Memo
18    This memo provides information for the Internet community.  It does
19    not specify an Internet standard of any kind.  Distribution of this
20    memo is unlimited.
22 Copyright Notice
24    Copyright (C) The Internet Society (1999).  All Rights Reserved.
26 Abstract
28    CORBA [CORBA] is the Common Object Request Broker Architecture
29    defined by the Object Management Group. This document defines the
30    schema for representing CORBA object references in an LDAP directory
31    [LDAPv3].
33 1. Introduction
35    This document assumes that the reader has a general understanding of
36    CORBA.
38    Traditionally, LDAP directories have been used to store data. Users
39    and programmers think of the directory as a hierarchy of directory
40    entries, each containing a set of attributes.  You look up an entry
41    from the directory and extract the attribute(s) of interest.  For
42    example, you can look up a person's telephone number from the
43    directory.  Alternatively, you can search the directory for entries
44    with a particular set of attributes.  For example, you can search for
45    all persons in the directory with the surname "Smith".
47    CORBA applications require access to CORBA objects. Traditionally,
48    CORBA applications have used the COS Naming service for storage and
49    retrieval of CORBA object references. When deployed in environments
50    with a directory, CORBA applications should be able to use the
51    directory as a repository for CORBA object references. The directory
52    provides a centrally administered, and possibly replicated, service
53    for use by CORBA applications distributed across the network.
58 Ryan, et al.                 Informational                      [Page 1]
60 RFC 2714           Schema for CORBA Object References       October 1999
63    For example, an application server may use the directory for
64    "registering" CORBA objects representing the services that it
65    manages, so that a client can later search the directory to locate
66    those services as it needs.
68    The motivation for this document is to define a common way for
69    applications to store and retrieve CORBA object references from the
70    directory.  Using this common schema, any CORBA application that
71    needs to read or store CORBA object references in the directory can
72    do so in an interoperable way.
74    Note that this schema is defined for storing CORBA "object
75    references," not CORBA objects in general. There might be other ways
76    to store CORBA objects in an LDAP directory but they are not covered
77    by this schema.
79 2. Representation of CORBA Object References
81    This document defines schema elements to represent a CORBA object
82    reference in LDAP directory. Applications in possession of a
83    reference to an object can invoke calls on that object.  Such a
84    reference is termed an "interoperable object reference," or IOR.
85    Access to CORBA objects by using IORs is achieved transparently to
86    the application, by means of the General Inter-ORB Protocol.
88    A CORBA object reference is represented in the directory by the
89    object class corbaObjectReference. corbaObjectReference is a subclass
90    of the abstract corbaObject object class. corbaObjectReference is an
91    auxiliary object class, which means that it needs to be mixed in with
92    a structural object class.
94    The object class corbaContainer is used in a directory entry which
95    represents a CORBA object or object reference. It is a structural
96    object class, and when representing an object reference, the
97    corbaObjectReference object class would also need to be present in
98    the entry.  corbaContainer is not required when a subclass of
99    corbaObject (such as corbaObjectReference) is mixed in with another
100    structural object class.
102    The definitions for the object classes corbaObject,
103    corbaObjectReference, and corbaContainer are presented in Section 4.
105    The corbaObject class has two optional attributes: corbaRepositoryId
106    and description.  corbaRepositoryId is a multivalued attribute that
107    is used to store the repository ids of the interfaces implemented by
108    a CORBA object.  description is used to store a textual description
109    of a CORBA object.
114 Ryan, et al.                 Informational                      [Page 2]
116 RFC 2714           Schema for CORBA Object References       October 1999
119    The corbaObjectReference class has one mandatory attribute: corbaIor.
120    corbaIor is used to store the object's stringified IOR.
122    corbaIor and corbaRepositoryId are defined in Section 3; description
123    is defined in [v3Schema].
125 3. Attribute Type Definitions
127    The following attribute types are defined in this document:
129        corbaIor
130        corbaRepositoryId
132 3.1 corbaIor
134    This attribute stores the string representation of the interoperable
135    object reference (IOR) for a CORBA object. An IOR is an opaque handle
136    for the object which contains the information necessary to locate the
137    object, even if the object is in another ORB.
139    This attribute's syntax is 'IA5 String' and its case is
140    insignificant.
142    ( 1.3.6.1.4.1.42.2.27.4.1.14
143     NAME 'corbaIor'
144     DESC 'Stringified interoperable object reference of a CORBA object'
145     EQUALITY caseIgnoreIA5Match
146     SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
147     SINGLE-VALUE
148    )
150 3.2 corbaRepositoryId
152    Each CORBA interface has a unique "repository id" (also called "type
153    id") that identifies the interface.  A CORBA object has one or more
154    repository ids, one for each interface that it implements.
156    The format of a repository id can be any string, but the OMG
157    specifies four standard formats:
159       a. IDL-style
161        IDL:Prefix/ModuleName/InterfaceName:VersionNumber
170 Ryan, et al.                 Informational                      [Page 3]
172 RFC 2714           Schema for CORBA Object References       October 1999
175    For example, the repository id for the "NamingContext" in OMG's COS
176    Naming module is:  "IDL:omg.org/CosNaming/NamingContext:1.0".
178       b. RMI-style
180        RMI:ClassName:HashCode[:SUID]
182    This format is used by RMI-IIOP remote objects [RMI-IIOP].
183    "ClassName" is the fully qualified name of the class (for example,
184    "java.lang.String"). "HashCode" is the object's hash code (that is,
185    that obtained by invoking the "hashCode()" method).  "SUID" is the
186    "stream unique identifier", which is a 64-bit number that uniquely
187    identifies the serialization version of the class; SUID is optional
188    in the repository id.
190       c. DCE-style
192        DCE:UUID
194    This format is used for DCE/CORBA interoperability [CORBA-DCE].
195    "UUID" represents a DCE UUID.
197       d. "local"
199    This format is defined by the local Object Request Broker (ORB).
201    The corbaRepositoryId attribute is a multivalued attribute; each
202    value records a single repository id of an interface implemented by
203    the CORBA object.  This attribute need not contain a complete list of
204    the interfaces implemented by the CORBA object.
206    This attribute's syntax is 'Directory String' and its case is
207    significant.  The values of this attribute are encoded using UTF-8.
208    Some values may require translation from their native representation
209    in order to be correctly encoded using UTF-8.
211    ( 1.3.6.1.4.1.42.2.27.4.1.15
212     NAME 'corbaRepositoryId'
213     DESC 'Repository ids of interfaces implemented by a CORBA object'
214     EQUALITY caseExactMatch
215     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
216    )
226 Ryan, et al.                 Informational                      [Page 4]
228 RFC 2714           Schema for CORBA Object References       October 1999
231 4. Object Class Definitions
233    The following object classes are defined in this document:
235        corbaContainer
236        corbaObject
237        corbaObjectReference
239 4.1 corbaContainer
241    This structural object class represents a container for a CORBA
242    object.
244    ( 1.3.6.1.4.1.42.2.27.4.2.10
245     NAME 'corbaContainer'
246     DESC 'Container for a CORBA object'
247     SUP top
248     STRUCTURAL
249     MUST ( cn )
250    )
252 4.2 corbaObject
254    This abstract object class is the root class for representing a CORBA
255    object.
257    ( 1.3.6.1.4.1.42.2.27.4.2.9
258     NAME 'corbaObject'
259     DESC 'CORBA object representation'
260     SUP top
261     ABSTRACT
262     MAY ( corbaRepositoryId $ description )
263    )
265 4.3 corbaObjectReference
267    This auxiliary object class represents a CORBA object reference.  It
268    must be mixed in with a structural object class.
270    ( 1.3.6.1.4.1.42.2.27.4.2.11
271     NAME 'corbaObjectReference'
272     DESC 'CORBA interoperable object reference'
273     SUP corbaObject
274     AUXILIARY
275     MUST ( corbaIor )
276    )
282 Ryan, et al.                 Informational                      [Page 5]
284 RFC 2714           Schema for CORBA Object References       October 1999
287 5. Security Considerations
289    Obtaining a reference to an object and storing it in the directory
290    may make a handle to the object available to a wider audience.  This
291    may have security implications.
293 6. Acknowledgements
295    We would like to thank Sanjeev Krishnan of Sun Microsystems, Simon
296    Nash of IBM, and Jeffrey Spirn of Oracle for their comments and
297    suggestions.
299 7. References
301    [CORBA]     The Object Management Group, "Common Object Request
302                Broker Architecture Specification 2.2",
303                http://www.omg.org
305    [CORBA-DCE] Distributed Systems Technology Center and Digital
306                Equipment Corporation, "DCE/CORBA Interworking
307                Specification", May 1998.
308                http://www.omg.org/library/schedule/
309                DCE_CORBA_Interworking_RFP.html
311    [LDAPv3]    Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
312                Access Protocol (v3)", RFC 2251, December 1997.
314    [RMI-IIOP]  IBM and Java Software, Sun Microsystems, Inc., "RMI over
315                IIOP", June 1999.  http://java.sun.com/products/rmi-
316                iiop/index.html
318    [v3Schema]  Wahl, M., "A Summary of the X.500(96) User Schema for use
319                with LDAPv3", RFC 2256, December 1997.
338 Ryan, et al.                 Informational                      [Page 6]
340 RFC 2714           Schema for CORBA Object References       October 1999
343 8. Authors' Addresses
345    Vincent Ryan
346    Sun Microsystems, Inc.
347    Mail Stop EDUB03
348    901 San Antonio Road
349    Palo Alto, CA 94303
350    USA
352    Phone: +353 1 819 9151
353    EMail: vincent.ryan@ireland.sun.com
356    Rosanna Lee
357    Sun Microsystems, Inc.
358    Mail Stop UCUP02-206
359    901 San Antonio Road
360    Palo Alto, CA 94303
361    USA
363    Phone: +1 408 863 3221
364    EMail: rosanna.lee@eng.sun.com
367    Scott Seligman
368    Sun Microsystems, Inc.
369    Mail Stop UCUP02-209
370    901 San Antonio Road
371    Palo Alto, CA 94303
372    USA
374    Phone: +1 408 863 3222
375    EMail: scott.seligman@eng.sun.com
394 Ryan, et al.                 Informational                      [Page 7]
396 RFC 2714           Schema for CORBA Object References       October 1999
399 9. Appendix  - LDAP Schema
401    -- Attribute types --
403    ( 1.3.6.1.4.1.42.2.27.4.1.14
404     NAME 'corbaIor'
405     DESC 'Stringified interoperable object reference of a CORBA object'
406     EQUALITY caseIgnoreIA5Match
407     SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
408     SINGLE-VALUE
409    )
411    ( 1.3.6.1.4.1.42.2.27.4.1.15
412     NAME 'corbaRepositoryId'
413     DESC 'Repository ids of interfaces implemented by a CORBA object'
414     EQUALITY caseExactMatch
415     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
416    )
418    -- from RFC-2256 --
420    ( 2.5.4.13
421     NAME 'description'
422     EQUALITY caseIgnoreMatch
423     SUBSTR caseIgnoreSubstringsMatch
424     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
425    )
427    -- Object classes --
429    ( 1.3.6.1.4.1.42.2.27.4.2.9
430     NAME 'corbaObject'
431     DESC 'CORBA object representation'
432     SUP top
433     ABSTRACT
434     MAY ( corbaRepositoryId $ description )
435    )
437    ( 1.3.6.1.4.1.42.2.27.4.2.10
438     NAME 'corbaContainer'
439     DESC 'Container for a CORBA object'
440     SUP top
441     STRUCTURAL
442     MUST ( cn )
443    )
450 Ryan, et al.                 Informational                      [Page 8]
452 RFC 2714           Schema for CORBA Object References       October 1999
455    ( 1.3.6.1.4.1.42.2.27.4.2.11
456     NAME 'corbaObjectReference'
457     DESC 'CORBA interoperable object reference'
458     SUP corbaObject
459     AUXILIARY
460     MUST ( corbaIor )
461    )
463    -- Matching rule from ISO X.520 --
465    ( 2.5.13.5
466     NAME 'caseExactMatch'
467     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
468    )
506 Ryan, et al.                 Informational                      [Page 9]
508 RFC 2714           Schema for CORBA Object References       October 1999
511 10.  Full Copyright Statement
513    Copyright (C) The Internet Society (1999).  All Rights Reserved.
515    This document and translations of it may be copied and furnished to
516    others, and derivative works that comment on or otherwise explain it
517    or assist in its implementation may be prepared, copied, published
518    and distributed, in whole or in part, without restriction of any
519    kind, provided that the above copyright notice and this paragraph are
520    included on all such copies and derivative works.  However, this
521    document itself may not be modified in any way, such as by removing
522    the copyright notice or references to the Internet Society or other
523    Internet organizations, except as needed for the purpose of
524    developing Internet standards in which case the procedures for
525    copyrights defined in the Internet Standards process must be
526    followed, or as required to translate it into languages other than
527    English.
529    The limited permissions granted above are perpetual and will not be
530    revoked by the Internet Society or its successors or assigns.
532    This document and the information contained herein is provided on an
533    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
534    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
535    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
536    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
537    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
539 Acknowledgement
541    Funding for the RFC Editor function is currently provided by the
542    Internet Society.
562 Ryan, et al.                 Informational                     [Page 10]