CN102279853A - 一种基于ldap的快速数据访问方法 - Google Patents

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

Info

Publication number
CN102279853A
CN102279853A CN2010101993418A CN201010199341A CN102279853A CN 102279853 A CN102279853 A CN 102279853A CN 2010101993418 A CN2010101993418 A CN 2010101993418A CN 201010199341 A CN201010199341 A CN 201010199341A CN 102279853 A CN102279853 A CN 102279853A
Authority
CN
China
Prior art keywords
ldap
subclauses
clauses
object class
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010101993418A
Other languages
English (en)
Inventor
陈健华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Highguard Network Technology Co., Ltd.
Original Assignee
陈健华
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 陈健华 filed Critical 陈健华
Priority to CN2010101993418A priority Critical patent/CN102279853A/zh
Publication of CN102279853A publication Critical patent/CN102279853A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于LDAP的快速数据访问方法,该方法基于LDAP的树状目录存储结构。解决了传统后端关系数据库的引入导致系统整体的性能降低和系统的管理比较繁琐以及前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级等问题。

Description

一种基于LDAP的快速数据访问方法
技术领域
本发明涉及计算机软件技术领域,是一种得到关于人或者资源的集中、静态数据的快速方式。 
背景技术
在数据存储与操作中,Sybase、Oracle、Informix或Microsoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,它是一种特殊的数据库,但不是关系型数据库。 
如果需要开发一种提供公共信息查询的系统一般的设计方法可能是采用基于WEB的数据库设计方式,即前端使用浏览器而后端使用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得到了业界的广泛认可,因为它是Internet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。 
费用及维护 
不象很多商用的关系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费。大多数的LDAP服务器安装起来很简单,也容易维护和优化。 
复制技术 
LDAP服务器可以用″推″或″拉″的方法复制部分或全部数据,例如:可以把数据″推″到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。 
允许使用ACI 
LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室 号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。数据结构 
本发明实现了指定的数据结构的存贮,它包括以下可以用关系数据库实现的结构要求:树状组织、条目认证、类型定义、许可树形记录拷贝。 
1.树状组织 
无论是X500还是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));或使用″|″表示;非使用″!″表示。对于″与″,或″或″在操作符后可以跟多个条件表达式,但非后则只参是单个表达式。 
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.lookup()获得该对象的句柄,然后强制造型成所需要的对象就可以了,如: 
Person p=(Person)contex.lookup(″cn=elvis,dc=daifu,dc=com″); 
这个句法在EJB的程序中,是经常用到的。 
使用CORBA的跨语言性质,使用CORBA存储对象比JAVA更加诱人,这意味着所存储的对象可以被任何语言编写的客户端访问。其实,微软的.net说到底也非常简单,无非是把COM对象存储到微软自家的目录ActiveDirectory里面,从而可以在网络范围内使用任何微软平台的语言进行对象访问而已。众所周知,COM就是与CORBA相对的微软规范。 
使用对象串行化技术,可以把常用对象如某个打印机,某个客户直接存储到LDAP中,然后快速获取该对象的引用,这样,就比把对象信息存储到关系数据库中,分别取出属性,然后再初始化对象操作的做法,效率要高得多了。这是LDAP目前比普通关系数据库存储要优秀的地方,而对象数据库还不成熟。 
附图说明:
图1:基于LDAP快速数据访问的组织图 。

Claims (1)

1.一种基于LDAP(轻量目录访问协议)的快速数据访问方法,其特征在于,在LDAP中将信息以树状方式组织,在树状信息中的基本数据单元是条目,每个条目均有自己的DN和RDN。DN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN。而每个条目由属性构成,属性中存储有属性值;LDAP中存储的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(Object Class),每个Object Class由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。并且、在LDAP中共有四类10种操作:查询类操作,如搜索、比较;更新类操作,如添加条目、删除条目、修改条目、修改条目名;认证类操作,如绑定、解绑定;其它操作,如放弃和扩展操作。
CN2010101993418A 2010-06-12 2010-06-12 一种基于ldap的快速数据访问方法 Pending CN102279853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101993418A CN102279853A (zh) 2010-06-12 2010-06-12 一种基于ldap的快速数据访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101993418A CN102279853A (zh) 2010-06-12 2010-06-12 一种基于ldap的快速数据访问方法

Publications (1)

Publication Number Publication Date
CN102279853A true CN102279853A (zh) 2011-12-14

Family

ID=45105307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101993418A Pending CN102279853A (zh) 2010-06-12 2010-06-12 一种基于ldap的快速数据访问方法

Country Status (1)

Country Link
CN (1) CN102279853A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243552A (zh) * 2014-08-19 2014-12-24 天津南大通用数据技术股份有限公司 基于ldapv3协议的快速统计目录子树条目数的方法
CN104516981A (zh) * 2014-12-31 2015-04-15 上海格尔软件股份有限公司 一种不受数量限制的ldap匿名查询方法
CN109344159A (zh) * 2018-10-15 2019-02-15 北京天融信网络安全技术有限公司 用于ldap的查找方法、装置、电子设备及存储介质
CN109783067A (zh) * 2018-11-30 2019-05-21 复旦大学 基于本体CallCenter平台的智能知识整合与检索系统和方法
CN110012031A (zh) * 2019-04-26 2019-07-12 中国电子科技集团公司第二十九研究所 数据报文通用自动解析方法和存储方法
CN111367550A (zh) * 2020-03-02 2020-07-03 深圳前海达闼云端智能科技有限公司 物联网管理系统、方法和设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243552A (zh) * 2014-08-19 2014-12-24 天津南大通用数据技术股份有限公司 基于ldapv3协议的快速统计目录子树条目数的方法
CN104243552B (zh) * 2014-08-19 2017-09-15 天津南大通用数据技术股份有限公司 基于ldapv3协议的快速统计目录子树条目数的方法
CN104516981A (zh) * 2014-12-31 2015-04-15 上海格尔软件股份有限公司 一种不受数量限制的ldap匿名查询方法
CN104516981B (zh) * 2014-12-31 2018-04-13 上海格尔软件股份有限公司 一种不受数量限制的ldap匿名查询方法
CN109344159A (zh) * 2018-10-15 2019-02-15 北京天融信网络安全技术有限公司 用于ldap的查找方法、装置、电子设备及存储介质
CN109344159B (zh) * 2018-10-15 2022-03-11 北京天融信网络安全技术有限公司 用于ldap的查找方法、装置、电子设备及存储介质
CN109783067A (zh) * 2018-11-30 2019-05-21 复旦大学 基于本体CallCenter平台的智能知识整合与检索系统和方法
CN110012031A (zh) * 2019-04-26 2019-07-12 中国电子科技集团公司第二十九研究所 数据报文通用自动解析方法和存储方法
CN111367550A (zh) * 2020-03-02 2020-07-03 深圳前海达闼云端智能科技有限公司 物联网管理系统、方法和设备

Similar Documents

Publication Publication Date Title
RU2421798C2 (ru) Модель данных для объектно-реляционных данных
JP6111394B2 (ja) 電子メッセージキャンペーンの様相へのアクセスを制御するためのシステムおよび方法
US7853961B2 (en) Platform for data services across disparate application frameworks
US7487191B2 (en) Method and system for model-based replication of data
JP5255077B2 (ja) マルチテナント・データベース・システムにおけるカスタム・エンティティおよびフィールド
US7953734B2 (en) System and method for providing SPI extensions for content management system
US8392464B2 (en) Easily queriable software repositories
KR100959473B1 (ko) 저장 플랫폼과 애플리케이션 프로그램 사이의 애플리케이션프로그래밍 인터페이스
KR101024730B1 (ko) 항목 기반 저장 플랫폼 내에서 데이터 모델링하기 위한시스템 및 방법
US20070219976A1 (en) Extensible query language with support for rich data types
US20080201234A1 (en) Live entities internet store service
US20060242624A1 (en) Apparatus and method for constructing a semantic layer based on XBRL data
Yu et al. Compressed accessibility map: Efficient access control for XML
US20070100857A1 (en) Computer-implemented method, tool, and program product for storing a business document in an enterprise software application environment
CN102279853A (zh) 一种基于ldap的快速数据访问方法
CN101360123B (zh) 一种网络系统及其管理方法
WO2006115706A2 (en) Apparatus and method for transforming xbrl data into database schema
US20110276537A1 (en) SaaS (Software as a Service) Providing User Control of Sharing of Data Between Multiple ERPs
US20080016048A1 (en) Intelligent condition pruning for size minimization of dynamic, just in time tables
US7590654B2 (en) Type definition language for defining content-index from a rich structured WinFS data type
US8161075B1 (en) Systems and methods for managing integrated and customizable data
CN1561496A (zh) 用于访问关系型数据库系统中的分层数据的高效索引结构
Magazine Directories of Libraries and Related Organizations
Stevens Peace Unknown
Buonazia et al. The working group for the Italian Culture Portal: a potential Italian contribution to EDL

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SUZHOU HIGH GUARD NETWORK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: CHEN JIANHUA

Effective date: 20120213

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120213

Address after: 215021. C201 room 2, international science and Technology Park, 1355 Jinji Lake Avenue, Suzhou Industrial Park

Applicant after: Suzhou Highguard Network Technology Co., Ltd.

Address before: Two C201 room 215021, international science and Technology Park, 1355 Jinji Lake Avenue, Suzhou Industrial Park, Jiangsu, China

Applicant before: Chen Jianhua

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111214