专利名称:查询用户信息的方法
技术领域:
本发明涉及通讯领域,尤其涉及查询用户信息的方法。
背景技术:
目前通信系统中的各种业务引擎如Presence(呈现)、PoC(一键通)、IM(即时消息)等都需要访问和操作一些共享的或各自所需要的信息,如URI(统一资源标识符)列表、群组、接入控制策略和授权策略等信息。这些信息使用XML(可扩展标记语言),储存在XDM(XML文档管理)服务器中,各种业务引擎使用XCAP(XML配置访问协议)访问和操作这些XML数据。
一般每个业务引擎都有自己的XDM服务器,存储和管理业务每个业务引擎专用的XML数据。同时也可以设置共享的XDM服务器,存储和管理各业务引擎都需要使用的XML数据,通常XDM服务器中存放的信息都是一些相对静态的信息,如用户的配置数据,群组信息和用户信息等,而业务引擎服务器中通常存放比较动态的信息,如呈现服务器中存放的呈现信息。除了业务引擎服务器可以直接访问XDM服务器中的信息外,客户端也可以使用XCAP协议通过聚合代理来访问和操作XML数据,客户端通过聚合代理来访问XDM服务器的组网示意图如图1所示。聚合代理是XDM客户端在用户设备实现访问XDM服务器上的XML文档的连接点,主要进行对XDM客户端的鉴权、路由XCAP请求到相应的XDM服务器等操作。聚合代理的具体使用原理可以参见OMA(开放移动联盟)发布的XDM V1.0相关标准规范,以及IETF(因特网工程组)发布的XCAP协议文档。
在图1所示的组网中,客户端可以进行XML文档的创建、删除、修改和获取等操作,客户端获取XML文档的HTTP GET操作的过程如下1、XDM客户端发送获取XML文档的XCAP请求消息,消息内容包括XCAP操作命令名GET,以及AUID(XCAP的应用唯一标识)如resource-lists,要获取的文档名fr.xml等,该消息具体可以为GET/services/resource-lists/users/bill/fr.xml HTTP/1.12、聚合代理接收到所述XCAP请求消息后,对用户进行鉴权操作,鉴权通过后将该请求消息路由到相应的XDM服务器;3、XDM服务器接收到所述请求消息后,查找相应的XML文档并将该XML文档返回给客户端,返回消息的内容可以为HTTP/1.1 200 OKEtag:"hhwwe"Content-Type:application/resource-lists+xml< xml version="1.0"encoding="UTF-8" >
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists">
<list name="friends">
<entry uri="sip:sunqian@huawei.com">
<display-name>Sun Qian</display-name>
</entry>
</list>
</resource-lists>
上述返回内容信息为列表名称(list name)为"friends"组中的一个成员,其统一资源标识符(uri)为"sip:sunqian@huawei.com",显示名称(display-name)为Sun Qian。而在实际应用中,很多情况用户希望能指定一些限定条件来获取其他用户的信息,如查询包含自己URI的群组中的其他成员的信息,比如年龄,性别和联系方法等静态的用户信息以及是否在线,位置和情绪信息等动态的呈现信息,这些用户的信息可能位于不同的XML文档,甚至不同的XDM服务器,以及呈现服务器中。上述的需求无法简单得通过HTTP GET操作流程来实现,尤其是呈现服务器目前只通过订阅/通知方法而不支持通过HTTP方法向客户端提供呈现信息。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供查询用户信息的方法,可使用户在获取到XDM服务器中其他用户信息的同时获得这些用户的呈现信息。
本发明的目的是通过以下技术方案实现的一种查询用户信息的方法,设置搜索代理,所述的方法包括步骤A、搜索代理接收客户端发送的包含查询条件的查询请求,并将查询请求消息转发给存储用户信息或群组信息的XDM服务器;B、搜索代理接收所述XDM服务器返回的查询结果,查询结果中包括满足查询条件的用户URI或群组成员用户的URI;C、搜索代理向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息;D、呈现服务器将呈现信息返回给搜索代理;E、搜索代理将所述呈现服务器返回的呈现信息和所述XDM服务器返回的查询结果进行整合后发送给客户端。
所述的步骤A之前还包括步骤
客户端首先向聚合代理发送查询请求,聚合代理将所述查询请求路由到搜索代理;所述的步骤E具体为搜索代理将所述呈现服务器返回的呈现信息和所述XDM服务器返回的查询结果进行整合后经由聚合代理发送给客户端。
进一步,所述的步骤D具体为呈现服务器根据每个所述用户URI对应的授权规则文档,确定搜索代理是否被允许获取所订阅的呈现信息,然后将允许搜索代理获取的呈现信息返回给搜索代理。
进一步,预设一个代表搜索代理实体的搜索代理URI,在呈现XDM服务器里的用户的授权规则文档中为搜索代理URI对应设置允许搜索代理订阅的呈现信息。
所述的步骤C具体为搜索代理为发送查询请求的客户端所对应的URI向呈现服务器订阅所述查询结果中包含的URI的呈现信息;所述的步骤D具体为呈现服务器根据每个所述用户URI的授权规则文档,确定发送查询请求的客户端所对应的URI是否被允许获取呈现信息,然后将允许获取的呈现信息返回给搜索代理。
步骤A中所述的查询条件中还包括呈现信息的限定条件,则所述的步骤E具体为搜索代理将所述呈现服务器返回的呈现信息依据所述的呈现信息的限定条件进行过滤处理,将满足限定条件的用户URI的呈现信息和查询结果进行整合后发送给客户端。
步骤A中所述的查询条件中还包括呈现信息的限定条件,则所述的步骤C具体为
搜索代理向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息,并在订阅消息中包含所述的限定条件;所述的步骤D具体为呈现服务器将满足所述限定条件的呈现信息返回给搜索代理。
步骤C之后所述呈现服务器接收到搜索代理发送的订阅请求后,如果检测到所订阅用户URI的授权规则中要进行确认才可以订阅该用户的呈现信息,则呈现服务器拒绝为搜索代理订阅该用户的呈现信息。
一种查询用户信息的方法,设置搜索代理,存储用户信息的XDM服务器向呈现服务器订阅用户的呈现信息,呈现服务器在所述XDM服务器订阅的呈现信息发生改变时发送相应的通知给所述XDM服务器,所述XDM服务器根据所述通知进行呈现信息的同步更新处理,所述查询用户信息的方法包括步骤A、搜索代理接收经聚合代理转发的客户端的查询请求,并将查询请求消息转发给存储用户信息的XDM服务器,所述查询请求中的限定条件包含有对用户呈现信息的限定条件;B、所述XDM服务器根据查询请求中的限定条件确定查询结果,并返回给搜索代理;C、搜索代理将查询结果通过聚合代理转发给客户端。
进一步,所述存储用户信息的XDM服务器为共享用户信息XDM服务器,向呈现服务器订阅用户的呈现信息为是否在线的呈现信息,呈现服务器在用户上线或下线时发送相应的通知给所述共享用户信息XDM服务器,步骤A中所述的对用户呈现信息的限定条件为用户呈现信息为在线状态。
一种查询用户信息的方法,设置搜索代理,所述的方法包括步骤
A、客户端接收到用户输入的包含查询条件的查询指令后,先发送查询请求以获取XDM服务器中的相应信息;B、搜索代理接收客户端发送的查询请求,并将查询请求消息转发给相应的XDM服务器;C、搜索代理接收所述XDM服务器返回的查询结果,查询结果中包括查询到的用户URI,然后转发给客户端;D、客户端向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息;E、呈现服务器将呈现信息返回给客户端;F、客户端将所述呈现服务器返回的呈现信息和所述搜索代理返回的查询结果进行整合后显示给用户。
进一步,步骤C之后客户端接收到搜索代理返回的查询结果后先显示出来;步骤F中客户端每接收到一个呈现服务器返回的包含呈现信息的通知,就刷新一下显示的内容,将呈现信息与所述搜索代理返回查询结果中的用户信息关联显示。
步骤C中搜索代理先将所述XDM服务器返回的查询结果进行缓存,然后分批次转发给客户端。
步骤A中所述的查询请求中包括批次信息,步骤B中搜索代理向XDM服务器获取与批次相应的查询结果。
一种查询用户信息的方法,设置搜索代理,存放呈现信息的服务器提供XCAP服务,所述的方法包括步骤A、搜索代理接收客户端发送的包含查询条件的查询请求,并将查询请求消息转发给存放用户信息的XDM服务器或存放呈现信息的服务器;B、搜索代理接收服务器返回的查询结果,查询结果中包括满足查询条件的用户信息和呈现信息;C、搜索代理将所述用户信息和呈现信息进行整合后发送给客户端。
进一步,所述存放呈现信息的服务器为呈现服务器,或呈现信息XDM服务器,所述呈现信息XDM服务器同步呈现服务器中用户的呈现信息。
由上述本发明提供的技术方案可以看出,本发明通过设置搜索代理,能够使客户端可以一次从多个XDM服务器中的多个XML文档中获取用户信息,并同时获取相应呈现信息返回给客户端,而且可以使客户端不再局限于使用HTTP GET方法来简单得获取服务器上存储的单个XML文档中的用户信息。本发明扩充了呈现信息的获取方式,并增强了查询XML文档中用户信息的能力。
图1为客户端通过聚合代理来访问XDM服务器的组网示意图;图2为应用本发明方法的通信系统的结构示意图;图3为本发明查询用户信息的方法的具体处理流程图;图4为现有技术中呈现服务器、呈现XDM服务器的组网示意图;图5为本发明所述实施例1中呈现信息XDM服务器、呈现服务器和呈现XDM服务器的组网示意图;图6为本发明所述实施例1对应的消息交互流程图;图7为本发明所述实施例2的组网示意图;图8为本发明所述实施例3的组网示意图。
具体实施例方式
本发明提供了查询用户信息的方法,本发明的核心为设置一个搜索代理,对业务引擎服务器或客户端发送的查询请求进行处理后,转发给相应的XDM服务器,并获取相应的呈现信息,然后将呈现信息和XDM服务器返回的查询结果进行整合处理后,返回业务引擎服务器或客户端。
下面我们首先描述应用本发明方法的通信系统,该通信系统的结构如图2所示,包括客户端、聚合代理、XDM服务器、呈现服务器和搜索代理。
搜索代理用于接收聚合代理转发的客户端发送的查询请求,并向XDM服务器或呈现服务器请求获取相应的信息,然后,将接收到的XDM服务器或呈现服务器返回的响应信息进行整合处理后,通过聚合代理返回给客户端。
聚合代理用于接收客户端发送的查询请求,并将该请求转发给搜索代理,将搜索代理传递过来的处理结果返回给客户端,客户端还可以通过聚合代理对XDM服务器中存储的XML文档进行管理。
XDM服务器包括呈现XDM服务器等业务引擎XDM服务器和共享XDM服务器。XDM服务器用于存储和管理各种业务引擎的XML文档,并向搜索代理提供所查询的XML文档信息。
共享XDM服务器用于存储和管理各种业务引擎共享的XML数据。共享XDM服务器包括共享列表XDM服务器、共享群组XDM服务器和共享用户信息XDM服务器三种服务器。
共享列表XDM服务器用于存储共享的URI列表信息,包括列表名、列表包含的URI等信息;共享群组XDM服务器用于存储共享的群组信息,包括群组标识URI、组员URI、群组名和描述、群组策略等信息,包括PoC群组XDM服务器和IM群组XDM服务器等;共享用户信息XDM服务器用于存储共享的用户信息,包括用户标识URI、姓名、年龄和性别等信息。
呈现服务器用于接收、存储和分发包括用户是否在线等用户的呈现信息。呈现XDM服务器用于存储用户的授权规则等信息。
客户端用于向聚合代理发出查询请求,接收并显示聚合代理返回的处理结果,客户端还可以向聚合代理发送操作XDM服务器中存储的XML文档的请求。
在上述通信系统中查询用户信息的方法的具体处理流程如图3所示,包括如下步骤步骤3-1聚合代理将客户端发出的查询请求转发给搜索代理。
在本发明中客户端可以通过HTTP POST方法向聚合代理发出查询请求。HTTP POST消息体中包含对应搜索代理的应用唯一标识AUID和查询表达式。与目前的XCAP协议处理一致,对查询请求操作新设定一个AUID(XCAP应用唯一标识),如“SearchRequest”,客户端发送的包含该AUID的XCAP消息被聚合代理路由转发到搜索代理。目前现有技术中指定已有AUID的XCAP操作请求,如创建或修改某个XDM服务器上XML文档,则被聚合代理直接路由到相应的XDM服务器进行处理。
步骤3-2搜索代理对接收到的请求进行处理后,向XDM服务器或呈现服务器等请求获取相应的信息。
搜索代理接收到聚合代理转发的查询请求后,对该请求进行相应的处理。通常每个XML文档都对应一个授权规则文档,记录该XML文档的读取或查询、修改和删除等操作的权限,以及哪些用户可以执行哪些操作。搜索代理可以根据发送查询请求的用户的URI,通过XCAP协议访问XDM服务器,获取该用户的授权规则等信息,即获取该用户有读取或查询权限的XML文档列表信息,然后,产生相应的查询消息,发送给相应的XDM服务器。或者由XDM服务器直接处理查询请求,对查询请求进行鉴权,确定是否可以查询以及该用户有读取或查询权限的XML文档列表信息,然后在该列表的文档中进行查询,并将最终的查询结果返回给搜索代理,这样虽然减少了交互,但是需要XDM服务器执行大量的鉴权处理,会对XDM服务器性能有一定影响。
XDM服务器根据接收到的搜索代理发送的查询消息后,解析该查询消息,在所述用户有读取或查询权限的XML文档列表中查询相应的XML文档信息。如果所述用户有读取或查询权限的XML文档列表中一个XML文档的授权规则文档虽然设置了允许该用户的URI进行读取操作,但是并不是允许读取或查询该XML文档的全部,而是只允许读取或查询部分内容。则XDM服务器在查询信息时,还要根据授权规则文档信息确定该URI可以获取的内容部分,并在其中查询信息。
另外搜索代理可以在用户的一次查询中向多个XDM服务器获取所需的信息,对于从多个XDM服务器获取所需的信息要进行并集操作的,可以采用并发的方式向多个XDM服务器发送查询请求;对于要以以前一次的查询结果作为后一次的查询条件,则需要顺序执行查询,如客户端查询包含指定URI的群组的组员用户信息,则搜索代理需要先到存储群组信息的XDM服务器获取到包含指定URI的群组,以及群组包含的组员的URI,然后搜索代理再到存储用户信息的XDM服务器查询上述组员URI的用户信息。
搜索代理接收XDM服务器返回的查询结果,查询结果中包括满足查询条件的用户URI或群组成员用户的URI,搜索代理向呈现服务器订阅查询结果中包含的用户URI的呈现信息,呈现服务器将呈现信息返回给搜索代理。
呈现服务器根据每个所述用户URI对应的授权规则文档,确定搜索代理是否被允许获取所订阅的呈现信息,然后将允许搜索代理获取的呈现信息返回给搜索代理。可以预设一个代表搜索代理实体的搜索代理URI,在呈现XDM服务器里的用户的授权规则文档中为搜索代理URI对应设置允许搜索代理订阅的呈现信息。也可以采取搜索代理为发送查询请求的客户端所对应的URI向呈现服务器订阅所述查询结果中包含的URI的呈现信息,呈现服务器根据每个用户URI的授权规则文档,确定发送查询请求的客户端所对应的URI是否被允许获取呈现信息,然后将允许获取的呈现信息返回给搜索代理。搜索代理发送的订阅请求一般为一次性订阅,即在SIP订阅消息中指定过期时间为零即可。另外呈现服务器接收到搜索代理发送的订阅请求后,如果检测到所订阅用户URI的授权规则中要呈现体用户进行确认才可以订阅该用户的呈现信息,则呈现服务器拒绝为搜索代理订阅该用户的呈现信息,如此可避免再查询过程中产生大量的确认通知,而且如果等呈现体用户确认后再发送呈现信息会导致查询响应太慢。
步骤3-3搜索代理对XDM服务器、呈现服务器等返回的信息进行整合处理,通过聚合代理将处理结果返回给客户端。
整合处理的具体方法包括1、搜索代理对多个XDM服务器返回的查询结果进行集合运算。可以联合或合并查询结果,即对查询结果进行并集(UNION)操作;还可以根据查询请求中的条件对查询结果进行交集等操作。比如,用户希望获取PoC业务或IM业务中包含指定成员URI的群组信息,则搜索代理可以对分别从PoC业务的XDM服务器和IM业务的XDM服务器上获得的包含指定成员URI的群组信息进行并集运算;如果是用户希望获取包含指定成员URI的群组即在PoC业务又在IM业务中,则要进行交集运算。
2、搜索代理用后一次获取的信息对前一次的查询结果进行过滤处理。如客户端查询满足一定限定条件(如年龄、性别或地区等)的用户的信息,并限定为当前在线的用户。这样搜索代理首先从XDM服务器上获取满足限定条件的用户信息,然后再从呈现服务器上获取这些用户的是否在线的呈现信息,并根据呈现服务器返回的结果将不在线的用户过滤掉,只将在线用户的用户信息返回给客户端。
3、搜索代理将查询结果进行连接处理,即将多个查询结果进行关联。一般根据用户URI进行关联,如将XDM服务器返回的用户信息和从呈现服务器上获取的呈现信息进行关联,将对应同一个用户URI的用户信息和呈现信息整合为一条记录,当然在关联的同时还可以进行上述的过滤处理。
搜索代理将整合处理后的查询结果通过聚合代理发送给客户端。
本发明提供了查询用户信息的方法的三个实施例,下面分别介绍该三个实施例1客户端需要搜索查询满足限定条件的在线用户。
现有技术中呈现服务器、呈现XDM服务器、观察者客户端、呈现体客户端的组网示意图如图4所示,现有的呈现服务器是基于订阅/通知机制的,没有提供查询机制,也不是一个XCAP服务器,即不提供通过XCAP协议访问呈现信息的接口。其中呈现体客户端发布呈现信息到呈现服务器,观察者客户端订阅呈现体的呈现信息,呈现服务器接收并分发呈现信息给观察者客户端,另外实际应用中用户终端如手机、计算机上的客户端可以同时作为XDM客户端和呈现体客户端,以及观察者客户端。如果搜索代理直接向呈现服务器通过非订阅/通知机制的方式来请求查询获取呈现信息,则需要在搜索代理和呈现服务器之间新增接口协议以及进行相应的处理来实现,这将增加搜索代理和呈现服务器的复杂性。当然将呈现服务器作为XCAP服务器,搜索代理通过XCAP协议访问呈现信息,也是一种可行的方案,毕竟搜索代理可以象访问其他XDM服务器一样访问呈现服务器,不用多增加新的功能,目前的呈现服务器只是作为XCAP客户端,可以访问和操作呈现XDM服务器中XML文档。
为解决上述问题,可设置了一个呈现信息XDM服务器,在该服务器上同步保存呈现信息和用户的授权规则等信息,即当呈现服务器上的呈现信息或呈现XDM服务器上的授权规则信息发生变化时,就同时更新呈现信息XDM服务器上的信息,呈现服务器可以通过XCAP或SIP协议等向呈现信息XDM服务器同步信息。呈现信息XDM服务器、呈现服务器、呈现XDM服务器的组网示意图如图5所示。
下面说明一下该实施例的具体的查询流程1、客户端发送HTTP POST查询请求给聚合代理,查询表达式中包括用户信息条件为“用户性别=女,地区=深圳,运动爱好=网球”,以及呈现信息为在线的条件,同时指定了返回的查询结果还要包含用户URI、用户昵称等用户信息。
2、聚合代理将该请求转发给搜索代理,搜索代理首先向共享用户信息XDM服务器查询满足查询表达式中用户信息条件的XML文档信息。一个包含用户信息的XML文档内容举例如下< xml version="1.0"encoding="UTF-8" >
<user-profile entity="sunqian@msn.com">
<nickname>Aaron</nickname>
<gender>male</gender>
<city>Shenzhen</city>
<hobby>tennis</hobby>
<e-mail>mailto:sunqian@huawei.com</e-mail>
</user-profile>
通常在共享用户信息XDM服务器中存储的每个用户的用户信息XML文档都有对应的授权规则文档,包括了其他用户访问该文档中用户信息的权限如读或查询、写、改等操作,授权规则文档举例如下< xml version="1.0"encoding="UTF-8" >
<ruleset entity="sunqian@msn.com">
<rule id="1">
<conditions><identity>
<domain domain="msn.com"/>
</identity></conditions>
<actions>search</actions>
<transformations><provide-all-profile/></transformations>
</rule>
</ruleset>
上述"sunqian@msn.com"的授权规则ruleset定义的一个规则rule描述了对域domain为"msn.com"的用户都有查询search权限,允许查询的范围为全部用户信息provide-all-profile。
于是,共享用户信息XDM服务器在接收到搜索代理发送的查询消息后,先获取发送查询请求的用户URI有读或查询权限的用户信息XML文档列表,然后在该列表中根据条件“用户性别=女,地区=深圳,运动爱好=网球”进行查询,并将满足条件的用户信息,包括用户URI、用户昵称等返回给搜索代理。另外,查询条件里已经有的信息如用户性别就没有必要返回了。
上述方法要求XDM服务器根据查询条件进行处理,这样如果查询条件比较复杂,会影响XDM服务器的性能,可能会导致其他的XDM操作响应时间变慢。可以采用另外一种方法首先搜索代理从XDM服务器获取发送查询请求的用户URI有读或查询权限的XML文档列表,然后由搜索代理对每个XML文档发送单独的查询请求,最后搜索代理再将每次从XDM服务器获取的查询结果整合在一起。这种方法只需要XDM服务器执行简单的单个XML文档信息的查询即可,即XDM服务器只处理简单的HTTP GET操作即可,对XDM服务器性能影响较小。
3、搜索代理获取包含用户信息的响应消息后,将包含发送查询请求用户的URI以及用户信息对应URI的查询请求发给存储呈现信息的服务器,如呈现服务器或呈现信息XDM服务器,存储呈现信息的服务器获取用户信息对应URI的授权规则,判断发送查询请求用户的URI是否有权限获取是否在线STATUS的呈现信息,然后对有权限的用户查询其呈现信息,并将是否在线的信息返回给搜索代理。呈现信息XDM服务器中的呈现信息可以是呈现服务器主动同步过来的,如使用XCAP协议将呈现信息同步到呈现信息XDM服务器中的XML文档中,或者呈现信息XDM服务器通过SIP订阅了呈现服务器中用户的呈现信息,当被订阅的用户的呈现信息发生变化时,呈现服务器通过SIP通知将更新的呈现信息发送给呈现信息XDM服务器,呈现信息XDM服务器再更新本地保存的呈现信息。
也可以采用在查询时呈现信息XDM服务器才去呈现服务器获取呈现信息。搜索代理将查询请求发给呈现信息XDM服务器,查询请求中包含了要获取呈现信息的用户URI,呈现信息XDM服务器代理发送查询请求的用户对这些URI向呈现服务器发起一次性订阅(FETCH),呈现服务器依据这些URI对应的授权规则发送查询请求的用户进行鉴权,然后将呈现信息通知(NOTIFY)返回给呈现信息XDM服务器,呈现信息XDM服务器再将呈现信息返回给搜索代理。这种方法符合目前呈现业务的鉴权机制以及SIP订阅/通知机制,对呈现服务器不需要进行任何改动。
4、搜索代理将用户信息和呈现信息进行整合后,一起返回给客户端。整合的具体方法可以为以查询的呈现信息的结果对从XDM服务器的查询结果进行过滤处理,即只将呈现信息为在线的用户URI对应的XDM服务器返回查询结果转发给客户端。
上述实施例1对应的消息交互流程图如图6所示。
因为呈现服务器中呈现信息内容非常多,不仅包括是否在线这种基本的状态信息,还可以包括位置,情绪,活动等丰富的信息,另外也不是所有用户都希望或被允许提供呈现信息的查询,呈现服务器可以根据用户或者系统的设置将部分用户的部分呈现信息同步到共享用户信息XDM服务器或呈现信息XDM服务器上,而不是全部。
另外实际上也可以直接由共享用户信息XDM服务器同步呈现服务器中的呈现信息,这样对同时查询用户信息和呈现信息来说实现更简单,搜索代理直接在共享用户信息XDM服务器即可获得用户信息和相应的呈现信息,不必再去其他服务器上去查询了。但是这样与共享用户信息XDM服务器用来存储简单的静态用户信息的设计思想相违背,增加了其复杂性。可以采用折中的方案,即在共享用户信息XDM服务器中的用户信息中增加一个“是否在线”的字段,该字段的值由呈现服务器根据用户是否在线的呈现信息进行同步,当用户的在线状态发生变化时,呈现服务器可以通过SIP或XCAP协议修改共享用户信息XDM服务器中的信息,或者共享用户信息XDM服务器可以订阅用户是否在线的呈现信息。这样需要同步的信息很少,而且在查询在线用户的信息时,搜索代理就不用再去访问呈现服务器了。
实施例2客户端先获取到XDM服务器中的用户信息,再从呈现服务器获取相应的呈现信息。该实施例的组网示意图如图7所示。
在XDM服务器中存储有共享群组信息,该共享群组信息通过如下的XML文档来表示< xml version="1.0"encoding="UTF-8" >
<group>
<list-service uri="sip:meetingroom-F1-7-A08@huawei.com">
<display-name>regular meeting</display-name>
<subject>Application and Software Dept<subject>
<list>
<entry uri="tel:13048907033"/>
<entry uri="sip:sunqian@huawei.com">
<display-name>Sun Qian</display-name>
</entry>
</list>
<ruleset><rule id="1">
<conditions><identity>
<domain domain="huawei.com"/>
</identity></conditions>
<actions><search-handling>allow</search-handling></actions>
<transformations/>
</rule></ruleset>
</list-service>
</group>
所述共享群组信息包括群组URI、display-name(显示名称)、subject(标题)、list(组员列表)和包含的群组成员的URI信息等,以及授权规则ruleset,该授权规则给出的一个规则rule,设置了允许属于域domain="huawei.com"的用户可以查询search该组。对于允许哪些URI查询search该组也可以定义在该XML文档对应的单独的授权规则文档中。
客户端接收到用户输入的包含查询条件的查询指令后,如指定的查询条件为群组的主题subject包含字符串“Application and Software”,以及指定要返回的群组信息包括群组URI、名称等,并且要求返回群组成员的呈现信息如是否在线等。客户端先发送查询请求以获取XDM服务器中的相应信息,聚合代理接到上述请求后,将该查询请求转发给搜索代理,由搜索代理从相应的XDM服务器如共享群组XDM服务器中获取信息并经聚合代理返回给客户端,客户端根据返回信息中查询到的用户的URI再向呈现服务器发送订阅呈现信息的请求,呈现服务器将呈现信息返回给客户端,客户端将搜索代理返回的查询结果和呈现信息进行整合后再显示给用户。对于搜索代理向XDM服务器进行查询的具体过程以及整合的方法在上述实施例1中已有详细描述,此处不再赘述。
此实施例的关键技术在于客户端自动将用户的一次查询分为两次进行,首先通过搜索代理查询获取到除呈现信息之外的用户信息,然后再去呈现服务器订阅相应的呈现信息,最后整合后再显示给用户。当然也可以先将搜索代理返回的查询结果先显示出来,然后客户端再去自动订阅查询结果中包含的用户的呈现信息,客户端每接收到一个呈现服务器返回的包含呈现信息的通知,就刷新一下显示的内容,将呈现信息与相应用户的其他用户信息关联显示,如在同一行进行显示。
如果用户指定的查询限定条件太宽,可能搜索代理从XDM服务器上获取的查询结果会很多,比如用户查询指定性别和地区的用户信息,则可能会返回成千上万条记录,这样不宜将所有的查询结果一次性返回给用户,另外如果查询代理缓存全部的查询结果,然后根据客户端的请求分批次(如批次20条记录)返回,这样查询代理的负担较大,而用户往往可能只获取前几批结果后就不再需要剩余的查询结果了。可以采用如下方案来解决在客户端发送查询请求时,在查询请求中指定批次号n(首次发送查询请求n等于1),当搜索代理向存储用户信息的XDM服务去查询时,根据所述批次号以及预先设定的每批次的数量m(也可以在查询请求中设定每批次的数量),确定要请求获取第(n-1)×m+1至第n×m条用户信息记录,其中XDM服务器中的用户信息记录通常可以以用户的URI等来进行索引,XDM服务器向搜索代理返回所请求的查询结果,搜索代理再转发给客户端,当客户端请求获取下一批时,指定批次自动加1,则搜索代理继续向XDM服务器请求第n×m+1至第(n+1)×m条用户信息记录。这样实际上相当于对用户的查询结果进行了数量上的限制,避免一次返回大量的查询结果,而且通过指定批次的不同,保证每次返回给客户端的查询结果也不重复。
实施例3描述业务引擎服务器与搜索代理之间的交互。该实施例的组网示意图如图8所示。
在本发明中,如Presence、PoC、即时消息和位置等业务引擎的服务器,可以向搜索代理发送查询请求,获取XDM服务器中满足条件的用户信息。同时,搜索代理也可以从业务引擎服务器获取业务引擎中用户的相关业务信息(如从呈现服务器获取呈现信息,从位置服务器获取位置信息等),作为查询结果的一部分返回给客户端。
而现有技术中,业务引擎服务器只能通过XCAP协议进行修改、删除,读取XDM服务器中的单个文档中的信息。因此,本发明中业务引擎可以支持更加复杂的业务请求。如在位置业务中,位置服务器接收到一个定位请求,该请求中指定了要获取属于指定群组并且为指定性别的在线用户的位置,位置服务器则先向搜索代理发送查询请求,查询属于指定群组并且为指定性别的在线用户的URI,搜索代理接收到查询请求后先向存放群组信息XDM服务器获取指定群组所包含的组员用户的URI,再向存放用户信息的XDM服务器获取组员的用户信息,此实施例采用存放用户信息的XDM服务器同步呈现服务器上用户是否在线的呈现信息,存放用户信息的XDM服务器将满足指定性别并且在线的用户URI返回给位置服务器,位置服务器再将这些用户的位置信息返回给请求者。与客户端访问搜索代理不同的是,业务引擎服务器不用通过聚合代理就可以访问搜索代理。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种查询用户信息的方法,其特征在于,设置搜索代理,所述的方法包括步骤A、搜索代理接收客户端发送的包含查询条件的查询请求,并将查询请求消息转发给存储用户信息或群组信息的XDM服务器;B、搜索代理接收所述XDM服务器返回的查询结果,查询结果中包括满足查询条件的用户URI或群组成员用户的URI;C、搜索代理向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息;D、呈现服务器将呈现信息返回给搜索代理;E、搜索代理将所述呈现服务器返回的呈现信息和所述XDM服务器返回的查询结果进行整合后发送给客户端。
2.根据权利要求1所述的方法,其特征在于,所述的步骤A之前还包括步骤客户端首先向聚合代理发送查询请求,聚合代理将所述查询请求路由到搜索代理;所述的步骤E具体为搜索代理将所述呈现服务器返回的呈现信息和所述XDM服务器返回的查询结果进行整合后经由聚合代理发送给客户端。
3.根据权利要求1或2所述的方法,其特征在于,所述的步骤D具体为呈现服务器根据每个所述用户URI对应的授权规则文档,确定搜索代理是否被允许获取所订阅的呈现信息,然后将允许搜索代理获取的呈现信息返回给搜索代理。
4.根据权利要求3所述的方法,其特征在于,预设一个代表搜索代理实体的搜索代理URI,在呈现XDM服务器里的用户的授权规则文档中为搜索代理URI对应设置允许搜索代理订阅的呈现信息。
5.根据权利要求1或2所述的方法,其特征在于,所述的步骤C具体为搜索代理为发送查询请求的客户端所对应的URI向呈现服务器订阅所述查询结果中包含的URI的呈现信息;所述的步骤D具体为呈现服务器根据每个所述用户URI的授权规则文档,确定发送查询请求的客户端所对应的URI是否被允许获取呈现信息,然后将允许获取的呈现信息返回给搜索代理。
6.根据权利要求1或2所述的方法,其特征在于,步骤A中所述的查询条件中还包括呈现信息的限定条件,则所述的步骤E具体为搜索代理将所述呈现服务器返回的呈现信息依据所述的呈现信息的限定条件进行过滤处理,将满足限定条件的用户URI的呈现信息和查询结果进行整合后发送给客户端。
7.根据权利要求1或2所述的方法,其特征在于,步骤A中所述的查询条件中还包括呈现信息的限定条件,则所述的步骤C具体为搜索代理向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息,并在订阅消息中包含所述的限定条件;所述的步骤D具体为呈现服务器将满足所述限定条件的呈现信息返回给搜索代理。
8.根据权利要求1或2所述的方法,其特征在于,步骤C之后所述呈现服务器接收到搜索代理发送的订阅请求后,如果检测到所订阅用户URI的授权规则中要进行确认才可以订阅该用户的呈现信息,则呈现服务器拒绝为搜索代理订阅该用户的呈现信息。
9.一种查询用户信息的方法,其特征在于,设置搜索代理,存储用户信息的XDM服务器向呈现服务器订阅用户的呈现信息,呈现服务器在所述XDM服务器订阅的呈现信息发生改变时发送相应的通知给所述XDM服务器,所述XDM服务器根据所述通知进行呈现信息的同步更新处理,所述查询用户信息的方法包括步骤A、搜索代理接收经聚合代理转发的客户端的查询请求,并将查询请求消息转发给存储用户信息的XDM服务器,所述查询请求中的限定条件包含有对用户呈现信息的限定条件;B、所述XDM服务器根据查询请求中的限定条件确定查询结果,并返回给搜索代理;C、搜索代理将查询结果通过聚合代理转发给客户端。
10.根据权利要求9所述的方法,其特征在于,所述存储用户信息的XDM服务器为共享用户信息XDM服务器,向呈现服务器订阅用户的呈现信息为是否在线的呈现信息,呈现服务器在用户上线或下线时发送相应的通知给所述共享用户信息XDM服务器,步骤A中所述的对用户呈现信息的限定条件为用户呈现信息为在线状态。
11.一种查询用户信息的方法,其特征在于,设置搜索代理,所述的方法包括步骤A、客户端接收到用户输入的包含查询条件的查询指令后,先发送查询请求以获取XDM服务器中的相应信息;B、搜索代理接收客户端发送的查询请求,并将查询请求消息转发给相应的XDM服务器;C、搜索代理接收所述XDM服务器返回的查询结果,查询结果中包括查询到的用户URI,然后转发给客户端;D、客户端向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息;E、呈现服务器将呈现信息返回给客户端;F、客户端将所述呈现服务器返回的呈现信息和所述搜索代理返回的查询结果进行整合后显示给用户。
12.根据权利要求11所述的方法,其特征在于,步骤C之后客户端接收到搜索代理返回的查询结果后先显示出来;步骤F中客户端每接收到一个呈现服务器返回的包含呈现信息的通知,就刷新一下显示的内容,将呈现信息与所述搜索代理返回查询结果中的用户信息关联显示。
13.根据权利要求11或12所述的方法,其特征在于,步骤C中搜索代理先将所述XDM服务器返回的查询结果进行缓存,然后分批次转发给客户端。
14.根据权利要求11或12所述的方法,其特征在于,步骤A中所述的查询请求中包括批次信息,步骤B中搜索代理向XDM服务器获取与批次相应的查询结果。
15.一种查询用户信息的方法,其特征在于,设置搜索代理,存放呈现信息的服务器提供XCAP服务,所述的方法包括步骤A、搜索代理接收客户端发送的包含查询条件的查询请求,并将查询请求消息转发给存放用户信息的XDM服务器或存放呈现信息的服务器;B、搜索代理接收服务器返回的查询结果,查询结果中包括满足查询条件的用户信息和呈现信息;C、搜索代理将所述用户信息和呈现信息进行整合后发送给客户端。
16.根据权利要求15所述的方法,其特征在于,所述存放呈现信息的服务器为呈现服务器,或呈现信息XDM服务器,所述呈现信息XDM服务器同步呈现服务器中用户的呈现信息。
全文摘要
本发明提供了一种查询用户信息的方法,包括步骤搜索代理接收客户端发送的包含查询条件的查询请求,并将查询请求消息转发给存储用户信息的XDM服务器,搜索代理接收所述XDM服务器返回的查询结果,搜索代理向呈现服务器订阅所述查询结果中包含的用户URI的呈现信息,搜索代理将所述呈现服务器返回的呈现信息和查询结果进行整合后发送给客户端。利用本发明所述方法,可使用户在搜到XDM服务器中的用户信息的同时获得用户的呈现信息。
文档编号H04L12/58GK1859322SQ20051012092
公开日2006年11月8日 申请日期2005年12月17日 优先权日2005年12月17日
发明者孙谦, 宋雪飞, 田林一, 招扬, 鲍洪庆 申请人:华为技术有限公司