專利名稱:查詢用戶信息的方法
技術領域:
本發(fā)明涉及通訊領域,尤其涉及查詢用戶信息的方法。
背景技術:
目前通信系統(tǒng)中的各種業(yè)務引擎如Presence(呈現)、PoC(一鍵通)、IM(即時消息)等都需要訪問和操作一些共享的或各自所需要的信息,如URI(統(tǒng)一資源標識符)列表、群組、接入控制策略和授權策略等信息。這些信息使用XML(可擴展標記語言),儲存在XDM(XML文檔管理)服務器中,各種業(yè)務引擎使用XCAP(XML配置訪問協(xié)議)訪問和操作這些XML數據。
一般每個業(yè)務引擎都有自己的XDM服務器,存儲和管理業(yè)務每個業(yè)務引擎專用的XML數據。同時也可以設置共享的XDM服務器,存儲和管理各業(yè)務引擎都需要使用的XML數據,通常XDM服務器中存放的信息都是一些相對靜態(tài)的信息,如用戶的配置數據,群組信息和用戶信息等,而業(yè)務引擎服務器中通常存放比較動態(tài)的信息,如呈現服務器中存放的呈現信息。除了業(yè)務引擎服務器可以直接訪問XDM服務器中的信息外,客戶端也可以使用XCAP協(xié)議通過聚合代理來訪問和操作XML數據,客戶端通過聚合代理來訪問XDM服務器的組網示意圖如圖1所示。聚合代理是XDM客戶端在用戶設備實現訪問XDM服務器上的XML文檔的連接點,主要進行對XDM客戶端的鑒權、路由XCAP請求到相應的XDM服務器等操作。聚合代理的具體使用原理可以參見OMA(開放移動聯(lián)盟)發(fā)布的XDM V1.0相關標準規(guī)范,以及IETF(因特網工程組)發(fā)布的XCAP協(xié)議文檔。
在圖1所示的組網中,客戶端可以進行XML文檔的創(chuàng)建、刪除、修改和獲取等操作,客戶端獲取XML文檔的HTTP GET操作的過程如下1、XDM客戶端發(fā)送獲取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"組中的一個成員,其統(tǒng)一資源標識符(uri)為"sip:sunqian@huawei.com",顯示名稱(display-name)為Sun Qian。而在實際應用中,很多情況用戶希望能指定一些限定條件來獲取其他用戶的信息,如查詢包含自己URI的群組中的其他成員的信息,比如年齡,性別和聯(lián)系方法等靜態(tài)的用戶信息以及是否在線,位置和情緒信息等動態(tài)的呈現信息,這些用戶的信息可能位于不同的XML文檔,甚至不同的XDM服務器,以及呈現服務器中。上述的需求無法簡單得通過HTTP GET操作流程來實現,尤其是呈現服務器目前只通過訂閱/通知方法而不支持通過HTTP方法向客戶端提供呈現信息。
發(fā)明內容
鑒于上述現有技術所存在的問題,本發(fā)明的目的是提供查詢用戶信息的方法,可使用戶在獲取到XDM服務器中其他用戶信息的同時獲得這些用戶的呈現信息。
本發(fā)明的目的是通過以下技術方案實現的一種查詢用戶信息的方法,設置搜索代理,所述的方法包括步驟A、搜索代理接收客戶端發(fā)送的包含查詢條件的查詢請求,并將查詢請求消息轉發(fā)給存儲用戶信息或群組信息的XDM服務器;B、搜索代理接收所述XDM服務器返回的查詢結果,查詢結果中包括滿足查詢條件的用戶URI或群組成員用戶的URI;C、搜索代理向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息;D、呈現服務器將呈現信息返回給搜索代理;E、搜索代理將所述呈現服務器返回的呈現信息和所述XDM服務器返回的查詢結果進行整合后發(fā)送給客戶端。
所述的步驟A之前還包括步驟
客戶端首先向聚合代理發(fā)送查詢請求,聚合代理將所述查詢請求路由到搜索代理;所述的步驟E具體為搜索代理將所述呈現服務器返回的呈現信息和所述XDM服務器返回的查詢結果進行整合后經由聚合代理發(fā)送給客戶端。
進一步,所述的步驟D具體為呈現服務器根據每個所述用戶URI對應的授權規(guī)則文檔,確定搜索代理是否被允許獲取所訂閱的呈現信息,然后將允許搜索代理獲取的呈現信息返回給搜索代理。
進一步,預設一個代表搜索代理實體的搜索代理URI,在呈現XDM服務器里的用戶的授權規(guī)則文檔中為搜索代理URI對應設置允許搜索代理訂閱的呈現信息。
所述的步驟C具體為搜索代理為發(fā)送查詢請求的客戶端所對應的URI向呈現服務器訂閱所述查詢結果中包含的URI的呈現信息;所述的步驟D具體為呈現服務器根據每個所述用戶URI的授權規(guī)則文檔,確定發(fā)送查詢請求的客戶端所對應的URI是否被允許獲取呈現信息,然后將允許獲取的呈現信息返回給搜索代理。
步驟A中所述的查詢條件中還包括呈現信息的限定條件,則所述的步驟E具體為搜索代理將所述呈現服務器返回的呈現信息依據所述的呈現信息的限定條件進行過濾處理,將滿足限定條件的用戶URI的呈現信息和查詢結果進行整合后發(fā)送給客戶端。
步驟A中所述的查詢條件中還包括呈現信息的限定條件,則所述的步驟C具體為
搜索代理向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息,并在訂閱消息中包含所述的限定條件;所述的步驟D具體為呈現服務器將滿足所述限定條件的呈現信息返回給搜索代理。
步驟C之后所述呈現服務器接收到搜索代理發(fā)送的訂閱請求后,如果檢測到所訂閱用戶URI的授權規(guī)則中要進行確認才可以訂閱該用戶的呈現信息,則呈現服務器拒絕為搜索代理訂閱該用戶的呈現信息。
一種查詢用戶信息的方法,設置搜索代理,存儲用戶信息的XDM服務器向呈現服務器訂閱用戶的呈現信息,呈現服務器在所述XDM服務器訂閱的呈現信息發(fā)生改變時發(fā)送相應的通知給所述XDM服務器,所述XDM服務器根據所述通知進行呈現信息的同步更新處理,所述查詢用戶信息的方法包括步驟A、搜索代理接收經聚合代理轉發(fā)的客戶端的查詢請求,并將查詢請求消息轉發(fā)給存儲用戶信息的XDM服務器,所述查詢請求中的限定條件包含有對用戶呈現信息的限定條件;B、所述XDM服務器根據查詢請求中的限定條件確定查詢結果,并返回給搜索代理;C、搜索代理將查詢結果通過聚合代理轉發(fā)給客戶端。
進一步,所述存儲用戶信息的XDM服務器為共享用戶信息XDM服務器,向呈現服務器訂閱用戶的呈現信息為是否在線的呈現信息,呈現服務器在用戶上線或下線時發(fā)送相應的通知給所述共享用戶信息XDM服務器,步驟A中所述的對用戶呈現信息的限定條件為用戶呈現信息為在線狀態(tài)。
一種查詢用戶信息的方法,設置搜索代理,所述的方法包括步驟
A、客戶端接收到用戶輸入的包含查詢條件的查詢指令后,先發(fā)送查詢請求以獲取XDM服務器中的相應信息;B、搜索代理接收客戶端發(fā)送的查詢請求,并將查詢請求消息轉發(fā)給相應的XDM服務器;C、搜索代理接收所述XDM服務器返回的查詢結果,查詢結果中包括查詢到的用戶URI,然后轉發(fā)給客戶端;D、客戶端向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息;E、呈現服務器將呈現信息返回給客戶端;F、客戶端將所述呈現服務器返回的呈現信息和所述搜索代理返回的查詢結果進行整合后顯示給用戶。
進一步,步驟C之后客戶端接收到搜索代理返回的查詢結果后先顯示出來;步驟F中客戶端每接收到一個呈現服務器返回的包含呈現信息的通知,就刷新一下顯示的內容,將呈現信息與所述搜索代理返回查詢結果中的用戶信息關聯(lián)顯示。
步驟C中搜索代理先將所述XDM服務器返回的查詢結果進行緩存,然后分批次轉發(fā)給客戶端。
步驟A中所述的查詢請求中包括批次信息,步驟B中搜索代理向XDM服務器獲取與批次相應的查詢結果。
一種查詢用戶信息的方法,設置搜索代理,存放呈現信息的服務器提供XCAP服務,所述的方法包括步驟A、搜索代理接收客戶端發(fā)送的包含查詢條件的查詢請求,并將查詢請求消息轉發(fā)給存放用戶信息的XDM服務器或存放呈現信息的服務器;B、搜索代理接收服務器返回的查詢結果,查詢結果中包括滿足查詢條件的用戶信息和呈現信息;C、搜索代理將所述用戶信息和呈現信息進行整合后發(fā)送給客戶端。
進一步,所述存放呈現信息的服務器為呈現服務器,或呈現信息XDM服務器,所述呈現信息XDM服務器同步呈現服務器中用戶的呈現信息。
由上述本發(fā)明提供的技術方案可以看出,本發(fā)明通過設置搜索代理,能夠使客戶端可以一次從多個XDM服務器中的多個XML文檔中獲取用戶信息,并同時獲取相應呈現信息返回給客戶端,而且可以使客戶端不再局限于使用HTTP GET方法來簡單得獲取服務器上存儲的單個XML文檔中的用戶信息。本發(fā)明擴充了呈現信息的獲取方式,并增強了查詢XML文檔中用戶信息的能力。
圖1為客戶端通過聚合代理來訪問XDM服務器的組網示意圖;圖2為應用本發(fā)明方法的通信系統(tǒng)的結構示意圖;圖3為本發(fā)明查詢用戶信息的方法的具體處理流程圖;圖4為現有技術中呈現服務器、呈現XDM服務器的組網示意圖;圖5為本發(fā)明所述實施例1中呈現信息XDM服務器、呈現服務器和呈現XDM服務器的組網示意圖;圖6為本發(fā)明所述實施例1對應的消息交互流程圖;圖7為本發(fā)明所述實施例2的組網示意圖;圖8為本發(fā)明所述實施例3的組網示意圖。
具體實施例方式
本發(fā)明提供了查詢用戶信息的方法,本發(fā)明的核心為設置一個搜索代理,對業(yè)務引擎服務器或客戶端發(fā)送的查詢請求進行處理后,轉發(fā)給相應的XDM服務器,并獲取相應的呈現信息,然后將呈現信息和XDM服務器返回的查詢結果進行整合處理后,返回業(yè)務引擎服務器或客戶端。
下面我們首先描述應用本發(fā)明方法的通信系統(tǒng),該通信系統(tǒng)的結構如圖2所示,包括客戶端、聚合代理、XDM服務器、呈現服務器和搜索代理。
搜索代理用于接收聚合代理轉發(fā)的客戶端發(fā)送的查詢請求,并向XDM服務器或呈現服務器請求獲取相應的信息,然后,將接收到的XDM服務器或呈現服務器返回的響應信息進行整合處理后,通過聚合代理返回給客戶端。
聚合代理用于接收客戶端發(fā)送的查詢請求,并將該請求轉發(fā)給搜索代理,將搜索代理傳遞過來的處理結果返回給客戶端,客戶端還可以通過聚合代理對XDM服務器中存儲的XML文檔進行管理。
XDM服務器包括呈現XDM服務器等業(yè)務引擎XDM服務器和共享XDM服務器。XDM服務器用于存儲和管理各種業(yè)務引擎的XML文檔,并向搜索代理提供所查詢的XML文檔信息。
共享XDM服務器用于存儲和管理各種業(yè)務引擎共享的XML數據。共享XDM服務器包括共享列表XDM服務器、共享群組XDM服務器和共享用戶信息XDM服務器三種服務器。
共享列表XDM服務器用于存儲共享的URI列表信息,包括列表名、列表包含的URI等信息;共享群組XDM服務器用于存儲共享的群組信息,包括群組標識URI、組員URI、群組名和描述、群組策略等信息,包括PoC群組XDM服務器和IM群組XDM服務器等;共享用戶信息XDM服務器用于存儲共享的用戶信息,包括用戶標識URI、姓名、年齡和性別等信息。
呈現服務器用于接收、存儲和分發(fā)包括用戶是否在線等用戶的呈現信息。呈現XDM服務器用于存儲用戶的授權規(guī)則等信息。
客戶端用于向聚合代理發(fā)出查詢請求,接收并顯示聚合代理返回的處理結果,客戶端還可以向聚合代理發(fā)送操作XDM服務器中存儲的XML文檔的請求。
在上述通信系統(tǒng)中查詢用戶信息的方法的具體處理流程如圖3所示,包括如下步驟步驟3-1聚合代理將客戶端發(fā)出的查詢請求轉發(fā)給搜索代理。
在本發(fā)明中客戶端可以通過HTTP POST方法向聚合代理發(fā)出查詢請求。HTTP POST消息體中包含對應搜索代理的應用唯一標識AUID和查詢表達式。與目前的XCAP協(xié)議處理一致,對查詢請求操作新設定一個AUID(XCAP應用唯一標識),如“SearchRequest”,客戶端發(fā)送的包含該AUID的XCAP消息被聚合代理路由轉發(fā)到搜索代理。目前現有技術中指定已有AUID的XCAP操作請求,如創(chuàng)建或修改某個XDM服務器上XML文檔,則被聚合代理直接路由到相應的XDM服務器進行處理。
步驟3-2搜索代理對接收到的請求進行處理后,向XDM服務器或呈現服務器等請求獲取相應的信息。
搜索代理接收到聚合代理轉發(fā)的查詢請求后,對該請求進行相應的處理。通常每個XML文檔都對應一個授權規(guī)則文檔,記錄該XML文檔的讀取或查詢、修改和刪除等操作的權限,以及哪些用戶可以執(zhí)行哪些操作。搜索代理可以根據發(fā)送查詢請求的用戶的URI,通過XCAP協(xié)議訪問XDM服務器,獲取該用戶的授權規(guī)則等信息,即獲取該用戶有讀取或查詢權限的XML文檔列表信息,然后,產生相應的查詢消息,發(fā)送給相應的XDM服務器?;蛘哂蒟DM服務器直接處理查詢請求,對查詢請求進行鑒權,確定是否可以查詢以及該用戶有讀取或查詢權限的XML文檔列表信息,然后在該列表的文檔中進行查詢,并將最終的查詢結果返回給搜索代理,這樣雖然減少了交互,但是需要XDM服務器執(zhí)行大量的鑒權處理,會對XDM服務器性能有一定影響。
XDM服務器根據接收到的搜索代理發(fā)送的查詢消息后,解析該查詢消息,在所述用戶有讀取或查詢權限的XML文檔列表中查詢相應的XML文檔信息。如果所述用戶有讀取或查詢權限的XML文檔列表中一個XML文檔的授權規(guī)則文檔雖然設置了允許該用戶的URI進行讀取操作,但是并不是允許讀取或查詢該XML文檔的全部,而是只允許讀取或查詢部分內容。則XDM服務器在查詢信息時,還要根據授權規(guī)則文檔信息確定該URI可以獲取的內容部分,并在其中查詢信息。
另外搜索代理可以在用戶的一次查詢中向多個XDM服務器獲取所需的信息,對于從多個XDM服務器獲取所需的信息要進行并集操作的,可以采用并發(fā)的方式向多個XDM服務器發(fā)送查詢請求;對于要以以前一次的查詢結果作為后一次的查詢條件,則需要順序執(zhí)行查詢,如客戶端查詢包含指定URI的群組的組員用戶信息,則搜索代理需要先到存儲群組信息的XDM服務器獲取到包含指定URI的群組,以及群組包含的組員的URI,然后搜索代理再到存儲用戶信息的XDM服務器查詢上述組員URI的用戶信息。
搜索代理接收XDM服務器返回的查詢結果,查詢結果中包括滿足查詢條件的用戶URI或群組成員用戶的URI,搜索代理向呈現服務器訂閱查詢結果中包含的用戶URI的呈現信息,呈現服務器將呈現信息返回給搜索代理。
呈現服務器根據每個所述用戶URI對應的授權規(guī)則文檔,確定搜索代理是否被允許獲取所訂閱的呈現信息,然后將允許搜索代理獲取的呈現信息返回給搜索代理。可以預設一個代表搜索代理實體的搜索代理URI,在呈現XDM服務器里的用戶的授權規(guī)則文檔中為搜索代理URI對應設置允許搜索代理訂閱的呈現信息。也可以采取搜索代理為發(fā)送查詢請求的客戶端所對應的URI向呈現服務器訂閱所述查詢結果中包含的URI的呈現信息,呈現服務器根據每個用戶URI的授權規(guī)則文檔,確定發(fā)送查詢請求的客戶端所對應的URI是否被允許獲取呈現信息,然后將允許獲取的呈現信息返回給搜索代理。搜索代理發(fā)送的訂閱請求一般為一次性訂閱,即在SIP訂閱消息中指定過期時間為零即可。另外呈現服務器接收到搜索代理發(fā)送的訂閱請求后,如果檢測到所訂閱用戶URI的授權規(guī)則中要呈現體用戶進行確認才可以訂閱該用戶的呈現信息,則呈現服務器拒絕為搜索代理訂閱該用戶的呈現信息,如此可避免再查詢過程中產生大量的確認通知,而且如果等呈現體用戶確認后再發(fā)送呈現信息會導致查詢響應太慢。
步驟3-3搜索代理對XDM服務器、呈現服務器等返回的信息進行整合處理,通過聚合代理將處理結果返回給客戶端。
整合處理的具體方法包括1、搜索代理對多個XDM服務器返回的查詢結果進行集合運算??梢月?lián)合或合并查詢結果,即對查詢結果進行并集(UNION)操作;還可以根據查詢請求中的條件對查詢結果進行交集等操作。比如,用戶希望獲取PoC業(yè)務或IM業(yè)務中包含指定成員URI的群組信息,則搜索代理可以對分別從PoC業(yè)務的XDM服務器和IM業(yè)務的XDM服務器上獲得的包含指定成員URI的群組信息進行并集運算;如果是用戶希望獲取包含指定成員URI的群組即在PoC業(yè)務又在IM業(yè)務中,則要進行交集運算。
2、搜索代理用后一次獲取的信息對前一次的查詢結果進行過濾處理。如客戶端查詢滿足一定限定條件(如年齡、性別或地區(qū)等)的用戶的信息,并限定為當前在線的用戶。這樣搜索代理首先從XDM服務器上獲取滿足限定條件的用戶信息,然后再從呈現服務器上獲取這些用戶的是否在線的呈現信息,并根據呈現服務器返回的結果將不在線的用戶過濾掉,只將在線用戶的用戶信息返回給客戶端。
3、搜索代理將查詢結果進行連接處理,即將多個查詢結果進行關聯(lián)。一般根據用戶URI進行關聯(lián),如將XDM服務器返回的用戶信息和從呈現服務器上獲取的呈現信息進行關聯(lián),將對應同一個用戶URI的用戶信息和呈現信息整合為一條記錄,當然在關聯(lián)的同時還可以進行上述的過濾處理。
搜索代理將整合處理后的查詢結果通過聚合代理發(fā)送給客戶端。
本發(fā)明提供了查詢用戶信息的方法的三個實施例,下面分別介紹該三個實施例1客戶端需要搜索查詢滿足限定條件的在線用戶。
現有技術中呈現服務器、呈現XDM服務器、觀察者客戶端、呈現體客戶端的組網示意圖如圖4所示,現有的呈現服務器是基于訂閱/通知機制的,沒有提供查詢機制,也不是一個XCAP服務器,即不提供通過XCAP協(xié)議訪問呈現信息的接口。其中呈現體客戶端發(fā)布呈現信息到呈現服務器,觀察者客戶端訂閱呈現體的呈現信息,呈現服務器接收并分發(fā)呈現信息給觀察者客戶端,另外實際應用中用戶終端如手機、計算機上的客戶端可以同時作為XDM客戶端和呈現體客戶端,以及觀察者客戶端。如果搜索代理直接向呈現服務器通過非訂閱/通知機制的方式來請求查詢獲取呈現信息,則需要在搜索代理和呈現服務器之間新增接口協(xié)議以及進行相應的處理來實現,這將增加搜索代理和呈現服務器的復雜性。當然將呈現服務器作為XCAP服務器,搜索代理通過XCAP協(xié)議訪問呈現信息,也是一種可行的方案,畢竟搜索代理可以象訪問其他XDM服務器一樣訪問呈現服務器,不用多增加新的功能,目前的呈現服務器只是作為XCAP客戶端,可以訪問和操作呈現XDM服務器中XML文檔。
為解決上述問題,可設置了一個呈現信息XDM服務器,在該服務器上同步保存呈現信息和用戶的授權規(guī)則等信息,即當呈現服務器上的呈現信息或呈現XDM服務器上的授權規(guī)則信息發(fā)生變化時,就同時更新呈現信息XDM服務器上的信息,呈現服務器可以通過XCAP或SIP協(xié)議等向呈現信息XDM服務器同步信息。呈現信息XDM服務器、呈現服務器、呈現XDM服務器的組網示意圖如圖5所示。
下面說明一下該實施例的具體的查詢流程1、客戶端發(fā)送HTTP POST查詢請求給聚合代理,查詢表達式中包括用戶信息條件為“用戶性別=女,地區(qū)=深圳,運動愛好=網球”,以及呈現信息為在線的條件,同時指定了返回的查詢結果還要包含用戶URI、用戶昵稱等用戶信息。
2、聚合代理將該請求轉發(fā)給搜索代理,搜索代理首先向共享用戶信息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文檔都有對應的授權規(guī)則文檔,包括了其他用戶訪問該文檔中用戶信息的權限如讀或查詢、寫、改等操作,授權規(guī)則文檔舉例如下< 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"的授權規(guī)則ruleset定義的一個規(guī)則rule描述了對域domain為"msn.com"的用戶都有查詢search權限,允許查詢的范圍為全部用戶信息provide-all-profile。
于是,共享用戶信息XDM服務器在接收到搜索代理發(fā)送的查詢消息后,先獲取發(fā)送查詢請求的用戶URI有讀或查詢權限的用戶信息XML文檔列表,然后在該列表中根據條件“用戶性別=女,地區(qū)=深圳,運動愛好=網球”進行查詢,并將滿足條件的用戶信息,包括用戶URI、用戶昵稱等返回給搜索代理。另外,查詢條件里已經有的信息如用戶性別就沒有必要返回了。
上述方法要求XDM服務器根據查詢條件進行處理,這樣如果查詢條件比較復雜,會影響XDM服務器的性能,可能會導致其他的XDM操作響應時間變慢??梢圆捎昧硗庖环N方法首先搜索代理從XDM服務器獲取發(fā)送查詢請求的用戶URI有讀或查詢權限的XML文檔列表,然后由搜索代理對每個XML文檔發(fā)送單獨的查詢請求,最后搜索代理再將每次從XDM服務器獲取的查詢結果整合在一起。這種方法只需要XDM服務器執(zhí)行簡單的單個XML文檔信息的查詢即可,即XDM服務器只處理簡單的HTTP GET操作即可,對XDM服務器性能影響較小。
3、搜索代理獲取包含用戶信息的響應消息后,將包含發(fā)送查詢請求用戶的URI以及用戶信息對應URI的查詢請求發(fā)給存儲呈現信息的服務器,如呈現服務器或呈現信息XDM服務器,存儲呈現信息的服務器獲取用戶信息對應URI的授權規(guī)則,判斷發(fā)送查詢請求用戶的URI是否有權限獲取是否在線STATUS的呈現信息,然后對有權限的用戶查詢其呈現信息,并將是否在線的信息返回給搜索代理。呈現信息XDM服務器中的呈現信息可以是呈現服務器主動同步過來的,如使用XCAP協(xié)議將呈現信息同步到呈現信息XDM服務器中的XML文檔中,或者呈現信息XDM服務器通過SIP訂閱了呈現服務器中用戶的呈現信息,當被訂閱的用戶的呈現信息發(fā)生變化時,呈現服務器通過SIP通知將更新的呈現信息發(fā)送給呈現信息XDM服務器,呈現信息XDM服務器再更新本地保存的呈現信息。
也可以采用在查詢時呈現信息XDM服務器才去呈現服務器獲取呈現信息。搜索代理將查詢請求發(fā)給呈現信息XDM服務器,查詢請求中包含了要獲取呈現信息的用戶URI,呈現信息XDM服務器代理發(fā)送查詢請求的用戶對這些URI向呈現服務器發(fā)起一次性訂閱(FETCH),呈現服務器依據這些URI對應的授權規(guī)則發(fā)送查詢請求的用戶進行鑒權,然后將呈現信息通知(NOTIFY)返回給呈現信息XDM服務器,呈現信息XDM服務器再將呈現信息返回給搜索代理。這種方法符合目前呈現業(yè)務的鑒權機制以及SIP訂閱/通知機制,對呈現服務器不需要進行任何改動。
4、搜索代理將用戶信息和呈現信息進行整合后,一起返回給客戶端。整合的具體方法可以為以查詢的呈現信息的結果對從XDM服務器的查詢結果進行過濾處理,即只將呈現信息為在線的用戶URI對應的XDM服務器返回查詢結果轉發(fā)給客戶端。
上述實施例1對應的消息交互流程圖如圖6所示。
因為呈現服務器中呈現信息內容非常多,不僅包括是否在線這種基本的狀態(tài)信息,還可以包括位置,情緒,活動等豐富的信息,另外也不是所有用戶都希望或被允許提供呈現信息的查詢,呈現服務器可以根據用戶或者系統(tǒng)的設置將部分用戶的部分呈現信息同步到共享用戶信息XDM服務器或呈現信息XDM服務器上,而不是全部。
另外實際上也可以直接由共享用戶信息XDM服務器同步呈現服務器中的呈現信息,這樣對同時查詢用戶信息和呈現信息來說實現更簡單,搜索代理直接在共享用戶信息XDM服務器即可獲得用戶信息和相應的呈現信息,不必再去其他服務器上去查詢了。但是這樣與共享用戶信息XDM服務器用來存儲簡單的靜態(tài)用戶信息的設計思想相違背,增加了其復雜性??梢圆捎谜壑械姆桨福丛诠蚕碛脩粜畔DM服務器中的用戶信息中增加一個“是否在線”的字段,該字段的值由呈現服務器根據用戶是否在線的呈現信息進行同步,當用戶的在線狀態(tài)發(fā)生變化時,呈現服務器可以通過SIP或XCAP協(xié)議修改共享用戶信息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信息等,以及授權規(guī)則ruleset,該授權規(guī)則給出的一個規(guī)則rule,設置了允許屬于域domain="huawei.com"的用戶可以查詢search該組。對于允許哪些URI查詢search該組也可以定義在該XML文檔對應的單獨的授權規(guī)則文檔中。
客戶端接收到用戶輸入的包含查詢條件的查詢指令后,如指定的查詢條件為群組的主題subject包含字符串“Application and Software”,以及指定要返回的群組信息包括群組URI、名稱等,并且要求返回群組成員的呈現信息如是否在線等??蛻舳讼劝l(fā)送查詢請求以獲取XDM服務器中的相應信息,聚合代理接到上述請求后,將該查詢請求轉發(fā)給搜索代理,由搜索代理從相應的XDM服務器如共享群組XDM服務器中獲取信息并經聚合代理返回給客戶端,客戶端根據返回信息中查詢到的用戶的URI再向呈現服務器發(fā)送訂閱呈現信息的請求,呈現服務器將呈現信息返回給客戶端,客戶端將搜索代理返回的查詢結果和呈現信息進行整合后再顯示給用戶。對于搜索代理向XDM服務器進行查詢的具體過程以及整合的方法在上述實施例1中已有詳細描述,此處不再贅述。
此實施例的關鍵技術在于客戶端自動將用戶的一次查詢分為兩次進行,首先通過搜索代理查詢獲取到除呈現信息之外的用戶信息,然后再去呈現服務器訂閱相應的呈現信息,最后整合后再顯示給用戶。當然也可以先將搜索代理返回的查詢結果先顯示出來,然后客戶端再去自動訂閱查詢結果中包含的用戶的呈現信息,客戶端每接收到一個呈現服務器返回的包含呈現信息的通知,就刷新一下顯示的內容,將呈現信息與相應用戶的其他用戶信息關聯(lián)顯示,如在同一行進行顯示。
如果用戶指定的查詢限定條件太寬,可能搜索代理從XDM服務器上獲取的查詢結果會很多,比如用戶查詢指定性別和地區(qū)的用戶信息,則可能會返回成千上萬條記錄,這樣不宜將所有的查詢結果一次性返回給用戶,另外如果查詢代理緩存全部的查詢結果,然后根據客戶端的請求分批次(如批次20條記錄)返回,這樣查詢代理的負擔較大,而用戶往往可能只獲取前幾批結果后就不再需要剩余的查詢結果了??梢圆捎萌缦路桨竵斫鉀Q在客戶端發(fā)送查詢請求時,在查詢請求中指定批次號n(首次發(fā)送查詢請求n等于1),當搜索代理向存儲用戶信息的XDM服務去查詢時,根據所述批次號以及預先設定的每批次的數量m(也可以在查詢請求中設定每批次的數量),確定要請求獲取第(n-1)×m+1至第n×m條用戶信息記錄,其中XDM服務器中的用戶信息記錄通??梢砸杂脩舻腢RI等來進行索引,XDM服務器向搜索代理返回所請求的查詢結果,搜索代理再轉發(fā)給客戶端,當客戶端請求獲取下一批時,指定批次自動加1,則搜索代理繼續(xù)向XDM服務器請求第n×m+1至第(n+1)×m條用戶信息記錄。這樣實際上相當于對用戶的查詢結果進行了數量上的限制,避免一次返回大量的查詢結果,而且通過指定批次的不同,保證每次返回給客戶端的查詢結果也不重復。
實施例3描述業(yè)務引擎服務器與搜索代理之間的交互。該實施例的組網示意圖如圖8所示。
在本發(fā)明中,如Presence、PoC、即時消息和位置等業(yè)務引擎的服務器,可以向搜索代理發(fā)送查詢請求,獲取XDM服務器中滿足條件的用戶信息。同時,搜索代理也可以從業(yè)務引擎服務器獲取業(yè)務引擎中用戶的相關業(yè)務信息(如從呈現服務器獲取呈現信息,從位置服務器獲取位置信息等),作為查詢結果的一部分返回給客戶端。
而現有技術中,業(yè)務引擎服務器只能通過XCAP協(xié)議進行修改、刪除,讀取XDM服務器中的單個文檔中的信息。因此,本發(fā)明中業(yè)務引擎可以支持更加復雜的業(yè)務請求。如在位置業(yè)務中,位置服務器接收到一個定位請求,該請求中指定了要獲取屬于指定群組并且為指定性別的在線用戶的位置,位置服務器則先向搜索代理發(fā)送查詢請求,查詢屬于指定群組并且為指定性別的在線用戶的URI,搜索代理接收到查詢請求后先向存放群組信息XDM服務器獲取指定群組所包含的組員用戶的URI,再向存放用戶信息的XDM服務器獲取組員的用戶信息,此實施例采用存放用戶信息的XDM服務器同步呈現服務器上用戶是否在線的呈現信息,存放用戶信息的XDM服務器將滿足指定性別并且在線的用戶URI返回給位置服務器,位置服務器再將這些用戶的位置信息返回給請求者。與客戶端訪問搜索代理不同的是,業(yè)務引擎服務器不用通過聚合代理就可以訪問搜索代理。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種查詢用戶信息的方法,其特征在于,設置搜索代理,所述的方法包括步驟A、搜索代理接收客戶端發(fā)送的包含查詢條件的查詢請求,并將查詢請求消息轉發(fā)給存儲用戶信息或群組信息的XDM服務器;B、搜索代理接收所述XDM服務器返回的查詢結果,查詢結果中包括滿足查詢條件的用戶URI或群組成員用戶的URI;C、搜索代理向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息;D、呈現服務器將呈現信息返回給搜索代理;E、搜索代理將所述呈現服務器返回的呈現信息和所述XDM服務器返回的查詢結果進行整合后發(fā)送給客戶端。
2.根據權利要求1所述的方法,其特征在于,所述的步驟A之前還包括步驟客戶端首先向聚合代理發(fā)送查詢請求,聚合代理將所述查詢請求路由到搜索代理;所述的步驟E具體為搜索代理將所述呈現服務器返回的呈現信息和所述XDM服務器返回的查詢結果進行整合后經由聚合代理發(fā)送給客戶端。
3.根據權利要求1或2所述的方法,其特征在于,所述的步驟D具體為呈現服務器根據每個所述用戶URI對應的授權規(guī)則文檔,確定搜索代理是否被允許獲取所訂閱的呈現信息,然后將允許搜索代理獲取的呈現信息返回給搜索代理。
4.根據權利要求3所述的方法,其特征在于,預設一個代表搜索代理實體的搜索代理URI,在呈現XDM服務器里的用戶的授權規(guī)則文檔中為搜索代理URI對應設置允許搜索代理訂閱的呈現信息。
5.根據權利要求1或2所述的方法,其特征在于,所述的步驟C具體為搜索代理為發(fā)送查詢請求的客戶端所對應的URI向呈現服務器訂閱所述查詢結果中包含的URI的呈現信息;所述的步驟D具體為呈現服務器根據每個所述用戶URI的授權規(guī)則文檔,確定發(fā)送查詢請求的客戶端所對應的URI是否被允許獲取呈現信息,然后將允許獲取的呈現信息返回給搜索代理。
6.根據權利要求1或2所述的方法,其特征在于,步驟A中所述的查詢條件中還包括呈現信息的限定條件,則所述的步驟E具體為搜索代理將所述呈現服務器返回的呈現信息依據所述的呈現信息的限定條件進行過濾處理,將滿足限定條件的用戶URI的呈現信息和查詢結果進行整合后發(fā)送給客戶端。
7.根據權利要求1或2所述的方法,其特征在于,步驟A中所述的查詢條件中還包括呈現信息的限定條件,則所述的步驟C具體為搜索代理向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息,并在訂閱消息中包含所述的限定條件;所述的步驟D具體為呈現服務器將滿足所述限定條件的呈現信息返回給搜索代理。
8.根據權利要求1或2所述的方法,其特征在于,步驟C之后所述呈現服務器接收到搜索代理發(fā)送的訂閱請求后,如果檢測到所訂閱用戶URI的授權規(guī)則中要進行確認才可以訂閱該用戶的呈現信息,則呈現服務器拒絕為搜索代理訂閱該用戶的呈現信息。
9.一種查詢用戶信息的方法,其特征在于,設置搜索代理,存儲用戶信息的XDM服務器向呈現服務器訂閱用戶的呈現信息,呈現服務器在所述XDM服務器訂閱的呈現信息發(fā)生改變時發(fā)送相應的通知給所述XDM服務器,所述XDM服務器根據所述通知進行呈現信息的同步更新處理,所述查詢用戶信息的方法包括步驟A、搜索代理接收經聚合代理轉發(fā)的客戶端的查詢請求,并將查詢請求消息轉發(fā)給存儲用戶信息的XDM服務器,所述查詢請求中的限定條件包含有對用戶呈現信息的限定條件;B、所述XDM服務器根據查詢請求中的限定條件確定查詢結果,并返回給搜索代理;C、搜索代理將查詢結果通過聚合代理轉發(fā)給客戶端。
10.根據權利要求9所述的方法,其特征在于,所述存儲用戶信息的XDM服務器為共享用戶信息XDM服務器,向呈現服務器訂閱用戶的呈現信息為是否在線的呈現信息,呈現服務器在用戶上線或下線時發(fā)送相應的通知給所述共享用戶信息XDM服務器,步驟A中所述的對用戶呈現信息的限定條件為用戶呈現信息為在線狀態(tài)。
11.一種查詢用戶信息的方法,其特征在于,設置搜索代理,所述的方法包括步驟A、客戶端接收到用戶輸入的包含查詢條件的查詢指令后,先發(fā)送查詢請求以獲取XDM服務器中的相應信息;B、搜索代理接收客戶端發(fā)送的查詢請求,并將查詢請求消息轉發(fā)給相應的XDM服務器;C、搜索代理接收所述XDM服務器返回的查詢結果,查詢結果中包括查詢到的用戶URI,然后轉發(fā)給客戶端;D、客戶端向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息;E、呈現服務器將呈現信息返回給客戶端;F、客戶端將所述呈現服務器返回的呈現信息和所述搜索代理返回的查詢結果進行整合后顯示給用戶。
12.根據權利要求11所述的方法,其特征在于,步驟C之后客戶端接收到搜索代理返回的查詢結果后先顯示出來;步驟F中客戶端每接收到一個呈現服務器返回的包含呈現信息的通知,就刷新一下顯示的內容,將呈現信息與所述搜索代理返回查詢結果中的用戶信息關聯(lián)顯示。
13.根據權利要求11或12所述的方法,其特征在于,步驟C中搜索代理先將所述XDM服務器返回的查詢結果進行緩存,然后分批次轉發(fā)給客戶端。
14.根據權利要求11或12所述的方法,其特征在于,步驟A中所述的查詢請求中包括批次信息,步驟B中搜索代理向XDM服務器獲取與批次相應的查詢結果。
15.一種查詢用戶信息的方法,其特征在于,設置搜索代理,存放呈現信息的服務器提供XCAP服務,所述的方法包括步驟A、搜索代理接收客戶端發(fā)送的包含查詢條件的查詢請求,并將查詢請求消息轉發(fā)給存放用戶信息的XDM服務器或存放呈現信息的服務器;B、搜索代理接收服務器返回的查詢結果,查詢結果中包括滿足查詢條件的用戶信息和呈現信息;C、搜索代理將所述用戶信息和呈現信息進行整合后發(fā)送給客戶端。
16.根據權利要求15所述的方法,其特征在于,所述存放呈現信息的服務器為呈現服務器,或呈現信息XDM服務器,所述呈現信息XDM服務器同步呈現服務器中用戶的呈現信息。
全文摘要
本發(fā)明提供了一種查詢用戶信息的方法,包括步驟搜索代理接收客戶端發(fā)送的包含查詢條件的查詢請求,并將查詢請求消息轉發(fā)給存儲用戶信息的XDM服務器,搜索代理接收所述XDM服務器返回的查詢結果,搜索代理向呈現服務器訂閱所述查詢結果中包含的用戶URI的呈現信息,搜索代理將所述呈現服務器返回的呈現信息和查詢結果進行整合后發(fā)送給客戶端。利用本發(fā)明所述方法,可使用戶在搜到XDM服務器中的用戶信息的同時獲得用戶的呈現信息。
文檔編號H04L12/58GK1859322SQ20051012092
公開日2006年11月8日 申請日期2005年12月17日 優(yōu)先權日2005年12月17日
發(fā)明者孫謙, 宋雪飛, 田林一, 招揚, 鮑洪慶 申請人:華為技術有限公司