分类: 系统运维
2008-03-25 09:37:09
摘要
CORBA[CORBA]即“公共对象请求代理体系”(CommonObjectRequestBroker
Architecture),是由对象组集团(OMG)所定义。该文档为LDAP目录中的CORBA
对象参考方案[LDAPv3]进行定义。
1、绪论
该文档假设读者已经对CORBA有了一般性的理解。
一般地,LDAP目录被用来存储数据。用户与程序员把目录看成是具有一系列属性的目
录层次。你从目录中查寻一条记录并且抽取你所感兴趣的一个或多个属性。例如:你可
以从目录中查寻某人的电话号码。或者,你可以在目录中搜索具体特殊属性的记录。比
如,你可以在目录中查找所有姓氏为Smith的人员。
CORBA应用需要访问CORBA对象。一般地,CORBA应用使用COS名字服务来存储
和读取CORBA对象参考。在有目录的环境下,CORBA应用应该能够把目录作为CORBA
对象参考的库来使用。目录提供核心,并且是可复制的,通过网络服务于分布式的
CORBA应用。
比如,一个应用服务器可能用目录来“注册”CORBA对象以执行它所的服务,所
以一个客户能随后查找目录来定位所需服务。
本文的目的是来定义应用程序从目录中存储与读取CORBA对象参考的公共方法。使用
这种公共方案,任何需要读取或存储目录中的CORBA对象参考的CORBA应用都能使
用一种能公共操作的方法。
注意本方案是为存储CORBA“对象参考”而定义的,不是一般情形下的CORBA对象。
可能还存在其它没有被本方案代替的在LDAP目录中保存CORBA对象的方法。
2、CORBA对象参考陈述
本文定义方案基础来描述LDAP目录中的一个CORBA对象参考。拥有对象的一个参考
的应用可以调用该对象有调用。这样的参考被称为“可公共操作的对象参考”或简称IOR
(InteroperableObjectReference)。依据一般的Inter-ORB,使用IOR访问CORBA
对象对于应用来说是透明地完成的。
一个CORBA对象参考是由corbaObjectReference对象类在目录中来扮演。它是个结构上
的对象类,当扮演一个对象参考时,corbaObjectReference对象类也应该是存在于记录中
的。当一个corbaObjet的子类(如corbaObjectReference)与其它结构上的对象类混合在
一起时,corbaContainer不是必需的。
关于对象类corbaOject,corbaObjectReference,和corbaContainer的定义在第4节中。
corbaObject类有两个可选的属性:corbaRepositoryId与description。corbaRepositoryId是
用来保存一个CORBA对象实现接口的repositoryid的多值属性。
corbaObjectReference类有一个固有属性:corbaIor。corbaIor是用来存储对象的IOR。
corbaIor与corbaRepositoryId在第3节中定义;描述在[v3Schema]中定义。
3、属性类型定义
以下属性类型在本文中定义:
corbaIor
corbaRepositoryId
3.1corbaIor
此属性保存一个CORBA对象的可公共操作的对象参考(IOR)的字符串类型陈述。IOR
是一个对于包含有定位对象必需信息的对象来说是不透明的操作。
此属性的语法是'IA5String'并且是大小写无关的。
(1.3.6.1.4.1.42.2.27.4.1.14
NAME'corbaIor'
DESC'StringifiedinteroperableobjectreferenceofaCORBAobject'
EQUALITYcaseIgnoreIA5Match
SYNTAX1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE
)
3.2corbaRepositoryId
每一个CORBA接口都有个唯一的“repositoryid”(也叫作“typeid”)用来确定接口。
一个CORBA对象有一个或多个repositoryid,每一个对应那个它实现的接口。
repositoryid的格式可是以任意字符串,然而OMG指定了四个标准的格式:
a. IDL-style
IDL:Prefix/ModuleName/InterfaceName:VersionNumber
例如,“NamingContext”以OMGCOS命名模式的repositoryid即为:
“IDL:omg.org/CosNaming/NamingContext:1.0”。
b. RMI-style
RMI:ClassName:HashCode[:SUID]
该格式为RMI-IIOP远程对象[RMI-IIOP]所使用。“ClassName”是完整的类名(如
java.lang.String)。“HashCode”是该对象的HASH编码(简而言之,是由调用
“hashCode()”方法所得的)。“SUID”即StreamUniqueIdentifier,它是个64们数
字以唯一地识别类的连续性版本;SUID是repositoryid可选的项。
c. DCE-style
DCE:UUID
该格式用于DCE/CORBA互用性[CORBA-DCE]。UUID描述一个DCEUUID。
d. "local"
该格式由本地对象请求代理(ORB)定义。
此属性的语法是'DirecotryString',并且大小写无关。其值用UTF-8方式编码。有些值
可能需要转换自他们的本地化陈述以正确地用UTF-8方式编码。
(1.3.6.1.4.1.42.2.27.4.1.15
NAME'corbaRepositoryId'
DESC'RepositoryidsofinterfacesimplementedbyaCORBAobject'
EQUALITYcaseExactMatch
SYNTAX1.3.6.1.4.1.1466.115.121.1.15
)
4、对象类定义
以下对象类在文中定义:
corbaContainer
corbaObject
corbaObjectReference
4.1corbaContainer
该结构上的对象类描述一种CORBA对象的容器。
(1.3.6.1.4.1.42.2.27.4.2.10
NAME'corbaContainer'
DESC'ContainerforaCORBAobject'
SUPtop
STRUCTURAL
MUST(cn)
)
4.2corbaObject
该抽象对象类是描述一个CORBA对象的根类。
(1.3.6.1.4.1.42.2.27.4.2.9
NAME'corbaObject'
DESC'CORBAobjectrepresentation'
SUPtop
ABSTRACT
MAY(corbaRepositoryId$description)
)
4.3corbaObjectReference
该辅助对象类描述一个CORBA对象参考。它必须与一个结构上的对象类混合在一起。
(1.3.6.1.4.1.42.2.27.4.2.11
NAME'corbaObjectReference'
DESC'CORBAinteroperableobjectreference'
SUPcorbaObject
AUXILIARY
MUST(corbaIor)
)
5、安全考虑
获得一个对象的参考并保存到目录中可能会导致该对象在大范围内是可用的。这里可能
有安全方面的牵连。
6、鸣谢
我们要感谢SunMicorsystems的SanjeevKrishnan,IBM的SimonNash,和Oracle的Jeffrey
Spirn,感谢他们的意见和建议。
7、参考
[CORBA]TheObjectManagementGroup,"CommonObjectRequest
BrokerArchitectureSpecification2.2",
[CORBA-DCE]DistributedSystemsTechnologyCenterandDigital
EquipmentCorporation,"DCE/CORBAInterworking
Specification",May1998.
/library/schedule/
DCE_CORBA_Interworking_RFP.html
[LDAPv3]Wahl,M.,Howes,T.andS.Kille,"LightweightDirectory
AccessProtocol(v3)",2251,December1997.
[RMI-IIOP]IBMandJavaSoftware,SunMicrosystems,Inc.,"RMIover
IIOP",June1999.
iiop/index.html
[v3Schema]Wahl,M.,"ASummaryoftheX.500(96)UserSchemaforuse
withLDAPv3",2256,December1997.
8、作者地址
VincentRyan
SunMicrosystems,Inc.
MailStopEDUB03
901SanAntonioRoad
PaloAlto,CA94303
USA
Phone:+35318199151
EMail:vincent.ryan@ireland.sun.com
RosannaLee
SunMicrosystems,Inc.
MailStopUCUP02-206
901SanAntonioRoad
PaloAlto,CA94303
USA
Phone:+14088633221
EMail:rosanna.lee@eng.sun.com
ScottSeligman
SunMicrosystems,Inc.
MailStopUCUP02-209
901SanAntonioRoad
PaloAlto,CA94303
USA
Phone:+14088633222
EMail:scott.seligman@eng.sun.com
9、附录-LDAP方案
--属性类型--
(1.3.6.1.4.1.42.2.27.4.1.14
NAME'corbaIor'
DESC'StringifiedinteroperableobjectreferenceofaCORBAobject'
EQUALITYcaseIgnoreIA5Match
SYNTAX1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE
)
(1.3.6.1.4.1.42.2.27.4.1.15
NAME'corbaRepositoryId'
DESC'RepositoryidsofinterfacesimplementedbyaCORBAobject'
EQUALITYcaseExactMatch
SYNTAX1.3.6.1.4.1.1466.115.121.1.15
)
--来自于-2256--
(2.5.4.13
NAME'description'
EQUALITYcaseIgnoreMatch
SUBSTRcaseIgnoreSubstringsMatch
SYNTAX1.3.6.1.4.1.1466.115.121.1.15{1024}
)
--对象类--
(1.3.6.1.4.1.42.2.27.4.2.9
NAME'corbaObject'
DESC'CORBAobjectrepresentation'
SUPtop
ABSTRACT
MAY(corbaRepositoryId$description)
)
(1.3.6.1.4.1.42.2.27.4.2.10
NAME'corbaContainer'
DESC'ContainerforaCORBAobject'
SUPtop
STRUCTURAL
MUST(cn)
)
(1.3.6.1.4.1.42.2.27.4.2.11
NAME'corbaObjectReference'
DESC'CORBAinteroperableobjectreference'
SUPcorbaObject
AUXILIARY
MUST(corbaIor)
)
--自ISOX.520的匹配规则--
(2.5.13.5
NAME'caseExactMatch'
SYNTAX1.3.6.1.4.1.1466.115.121.1.15
)
10.完整的版权声明
Copyright(C)TheInternetSociety(1999).AllRightsReserved.
Thisdocumentandtranslationsofitmaybecopiedandfurnishedto
others,andderivativeworksthatcommentonorotherwiseexplainit
orassistinitsimplementationmaybeprepared,copied,published
anddistributed,inwholeorinpart,withoutrestrictionofany
kind,providedthattheabovecopyrightnoticeandthisparagraphare
includedonallsuchcopiesandderivativeworks.However,this
documentitselfmaynotbemodifiedinanyway,suchasbyremoving
thecopyrightnoticeorreferencestotheInternetSocietyorother
Internetorganizations,exceptasneededforthepurposeof
developingInternetstandardsinwhichcasetheproceduresfor
copyrightsdefinedintheInternetStandardsprocessmustbe
followed,orasrequiredtotranslateitintolanguagesotherthan
English.
Thelimitedpermissionsgrantedaboveareperpetualandwillnotbe
revokedbytheInternetSocietyoritssuccessorsorassigns.
Thisdocumentandtheinformationcontainedhereinisprovidedonan
"ASIS"basisandTHEINTERNETSOCIETYANDTHEINTERNETENGINEERING
TASKFORCEDISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,INCLUDING
BUTNOTLIMITEDTOANYWARRANTYTHATTHEUSEOFTHEINFORMATION
HEREINWILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIESOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.