轻型目录存取协议 LDAP目录中JAVATM对象的表征模式

【轻型目录存取协议 LDAP目录中JAVATM对象的表征模式】本备忘录状态
ThismemoprovidesinformationfortheInternetcommunity.Itdoes
notspecifyanInternetstandardofanykind.Distributionofthis
memoisunlimited.
版权声明
Copyright(C)TheInternetSociety(1999).AllRightsReserved.
摘要
本文档定义Java对象在LDAP目录[LDAPv3]中的表现模式 。它定义了模式基本元
素来表征一个JAVA序列对象[Serial],一个JAVA整理过的对象[RMI],一个JAVA远程对
象[RMI],一个JNDI参考[JNDI] 。
1.绪论
本文假定读者已经具备一定的JAVA编程语言知识[JAVA] 。简短起见,在整个文档中,
我们用术语“JavaObject”来代替“objectintheJavaprogramminglanguage” 。
一般地,LDAP目录被用来存储数据 。用户与程序员把目录看成是具有一系列属性的目
录层次 。你从目录中查寻一条记录并且抽取你所感爱好的一个或多个属性 。例如:你可
以从目录中查寻某人的电话号码 。或者,你可以在目录中搜索具体非凡属性的记录 。比
如,你可以在目录中查找所有姓氏为Smith的人员 。
对于用JAVA编写的应用程序来说,一种数据典型地为JAVA对象自己共享 。对那些应
用来说,它有意义于使能够使用目录作为JAVA对象库 。该目录提供中心治理的,可复
制的,通过网络分布式地为JAVA应用所使用的服务 。
比如,一个应用服务器可能用目录来“注册”对象以表征它所治理的服务,以至于一个
客户能随后查找目录来定位所需服务 。
本文的目的是来定义应用程序从目录中存储与读取JAVA对象的公共方法 。使用这种公
共模式,任何需要读取或存储目录中的JAVA对象的JAVA应用程序都能使用一种能公
共操作的方法 。
2.JAVA对象陈述
本文定义模式基本元素来表征三种JAVA对象的类型:JAVA序列化的对象,JAVA整理
过的对象,和JNDI参考 。JAVA远程对象可作为JAVA整理过的对象或JNDI参考保存 。
2.1公共陈述
JAVA对象用对象类javaObject存储于LDAP目录中 。它是其它JAVA对象相关类驱动:
javaSerializedObject,javaMarshalledObject,和javaNamingReference的基础类 。javaObject
是个抽象对象类,也就说一个javaObject不能自己存在于目录中;只有它的辅助性的或
结构上的子类可以存在于目录中 。
对象类javaContainer表征一个目录记录来保存一个JAVA对象 。它是个结构上的对象类 。
在实例中javaObject的子类与其它结构化的对象类混合在一起,javaContainer不是必需
的 。
对象类javaObject与javaContainer的定义在第4节中 。
javaObject类有一个必选的属性(javaClassName)和四个可选的属性(javaClassNames,
javaCodeBase,javaDoc,description) 。javaClassName是个单值属性,用于保存对象完
整的JAVA类名(如,java.lang.String) 。这可能对象的源类名,但并不必须是;在某此
场合作为超类或接口可能是最适当的 。该属性用来保存对象的区分类的名字,说得更精
确此,类或接口应该被区分清楚 。
javaClassNames是个多值的属性以用来保存对象的完整的JAVA类和接口的对象名字
(比如,java.lang.Byte) 。如所有多值属性那样,javaClassNames属性的值是无序的,
并且没有一个值比其它值更具可辨性 。该属性用来保存对象对类和接口名字与其父类或
接口,而且值不是必须完成的 。假如javaClassNames属性是存在的,它应该包括
javaClassName的值 。
例如,假设一个javaClassName属性值为java.io.FilePermission,javaClassNames属性值
为{"java.security.Permission","java.io.FilePermission","java.security.Guard",

推荐阅读