7 Network Working Group V. Ryan
8 Request for Comments: 2714 R. Lee
9 Category: Informational S. Seligman
10 Sun Microsystems, Inc.
14 Schema for Representing CORBA Object References in an LDAP Directory
18 This memo provides information for the Internet community. It does
19 not specify an Internet standard of any kind. Distribution of this
24 Copyright (C) The Internet Society (1999). All Rights Reserved.
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
35 This document assumes that the reader has a general understanding of
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
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
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:
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
142 ( 1.3.6.1.4.1.42.2.27.4.1.14
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
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:
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".
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.
194 This format is used for DCE/CORBA interoperability [CORBA-DCE].
195 "UUID" represents a DCE UUID.
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
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:
241 This structural object class represents a container for a CORBA
244 ( 1.3.6.1.4.1.42.2.27.4.2.10
245 NAME 'corbaContainer'
246 DESC 'Container for a CORBA object'
254 This abstract object class is the root class for representing a CORBA
257 ( 1.3.6.1.4.1.42.2.27.4.2.9
259 DESC 'CORBA object representation'
262 MAY ( corbaRepositoryId $ description )
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'
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.
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
301 [CORBA] The Object Management Group, "Common Object Request
302 Broker Architecture Specification 2.2",
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-
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
346 Sun Microsystems, Inc.
352 Phone: +353 1 819 9151
353 EMail: vincent.ryan@ireland.sun.com
357 Sun Microsystems, Inc.
363 Phone: +1 408 863 3221
364 EMail: rosanna.lee@eng.sun.com
368 Sun Microsystems, Inc.
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
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
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
422 EQUALITY caseIgnoreMatch
423 SUBSTR caseIgnoreSubstringsMatch
424 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
429 ( 1.3.6.1.4.1.42.2.27.4.2.9
431 DESC 'CORBA object representation'
434 MAY ( corbaRepositoryId $ description )
437 ( 1.3.6.1.4.1.42.2.27.4.2.10
438 NAME 'corbaContainer'
439 DESC 'Container for a CORBA object'
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'
463 -- Matching rule from ISO X.520 --
466 NAME 'caseExactMatch'
467 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
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
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.
541 Funding for the RFC Editor function is currently provided by the
562 Ryan, et al. Informational [Page 10]