一种基于ldap的快速数据访问方法

文档序号:6604144阅读:153来源:国知局
专利名称:一种基于ldap的快速数据访问方法
技术领域
本发明涉及计算机软件技术领域,是一种得到关于人或者资源的集中、静态数据的快速方式。
背景技术
在数据存储与操作中,Sybase、0racle、Informix或Microsoft的数据库管理系统 (DBMS)是用于处理查询和更新关系型数据库,LDAP服务器也是用来处理查询和更新LDAP 目录的。换句话来说LDAP目录也是一种类型的数据库,它是一种特殊的数据库,但不是关系型数据库。如果需要开发一种提供公共信息查询的系统一般的设计方法可能是采用基于TOB 的数据库设计方式,即前端使用浏览器而后端使用WEB服务器加上关系数据库。1、后端在Windows的典型实现可能是Windows NT+IIS+Acess数据库或者是SQL 服务器,IIS和数据库之间通过ASP技术使用ODBC进行连接,达到通过填写表单查询数据的功能;2、后端在Linux系统的典型实现可能是Linux+Apache+postgresql,Apache和数据库之间通过PHP3提供的函数进行连接。使用上述方法的缺点是后端关系数据库的引入导致系统整体的性能降低和系统的管理比较繁琐,因为需要不断的进行数据类型的验证和事务的完整性的确认;并且前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级。所以、需要一种有效的方法来解决这些问题。

发明内容
目录服务的推出主要是解决上述数据库中存在的问题。目录与关系数据库相似, 是指具有描述性的基于属性的记录集合,但它的数据类型主要是字符型,为了检索的需要添加了 BIN( 二进制数据)、CIS (忽略大小写)、CES (大小写敏感)、TEL(电话型)等语法 (Syntax),而不是关系数据库提供的整数、浮点数、日期、货币等类型,同样也不提供象关系数据库中普遍包含的大量的函数,它主要面向数据的查询服务(查询和修改操作比一般是大于10 1),不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现 All-or-Nothing,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功能。本发明的优势跨平台LDAP最大的优势是可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上,LDAP得到了业界的广泛认可,因为它是hternet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端) 是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对 DBMS的支持,那么通常都要对每一个数据库服务器单独定制。费用及维护不象很多商用的关系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费。大多数的LDAP服务器安装起来很简单,也容易维护和优化。复制技术LDAP服务器可以用"推"或"拉"的方法复制部分或全部数据,例如可以把数据"推"到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。允许使用ACILDAP允许你根据需要使用ACI ( 一般都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。数据结构本发明实现了指定的数据结构的存贮,它包括以下可以用关系数据库实现的结构要求树状组织、条目认证、类型定义、许可树形记录拷贝。1.树状组织无论是)(500还是LDAP都是采用树状方式进行记录。每一个树目录都有一个树根的入口条目,子记录全部是这一根条目的子孙。这是目录与关系数据类型最大的区别(关系数据库的应用结构也可实现树状记录)。因此,把目录看作是更高级的树状数据库也未尝不可,只不过除此外,它不能实现关系存贮的重要功能。2.条目和条目认证LDAP是以条目作为认证的根据。ROOT的权限认证与目录本身无关,但除此外所有条目的认证权限由条目本身的密码进行认证。LDAP可以配置成各种各样不同的父子条目权限继承方式。每一个条目相当于一个单一的平面文本记录,由条目自身或指定的条目认证进行访问控制。因此,LDAP定义的存贮结构等同于一批树状组织的平面数据库,并提供相应的访问控制。条目中的记录以名-值对的形式存在,每一个名值对必须由数据样式schema预定义。因此,LDAP可以看作是以规定的值类型以名值对形式存贮在一系列以树状组织的平面数据库的记录的集合。3.数据样式(schema)数据样式schema是针对不同的应用,由用户指定(设计)类和属性类型预定义, 条目中的类(objectclass)和属性必须在在LDAP服务器启动时载入内存的schema已有定义。因此,AD活动目录中的条目记录就必须符合Active Directory的schema中。如果已提供的schema中的定义不够用,用户可以自行定义新的schema.4.对象类型(objectClass)因为LDAP目录可以定制成存储任何文本或二进制数据,到底存什么要由你自己决定。LDAP目录用对象类型(objectclass)的概念来定义运行哪一类的对象使用什么属性。在几乎所有的LDAP服务器中,你都要根据自己的需要扩展基本的LDAP目录的功能,创建新的对象类型或者扩展现存的对象类型。条目中的记录通过objectclass实现分类,objectClass是一个继承性的类定义, 每一个类定义指定必须具备的属性。如某一条目指定必须符合某个类型,则它必须具备超类所指定的属性。通过objectclass分类,分散的条目中的记录就实际上建立了一个索引结构,为高速的读查询打下了基础。Objectclass也是过滤器的主要查询对象。5.过滤器和语法LDAP是一个查询为主的记录结构,无论是何种查询方式,最终都由过滤器缺点查询的条件。过滤器相当于SQL中的WHERE子句。任何LDAP的类过滤和字符串都必须放在括号内,如(objectclass = *),指列出所有类型的记录(不过分类)。可以使用=,> =,< =, =(约等于)进行比较,如(number <= 100)。合并条件是最怪的,必须把操作符放在两个操作对象的前面而不是中间,单一操作对象用括号括起来。如A与B,不是A&B,而是(&(A)(B));或使用"I"表示;非使用"!"表示。对于" 与",或"或"在操作符后可以跟多个条件表达式,但非后则只参是单个表达式。6.树移植LDAP最重要的特性和要求并不是读性能,而是扩展性。这一特性是通过树移植和树复制实现的。按LDAP的RFC要求,LDAP目录应该可以任意地在不同的目录间连接、合并并实现自动复制,及自动性同步。这意味着用户可以在任一 LDAP中访问条目,而不用管其中某一部分是否复制自全世界另一目录中的记录,同时另一目录中的记录同样在正常运作。这一特性如果在关系数据库中实现,意味着要使用程序化的非规范化预复制。类似于汇总帐目的设计。7. LDIF交换文件LDIF是LDAP约定的记录交换格式,以平面文本的形式存在,是大部分LDAP内容交换的基础,如拷贝、添加、修改等操作,都是基于LDIF文件进行操作。8. JAVA或CORBA对象串行化存储网络高效率的访问加上JAVA的跨平台能力,当把JAVA或CORBA对象串行化后存储到LDAP目录上时,可以产生非同一般的集成效果,实际上,这正是EJB和.NET的网络定位基础技术。使用JAVA或CORBA对象存储时,必须首先让LDAP服务支持该对象定义,也就是说包含 qmail. schema 或 corba. schema。JAVA必须存储在objectclass = javacontainer的条目中,而且必须带有cn属性,这意味着除非该JAVA类专门实现了 DirContext接口,对于大多数JAVA类来说,只能采用DirContext代替Context实现bind的添加操作。取出JAVA类相对要简单得多,只需使用context. IookupO获得该对象的句柄,然后强制造型成所需要的对象就可以了,如Person ρ = (Person) contex. lookup (" cn = elvis, dc = daifu,dc = com");这个句法在EJB的程序中,是经常用到的。使用CORBA的跨语言性质,使用CORBA存储对象比JAVA更加诱人,这意味着所存储的对象可以被任何语言编写的客户端访问。其实,微软的.net说到底也非常简单,无非是把COM对象存储到微软自家的目录ActiveDirectory里面,从而可以在网络范围内使用任何微软平台的语言进行对象访问而已。众所周知,COM就是与CORBA相对的微软规范。使用对象串行化技术,可以把常用对象如某个打印机,某个客户直接存储到LDAP 中,然后快速获取该对象的引用,这样,就比把对象信息存储到关系数据库中,分别取出属性,然后再初始化对象操作的做法,效率要高得多了。这是LDAP目前比普通关系数据库存储要优秀的地方,而对象数据库还不成熟。


图1 基于LDAP快速数据访问的组织图。
权利要求
1. 一种基于LDAP(轻量目录访问协议)的快速数据访问方法,其特征在于,在LDAP中将信息以树状方式组织,在树状信息中的基本数据单元是条目,每个条目均有自己的DN和 RDN0 DN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN。而每个条目由属性构成,属性中存储有属性值;LDAP中存储的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(Object Class),每个Object Class由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。 每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在 LDAP中一个属性类型可以对应多个值。并且、在LDAP中共有四类10种操作查询类操作, 如搜索、比较;更新类操作,如添加条目、删除条目、修改条目、修改条目名;认证类操作,如绑定、解绑定;其它操作,如放弃和扩展操作。
全文摘要
一种基于LDAP的快速数据访问方法,该方法基于LDAP的树状目录存储结构。解决了传统后端关系数据库的引入导致系统整体的性能降低和系统的管理比较繁琐以及前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级等问题。
文档编号G06F17/30GK102279853SQ20101019934
公开日2011年12月14日 申请日期2010年6月12日 优先权日2010年6月12日
发明者陈健华 申请人:陈健华
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1