CN101997851B - 访问服务端的目录的方法、客户端、服务端及系统 - Google Patents
访问服务端的目录的方法、客户端、服务端及系统 Download PDFInfo
- Publication number
- CN101997851B CN101997851B CN200910166139.2A CN200910166139A CN101997851B CN 101997851 B CN101997851 B CN 101997851B CN 200910166139 A CN200910166139 A CN 200910166139A CN 101997851 B CN101997851 B CN 101997851B
- Authority
- CN
- China
- Prior art keywords
- composition request
- request message
- operations
- service end
- result
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种访问服务端的目录的方法、客户端、服务端及系统,在上述方法中,客户端发送复合请求消息至服务端,其中,复合请求消息中包含访问服务端的目录的多个操作;服务端接收来自客户端的复合请求消息,并根据复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果;服务端将携带操作结果的复合请求响应消息发送给客户端。根据本发明提供的技术方案,减少了客户端与服务端的消息交互次数和消息数量,提高了目录服务的效率。
Description
技术领域
本发明涉及目录服务领域,尤其涉及一种访问服务端的目录的方法、客户端、服务端及系统。
背景技术
轻量级目录访问协议(LDAP,Lightweight Directory AccessProtocol)是一种访问目录的协议,图1为LDAP目录服务实现的简化示意图。描述了一个LDAP目录服务的简单模型。包括客户端和服务端,客户端和服务端。
在RF2251中,定义了LDAP V3协议的基本模型和基本操作,提供了基本的访问目录的方法,包括查询,增加,删除,修改,比较等访问操作。之间通过LDAP协议进行交互。
LDPA适用于查询访问操作占主要部分的系统,提供了方便的大批量查询的接口,可以提供对条目的整个子树属性的查询。但是对于增加,删除和修改的访问操作,都只是针对一个条目,使得增加子树等批量操作不得不发送多条LDAP请求,而且原本相关的一系列LDAP写请求可能会被其他LDAP写请求打断,从而可能引起数据冲突。
在专利号为US6877026的专利“Bulk import in a directoryserver”中,提供一种向目录中大批量导入数据的方法,利用LDAP的扩展消息,增加了一对“start bulk import”请求/响应消息,一对“bulk import done”请求/响应消息。在LDAP客户端向LDAP服务端发送“start bulk import”请求,并且LDAP服务端向LDAP客户端返回“start bulk import”响应后,开始BULK Import流程,在此过程中,LDAP客户端向LDAP服务端发送一系列的ADD(增加)请求,LDAP服务端根据每一条请求进行处理,并且返回ADD响应。在结束bulk import时,客户端发送“bulk import done”请求到服务端,等待服务端发送“bulk import done”响应后,流程结束。
该专利虽然保证了一系列ADD操作的完整性,但是增加一个条目就有一条ADD请求,访问效率不高,通讯浪费严重。另一方面,该专利仅仅提供了批量增加的方法,没有实现批量进行修改,删除,增加以及混合操作。
发明内容
有鉴于此,本发明提供了一种客户端批量访问服务端目录的方案,用以解决现有技术中批量处理过程中存在的客户端与服务端交互次数多、效率不高的问题。
根据本发明的一个方面,提供了一种请求访问目录的方法,用于客户端请求访问服务端的目录。
根据本发明的请求访问目录的方法包括:客户端向服务端发送复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求。
根据本发明的另一个方面,提供了一种响应访问目录请求的方法,用于响应客户端请求访问服务端的目录。
根据本发明的响应访问目录请求的方法,包括:
服务端接收来自客户端的复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求;服务端根据复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果;服务端将携带操作结果的复合请求响应消息发送给客户端,该复合请求响应消息与上述复合请求消息相对应。
根据本发明的另一个方面,提供了一种访问服务端的目录的方法。
根据本发明的访问服务端的目录的方法,包括:
客户端发送复合请求消息至服务端,其中,复合请求消息中包含访问服务端的目录的多个操作;服务端接收来自客户端的复合请求消息,服务端根据所述复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果;服务端将携带操作结果的复合请求响应消息发送给客户端。
根据本发明的另一个方面,提供了一种客户端,用于请求访问服务端的目录。
根据本发明的客户端,包括:封装模块、发送模块,其中,封装模块,用于在复合请求消息中封装复合请求消息的标识、请求的多个操作的数据、多个操作之间的关系、指示是否容忍操作错误的容错标识;发送模块,用于向服务端发送复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求。
根据本发明的另一个方面,提供了一种务端,用于响应客户端访问服务端的目录。
根据本发明的服务端,包括:接收模块、解析模块、执行模块以及发送模块,其中,接收模块,用于接收客户端发送的复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求;解析模块,用于解析出复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识;执行模块,用于根据复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识,分别执行多个操作,并根据执行多个操作的结果设置复合请求消息对应的操作结果;发送模块,用于将携带操作结果的复合请求响应消息发送给客户端。
根据本发明的再一个方面,提供了一种访问目录的系统。
根据本发明的访问目录的系统,包括:客户端、服务端,其中,客户端,用于向服务端发送复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求;服务端,用于接收来自客户端的复合请求消息,根据复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果,并将携带操作结果的复合请求响应消息发送给客户端。
通过本发明的上述至少一个方案,通过定义了一种复合请求消息,将多个基本子操作封装在同一个请求中,从而使得客户端可以批量访问服务端的目录,减少了客户端与服务端的消息交互次数和消息数量,提高了目录服务的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据现有技术的LDAP目录服务实现的简化示意图;
图2为根据本发明实施例的复合请求消息的结构图;
图3为根据本发明实施例的客户端定义并发送复合请求的流程图;
图4为根据本发明实施例的响应访问目录请求的方法的流程图;
图5为根据本发明实施例的复合请求响应消息的结构图;
图6为根据本发明实施例的服务端执行复合请求中多个操作的流程图;
图7为根据本发明实施例一的服务端执行复合请求中多个具有并发关系的操作的详细流程图;
图8为根据本发明实施例二的服务端执行复合请求中多个具有顺序关系的操作的详细流程图;
图9为根据本发明实施例三的服务端执行复合请求中多个具有顺序关系的操作的详细流程图;
图10为根据本发明实施例四的服务端执行复合请求中多个具有事务性关系的操作的详细流程图;
图11为根据本发明实施例五的服务端执行复合请求中多个具有事务性关系的操作的详细流程图;
图12为根据本发明实施例的复合请求响应消息的发送流程图;
图13为根据本发明实施例的访问服务端的目录的方法流程图;
图14为根据本发明实施例的客户端的结构示意图;
图15为根据本发明实施例的服务端的结构示意图;
图16为根据本发明实施例的访问目录的系统的结构示意图。
具体实施方式
功能概述
本发明实施例中,通过定义一种复合请求消息,将多个访问目录的基本子操作组合到一个复合请求中,由客户端向服务端发送该复合请求消息请求访问目录,服务端根据接收到的复合请求消息,解析出其中的多个基本子操作,并执行上述基本子操作,根据子操作的执行结果、基本子操作之间的关系以及错误处理模式,向客户端返回复合请求响应消息,从而实现了客户端批量访问服务端目录,大大提高了访问目录的效率。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
根据本发明实施例,首先提供了一种请求访问目录的方法,用于客户端请求访问服务端的目录。
根据本发明实施例的请求访问目录的方法包括:客户端向服务端发送复合请求消息,其中,该复合请求消息中包含访问服务端的目录的多个操作的请求。
上述复合请求消息中携带的信息包括:复合请求消息的标识、请求的多个操作的数据、多个操作之间的关系、指示是否容忍操作错误的容错标识。在本发明实施例中,为了方便区分,将一个复合请求消息中包括的各个操作称作为一个子操作。
图2示出了本发明实施例的复合请求消息的结构图,如图1所示,在复合请求消息中定义了复合请求的标识(复合请求的OID),封装了复合请求数据。其中,复合请求数据包括子操作间关系,容忍子操作错误标记和多个子操作请求。在具体实施过程中,上述复合请求消息可以根据LDAP协议的扩展操作为基础定义,封装的每个子操作都可以按照LDAP协议进行封装编码。
具体地,子操作可以包括:增加,删除,修改,查询等,并且可以同是多种子操作复合,由实现上述增加,删除,修改,查询等操作的命令构成子操作的数据;容忍子操作错误的标记包括:容忍子操作失败(当出现子操作失败时,复合请求继续执行),不容忍子操作失败(当子操作失败,则回滚所有的已经执行的子操作,复合请求失败结束);子操作间的关系包括:并发关系、顺序执行和事务关系,并发关系表示多个子操作间没有必然联系,先后顺序不影响本次复合操作;顺序关系,表示子操作逐条顺序执行;事务关系,表示本次复合请求中的多个子操作为一个事务,不允许被打断。
图3是根据本发明实施例的客户端定义并发送复合请求的流程图,如图3所示,客户端将需要执行的子请求进行格式化,一种实现方式就是对子请求按照LDAP的定义进行编码,然后将格式化的请求附加到复合请求中,将所有的需要执行的子请求都按照上述方式进行处理,直到所有的子操作都附加完成,然后填写多个操作之间的关系以及容忍错误的标记,然后按照LDAP的扩展请求定义进行编码,然后将复合请求发送到客户端。
根据本发明实施例,还提供了一种响应访问目录请求的方法,用于响应客户端请求访问服务端的目录。
图4是根据本发明实施例的响应访问目录请求的方法的流程图,如图4所示,根据本发明实施例的响应访问目录请求的方法的流程如下(步骤S402-步骤S406):
步骤S402、服务端接收来自客户端的复合请求消息,其中,该复合请求消息中包含访问服务端的目录的多个操作的请求;
步骤S404、服务端根据复合请求消息,执行上述多个操作,得到与复合请求消息对应的操作结果;
步骤S406、服务端将携带操作结果的复合请求响应消息发送给客户端。
该复合请求响应消息中携带的信息包括:上述复合请求消息的操作结果、复合请求消息的标识、请求的所述多个操作的执行结果、所述多个操作之间的关系、指示是否容忍操作错误的容错标识。
具体地,上述的操作结果包括:复合请求消息成功标识、复合请求消息失败标识、复合请求消息部分失败标识。
图5示出了本发明实施例的复合请求响应消息的结构图,如图5所示,复合请求响应消息的定义方式与复合请求消息大致相同,不同之处在于复合请求响应消息定义了对应的复合请求消息的操作结果;定义了多个子操作的执行结果。在具体实施过程中,上述复合请求响应消息可以根据LDAP协议的扩展操作为基础定义。
以下进一步描述响应访问目录请求的方法流程的各个细节。
如图6所示,在具体实施过程中,服务端根据复合请求消息,执行所述多个操作,得到与所述复合请求消息对应的操作结果,具体分为以下步骤(步骤S602-步骤S606):
步骤S602、服务端根据复合请求消息中携带的复合请求消息的标识确定接收到包括多个操作的请求的复合请求消息;
步骤S604、服务端解析出复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识;
步骤S606、服务端根据复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识,分别执行多个操作,并根据执行多个操作的结果设置复合请求消息对应的操作结果。
针对上述步骤S606,在具体实施过程中,会根据多个操作之间的关系和容错标识的不同,采取不同的处理流程,下面以具体的实施例对各种情况进行详细描述。
实施例一
如图7所示,如果多个操作之间的关系为并发关系,则上述步骤S606可以细化成以下步骤(步骤S702-步骤S706):
步骤S702、并发执行多个操作,等待执行结果;
步骤S704、获取所有操作的执行结果,判断执行结果是否正确;
步骤S706、如果执行结果全部不正确,则设置操作结果为复合请求失败标识,如果部分不正确,则设置操作结果为复合请求部分失败标识,如果全部正确,则设置操作结果为复合请求成功标识。
实施例二
如图8所示,如果多个操作之间的关系为顺序关系,且容错标识指示容忍操作错误,则上述步骤S606可以细化成以下步骤(步骤S802-步骤S806):
步骤S802、如果多个操作中存在未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则执行步骤S806;
步骤S804、获取执行结果,返回执行步骤S802;
步骤S806、如果多个操作的执行结果均为失败,则设置操作结果为复合请求失败标识;如果多个操作的执行结果均为成功,则设置操作结果复合请求成功标识;否则设置操作结果复合请求部分失败标识。
实施例三
如图9所示,如果多个操作之间的关系为顺序关系,且容错标识指示不容忍操作错误,则上述步骤S606可以细化成以下步骤(步骤S902-步骤S904):
步骤S902、如果多个操作中存在未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则,设置所述操作结果为复合请求成功标识;
步骤S904、获取当前执行的操作的执行结果,如果该执行结果为正确,则执行步骤S902;否则,设置操作结果为复合请求失败标识,结束所述多个操作的执行。
实施例四
如图10所示,如果多个操作之间的关系为事务性关系,且容错标识指示容忍操作错误,则上述步骤S606可以细化成以下步骤(步骤S1002-步骤S1008):
步骤S1002、遍历复合请求消息中的所有操作,计算需要锁定的述服务端目录中的条目和子树,并申请复合请求消息的至少一个锁;
步骤S1004、如果复合请求消息中还有未执行的基本操作,则读取一条操作并执行,等待执行结果;否则,执行步骤S1008;
步骤S1006、获取操作的执行结果,返回执行步骤S1004;
步骤S1008、释放复合请求消息的至少一个锁,如果多个操作的执行结果均为失败,则设置操作结果为复合请求失败标识;如果多个操作的执行结果均为成功,则设置操作结果为复合请求成功标识;否则设置所述操作结果为复合请求部分失败标识。
实施例五
如图11所示,如果多个操作之间的关系为事务性关系,且容错标识指示不容忍操作错误,则上述步骤S606可以细化成以下步骤(步骤S1102-步骤S1106):
步骤S1102、遍历复合请求消息中的所有操作,计算需要锁定的服务端目录中的条目和子树,并申请复合请求消息的至少一个锁;
步骤S1104、如果复合请求消息中还有未执行的操作,则读取一条基本操作并执行,等待执行结果;否则,释放复合请求消息的至少一个锁,设置操作结果为复合请求成功标识;
步骤S1106、获取当前执行的操作的执行结果,如果该执行结果为正确,则执行S1104;否则,释放复合请求消息的至少一个锁,设置操作结果为复合请求失败标识,并结束多个操作的执行。
图12是根据本发明实施例的复合请求响应消息的发送流程图。如图12所示,在服务端将携带操作结果的复合请求响应消息发送给客户端之前,如果相应复合请求的操作结果为复合请求部分失败标识或者复合请求成功标识,则还需要在复合请求响应消息中封装多个子操作的执行结果。
根据本发明实施例,还提供了一种访问服务端的目录的方法。
图13是根据本发明实施例的访问服务端的目录的方法流程图,如图13所示,上述方法的具体流程如下(步骤S1302-步骤S1306):
步骤S1302、客户端发送复合请求消息至服务端,其中,复合请求消息中包含访问服务端的目录的多个操作;
步骤S1304、服务端接收来自客户端的复合请求消息,服务端根据复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果;
步骤S1306、服务端将携带操作结果的复合请求响应消息发送给客户端。
根据本发明的实施例,还提供了一种客户端,用于请求访问服务端的目录。
图14是根据本发明实施例的客户端的结构示意图,如图14所示,上述客户端包括封装模块141和发送模块142,其中,封装模块141,用于在复合请求消息中封装复合请求消息的标识、请求的多个操作的数据、多个操作之间的关系、指示是否容忍操作错误的容错标识;发送模块142,用于向述服务端发送复合请求消息,其中,复合请求消息中包含访问所述服务端的目录的多个操作的请求。
根据本发明的实施例,还提供了一种服务端,用于响应客户端访问服务端的目录。
图15是根据本发明实施例的服务端的结构示意图,如图15所示,上述服务端包括:接收模块151、解析模块152、执行模块153以及发送模块154。其中,接收模块151,用于接收客户端发送的复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求;解析模块152,用于解析出复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识;执行模块153,用于根据复合请求消息中携带的多个操作的数据、多个操作之间的关系以及指示是否容忍操作错误的标识,分别执行上述多个操作,并根据执行多个操作的执行结果设置复合请求消息对应的操作结果;发送模块154,用于将携带操作结果的复合请求响应消息发送给客户端。
根据本发明的实施例,还提供了一种访问目录的系统。
图16是根据本发明实施例的访问目录的系统的结构示意图。如图16所示,上述系统包括客户端161和服务端162,其中,客户端161,用于向服务端发送复合请求消息,其中,复合请求消息中包含访问服务端的目录的多个操作的请求;服务端162,用于接收来自客户端的复合请求消息,根据复合请求消息,执行多个操作,得到与复合请求消息对应的操作结果,并将携带操作结果的复合请求响应消息发送给客户端。
如上所述,借助本发明实施例提供的技术方案,客户端将多个基本子操作封装在同一个复合请求消息中,发送至服务端,服务端根据多种子操作的组合方式和容错标识执行解析出的基本子操作,并向客户端返回携带操作结果的复合请求相应消息,从而实现了批量操作的实现了简单、灵活的批量访问目录的方法,并且减少了客户端与服务端的消息交互次数和消息数量,大大提高了效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种请求访问目录的方法,用于客户端请求访问服务端的目录,其特征在于,所述方法包括:
所述客户端向所述服务端发送复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求,所述复合请求消息中携带的信息包括:所述复合请求消息的标识、请求的所述多个操作的数据、所述多个操作之间的关系、指示是否容忍操作错误的容错标识。
2.根据权利要求1所述的方法,其特征在于,所述多个操作之间的关系包括:并发关系、顺序关系、事务性关系。
3.根据权利要求1或2所述的方法,其特征在于,所述复合请求消息基于轻量级目录访问协议LDAP定义。
4.一种响应访问目录请求的方法,用于响应客户端请求访问服务端的目录,其特征在于,所述方法包括:
服务端接收来自客户端的复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求,所述复合请求消息中携带的信息包括:所述复合请求消息的标识、请求的所述多个操作的数据、所述多个操作之间的关系、指示是否容忍操作错误的容错标识;
所述服务端根据所述复合请求消息,执行所述多个操作,得到与所述复合请求消息对应的操作结果;
所述服务端将携带所述操作结果的复合请求响应消息发送给所述客户端,所述复合请求响应消息与所述复合请求消息相对应。
5.根据要求4所述的方法,其特征在于,所述方法包括:
所述复合请求响应消息中携带的信息包括:所述复合请求消息的操作结果、所述复合请求消息的标识、请求的所述多个操作的执行结果、所述多个操作之间的关系、指示是否容忍操作错误的容错标识;
所述的操作结果包括:复合请求成功标识、复合请求失败标识、复合请求部分失败标识。
6.根据权利要求5所述的方法,其特征在于,所述多个操作之间的关系包括:并发关系、顺序关系、事务性关系。
7.根据权利要求6所述的方法,其特征在于,所述服务端根据所述复合请求消息,执行所述多个操作,得到与所述复合请求消息对应的操作结果,包括:
所述服务端根据所述复合请求消息中携带的所述复合请求消息的标识确定接收到包括多个操作的请求的所述复合请求消息;
所述服务端解析出所述复合请求消息中携带的所述多个操作的数据、所述多个操作之间的关系以及指示是否容忍操作错误的标识;
所述服务端根据所述复合请求消息中携带的所述多个操作的数据、所述多个操作之间的关系以及指示是否容忍操作错误的标识,分别执行所述多个操作,并根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果。
8.根据权利要求7所述的方法,其特征在于,如果所述多个操作之间的关系是为并发关系,则分别执行所述多个操作,根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果,包括:
并发执行所述多个操作,等待执行结果;
获取所有操作的执行结果,如果全部不正确,则设置所述操作结果为复合请求失败标识,如果部分不正确,则设置所述操作结果为复合请求部分失败标识,如果全部正确,则设置所述操作结果为复合请求成功标识。
9.根据权利要求7所述的方法,其特征在于,如果所述多个操作之间的关系为顺序关系,且所述容错标识指示容忍操作错误,则分别执行所述多个操作,根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果,包括:
步骤1001、如果所述多个操作中存在未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则执行步骤1003;
步骤1002、获取所述执行结果,返回执行步骤1001;
步骤1003、如果所述多个操作的执行结果均为失败,则设置所述操作结果为复合请求失败标识;如果所述多个操作的执行结果均为成功,则设置所述操作结果为复合请求成功标识;否则设置所述操作结果为复合请求部分失败标识。
10.根据权利要求7所述的方法,其特征在于,如果所述多个操作之间的关系为顺序关系,且所述容错标识指示不容忍操作错误,则分别执行所述多个操作,根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果,包括:
步骤1101、如果所述多个操作中存在未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则,设置所述操作结果为复合请求成功标识;
步骤1102、获取当前执行的操作的执行结果,如果该执行结果为正确,则执行步骤1101;否则,设置所述操作结果为复合请求失败标识,结束所述多个操作的执行。
11.根据权利要求7所述的方法,其特征在于,如果所述多个操作之间的关系为事务性关系,且所述容错标识指示容忍操作错误,则分别执行所述多个操作,根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果,包括:
步骤1201、遍历所述复合请求消息中的所有操作,计算需要锁定的所述服务端目录中的条目和子树,并申请所述复合请求消息的至少一个锁;
步骤1202、如果所述复合请求消息中还有未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则,执行步骤1204;
步骤1203、获取所述执行结果,返回执行步骤1202;
步骤1204、释放所述复合请求消息的所述至少一个锁,如果所述多个操作的执行结果均为失败,则设置所述操作结果为复合请求失败标识;如果所述多个操作的执行结果均为成功,则设置所述操作结果为复合请求成功标识。
12.根据权利要求7所述的方法,其特征在于,如果所述多个操作之间的关系为事务性关系,且所述容错标识指示不容忍操作错误,则分别执行所述多个操作,根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果,包括:
步骤1301、遍历所述复合请求消息中的所有操作,计算需要锁定的所述服务端目录中的条目和子树,并申请所述复合请求消息的至少一个锁;
步骤1302、如果所述复合请求消息中还有未执行的操作,则读取一条未执行的操作并执行,等待执行结果;否则,释放所述复合请求消息的所述至少一个锁,设置所述操作结果为复合请求成功标识;
步骤1303、获取当前执行的操作的执行结果,如果该执行结果为正确,则执行步骤1302;否则,释放所述复合请求消息的所述至少一个锁,设置所述操作结果为复合请求失败标识,并结束所述多个操作的执行。
13.根据权利要求5至12任一项所述的方法,其特征在于,如果所述的操作结果为复合请求部分失败标识或者复合请求成功标识,则所述复合请求响应消息中封装所述多个操作的执行结果。
14.根据权利要求4至12任一项所述的方法,其特征在于,所述复合请求消息和所述复合请求响应消息基于轻量级目录访问协议LDAP定义。
15.一种访问服务端的目录的方法,其特征在于,包括:
步骤1601、客户端发送复合请求消息至服务端,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作,所述复合请求消息中携带的信息包括:所述复合请求消息的标识、请求的所述多个操作的数据、所述多个操作之间的关系、指示是否容忍操作错误的容错标识;
步骤1602、服务端接收来自客户端的复合请求消息,所述服务端根据所述复合请求消息,执行所述多个操作,得到与所述复合请求消息对应的操作结果;
步骤1603、所述服务端将携带所述操作结果的复合请求响应消息发送给所述客户端。
16.一种客户端,用于请求访问服务端的目录,其特征在于,包括:
封装模块,用于在复合请求消息中封装所述复合请求消息的标识、请求的多个操作的数据、多个操作之间的关系、指示是否容忍操作错误的容错标识;
发送模块,用于向所述服务端发送所述复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求。
17.一种服务端,用于响应客户端访问服务端的目录,其特征在于,包括:
接收模块,用于接收客户端发送的复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求;
解析模块,用于解析出所述复合请求消息中携带的所述多个操作的数据、所述多个操作之间的关系以及指示是否容忍操作错误的标识;
执行模块,用于根据所述复合请求消息中携带的所述多个操作的数据、所述多个操作之间的关系以及指示是否容忍操作错误的标识,分别执行所述多个操作,并根据执行所述多个操作的结果设置所述复合请求消息对应的所述操作结果;
发送模块,用于将携带所述操作结果的复合请求响应消息发送给所述客户端。
18.一种访问目录的系统,其特征在于,包括:
客户端,用于向服务端发送复合请求消息,其中,所述复合请求消息中包含访问所述服务端的目录的多个操作的请求,所述复合请求消息中携带的信息包括:所述复合请求消息的标识、请求的所述多个操作的数据、所述多个操作之间的关系、指示是否容忍操作错误的容错标识;
服务端,用于接收来自所述客户端的所述复合请求消息,根据所述复合请求消息,执行所述多个操作,得到与所述复合请求消息对应的操作结果,并将携带所述操作结果的复合请求响应消息发送给所述客户端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910166139.2A CN101997851B (zh) | 2009-08-17 | 2009-08-17 | 访问服务端的目录的方法、客户端、服务端及系统 |
PCT/CN2010/075747 WO2011020412A1 (zh) | 2009-08-17 | 2010-08-05 | 访问服务端的目录的方法、客户端、服务端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910166139.2A CN101997851B (zh) | 2009-08-17 | 2009-08-17 | 访问服务端的目录的方法、客户端、服务端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101997851A CN101997851A (zh) | 2011-03-30 |
CN101997851B true CN101997851B (zh) | 2014-04-09 |
Family
ID=43606641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910166139.2A Expired - Fee Related CN101997851B (zh) | 2009-08-17 | 2009-08-17 | 访问服务端的目录的方法、客户端、服务端及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101997851B (zh) |
WO (1) | WO2011020412A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270387A (zh) * | 2014-10-22 | 2015-01-07 | 中国建设银行股份有限公司 | 信息请求及响应方法、客户端、服务器和信息处理系统 |
CN106534242B (zh) * | 2015-09-14 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 一种分布式系统中请求的处理方法以及装置 |
CN107342983A (zh) * | 2017-06-09 | 2017-11-10 | 深圳震有科技股份有限公司 | 一种事务性处理多分包的高效udp通讯的方法及系统 |
WO2024026802A1 (zh) * | 2022-08-04 | 2024-02-08 | Oppo广东移动通信有限公司 | 数据上报方法、装置、芯片、存储介质和计算机程序 |
CN117749751A (zh) * | 2022-09-15 | 2024-03-22 | 中兴通讯股份有限公司 | 消息处理方法、电子设备和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867898A (zh) * | 2003-10-14 | 2006-11-22 | 国际商业机器公司 | 用于在面向服务的体系结构中处理服务请求的方法和装置 |
CN101447981A (zh) * | 2008-04-03 | 2009-06-03 | 中兴通讯股份有限公司 | 基于ldap协议的客户端与服务器的交互方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8639655B2 (en) * | 2006-08-31 | 2014-01-28 | Red Hat, Inc. | Dedicating threads to classes of LDAP service |
CN101753523A (zh) * | 2008-12-12 | 2010-06-23 | 华为技术有限公司 | 数据处理方法、装置及系统 |
-
2009
- 2009-08-17 CN CN200910166139.2A patent/CN101997851B/zh not_active Expired - Fee Related
-
2010
- 2010-08-05 WO PCT/CN2010/075747 patent/WO2011020412A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1867898A (zh) * | 2003-10-14 | 2006-11-22 | 国际商业机器公司 | 用于在面向服务的体系结构中处理服务请求的方法和装置 |
CN101447981A (zh) * | 2008-04-03 | 2009-06-03 | 中兴通讯股份有限公司 | 基于ldap协议的客户端与服务器的交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101997851A (zh) | 2011-03-30 |
WO2011020412A1 (zh) | 2011-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246251B (zh) | 一种微服务调用方法、装置、系统、设备及可读存储介质 | |
CN101997851B (zh) | 访问服务端的目录的方法、客户端、服务端及系统 | |
KR101343202B1 (ko) | 데이터 동기화 프로토콜 | |
EP2677440A2 (en) | Method and apparatus for separating in order to upgrade software remotely in m2m communication | |
CN102938770B (zh) | 一种实现多协议消息统一接口的方法及相关装置、系统 | |
CN111917737B (zh) | 一种跨网rpc调用系统及方法 | |
CN112788074A (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
US20170031739A1 (en) | Protocol for communication of data structures | |
CN1512370A (zh) | 基于构件的用户自定义事件机制 | |
CN110389935A (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
CN100450105C (zh) | 一种基于java消息服务的同步消息接口实现方法 | |
US6141679A (en) | High performance distributed transaction processing methods and apparatus | |
CN105187373A (zh) | 一种数据的传输方法及系统 | |
CN109861998A (zh) | 一种基于北斗短报文协议的插件式动态解析系统及方法 | |
CN109547543A (zh) | 车载以太网的分布式运行系统及运行方法 | |
US20090259715A1 (en) | System and method for client interoperability | |
CN109857379B (zh) | 一种数据服务封装的方法及装置 | |
CN101150443B (zh) | 电信网络管理消息的处理方法 | |
CN108206811B (zh) | 用于IoT设备之间的跨协议通信的方法、装置及IoT系统 | |
US8539095B2 (en) | Reliable message transfer | |
CN107809329B (zh) | 一种实现信息物理融合系统cps模型的方法及其模型 | |
CN102075452B (zh) | 信息传输方法、装置及系统 | |
CN104052646A (zh) | 一种基于照片识别的即时通信方法、服务器和系统 | |
CN116708565A (zh) | 一种基于mqtt服务的客户端与主题隔离方法及系统 | |
CN105141674A (zh) | 一种能力接入方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140409 Termination date: 20190817 |
|
CF01 | Termination of patent right due to non-payment of annual fee |