1 2 3 4 5 6 7Network Working Group V. Ryan 8Request for Comments: 2714 R. Lee 9Category: Informational S. Seligman 10 Sun Microsystems, Inc. 11 October 1999 12 13 14 Schema for Representing CORBA Object References in an LDAP Directory 15 16Status 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 22Copyright Notice 23 24 Copyright (C) The Internet Society (1999). All Rights Reserved. 25 26Abstract 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 331. 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 58Ryan, et al. Informational [Page 1] 59 60RFC 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 792. 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 114Ryan, et al. Informational [Page 2] 115 116RFC 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 1253. Attribute Type Definitions 126 127 The following attribute types are defined in this document: 128 129 corbaIor 130 corbaRepositoryId 131 1323.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 1503.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 170Ryan, et al. Informational [Page 3] 171 172RFC 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 226Ryan, et al. Informational [Page 4] 227 228RFC 2714 Schema for CORBA Object References October 1999 229 230 2314. Object Class Definitions 232 233 The following object classes are defined in this document: 234 235 corbaContainer 236 corbaObject 237 corbaObjectReference 238 2394.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 2524.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 2654.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 282Ryan, et al. Informational [Page 5] 283 284RFC 2714 Schema for CORBA Object References October 1999 285 286 2875. 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 2936. 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 2997. 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 338Ryan, et al. Informational [Page 6] 339 340RFC 2714 Schema for CORBA Object References October 1999 341 342 3438. 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 394Ryan, et al. Informational [Page 7] 395 396RFC 2714 Schema for CORBA Object References October 1999 397 398 3999. 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 450Ryan, et al. Informational [Page 8] 451 452RFC 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 506Ryan, et al. Informational [Page 9] 507 508RFC 2714 Schema for CORBA Object References October 1999 509 510 51110. 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 539Acknowledgement 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 562Ryan, et al. Informational [Page 10] 563 564