rfc2714.txt revision 1.1 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
61 RFC 2714 Schema for CORBA Object References October 1999
62
63
64 For example, an application server may use the directory for
65 "registering" CORBA objects representing the services that it
66 manages, so that a client can later search the directory to locate
67 those services as it needs.
68
69 The motivation for this document is to define a common way for
70 applications to store and retrieve CORBA object references from the
71 directory. Using this common schema, any CORBA application that
72 needs to read or store CORBA object references in the directory can
73 do so in an interoperable way.
74
75 Note that this schema is defined for storing CORBA "object
76 references," not CORBA objects in general. There might be other ways
77 to store CORBA objects in an LDAP directory but they are not covered
78 by this schema.
79
80 2. Representation of CORBA Object References
81
82 This document defines schema elements to represent a CORBA object
83 reference in LDAP directory. Applications in possession of a
84 reference to an object can invoke calls on that object. Such a
85 reference is termed an "interoperable object reference," or IOR.
86 Access to CORBA objects by using IORs is achieved transparently to
87 the application, by means of the General Inter-ORB Protocol.
88
89 A CORBA object reference is represented in the directory by the
90 object class corbaObjectReference. corbaObjectReference is a subclass
91 of the abstract corbaObject object class. corbaObjectReference is an
92 auxiliary object class, which means that it needs to be mixed in with
93 a structural object class.
94
95 The object class corbaContainer is used in a directory entry which
96 represents a CORBA object or object reference. It is a structural
97 object class, and when representing an object reference, the
98 corbaObjectReference object class would also need to be present in
99 the entry. corbaContainer is not required when a subclass of
100 corbaObject (such as corbaObjectReference) is mixed in with another
101 structural object class.
102
103 The definitions for the object classes corbaObject,
104 corbaObjectReference, and corbaContainer are presented in Section 4.
105
106 The corbaObject class has two optional attributes: corbaRepositoryId
107 and description. corbaRepositoryId is a multivalued attribute that
108 is used to store the repository ids of the interfaces implemented by
109 a CORBA object. description is used to store a textual description
110 of a CORBA object.
111
112
113
114
115 Ryan, et al. Informational [Page 2]
116
118 RFC 2714 Schema for CORBA Object References October 1999
119
120
121 The corbaObjectReference class has one mandatory attribute: corbaIor.
122 corbaIor is used to store the object's stringified IOR.
123
124 corbaIor and corbaRepositoryId are defined in Section 3; description
125 is defined in [v3Schema].
126
127 3. Attribute Type Definitions
128
129 The following attribute types are defined in this document:
130
131 corbaIor
132 corbaRepositoryId
133
134 3.1 corbaIor
135
136 This attribute stores the string representation of the interoperable
137 object reference (IOR) for a CORBA object. An IOR is an opaque handle
138 for the object which contains the information necessary to locate the
139 object, even if the object is in another ORB.
140
141 This attribute's syntax is 'IA5 String' and its case is
142 insignificant.
143
144 ( 1.3.6.1.4.1.42.2.27.4.1.14
145 NAME 'corbaIor'
146 DESC 'Stringified interoperable object reference of a CORBA object'
147 EQUALITY caseIgnoreIA5Match
148 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
149 SINGLE-VALUE
150 )
151
152 3.2 corbaRepositoryId
153
154 Each CORBA interface has a unique "repository id" (also called "type
155 id") that identifies the interface. A CORBA object has one or more
156 repository ids, one for each interface that it implements.
157
158 The format of a repository id can be any string, but the OMG
159 specifies four standard formats:
160
161 a. IDL-style
162
163 IDL:Prefix/ModuleName/InterfaceName:VersionNumber
164
165
166
167
168
169
170
171
172 Ryan, et al. Informational [Page 3]
173
175 RFC 2714 Schema for CORBA Object References October 1999
176
177
178 For example, the repository id for the "NamingContext" in OMG's COS
179 Naming module is: "IDL:omg.org/CosNaming/NamingContext:1.0".
180
181 b. RMI-style
182
183 RMI:ClassName:HashCode[:SUID]
184
185 This format is used by RMI-IIOP remote objects [RMI-IIOP].
186 "ClassName" is the fully qualified name of the class (for example,
187 "java.lang.String"). "HashCode" is the object's hash code (that is,
188 that obtained by invoking the "hashCode()" method). "SUID" is the
189 "stream unique identifier", which is a 64-bit number that uniquely
190 identifies the serialization version of the class; SUID is optional
191 in the repository id.
192
193 c. DCE-style
194
195 DCE:UUID
196
197 This format is used for DCE/CORBA interoperability [CORBA-DCE].
198 "UUID" represents a DCE UUID.
199
200 d. "local"
201
202 This format is defined by the local Object Request Broker (ORB).
203
204 The corbaRepositoryId attribute is a multivalued attribute; each
205 value records a single repository id of an interface implemented by
206 the CORBA object. This attribute need not contain a complete list of
207 the interfaces implemented by the CORBA object.
208
209 This attribute's syntax is 'Directory String' and its case is
210 significant. The values of this attribute are encoded using UTF-8.
211 Some values may require translation from their native representation
212 in order to be correctly encoded using UTF-8.
213
214 ( 1.3.6.1.4.1.42.2.27.4.1.15
215 NAME 'corbaRepositoryId'
216 DESC 'Repository ids of interfaces implemented by a CORBA object'
217 EQUALITY caseExactMatch
218 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
219 )
220
221
222
223
224
225
226
227
228
229 Ryan, et al. Informational [Page 4]
230
232 RFC 2714 Schema for CORBA Object References October 1999
233
234
235 4. Object Class Definitions
236
237 The following object classes are defined in this document:
238
239 corbaContainer
240 corbaObject
241 corbaObjectReference
242
243 4.1 corbaContainer
244
245 This structural object class represents a container for a CORBA
246 object.
247
248 ( 1.3.6.1.4.1.42.2.27.4.2.10
249 NAME 'corbaContainer'
250 DESC 'Container for a CORBA object'
251 SUP top
252 STRUCTURAL
253 MUST ( cn )
254 )
255
256 4.2 corbaObject
257
258 This abstract object class is the root class for representing a CORBA
259 object.
260
261 ( 1.3.6.1.4.1.42.2.27.4.2.9
262 NAME 'corbaObject'
263 DESC 'CORBA object representation'
264 SUP top
265 ABSTRACT
266 MAY ( corbaRepositoryId $ description )
267 )
268
269 4.3 corbaObjectReference
270
271 This auxiliary object class represents a CORBA object reference. It
272 must be mixed in with a structural object class.
273
274 ( 1.3.6.1.4.1.42.2.27.4.2.11
275 NAME 'corbaObjectReference'
276 DESC 'CORBA interoperable object reference'
277 SUP corbaObject
278 AUXILIARY
279 MUST ( corbaIor )
280 )
281
282
283
284
285
286 Ryan, et al. Informational [Page 5]
287
289 RFC 2714 Schema for CORBA Object References October 1999
290
291
292 5. Security Considerations
293
294 Obtaining a reference to an object and storing it in the directory
295 may make a handle to the object available to a wider audience. This
296 may have security implications.
297
298 6. Acknowledgements
299
300 We would like to thank Sanjeev Krishnan of Sun Microsystems, Simon
301 Nash of IBM, and Jeffrey Spirn of Oracle for their comments and
302 suggestions.
303
304 7. References
305
306 [CORBA] The Object Management Group, "Common Object Request
307 Broker Architecture Specification 2.2",
308 http://www.omg.org
309
310 [CORBA-DCE] Distributed Systems Technology Center and Digital
311 Equipment Corporation, "DCE/CORBA Interworking
312 Specification", May 1998.
313 http://www.omg.org/library/schedule/
314 DCE_CORBA_Interworking_RFP.html
315
316 [LDAPv3] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
317 Access Protocol (v3)", RFC 2251, December 1997.
318
319 [RMI-IIOP] IBM and Java Software, Sun Microsystems, Inc., "RMI over
320 IIOP", June 1999. http://java.sun.com/products/rmi-
321 iiop/index.html
322
323 [v3Schema] Wahl, M., "A Summary of the X.500(96) User Schema for use
324 with LDAPv3", RFC 2256, December 1997.
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343 Ryan, et al. Informational [Page 6]
344
346 RFC 2714 Schema for CORBA Object References October 1999
347
348
349 8. Authors' Addresses
350
351 Vincent Ryan
352 Sun Microsystems, Inc.
353 Mail Stop EDUB03
354 901 San Antonio Road
355 Palo Alto, CA 94303
356 USA
357
358 Phone: +353 1 819 9151
359 EMail: vincent.ryan (a] ireland.sun.com
360
361
362 Rosanna Lee
363 Sun Microsystems, Inc.
364 Mail Stop UCUP02-206
365 901 San Antonio Road
366 Palo Alto, CA 94303
367 USA
368
369 Phone: +1 408 863 3221
370 EMail: rosanna.lee (a] eng.sun.com
371
372
373 Scott Seligman
374 Sun Microsystems, Inc.
375 Mail Stop UCUP02-209
376 901 San Antonio Road
377 Palo Alto, CA 94303
378 USA
379
380 Phone: +1 408 863 3222
381 EMail: scott.seligman (a] eng.sun.com
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400 Ryan, et al. Informational [Page 7]
401
403 RFC 2714 Schema for CORBA Object References October 1999
404
405
406 9. Appendix - LDAP Schema
407
408 -- Attribute types --
409
410 ( 1.3.6.1.4.1.42.2.27.4.1.14
411 NAME 'corbaIor'
412 DESC 'Stringified interoperable object reference of a CORBA object'
413 EQUALITY caseIgnoreIA5Match
414 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
415 SINGLE-VALUE
416 )
417
418 ( 1.3.6.1.4.1.42.2.27.4.1.15
419 NAME 'corbaRepositoryId'
420 DESC 'Repository ids of interfaces implemented by a CORBA object'
421 EQUALITY caseExactMatch
422 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
423 )
424
425 -- from RFC-2256 --
426
427 ( 2.5.4.13
428 NAME 'description'
429 EQUALITY caseIgnoreMatch
430 SUBSTR caseIgnoreSubstringsMatch
431 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
432 )
433
434 -- Object classes --
435
436 ( 1.3.6.1.4.1.42.2.27.4.2.9
437 NAME 'corbaObject'
438 DESC 'CORBA object representation'
439 SUP top
440 ABSTRACT
441 MAY ( corbaRepositoryId $ description )
442 )
443
444 ( 1.3.6.1.4.1.42.2.27.4.2.10
445 NAME 'corbaContainer'
446 DESC 'Container for a CORBA object'
447 SUP top
448 STRUCTURAL
449 MUST ( cn )
450 )
451
452
453
454
455
456
457 Ryan, et al. Informational [Page 8]
458
460 RFC 2714 Schema for CORBA Object References October 1999
461
462
463 ( 1.3.6.1.4.1.42.2.27.4.2.11
464 NAME 'corbaObjectReference'
465 DESC 'CORBA interoperable object reference'
466 SUP corbaObject
467 AUXILIARY
468 MUST ( corbaIor )
469 )
470
471 -- Matching rule from ISO X.520 --
472
473 ( 2.5.13.5
474 NAME 'caseExactMatch'
475 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
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
507
508
509
510
511
512
513
514 Ryan, et al. Informational [Page 9]
515
517 RFC 2714 Schema for CORBA Object References October 1999
518
519
520 10. Full Copyright Statement
521
522 Copyright (C) The Internet Society (1999). All Rights Reserved.
523
524 This document and translations of it may be copied and furnished to
525 others, and derivative works that comment on or otherwise explain it
526 or assist in its implementation may be prepared, copied, published
527 and distributed, in whole or in part, without restriction of any
528 kind, provided that the above copyright notice and this paragraph are
529 included on all such copies and derivative works. However, this
530 document itself may not be modified in any way, such as by removing
531 the copyright notice or references to the Internet Society or other
532 Internet organizations, except as needed for the purpose of
533 developing Internet standards in which case the procedures for
534 copyrights defined in the Internet Standards process must be
535 followed, or as required to translate it into languages other than
536 English.
537
538 The limited permissions granted above are perpetual and will not be
539 revoked by the Internet Society or its successors or assigns.
540
541 This document and the information contained herein is provided on an
542 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
543 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
544 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
545 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
546 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
547
548 Acknowledgement
549
550 Funding for the RFC Editor function is currently provided by the
551 Internet Society.
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571 Ryan, et al. Informational [Page 10]
572
574