]> git.sur5r.net Git - openldap/blob - doc/rfc/rfc2714.txt
Merge remote branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
[openldap] / doc / rfc / rfc2714.txt
1
2
3
4
5
6
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
12
13
14   Schema for Representing CORBA Object References in an LDAP Directory
15
16 Status of this Memo
17
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.
21
22 Copyright Notice
23
24    Copyright (C) The Internet Society (1999).  All Rights Reserved.
25
26 Abstract
27
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].
32
33 1. Introduction
34
35    This document assumes that the reader has a general understanding of
36    CORBA.
37
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".
46
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.
54
55
56
57
58 Ryan, et al.                 Informational                      [Page 1]
59 \f
60 RFC 2714           Schema for CORBA Object References       October 1999
61
62
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.
67
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.
73
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.
78
79 2. Representation of CORBA Object References
80
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.
87
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.
93
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.
101
102    The definitions for the object classes corbaObject,
103    corbaObjectReference, and corbaContainer are presented in Section 4.
104
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.
110
111
112
113
114 Ryan, et al.                 Informational                      [Page 2]
115 \f
116 RFC 2714           Schema for CORBA Object References       October 1999
117
118
119    The corbaObjectReference class has one mandatory attribute: corbaIor.
120    corbaIor is used to store the object's stringified IOR.
121
122    corbaIor and corbaRepositoryId are defined in Section 3; description
123    is defined in [v3Schema].
124
125 3. Attribute Type Definitions
126
127    The following attribute types are defined in this document:
128
129        corbaIor
130        corbaRepositoryId
131
132 3.1 corbaIor
133
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.
138
139    This attribute's syntax is 'IA5 String' and its case is
140    insignificant.
141
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    )
149
150 3.2 corbaRepositoryId
151
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.
155
156    The format of a repository id can be any string, but the OMG
157    specifies four standard formats:
158
159       a. IDL-style
160
161        IDL:Prefix/ModuleName/InterfaceName:VersionNumber
162
163
164
165
166
167
168
169
170 Ryan, et al.                 Informational                      [Page 3]
171 \f
172 RFC 2714           Schema for CORBA Object References       October 1999
173
174
175    For example, the repository id for the "NamingContext" in OMG's COS
176    Naming module is:  "IDL:omg.org/CosNaming/NamingContext:1.0".
177
178       b. RMI-style
179
180        RMI:ClassName:HashCode[:SUID]
181
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.
189
190       c. DCE-style
191
192        DCE:UUID
193
194    This format is used for DCE/CORBA interoperability [CORBA-DCE].
195    "UUID" represents a DCE UUID.
196
197       d. "local"
198
199    This format is defined by the local Object Request Broker (ORB).
200
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.
205
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.
210
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    )
217
218
219
220
221
222
223
224
225
226 Ryan, et al.                 Informational                      [Page 4]
227 \f
228 RFC 2714           Schema for CORBA Object References       October 1999
229
230
231 4. Object Class Definitions
232
233    The following object classes are defined in this document:
234
235        corbaContainer
236        corbaObject
237        corbaObjectReference
238
239 4.1 corbaContainer
240
241    This structural object class represents a container for a CORBA
242    object.
243
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    )
251
252 4.2 corbaObject
253
254    This abstract object class is the root class for representing a CORBA
255    object.
256
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    )
264
265 4.3 corbaObjectReference
266
267    This auxiliary object class represents a CORBA object reference.  It
268    must be mixed in with a structural object class.
269
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    )
277
278
279
280
281
282 Ryan, et al.                 Informational                      [Page 5]
283 \f
284 RFC 2714           Schema for CORBA Object References       October 1999
285
286
287 5. Security Considerations
288
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.
292
293 6. Acknowledgements
294
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.
298
299 7. References
300
301    [CORBA]     The Object Management Group, "Common Object Request
302                Broker Architecture Specification 2.2",
303                http://www.omg.org
304
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
310
311    [LDAPv3]    Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
312                Access Protocol (v3)", RFC 2251, December 1997.
313
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
317
318    [v3Schema]  Wahl, M., "A Summary of the X.500(96) User Schema for use
319                with LDAPv3", RFC 2256, December 1997.
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338 Ryan, et al.                 Informational                      [Page 6]
339 \f
340 RFC 2714           Schema for CORBA Object References       October 1999
341
342
343 8. Authors' Addresses
344
345    Vincent Ryan
346    Sun Microsystems, Inc.
347    Mail Stop EDUB03
348    901 San Antonio Road
349    Palo Alto, CA 94303
350    USA
351
352    Phone: +353 1 819 9151
353    EMail: vincent.ryan@ireland.sun.com
354
355
356    Rosanna Lee
357    Sun Microsystems, Inc.
358    Mail Stop UCUP02-206
359    901 San Antonio Road
360    Palo Alto, CA 94303
361    USA
362
363    Phone: +1 408 863 3221
364    EMail: rosanna.lee@eng.sun.com
365
366
367    Scott Seligman
368    Sun Microsystems, Inc.
369    Mail Stop UCUP02-209
370    901 San Antonio Road
371    Palo Alto, CA 94303
372    USA
373
374    Phone: +1 408 863 3222
375    EMail: scott.seligman@eng.sun.com
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394 Ryan, et al.                 Informational                      [Page 7]
395 \f
396 RFC 2714           Schema for CORBA Object References       October 1999
397
398
399 9. Appendix  - LDAP Schema
400
401    -- Attribute types --
402
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    )
410
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    )
417
418    -- from RFC-2256 --
419
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    )
426
427    -- Object classes --
428
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    )
436
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    )
444
445
446
447
448
449
450 Ryan, et al.                 Informational                      [Page 8]
451 \f
452 RFC 2714           Schema for CORBA Object References       October 1999
453
454
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    )
462
463    -- Matching rule from ISO X.520 --
464
465    ( 2.5.13.5
466     NAME 'caseExactMatch'
467     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
468    )
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506 Ryan, et al.                 Informational                      [Page 9]
507 \f
508 RFC 2714           Schema for CORBA Object References       October 1999
509
510
511 10.  Full Copyright Statement
512
513    Copyright (C) The Internet Society (1999).  All Rights Reserved.
514
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.
528
529    The limited permissions granted above are perpetual and will not be
530    revoked by the Internet Society or its successors or assigns.
531
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.
538
539 Acknowledgement
540
541    Funding for the RFC Editor function is currently provided by the
542    Internet Society.
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562 Ryan, et al.                 Informational                     [Page 10]
563 \f