一种轻量级目录访问协议服务器的数据通知方法及系统的制作方法

文档序号:7717181阅读:237来源:国知局
专利名称:一种轻量级目录访问协议服务器的数据通知方法及系统的制作方法
技术领域
本发明涉及目录服务领域,尤其涉及一种轻量级目录访问协议服务器的数据通知 方法及系统。
背景技术
轻量级目录访问协议(Lightweight Directory Access Protocol,简称 LDAP)是 一种访问目录的协议,在RFC 2251标准中,定义了 LDAP V3协议的基本模型和基本操作,目 录服务的基本模型包括客户端和服务器,二者之间通过LDAP协议进行交互。LDAP协议提供 了目录服务的基本操作方法,包括查询、增加、删除、修改等。目前的LDAP相关协议已经比较完善的解决了目录服务客户端对服务器相关数据 的访问操作问题,但是,在目录服务应用领域日益涌现出另外一种需求,第三方应用需要与 目录服务器数据进行关联,并及时获悉目录服务器的最新数据变化情况,这就引入了一个 新的问题,即当目录服务器的数据发生变化时,如何自动、及时、可靠的通知第三方应用,该 问题在目前的LDAP以及其它相关协议中尚没有一个有效的解决方案。

发明内容
本发明要解决的技术问题是提供一种轻量级目录访问协议服务器的数据通知方 法及系统,在目录服务器数据发生变化时及时通知第三方应用,提高系统性能。为了解决上述问题,本发明提供了一种轻量级目录访问协议服务器的数据通知方 法,包括轻量级目录访问协议服务器中目录数据更新时,所述轻量级目录访问协议服务器 将发生更新的目录数据通知至第三方应用实体。进一步地,上述方法还具有以下特点所述轻量级目录访问协议服务器为目录数据的各对像类分别加载一个或多个触 发器,更新后的目录数据所对应的对像类的实例更新时,此对像类对应的触发器执行触发, 所述轻量级目录访问协议服务器将更新的目录数据通知至所述第三方应用实体;所述触发 器是用于目录服务器的数据信息结构定义文件中的动态库。进一步地,上述方法还具有以下特点进行更新的目录数据所对应的对像类的实例更新的触发条件是,目录数据更新或 者目录数据更新后的值超过系统设置的阈值。进一步地,上述方法还具有以下特点轻量级目录访问协议客户端向所述轻量级目录访问协议服务器订阅需要通知的 第三方应用实体。进一步地,上述方法还具有以下特点所述轻量级目录访问协议服务器向所述第三方应用实体发送携带更新的目录数 据的数据更新通知消息;触发器执行触发后,此触发器对应的第三方应用实体处于非接收 状态时,所述轻量级目录访问协议服务器将此次目录数据更新对应的数据更新通知消息放入延迟消息队列,等到所述第三方应用实体处于接收状态时,在所述延迟消息队列中所述 数据更新通知消息的时序到达时,向所述第三方应用实体发送所述数据更新通知消息。为了解决上述问题,本发明还提供了一种轻量级目录访问协议服务器的数据通知 系统,包括轻量级目录访问协议服务器和第三方应用实体;所述轻量级目录访问协议服务 器,用于在目录数据更新时,将发生更新的目录数据通知至第三方应用实体。进一步地,上述系统还具有以下特点所述轻量级目录访问协议服务器包括依次相连的触发器加载模块,目录数据更新 检测模块,触发器执行模块,更新目录数据发送模块;所述触发器加载模块,用于为目录数 据的各对像类分别加载一个或多个触发器;所述触发器是用于目录服务器的数据信息结构 定义文件中的动态库;所述目录数据更新检测模块,用于检测到更新的目录数据所对应的 对像类的实例更新时,向触发器执行模块发送通知消息;所述触发器执行模块,用于从所述 目录数据更新检测模块接收到通知消息后,使此对像类对应的触发器执行触发,并向所述 更新目录数据发送模块发送通知消息;所述更新目录数据发送模块,用于从所述触发器执 行模块接收到通知消息后,将更新的目录数据通知至所述第三方应用实体。进一步地,上述系统还具有以下特点所述目录数据更新检测模块判断更新的目录数据所对应的对像类的实例是否更 新时使用的触发条件是,目录数据更新或者目录数据更新后的值超过系统设置的阈值。进一步地,上述系统还具有以下特点还包括与轻量级目录访问协议服务器相连的轻量级目录访问协议客户端;所述轻 量级目录访问协议客户端,用于向所述轻量级目录访问协议服务器订阅需要通知的第三方 应用实体,向所述轻量级目录访问协议服务器发送订阅请求,并在所述订阅请求中携带第 三方应用实体的标识。进一步地,上述系统还具有以下特点所述轻量级目录访问协议服务器还包括与所述更新目录数据发送模块相连的第 三方应用实体状态检测模块;所述第三方应用实体状态检测模块,用于检测第三方应用实 体的状态并通知至所述更新目录数据发送模块;所述更新目录数据发送模块,还用于从所 述第三方应用实体状态检测模块获知第三方应用实体未处于非接收状态时,将此次目录数 据更新对应的数据更新通知消息放入延迟消息队列,等到从所述第三方应用实体状态检测 模块获知第三方应用实体处于接收状态时,在所述延迟消息队列中所述数据更新通知消息 的时序到达时,向所述第三方应用实体发送所述数据更新通知消息。本发明的方法和系统可以在目录服务器数据发生变化时及时通知第三方应用,提 高LDAP服务器的服务能力,提高系统性能。


图1是实施例中数据通知系统组成结构图;图2是实施例中LDAP服务器的组成结构图;图3是实施例中数据通知方法的流程图;图4是具体实施例中数据通知方法的流程图。
具体实施例方式如图1所示,LDAP服务器数据通知系统包括LDAP服务器,以及与LDAP服务器均 相连的LDAP客户端和第三方应用实体。LDAP服务器,用于在目录数据更新时,将发生更新的目录数据通知至第三方应用 实体。LDAP服务器在目录数据发生变化时通知的第三方应用实体可以是LDAP客户端事 先订阅的第三方应用实体也可以是系统默认的第三方应用实体。第三方应用具体是指系 统内除了 LDAP客户端之外与LDAP服务器相连的应用实体,例如归属用户服务器(Home Subscriber Server,简称 HSS),鉴权授权计费实体(Authentication Authorization Accounting,简称 AAA)等。如图2所示,LDAP服务器包括依次相连的触发器加载模块,目录数据更新检测模 块,触发器执行模块,更新目录数据发送模块;与更新目录数据发送模块相连的第三方应用 实体状态检测模块。触发器加载模块,用于为目录数据的各对像类分别加载一个或多个触发器;触发 器是用于目录服务器的数据信息结构定义文件中的动态库。目录数据更新检测模块,用于检测到更新后的目录数据所对应的对像类的实例更 新时,向触发器执行模块发送通知消息;具体的判断更新的目录数据所对应的对像类的实 例是否更新时使用的触发条件是,目录数据更新或者目录数据更新后的值超过系统设置的 阈值。触发器执行模块,用于从目录数据更新检测模块接收到通知消息后,使此对像类 对应的触发器执行触发,并向更新目录数据发送模块发送通知消息。第三方应用实体状态检测模块,用于检测第三方应用实体的状态并通知至更新目 录数据发送模块。更新目录数据发送模块,用于从触发器执行模块接收到通知消息后,将更新目录 数据通知至第三方应用实体;还用于从第三方应用实体状态检测模块获知第三方应用实体 未处于非接收状态时,将此次目录数据更新对应的数据更新通知消息放入延迟消息队列, 等到从第三方应用实体状态检测模块获知第三方应用实体处于接收状态时,在延迟消息队 列中数据更新通知消息的时序到达时,向第三方应用实体发送数据更新通知消息。轻量级目录访问协议客户端,用于向LDAP服务器订阅需要通知的第三方应用实 体,还用于向LDAP服务器发送订阅请求,并在订阅请求中携带第三方应用实体的标识。如图3所示,服务器的数据通知方法包括以下步骤步骤301,LDAP服务器中目录数据更新;步骤302,LDAP服务器将发生更新的目录数据通知至第三方应用实体。本发明中着重说明LDAP服务器中目录数据更新后,通过触发器的方式触发LDAP 服务器将发生更新的目录数据通知至第三方应用实体。LDAP服务器为目录数据的各对像类分别加载一个或多个触发器,进行更新的目录 数据所对应的对像类的实例更新(即被修改)时,此对像类对应的触发器执行触发,LDAP服 务器将更新目录数据通知至第三方应用实体;触发器是用于目录服务器的数据信息结构定 义的文件(即SCHEMA文件)中的动态库,一般是一段使用SDK API编写的C代码,并被编 译为一个动态库,由LDAP服务器根据SCHEMA文件中的触发器定义加载。触发器在SCHEMA文件中定义,并和对像类绑定。一个对像类绑定多个触发器时,对像类的实例更新时,此多 个触发器按绑定的先后顺序执行触发。可以导致触发器被执行的目录服务操作包括修改(Modify)、增加(Add)、删除 (Remove) 0进行更新的目录数据所对应的对像类的实例更新的触发条件是,目录数据更新 或者目录数据更新后的值超过系统设置的阈值。LDAP服务器可以在启动时加载触发器,也可以在运行过程中通过工具进行指示加 载。LDAP服务器触发器不能修改任何条目数据,包括导致触发器执行的条目和其他条目,但 是可以读取任何条目数据。LDAP服务器可激活或禁止触发器。具体的,LDAP服务器加载(包括启动加载/运 行加载)触发器后,将其默认为激活状态。在运行过程中,可以通过工具进行指示禁止触发 器。触发器被禁止后,触发器动态库保持被加载状态,但是目录服务条目修改操作不会导致 触发器的执行。同样是在运行过程中,被禁止的触发器可以通过工具进行指示激活,恢复可 触发状态。LDAP服务器在目录数据发生变化时通知的第三方应用实体可以是LDAP客户端事 先订阅的第三方应用实体也可以是系统默认的第三方应用实体。轻量级目录访问协议客户 端向LDAP服务器订阅需要通知的第三方应用实体时,LDAP客户端通过LDAP扩展协议,向 LDAP服务器发送订阅通知,并在订阅请求中携带第三方应用实体的标识,LDAP服务器收到 客户端的订阅通知后,保存订阅的通知第三方应用实体的标识信息,据此在数据变化时进 行通知。LDAP服务器向第三方应用实体发送携带更新的目录数据的数据更新通知消息 (可以使用相关标准的协议消息,包括但不限于SOAP消息);对像类绑定多个触发器的情况 下,LDAP服务器可以向第三方应用实体只发送一次数据更新通知消息。目录操作修改了一 个或多个条目时,每个条目所属对像类绑定的触发器,如果满足触发条件,则依次执行。触发器执行触发后,此触发器对应的第三方应用实体处于非接收状态时,LDAP服 务器将此次目录数据更新对应的数据更新通知消息放入延迟消息队列,等到第三方应用实 体处于接收状态时,在延迟消息队列中数据更新通知消息的时序到达时,向第三方应用实 体发送数据更新通知消息。延迟消息队列中需保证消息的时序,先产生的消息优先于后产 生的被发送。如果延迟消息队列溢出,则后续触发器产生的数据变化通知消息被丢弃。数据 变化通知消息只存在于LDAP服务器的内存中,不会被写入任何磁盘介质,如果LDAP服务器 宕机,则延迟的数据变化通知消息不会被恢复。上述LDAP服务器对数据变化通知的处理机 制本着简化实现的原则(消息队列缓存满则丢弃,无持久化物理存储),主要是考虑到LDAP 服务器数据变化通知第三方应用的可靠性要求一般不是很高,因此考虑的重点是简化LDAP 服务器的实现以及其对性能影响尽可能小。对于LDAP服务数据变化通知第三方应用有着 较高可靠性要求的场景,可以不限于此实现,比如增加对缓存消息的持久化物理存储等。具体实施例如图4所示,服务器的数据通知方法包括以下步骤步骤401,LDAP服务器执行目录数据访问操作;步骤402,判断操作类型是否为Add/Modify/Remove操作,如果是,继续步骤403 ; 否则,流程结束;
步骤403,判断触发器是否已经正常加载,如果是,继续步骤404 ;否则,流程结束;步骤404,判断触发器是否处于激活状态,如果是,继续步骤405 ;否则,流程结束;步骤405,判断是否满足触发条件,如果是,继续步骤406 ;否则,流程结束;此处触发条件可以是目录数据更新后的值超过系统设置的阈值。步骤406,判断是否有保存的第三方应用订阅信息,如果是,继续步骤407 ;否则, 流程结束;步骤407,读取变化数据;步骤408,判断通知消息是否可以立即发送,如果是,继续步骤409 ;否则,发送数 据变化通知消息,把变化数据通知到第三方应用;步骤409,判断缓存队列是否空闲,如果是,缓存数据变化通知消息;否则,丢弃数 据变化通知消息,流程结束。如上,借助本发明实施例提供的技术方案,LDAP客户端向服务器进行数据变化通 知第三方应用的订阅,LDAP服务器可以在数据变化时,执行触发器,把变化数据自动通知到 第三方应用。有效的满足了第三方应用与目录服务器数据进行关联,并及时获悉目录服务 器的最新数据变化情况的需求。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种轻量级目录访问协议服务器的数据通知方法,其特征在于,轻量级目录访问协议服务器中目录数据更新时,所述轻量级目录访问协议服务器将发 生更新的目录数据通知至第三方应用实体。
2.如权利要求1所述的方法,其特征在于,所述轻量级目录访问协议服务器为目录数据的各对像类分别加载一个或多个触发器, 更新后的目录数据所对应的对像类的实例更新时,此对像类对应的触发器执行触发,所述 轻量级目录访问协议服务器将更新的目录数据通知至所述第三方应用实体;所述触发器是 用于目录服务器的数据信息结构定义文件中的动态库。
3.如权利要求2所述的方法,其特征在于,进行更新的目录数据所对应的对像类的实例更新的触发条件是,目录数据更新或者目 录数据更新后的值超过系统设置的阈值。
4.如权利要求2所述的方法,其特征在于,轻量级目录访问协议客户端向所述轻量级目录访问协议服务器订阅需要通知的第三 方应用实体。
5.如权利要求2所述的方法,其特征在于,所述轻量级目录访问协议服务器向所述第三方应用实体发送携带更新的目录数据的 数据更新通知消息;触发器执行触发后,此触发器对应的第三方应用实体处于非接收状态时,所述轻量级 目录访问协议服务器将此次目录数据更新对应的数据更新通知消息放入延迟消息队列,等 到所述第三方应用实体处于接收状态时,在所述延迟消息队列中所述数据更新通知消息的 时序到达时,向所述第三方应用实体发送所述数据更新通知消息。
6.一种轻量级目录访问协议服务器的数据通知系统,其特征在于,包括轻量级目录访 问协议服务器和第三方应用实体;所述轻量级目录访问协议服务器,用于在目录数据更新时,将发生更新的目录数据通 知至第三方应用实体。
7.如权利要求6所述的系统,其特征在于,所述轻量级目录访问协议服务器包括依次相连的触发器加载模块,目录数据更新检测 模块,触发器执行模块,更新目录数据发送模块;所述触发器加载模块,用于为目录数据的各对像类分别加载一个或多个触发器;所述 触发器是用于目录服务器的数据信息结构定义文件中的动态库;所述目录数据更新检测模块,用于检测到更新的目录数据所对应的对像类的实例更新 时,向触发器执行模块发送通知消息;所述触发器执行模块,用于从所述目录数据更新检测模块接收到通知消息后,使此对 像类对应的触发器执行触发,并向所述更新目录数据发送模块发送通知消息;所述更新目录数据发送模块,用于从所述触发器执行模块接收到通知消息后,将更新 的目录数据通知至所述第三方应用实体。
8.如权利要求7所述的系统,其特征在于,所述目录数据更新检测模块判断更新的目录数据所对应的对像类的实例是否更新时 使用的触发条件是,目录数据更新或者目录数据更新后的值超过系统设置的阈值。
9.如权利要求7所述的系统,其特征在于,还包括与轻量级目录访问协议服务器相连 的轻量级目录访问协议客户端;所述轻量级目录访问协议客户端,用于向所述轻量级目录访问协议服务器订阅需要通 知的第三方应用实体,向所述轻量级目录访问协议服务器发送订阅请求,并在所述订阅请 求中携带第三方应用实体的标识。
10.如权利要求7所述的系统,其特征在于,所述轻量级目录访问协议服务器还包括与 所述更新目录数据发送模块相连的第三方应用实体状态检测模块;所述第三方应用实体状态检测模块,用于检测第三方应用实体的状态并通知至所述更 新目录数据发送模块;所述更新目录数据发送模块,还用于从所述第三方应用实体状态检测模块获知第三方 应用实体未处于非接收状态时,将此次目录数据更新对应的数据更新通知消息放入延迟消 息队列,等到从所述第三方应用实体状态检测模块获知第三方应用实体处于接收状态时, 在所述延迟消息队列中所述数据更新通知消息的时序到达时,向所述第三方应用实体发送 所述数据更新通知消息。
全文摘要
本发明公开了一种轻量级目录访问协议服务器的数据通知方法,包括轻量级目录访问协议服务器中目录数据更新时,所述轻量级目录访问协议服务器将发生更新的目录数据通知至第三方应用实体。数据通知系统的轻量级目录访问协议服务器,用于在目录数据更新时,将发生更新的目录数据通知至第三方应用实体。本发明的方法和系统可以在目录服务器数据发生变化时及时通知第三方应用,提高LDAP服务器的服务能力,提高系统性能。
文档编号H04L29/06GK102055725SQ20091020714
公开日2011年5月11日 申请日期2009年10月27日 优先权日2009年10月27日
发明者张晓辉, 沈健, 章恩华 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1