Network Working Group                                            V. Ryan
Request for Comments: 2714                                        R. Lee
Category: Informational                                      S. Seligman
                                                  Sun Microsystems, Inc.
                                                            October 1999
        
Network Working Group                                            V. Ryan
Request for Comments: 2714                                        R. Lee
Category: Informational                                      S. Seligman
                                                  Sun Microsystems, Inc.
                                                            October 1999
        

Schema for Representing CORBA Object References in an LDAP Directory

在LDAP目录中表示CORBA对象引用的模式

Status of this Memo

本备忘录的状况

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (1999). All Rights Reserved.

版权所有(C)互联网协会(1999年)。版权所有。

Abstract

摘要

CORBA [CORBA] is the Common Object Request Broker Architecture defined by the Object Management Group. This document defines the schema for representing CORBA object references in an LDAP directory [LDAPv3].

CORBA[CORBA]是由对象管理组定义的通用对象请求代理体系结构。本文档定义了在LDAP目录[LDAPv3]中表示CORBA对象引用的模式。

1. Introduction
1. 介绍

This document assumes that the reader has a general understanding of CORBA.

本文假设读者对CORBA有一个大致的了解。

Traditionally, LDAP directories have been used to store data. Users and programmers think of the directory as a hierarchy of directory entries, each containing a set of attributes. You look up an entry from the directory and extract the attribute(s) of interest. For example, you can look up a person's telephone number from the directory. Alternatively, you can search the directory for entries with a particular set of attributes. For example, you can search for all persons in the directory with the surname "Smith".

传统上,LDAP目录用于存储数据。用户和程序员将目录视为目录项的层次结构,每个目录项都包含一组属性。您可以从目录中查找条目并提取感兴趣的属性。例如,您可以从目录中查找某人的电话号码。或者,您可以在目录中搜索具有特定属性集的条目。例如,您可以搜索目录中姓氏为“Smith”的所有人员。

CORBA applications require access to CORBA objects. Traditionally, CORBA applications have used the COS Naming service for storage and retrieval of CORBA object references. When deployed in environments with a directory, CORBA applications should be able to use the directory as a repository for CORBA object references. The directory provides a centrally administered, and possibly replicated, service for use by CORBA applications distributed across the network.

CORBA应用程序需要访问CORBA对象。传统上,CORBA应用程序使用COS命名服务来存储和检索CORBA对象引用。当部署在具有目录的环境中时,CORBA应用程序应该能够将目录用作CORBA对象引用的存储库。该目录提供了一个集中管理的(可能是复制的)服务,供分布在网络上的CORBA应用程序使用。

For example, an application server may use the directory for "registering" CORBA objects representing the services that it manages, so that a client can later search the directory to locate those services as it needs.

例如,应用服务器可以使用该目录“注册”表示其管理的服务的CORBA对象,以便客户机以后可以根据需要搜索该目录以定位这些服务。

The motivation for this document is to define a common way for applications to store and retrieve CORBA object references from the directory. Using this common schema, any CORBA application that needs to read or store CORBA object references in the directory can do so in an interoperable way.

本文档的目的是为应用程序定义一种从目录中存储和检索CORBA对象引用的通用方法。使用此公共模式,任何需要在目录中读取或存储CORBA对象引用的CORBA应用程序都可以以互操作的方式执行此操作。

Note that this schema is defined for storing CORBA "object references," not CORBA objects in general. There might be other ways to store CORBA objects in an LDAP directory but they are not covered by this schema.

注意,这个模式是为存储CORBA“对象引用”而定义的,而不是一般的CORBA对象。可能有其他方法将CORBA对象存储在LDAP目录中,但此模式不包括这些方法。

2. Representation of CORBA Object References
2. CORBA对象引用的表示

This document defines schema elements to represent a CORBA object reference in LDAP directory. Applications in possession of a reference to an object can invoke calls on that object. Such a reference is termed an "interoperable object reference," or IOR. Access to CORBA objects by using IORs is achieved transparently to the application, by means of the General Inter-ORB Protocol.

本文档定义了模式元素来表示LDAP目录中的CORBA对象引用。拥有对象引用的应用程序可以调用对该对象的调用。这种引用称为“可互操作对象引用”或IOR。通过通用的ORB间协议,使用IOR访问CORBA对象对应用程序是透明的。

A CORBA object reference is represented in the directory by the object class corbaObjectReference. corbaObjectReference is a subclass of the abstract corbaObject object class. corbaObjectReference is an auxiliary object class, which means that it needs to be mixed in with a structural object class.

CORBA对象引用在目录中由对象类corbaObjectReference表示。corbaObjectReference是抽象corbaObject对象类的一个子类。corbaObjectReference是一个辅助对象类,这意味着它需要与结构对象类混合。

The object class corbaContainer is used in a directory entry which represents a CORBA object or object reference. It is a structural object class, and when representing an object reference, the corbaObjectReference object class would also need to be present in the entry. corbaContainer is not required when a subclass of corbaObject (such as corbaObjectReference) is mixed in with another structural object class.

对象类CORBA容器用于表示CORBA对象或对象引用的目录条目中。它是一个结构化对象类,当表示对象引用时,条目中还需要存在corbaObjectReference对象类。当corbaObject的子类(如corbaObjectReference)与另一个结构对象类混合时,不需要corbaContainer。

The definitions for the object classes corbaObject, corbaObjectReference, and corbaContainer are presented in Section 4.

第4节介绍了对象类corbaObject、corbaObjectReference和corbaContainer的定义。

The corbaObject class has two optional attributes: corbaRepositoryId and description. corbaRepositoryId is a multivalued attribute that is used to store the repository ids of the interfaces implemented by a CORBA object. description is used to store a textual description of a CORBA object.

corbaObject类有两个可选属性:corbaRepositoryId和description。corbaRepositoryId是一个多值属性,用于存储CORBA对象实现的接口的存储库id。描述用于存储CORBA对象的文本描述。

The corbaObjectReference class has one mandatory attribute: corbaIor. corbaIor is used to store the object's stringified IOR.

corbaObjectReference类有一个强制属性:corbaIor。corbaIor用于存储对象的字符串化IOR。

corbaIor and corbaRepositoryId are defined in Section 3; description is defined in [v3Schema].

第3节定义了corbaIor和corbaRepositoryId;描述在[v3Schema]中定义。

3. Attribute Type Definitions
3. 属性类型定义

The following attribute types are defined in this document:

本文档中定义了以下属性类型:

corbaIor corbaRepositoryId

corbaIor corbaRepositoryId

3.1 corbaIor
3.1 科拜尔

This attribute stores the string representation of the interoperable object reference (IOR) for a CORBA object. An IOR is an opaque handle for the object which contains the information necessary to locate the object, even if the object is in another ORB.

该属性存储CORBA对象的可互操作对象引用(IOR)的字符串表示形式。IOR是对象的不透明句柄,包含定位对象所需的信息,即使对象位于另一个ORB中。

This attribute's syntax is 'IA5 String' and its case is insignificant.

此属性的语法为“IA5 String”,大小写不重要。

( 1.3.6.1.4.1.42.2.27.4.1.14 NAME 'corbaIor' DESC 'Stringified interoperable object reference of a CORBA object' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

(1.3.6.1.4.1.42.2.27.4.1.14名称'corbaIor'DESC'CORBA对象的字符串化互操作对象引用'EQUALITY CaseIgnoreA5Match语法1.3.6.1.4.1.1466.115.121.1.26单值)

3.2 corbaRepositoryId
3.2 corbaRepositoryId

Each CORBA interface has a unique "repository id" (also called "type id") that identifies the interface. A CORBA object has one or more repository ids, one for each interface that it implements.

每个CORBA接口都有一个唯一的“存储库id”(也称为“类型id”),用于标识接口。CORBA对象有一个或多个存储库ID,每个ID对应于它实现的每个接口。

The format of a repository id can be any string, but the OMG specifies four standard formats:

存储库id的格式可以是任何字符串,但OMG指定了四种标准格式:

a. IDL-style

a. IDL风格

       IDL:Prefix/ModuleName/InterfaceName:VersionNumber
        
       IDL:Prefix/ModuleName/InterfaceName:VersionNumber
        

For example, the repository id for the "NamingContext" in OMG's COS Naming module is: "IDL:omg.org/CosNaming/NamingContext:1.0".

例如,OMG的COS命名模块中“NamingContext”的存储库id为:“IDL:OMG.org/CosNaming/NamingContext:1.0”。

b. RMI-style

b. RMI风格

       RMI:ClassName:HashCode[:SUID]
        
       RMI:ClassName:HashCode[:SUID]
        

This format is used by RMI-IIOP remote objects [RMI-IIOP]. "ClassName" is the fully qualified name of the class (for example, "java.lang.String"). "HashCode" is the object's hash code (that is, that obtained by invoking the "hashCode()" method). "SUID" is the "stream unique identifier", which is a 64-bit number that uniquely identifies the serialization version of the class; SUID is optional in the repository id.

此格式由RMI-IIOP远程对象[RMI-IIOP]使用。“ClassName”是类的完全限定名(例如,“java.lang.String”)。“HashCode”是对象的哈希代码(即通过调用“HashCode()”方法获得的哈希代码)。“SUID”是“流唯一标识符”,它是唯一标识类的序列化版本的64位数字;SUID在存储库id中是可选的。

c. DCE-style

c. DCE风格

DCE:UUID

DCE:UUID

This format is used for DCE/CORBA interoperability [CORBA-DCE]. "UUID" represents a DCE UUID.

此格式用于DCE/CORBA互操作性[CORBA-DCE]。“UUID”表示DCE UUID。

d. "local"

d. “本地”

This format is defined by the local Object Request Broker (ORB).

此格式由本地对象请求代理(ORB)定义。

The corbaRepositoryId attribute is a multivalued attribute; each value records a single repository id of an interface implemented by the CORBA object. This attribute need not contain a complete list of the interfaces implemented by the CORBA object.

corbaRepositoryId属性是一个多值属性;每个值记录由CORBA对象实现的接口的单个存储库id。该属性不需要包含CORBA对象实现的接口的完整列表。

This attribute's syntax is 'Directory String' and its case is significant. The values of this attribute are encoded using UTF-8. Some values may require translation from their native representation in order to be correctly encoded using UTF-8.

此属性的语法为“目录字符串”,其大小写意义重大。此属性的值使用UTF-8编码。为了使用UTF-8正确编码,某些值可能需要从其本机表示形式进行转换。

( 1.3.6.1.4.1.42.2.27.4.1.15 NAME 'corbaRepositoryId' DESC 'Repository ids of interfaces implemented by a CORBA object' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

(1.3.6.1.4.1.42.2.27.4.1.15由CORBA对象“EQUALITY caseExactMatch语法1.3.6.1.4.1.1466.115.121.1.15实现的接口的名称“corbaRepositoryId”DESC“存储库ID”)

4. Object Class Definitions
4. 对象类定义

The following object classes are defined in this document:

本文档中定义了以下对象类:

corbaContainer corbaObject corbaObjectReference

CORBA容器corbaObject corbaObject引用

4.1 corbaContainer
4.1 CORBA容器

This structural object class represents a container for a CORBA object.

此结构对象类表示CORBA对象的容器。

( 1.3.6.1.4.1.42.2.27.4.2.10 NAME 'corbaContainer' DESC 'Container for a CORBA object' SUP top STRUCTURAL MUST ( cn ) )

(1.3.6.1.4.1.42.2.27.4.2.10用于CORBA对象“SUP-top-STRUCTURAL MUST(cn)”的名称“CORBA容器”DESC”容器)

4.2 corbaObject
4.2 科尔巴对象

This abstract object class is the root class for representing a CORBA object.

这个抽象对象类是表示CORBA对象的根类。

( 1.3.6.1.4.1.42.2.27.4.2.9 NAME 'corbaObject' DESC 'CORBA object representation' SUP top ABSTRACT MAY ( corbaRepositoryId $ description ) )

(1.3.6.1.4.1.42.2.27.4.2.9名称“CORBA对象”描述“CORBA对象表示”支持顶级抽象可能(corbaRepositoryId$说明))

4.3 corbaObjectReference
4.3 corbaObjectReference

This auxiliary object class represents a CORBA object reference. It must be mixed in with a structural object class.

这个辅助对象类表示CORBA对象引用。它必须与结构对象类混合。

( 1.3.6.1.4.1.42.2.27.4.2.11 NAME 'corbaObjectReference' DESC 'CORBA interoperable object reference' SUP corbaObject AUXILIARY MUST ( corbaIor ) )

(1.3.6.1.4.1.42.2.27.4.2.11名称“corbaObjectReference”描述“CORBA可互操作对象引用”辅助corbaIor)

5. Security Considerations
5. 安全考虑

Obtaining a reference to an object and storing it in the directory may make a handle to the object available to a wider audience. This may have security implications.

获取对对象的引用并将其存储在目录中可能会使对象的句柄可供更广泛的受众使用。这可能涉及安全问题。

6. Acknowledgements
6. 致谢

We would like to thank Sanjeev Krishnan of Sun Microsystems, Simon Nash of IBM, and Jeffrey Spirn of Oracle for their comments and suggestions.

我们要感谢Sun Microsystems的Sanjeev Krishnan、IBM的Simon Nash和Oracle的Jeffrey Spirn,感谢他们的评论和建议。

7. References
7. 工具书类

[CORBA] The Object Management Group, "Common Object Request Broker Architecture Specification 2.2", http://www.omg.org

[CORBA]对象管理组,“公共对象请求代理体系结构规范2.2”,http://www.omg.org

   [CORBA-DCE] Distributed Systems Technology Center and Digital
               Equipment Corporation, "DCE/CORBA Interworking
               Specification", May 1998.
               http://www.omg.org/library/schedule/
               DCE_CORBA_Interworking_RFP.html
        
   [CORBA-DCE] Distributed Systems Technology Center and Digital
               Equipment Corporation, "DCE/CORBA Interworking
               Specification", May 1998.
               http://www.omg.org/library/schedule/
               DCE_CORBA_Interworking_RFP.html
        

[LDAPv3] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Access Protocol (v3)", RFC 2251, December 1997.

[LDAPv3]Wahl,M.,Howes,T.和S.Kille,“轻量级目录访问协议(v3)”,RFC 2251,1997年12月。

   [RMI-IIOP]  IBM and Java Software, Sun Microsystems, Inc., "RMI over
               IIOP", June 1999.  http://java.sun.com/products/rmi-
               iiop/index.html
        
   [RMI-IIOP]  IBM and Java Software, Sun Microsystems, Inc., "RMI over
               IIOP", June 1999.  http://java.sun.com/products/rmi-
               iiop/index.html
        

[v3Schema] Wahl, M., "A Summary of the X.500(96) User Schema for use with LDAPv3", RFC 2256, December 1997.

[v3Schema]Wahl,M.“与LDAPv3一起使用的X.500(96)用户模式摘要”,RFC 2256,1997年12月。

8. Authors' Addresses
8. 作者地址

Vincent Ryan Sun Microsystems, Inc. Mail Stop EDUB03 901 San Antonio Road Palo Alto, CA 94303 USA

Vincent Ryan Sun Microsystems,Inc.美国加利福尼亚州帕洛阿尔托市圣安东尼奥路901号邮政站EDUB03 94303

   Phone: +353 1 819 9151
   EMail: vincent.ryan@ireland.sun.com
        
   Phone: +353 1 819 9151
   EMail: vincent.ryan@ireland.sun.com
        

Rosanna Lee Sun Microsystems, Inc. Mail Stop UCUP02-206 901 San Antonio Road Palo Alto, CA 94303 USA

Rosanna Lee Sun Microsystems,Inc.美国加利福尼亚州帕洛阿尔托市圣安东尼奥路901号邮政站UCUP02-206 94303

   Phone: +1 408 863 3221
   EMail: rosanna.lee@eng.sun.com
        
   Phone: +1 408 863 3221
   EMail: rosanna.lee@eng.sun.com
        

Scott Seligman Sun Microsystems, Inc. Mail Stop UCUP02-209 901 San Antonio Road Palo Alto, CA 94303 USA

Scott Seligman Sun Microsystems,Inc.美国加利福尼亚州帕洛阿尔托市圣安东尼奥路901号邮政站UCUP02-209邮编94303

   Phone: +1 408 863 3222
   EMail: scott.seligman@eng.sun.com
        
   Phone: +1 408 863 3222
   EMail: scott.seligman@eng.sun.com
        
9. Appendix - LDAP Schema
9. 附录-LDAP模式

-- Attribute types --

--属性类型--

( 1.3.6.1.4.1.42.2.27.4.1.14 NAME 'corbaIor' DESC 'Stringified interoperable object reference of a CORBA object' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

(1.3.6.1.4.1.42.2.27.4.1.14名称'corbaIor'DESC'CORBA对象的字符串化互操作对象引用'EQUALITY CaseIgnoreA5Match语法1.3.6.1.4.1.1466.115.121.1.26单值)

( 1.3.6.1.4.1.42.2.27.4.1.15 NAME 'corbaRepositoryId' DESC 'Repository ids of interfaces implemented by a CORBA object' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

(1.3.6.1.4.1.42.2.27.4.1.15由CORBA对象“EQUALITY caseExactMatch语法1.3.6.1.4.1.1466.115.121.1.15实现的接口的名称“corbaRepositoryId”DESC“存储库ID”)

-- from RFC-2256 --

--来自RFC-2256--

( 2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )

(2.5.4.13名称'description'相等caseIgnoreMatch SUBSTR caseIgnoreMatch语法1.3.6.1.4.1.1466.115.121.1.15{1024})

-- Object classes --

--对象类--

( 1.3.6.1.4.1.42.2.27.4.2.9 NAME 'corbaObject' DESC 'CORBA object representation' SUP top ABSTRACT MAY ( corbaRepositoryId $ description ) )

(1.3.6.1.4.1.42.2.27.4.2.9名称“CORBA对象”描述“CORBA对象表示”支持顶级抽象可能(corbaRepositoryId$说明))

( 1.3.6.1.4.1.42.2.27.4.2.10 NAME 'corbaContainer' DESC 'Container for a CORBA object' SUP top STRUCTURAL MUST ( cn ) )

(1.3.6.1.4.1.42.2.27.4.2.10用于CORBA对象“SUP-top-STRUCTURAL MUST(cn)”的名称“CORBA容器”DESC”容器)

( 1.3.6.1.4.1.42.2.27.4.2.11 NAME 'corbaObjectReference' DESC 'CORBA interoperable object reference' SUP corbaObject AUXILIARY MUST ( corbaIor ) )

(1.3.6.1.4.1.42.2.27.4.2.11名称“corbaObjectReference”描述“CORBA可互操作对象引用”辅助corbaIor)

-- Matching rule from ISO X.520 --

--ISO X.520中的匹配规则--

( 2.5.13.5 NAME 'caseExactMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

(2.5.13.5名称“caseExactMatch”语法1.3.6.1.4.1.1466.115.121.1.15)

10. Full Copyright Statement
10. 完整版权声明

Copyright (C) The Internet Society (1999). All Rights Reserved.

版权所有(C)互联网协会(1999年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。