基于LDAP的面向对象目录访问模型及其实现

来源 :计算机时代 | 被引量 : 0次 | 上传用户:gfdsa008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:LDAP提供了标准的接口用于目录数据的访问,但是这类接口针对目录信息树中的条目进行操作,属于较低层次的接口;同时,由于业务实体和目录条目之间不完全是一对一的关系,基于该标准接口开发的软件很难满足非功能性需求。为此,文章阐述了面向对象目录访问操作封装的必要性,并提出了针对目录服务的LDAP目录访问模型及其实现技术。
  关键词:LDAP;目录访问;目录信息树;对象/条目映射;类型转换
  
  0 引言
  
  构建一个典型的企业应用需要数据库和目录服务的合作以共同承担信息资源的存储。LDAP目录服务适合存储相对静态的,存在大量读操作的信息资源。随着网络应用的普及,它的作用日益重要,如它既是数字化校园中统一认证的重要支撑体,也是数字化校园中基础信息的主要存储体。
  很多利用LDAP目录服务的网络应用直接在LDAP接口上开发。这样开发出来的应用其兼容性差;其次,开发效率低,开发人员必须同时兼顾业务逻辑和LDAP的知识;最后,应用代码和目录服务的耦合度高,不利于底层目录服务产品的更换。因此,有必要寻找一种新的基于LDAP的应用模式。
  
  1 基于LDAP的面向对象目录访问模型
  
  在典型的三层网络应用软件系统中,业务服务层是应用软件系统的核心部分,它可以细分为四个子层,分别是业务接口子层、业务处理子层、数据实体子层和数据访问子层。前面两层因为跟业务紧密结合,不具有可抽象性。而数据实体子层和数据访问子层的封装是模型需要解决的主要问题。
  本文给出的模型由接口层和目录访问层组成。接口层是应用系统与模型的交互界面,抽象目录访问操作是应用系统业务实体的父类,业务实体的具体访问操作全部委托给下面的目录访问层。目录访问层即数据访问子层实现了许多具体目录访问操作,如对象/条目映射(O/E映射)、数据类型转换等等,同时封装了底层的LDAP目录服务存储机制,如维护与LDAP目录服务的连接、对LDAP目录服务的访问等等。
  
  1.1 接口层
  接口层提供了一套面向对象模型的抽象目录访问操作集合,包括简单地创建对象、读取对象、更新对象、删除对象,以及条件或关联的多对象实例操作。
  目录访问对象只提供目录访问操作接口,其真正操作被委托给下层即目录访问层的目录访问管理器。这种处理模式结合了对象层和中间人两种模式。在对象层模式中,每个业务实体对象继承了@抽象的PersistentObject类,可执行必要的CRUD操作。这种模式下,在每个业务对象类中都要写一些数据服务层规范的访问代码,维护比较困难,但是这种模式易于实现。在中间人模式中,中间人可以从数据服务层中读取业务实体对象或将对象写入数据服务层,中间人必须知道每个业务实体对象的格式,依据数据服务层提供的访问规范生成语句去读写。这种模式将数据服务层访问代码和业务实体对象类分离开来,是一种最具伸缩性的解决方案,但是需要很多基础部件。
  系统中需要持久到目录服务的业务对象必须继承于该接口,业务对象的实际存取操作由目录访问层实现。因此,业务对象和目录访问层之间是一种松散的耦合关系。
  
  1.2 目录访问层
  目录访问层从逻辑上由两部分组成:构建时(Build-time)部分和运行时(Run-time)部分。构建时部分解决系统开发时所需要解决的问题。对于本模型,所需要解决的问题就是目录访问对象和目录条目的映射以及它们的属性之间的映射,因此,在构建时需要提供这两类映射信息,它们分别是O/E(对象/条目)映射信息和属性映射信息。
  运行时部分解决系统运行时需要解决的问题,包括对O/E映射和属性映射的解析、抽象目录访问的解析以及数据的存取操作。这部分主要由目录访问管理器、O/E映射管理器、属性映射管理器、数据类型管理器、目录访问描述器和运行时管理器组成。
  目录访问管理器是本模型的总管,它负责接收目录访问对象所请求的目录访问操作,从O/E映射管理器和属性映射管理器中获取目录访问对象的映射信息,对目录访问操作进行解析,调用目录访问描述器将面向对象的目录访问操作映射到目录服务层中可用的目录访问操作,最后将目录访问操作委派给运行时管理器完成。
  O/E映射管理器负责目录访问对象与目录信息树中条目的映射管理。在系统启动时,该管理器读取O/E映射配置信息,在内存中保存配置信息的副本。当目录访问管理器向其发送请求时,将配置信息提供给目录访问管理器。
  属性映射管理器负责目录访问对象的属性与目录信息树中条目的属性之间的映射管理。在系统启动时,该管理器读取属性映射配置信息,在内存中保存配置信息的副本。当目录访问管理器向其发送请求时,将配置信息提供给目录访问管理器。
  数据类型管理器负责目录访问对象中的数据类型与目录服务层中的数据类型之间的映射管理。由于目录访问对象所使用的数据类型与条目所使用的数据类型并不完全相同,因此有必要进行映射以满足目录访问对象和条目的各种需要。该管理器服务于属性映射管理器。
  目录访问描述器它将面向对象的目录访问操作映射为目录服务层中相应的目录访问操作。面向对象的目录访问操作与目录服务层的目录访问操作并不完全相同,如一个面向对象的目录访问操作对应着目录服务层的一组相关操作,因此,需要进行这样的映射。该目录访问描述器服务于目录访问管理器。
  运行时管理器面向对象的目录访问操作最终要转换为目录访问层能接受的操作才能使业务对象得到持久化,运行时管理器就是将上面转换后的操作真正地送给目录服务层进行运算。同时,负责对象标识管理和目录连接管理等运行时环境的管理。出于效率的考虑,在运行时管理器中可以进行必要的优化,如设置连接池等等。
  
  2 关键技术
  
  2.1 数据类型转换
  LDAP的属性类型和Java的数据类型之间存在着一定的对应关系,LDAP中给定的各种语法类型都对应于Java语言中的String类型。当将对象数据模型中的值存到LDAP目录服务中时,需要将Java语言中定义的数据类型转换为String类型;反之,当LDAP目录服务中的数据存放到对象中时,需要将String类型转换为对象中原来定义的类型。因此,需要一个类型转换器来完成这些工作。
  类型转换器需要获取数据的类型配置信息,然后根据这些配置信息将数据转换为String类型,反之亦然。我们选用XML描述数据的类型配置信息,将数据类型分成三类:简单数据类型、复杂数据类型和数组。具体的类型描述规范。
  
  2.2 O/E映射
  对象模型向LDAP信息模型转换的基础是对象映射为目录条目,对象的属性映射为条目的属性。为了实现模型转换,O/E映射需要两类信息,即对象类元信息和对象域元信息。对象类元信息存放实体类上下文信息。对象域元信息描述了对象类的属性配置信息:如果是基本类型则可以对应为相应目录服务的属性(但并不一定是一一对应);如果是实体对象,则需要在对象域元信息中填写相应信息,如对象之间的关系等等。
  
  2.3 表达能力的设计
  目录访问查询操作分为简单查询、复杂查询和助手类操作。简单查询实现对单个对象的CRUD操作,复杂查询则处理批量对象的操作,助手类操作包括用户认证、新增用户等LDAP常规操作。
  简单查询的实现可以采用两种方式:第一种是将操作赋予对象本身,这种处理方式符合面向对象的习惯;第二种是提供一个专门处理目录访问操作的工具类,作为目录访问操作的代理,执行用户的对象式查询语句。具体采用哪种方式可以有中间件设计人员确定。
  
  本文采用第一种方式实现,即目录访问操作作为对象的行为来实现目录的访问,具体定义示例如下:
  /*
  *判断存储空间是否存在指定实体Bean实例
  *@param entity实体Bean实例,不能为空,否则抛出异常
  *@throws如果实例的主键属性未设置则抛出异常
  */
  public boolean entityExists(Entity entity)throws XDOException;
  
  3 结束语
  
  本文从普遍性出发,给出了解决通用目录访问所涉及到的技术内容。作为通用目录访问产品的开发者,也可以将文中所给模型作为参考模型,采用熟悉的语言和环境实现。本模型及其中间件被用于浙江大学数字化校园应用中,取得了良好的效果。
其他文献
摘 要:单点登录(SSO)技术被广泛应用在各个领域的软件系统中,使得用戶只经过一次身份认证便可以访问多处被授权的资源。文章首先介绍了单点登录的概念及解决方案,然后研究了Sun ONE单点登录的原理,最后分析了使用JAAS实现单点登录的过程。  关键词:Sun ONE;单点登录;JAAS
期刊
摘要:数据流具有连续、实时、无限性,同时数据流也是不可预测的,且具有不可重现性,利用传统的数据库管理技术显然不能解决数据流的问题,因此必须进行数据流管理新技术的研究。文章先介绍了数据流管理系统的一般体系结构,然后研究了数据流管理系统TelegraphCQ的开源码,并在此基础上详细阐述了TelegraphcQ的体系结构、数据管理方法和查询处理技术,同时给出了建立TelegraphcQ的详细步骤及使用
期刊
摘要:日志文件分析是系统安全检测的重要内容,同时日志文件也是计算机取证的重要依据。文章设计了第三方的Windows日志取证系统,并讨论了今后的研究方向。  关键词:日志文件;网络取证;审计跟踪;IRP    0 引言    当前网络应用非常广泛,网络涉及了各种各样的信息,由此产生各种攻击事件非常多,有些已经构成网络犯罪。我们除了对攻击进行防范外,还要记录下犯罪现场的信息,得到黑客入侵证据,以便分析
期刊
摘要:针对多数Web系统在用户验证时以明文传输账户信息带来的安全隐患,提出了一种综合使用对称密码体制、非对称密码体制、单向散列算法和一次一密技术来保障用户验证安全的策略。该方法在略微增加计算复杂度的前提下,就能够有效防止用户验证过程遭受窃听、重放等恶意攻击;而对现有Web系统的改进仅涉及新用户注册、用户登录、密码修改等操作,更新便捷。  关键词:混合密码体制;安全;Web;用户验证;加密    0
期刊
摘要:随着图形处理器性能的提高及其可编程特性的发展,图形处理流水线的某些处理阶段和图形算法逐渐从CPU向GPU转移。文章介绍了可编程图形硬件基础,分析了基于GPU的光线跟踪技术的实现原理。设计的6个实验场景所包含的三角形面片数,从2016个到60960个成复杂度递增,在3种不同分辨率下,分别实现GPU和CPU的光线跟踪绘制。对实验结果比较、分析后,得到了GPU加速的光线跟踪技术的特点。  关键词:
期刊
摘要:探讨了利用SQL SERVER 2000数据转换服务(DTS)编程实现数据转换的一般过程,提出通过文本整理、列映射、数据规范化等操作,将原始文件转换为较为规范的中间文件,再利用通用转换过程实现数据转换的思路;并利用DTS的异常处理能力对无法自动转换的情况提供了人工介入的途径,大大提高了转换成功率。  关键词:数据转换服务;抽取;数据库;数据转换    0 引言    现代生活离不开通信,罪犯
期刊
摘要:阐述了基于SOA构架研发的农民健康档案信息系统相关设计要点。这一设计能有效解决健康档案信息系统建设中社区卫生服务信息、新型农村合作医疗信息等医疗卫生信息资源不能综合利用的技术难题,对促进和推广此类系统的开发,提高此类系统的建设水平有积极意义。  关键词:信息系统;SOA架构;农民健康档案;设计    0 引言    2005年8月浙江省全面实施农民健康工程。其中一项内容是为参加新型农村合作医
期刊
摘要:提出了两种把自助复印系统整合到高校一卡通系统中的可选方案,从实时性、整体性、可管理性、通用性和经济性等方面对两种方案进行了分析比较,并且对自助复印系统的账务管理模式进行了探讨。最后,通过实际的实施案例验证了所提出的整合方案的可行性。  关键词:一卡通;自助复印;整合;EPOS    0 引言    随着用户需求的提高,传统的“复印室”式的集中复印已经不能满足需求,自助复印的理念被提了出来,并
期刊
摘要:首先介绍了COM的分类和体系结构,然后在企业应用集成平台中对Java调用COM给出一个解决方案,并深入论述Jacob调用COM实现复杂对象传递的方法,最后在WindOWS平台下对该方案的实现进行了测试和分析。  关键词:COM;自动化调用;Java本地接口;动态链接库    0 引言    目前ERP、CRM、PDM、EAM等系统已经在企业中得到广泛的应用,但它们分散在各业务部门中,由于厂商
期刊
摘要:随着数字化校园进程的快速推进,教学和科研进入了数字信息化管理时代,研究如何利用数字信息化的优势来管理高校后勤具有重要意义。文章设计了基于Web方式的宿舍管理系统,对从新生入学到毕业离校整个过程的宿舍情况进行智能化管理,以减少后勤人员的工作量,提高宿舍利用率。实践表明,系统在减少工作量,提高资源利用率,规范管理等方面具有良好的效果。  关键词:Web开发;智能化宿舍管理;信息管理系统;设计  
期刊