Home | History | Annotate | Line # | Download | only in rfc
      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