專利名稱::關(guān)系信息的公開、獲取方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,特別是指關(guān)系信息的公開、獲取方法及系統(tǒng)。
背景技術(shù):
:目前的各種即時通信系統(tǒng)(如MSNMessenger、QQ、ICQ)、郵件通信系統(tǒng)或其他通信系統(tǒng)中,存在很多系統(tǒng)預(yù)設(shè)的、或用戶創(chuàng)建的組(Group),用于對與用戶存在直接關(guān)系的聯(lián)系人進行分類。如MSNMessenger中默認(rèn)有四個聯(lián)系人分組家人、朋友、同事、其他聯(lián)系人。如下表1示出了sunqian@mail.com的聯(lián)系人列表,當(dāng)然表1中的用戶標(biāo)識/聯(lián)系人標(biāo)識不僅可以是電子郵箱地址,還可以是電話號碼、唯一標(biāo)識用戶的號碼(如QQ號碼)或統(tǒng)一資源定位符URI等。用戶標(biāo)識聯(lián)系人標(biāo)識組名稱/標(biāo)識sunqian@mail.comwenx@mail.cn家人sunqian@mail.commaning@mail.com同事sunqian@mailcomyangzhao@mailcom朋友表1通常,組的名稱如"家人,,即可表示用戶與聯(lián)系人的關(guān)系。用戶可以根據(jù)需要增加新的組,如增加同學(xué)組。還可以將一個組進一步設(shè)置小組,以進一步區(qū)別與聯(lián)系人的關(guān)系,如朋友組分為好朋友,普通朋友兩個組。在開放移動聯(lián)盟(OMA)制定的標(biāo)準(zhǔn)中,單獨設(shè)置了一個共享XDM服務(wù)器(SharedXDMS)用于存放用戶的組信息,以供各種業(yè)務(wù)如PoC,Presence等業(yè)務(wù)使用。目前一個用戶的組,或稱為與聯(lián)系人的關(guān)系信息在現(xiàn)有各種存在組的業(yè)務(wù)系統(tǒng)中都是除該用戶之外的其他用戶無法獲得的,同時系統(tǒng)也沒有提供公開關(guān)系信息的機制。而用戶可能希望獲得其他用戶的聯(lián)系人信息和關(guān)系信息,也可能會希望將自己的聯(lián)系人及與聯(lián)系人的關(guān)系信息進行適當(dāng)公開,以通過朋友的朋友(聯(lián)系人的聯(lián)系人)結(jié)識更多的朋友,拓展自己的關(guān)系網(wǎng)絡(luò)。而另一方面,公開關(guān)系信息涉及用戶隱私,用戶還可能會希望有條件的控制關(guān)系信息的公開程度和公開范圍等。但是,目前尚沒有相關(guān)的技術(shù)來實現(xiàn)用戶聯(lián)系人信息及關(guān)系信息的可控制的公開、獲取的技術(shù)。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供了關(guān)系信息的公開和獲取方法及系統(tǒng),使用戶可以在通信系統(tǒng)中,共享自己的關(guān)系信息提供給其他用戶,以及獲取到間接的關(guān)系信息或關(guān)系路徑。本發(fā)明提供公開關(guān)系信息的系統(tǒng),包括服務(wù)器,其中,所述服務(wù)器上存儲用戶的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識、該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,所述關(guān)系記錄設(shè)置有是否公開的標(biāo)記;所述服務(wù)器用于接收將關(guān)系記錄設(shè)置為公開的請求消息,所述請求消息至少包括發(fā)送該請求消息用戶的用戶標(biāo)識、聯(lián)系人標(biāo)識;并且,所述服務(wù)器根據(jù)接收到的請求消息中的用戶標(biāo)識和聯(lián)系人標(biāo)識檢索到所述用戶標(biāo)識和聯(lián)系人標(biāo)識之間的關(guān)系記錄,并將該關(guān)系記錄標(biāo)記為公開。本發(fā)明提供的關(guān)系信息的獲取系統(tǒng),包括服務(wù)器,服務(wù)器中存儲用戶與聯(lián)系人的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識,該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,以及標(biāo)識關(guān)系記錄是否公開的標(biāo)記;所述服務(wù)器接收客戶端發(fā)送的獲取關(guān)系信息的請求消息,所述請求消息包括客戶端用戶標(biāo)識、要查詢的目的用戶標(biāo)識;所述服務(wù)器根據(jù)接收到的所述請求消息中的要查詢的目的用戶標(biāo)識,檢索存儲的該目的用戶標(biāo)識對應(yīng)的標(biāo)記為公開的關(guān)系記錄信息;所述服務(wù)器將檢索到的關(guān)系記錄信息返回給發(fā)起所述請求消息的客戶端。本發(fā)明提供的另一種關(guān)系路徑信息的獲取系統(tǒng),包括服務(wù)器,所述服務(wù)器中存儲用戶與聯(lián)系人的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識,該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,以及標(biāo)識關(guān)系記錄是否公開的標(biāo)記;所述服務(wù)器接收所述客戶端發(fā)送的獲取關(guān)系路徑信息的請求消息,所述請求消息包括客戶端用戶標(biāo)識、要查詢的目的用戶標(biāo)識;所述服務(wù)器接收所述請求消息,根據(jù)存儲的標(biāo)記為公開的各個用戶的關(guān)系記錄,檢索客戶端用戶標(biāo)識到要查詢的目的用戶標(biāo)識的關(guān)系路徑信息;所述服務(wù)器將檢索到的關(guān)系路徑信息返回給發(fā)起所述請求消息的客戶。本發(fā)明提供的提供關(guān)系信息的系統(tǒng),包括客戶端,用于發(fā)送獲取關(guān)系信息的請求,并根據(jù)獲取的關(guān)系信息生成和輸出關(guān)系視關(guān)系服務(wù)單元,用于接收客戶端請求,從關(guān)系記錄數(shù)據(jù)庫檢索出用戶及其各級聯(lián)系人的關(guān)系記錄并返回給客戶端,其中,所述關(guān)系記錄至少包括用戶標(biāo)識、該用戶的聯(lián)系人標(biāo)識、該用戶與聯(lián)系人的關(guān)系信息和關(guān)系記錄是否公開的標(biāo)記;關(guān)系記錄數(shù)據(jù)庫,存儲有各個用戶的聯(lián)系人、用戶與聯(lián)系人之間的關(guān)系信息。由上述系統(tǒng)可以看出,本發(fā)明使用戶可獲得其他用戶的聯(lián)系人信息和關(guān)系信息,以及將自己的聯(lián)系人及與聯(lián)系人的關(guān)系信息進行適當(dāng)公開,實現(xiàn)通過朋友的朋友(聯(lián)系人的聯(lián)系人)結(jié)識更多的朋友,拓展自己的關(guān)系網(wǎng)絡(luò)。并且,實現(xiàn)用戶可以有條件的控制關(guān)系信息的公開程度和公開范圍等。圖1為用戶之間的關(guān)系示意圖。圖2為控制關(guān)系信息的公開流程圖。圖3為獲得其他用戶的聯(lián)系人信息的流程圖。圖4為兩層級的關(guān)系記錄信息示意圖。圖5為用戶獲得某用戶關(guān)系路徑的流程圖。圖6為提供關(guān)系信息的系統(tǒng)示意圖。圖7為用戶A的2級關(guān)系視圖。圖8為用戶A與C3有直接關(guān)系的2級關(guān)系視圖。圖9為用戶A的基本關(guān)系視圖。圖10為關(guān)系視圖生成流程圖。圖11為樹形圖表示的關(guān)系視圖。圖12為包含孤島節(jié)點的關(guān)系網(wǎng)絡(luò)圖。圖13為兩個線程搜索關(guān)系路徑的示意圖。圖14為用戶A到用戶D的關(guān)系路徑示意圖。具體實施例方式本發(fā)明,在服務(wù)器上存儲用戶的關(guān)系記錄,每條關(guān)系記錄至少包括用戶標(biāo)識,聯(lián)系人標(biāo)識以及用戶與聯(lián)系人的關(guān)系信息。不難理解,用戶之間可能存在如圖l所示的用戶之間的關(guān)系,其中關(guān)系箭頭的終點為起點的聯(lián)系人。8圖l表示了下面的關(guān)系用戶A的關(guān)系記錄中的聯(lián)系人標(biāo)識包括用戶B,用戶B關(guān)系記錄中的聯(lián)系人標(biāo)識包括用戶C等。下面以該圖為例對本發(fā)明進行說明。本發(fā)明首先提供了用戶控制對自己關(guān)系記錄進行公開的方法。預(yù)先,在服務(wù)器上存儲用戶的關(guān)系記錄,所述每條關(guān)系記錄至少包括用戶標(biāo)識,聯(lián)系人標(biāo)識以及用戶與聯(lián)系人的關(guān)系信息。參見圖2示出的流程圖,包括以下步驟步驟201:用戶向服務(wù)器發(fā)送將關(guān)系記錄設(shè)置為公開的請求消息,該請求消息至少包括該用戶的標(biāo)識,聯(lián)系人標(biāo)識。本例中,設(shè)發(fā)起請求的用戶是用戶B,聯(lián)系人標(biāo)識為用戶C的標(biāo)識。當(dāng)然聯(lián)系人標(biāo)識可以為多個,這樣可以在一個請求消息中將用戶與多個聯(lián)系人的關(guān)系記錄設(shè)置為公開。該請求消息中還可包括該用戶B設(shè)定公開范圍的參數(shù),用來限定公開信息提供給哪些用戶;以及設(shè)定公開程度的參數(shù),用來限定提供哪些相關(guān)的關(guān)系信息(如關(guān)系信息、用戶屬性等)。公開范圍參數(shù)還可以和公開程度參數(shù)建立對應(yīng)關(guān)系,這樣,對于符合不同公開范圍參數(shù)的用戶,可以獲得不同的公開程度的信息。步驟202:服務(wù)器接收到所述請求消息后,根據(jù)該請求消息中的聯(lián)系人用戶C的標(biāo)識,向聯(lián)系人的客戶端發(fā)送關(guān)系記錄公開請求確認(rèn)消息。此步驟的目的是因為關(guān)系隱私涉及到用戶B和聯(lián)系人用戶C,因此通過該步驟去尋求聯(lián)系人對公開關(guān)系記錄的確認(rèn),可以加強對隱私信息的控制。另外,在客戶端返的回確認(rèn)消息后中還可包括該用戶設(shè)定的公開范圍參數(shù)和/或公開程度參數(shù),由服務(wù)器保存,進一步對其隱私信息的公開進行控制。步驟203:4關(guān)系人用戶C同意公開,通過其客戶端返回確認(rèn)的響應(yīng)消息,否則返回拒絕公開的響應(yīng)消息。步驟204:服務(wù)器收到確認(rèn)的響應(yīng)消息后,將用戶B與返回確認(rèn)消息的聯(lián)系人(用戶C)標(biāo)識對應(yīng)的關(guān)系信息標(biāo)記為公開;若收到拒絕公開的響應(yīng)消息,則不進行公開的操作,將原因返回給用戶B。同時,當(dāng)請求消息中包括設(shè)定公開范圍的參數(shù)、設(shè)定公開程度的參數(shù)時,服務(wù)器要保存這些參數(shù)作為公開的限定。不難理解的是,用戶還可以向服務(wù)器發(fā)送將關(guān)系記錄設(shè)置為不公開的請求消息,該請求消息至少包括發(fā)送該請求消息用戶的用戶標(biāo)識,聯(lián)系人標(biāo)識;當(dāng)服務(wù)器根據(jù)接收到的請求消息中的用戶標(biāo)識和聯(lián)系人標(biāo)識檢索到所述用戶標(biāo)識和聯(lián)系人標(biāo)識之間的關(guān)系記錄,并將該關(guān)系記錄標(biāo)記為不公開。并且,服務(wù)器向所述關(guān)系記錄設(shè)置為不公開的請求消息中的聯(lián)系人標(biāo)識對應(yīng)的客戶端發(fā)送關(guān)系記錄已設(shè)置為不公開的通知消息。下面再來說明用戶如何獲得其他用戶的聯(lián)系人及關(guān)系信息的步驟。同樣的,服務(wù)器中存儲有用戶與聯(lián)系人的關(guān)系記錄,所述每條關(guān)系記錄至少包括用戶標(biāo)識、聯(lián)系人標(biāo)識、還存儲有用戶與聯(lián)系人的關(guān)系信息和公開參數(shù)信息。這里的公開參數(shù)信息即包括用戶設(shè)置的與某聯(lián)系人的關(guān)系記錄是否公開的標(biāo)記、公開范圍參數(shù)和公開程度參數(shù)。公開參數(shù)可以是在用戶控制對自己關(guān)系信息進行公開的步驟中設(shè)置的。網(wǎng)絡(luò)中還保存有用戶屬性(如性別、年齡、職業(yè))。10以用戶A獲取用戶B的聯(lián)系人和關(guān)系信息為例,參見圖3示出的流程圖,獲得其他用戶的聯(lián)系人及關(guān)系信息的步驟包括步驟301:用戶A向服務(wù)器發(fā)送獲取用戶B關(guān)系信息的請求消息,該請求消息包括要查詢的目的用戶標(biāo)識(即用戶B標(biāo)識)。該請求還可包括獲取關(guān)系信息的限定參數(shù),限定參數(shù)可以包括用戶屬性信息(如性別、年齡、職業(yè))、關(guān)系名稱信息(如家人、朋友)、關(guān)系層級/數(shù)量、關(guān)系親密級別、用戶標(biāo)識(如統(tǒng)一資源定位符URI,直接給出到指定用戶標(biāo)識的關(guān)系路徑)等,多個限定參數(shù)可以同時存在。步驟302:服務(wù)器根據(jù)接收到的所述請求消息中的用戶B的用戶標(biāo)識,從其存儲的關(guān)系記錄中檢索獲得用戶B的滿足公開參數(shù)信息的關(guān)系記錄信息,獲得用戶B的標(biāo)記為公開的聯(lián)系人標(biāo)識(如用戶C標(biāo)識)、及該聯(lián)系人與用戶B的關(guān)系信息。若步驟301所述請求中包括設(shè)定的關(guān)系信息限定參數(shù),則對獲得的關(guān)系記錄信息進一步進行過濾,僅得到滿足所述關(guān)系記錄信息限定參數(shù)的所述關(guān)系記錄信息。例如當(dāng)關(guān)系信息限定參數(shù)包括用戶屬性"男",則根據(jù)聯(lián)系人屬性,過濾掉記錄性別為"女"的聯(lián)系人。又如,當(dāng)關(guān)系信息限定參數(shù)包括關(guān)系的層級時,將檢索到的各個聯(lián)系人分別作為要查詢的目的用戶標(biāo)識,返回步驟302實現(xiàn)遍歷以得到每個聯(lián)系人的關(guān)系記錄信息,獲得下一層次的關(guān)系信息;之后再返回步驟302,直到獲得限定的關(guān)系層級。如圖4所示,當(dāng)關(guān)系層級為2時,發(fā)起請求的用戶A可以得到用戶B的第一層級的關(guān)系記錄信息用戶Cl、C2標(biāo)識及與用戶B的關(guān)系信息,和第二層級的關(guān)系記錄信息用戶Dl、D2、D3標(biāo)識及與各自所屬用戶的關(guān)系信息。又如,當(dāng)關(guān)系信息限定參數(shù)包括關(guān)系親密級別時,會判斷檢索到的聯(lián)系人與用戶B的關(guān)系信息所對應(yīng)的級別,將不符合關(guān)系親密級別的聯(lián)系人過濾掉。當(dāng)然,關(guān)系信息對應(yīng)的級別需要預(yù)先設(shè)定,例如,家人的親密級別為1、朋友的親密級別為2、同事的親密級別為3。當(dāng)同時存在幾個限定參數(shù)時,則依照限定參數(shù)依次進行過濾,即取交集。步驟303:服務(wù)器確定用戶A標(biāo)識在所請求的用戶B的公開范圍參數(shù)內(nèi),并獲得該公開范圍參數(shù)對應(yīng)的公開程度參數(shù),然后將步驟獲得的檢索結(jié)果以所述公開程度參數(shù)進行過濾,將符合公開程度參數(shù)的關(guān)系記錄信息作為檢索結(jié)果。當(dāng)然,確定用戶A在所述公開范圍內(nèi)的步驟也可在步驟302檢索關(guān)系記錄信息之前進行,即對用戶A進行鑒權(quán)。當(dāng)用戶A不在所請求的用戶B的公開范圍參數(shù)內(nèi)時,直接拒絕用戶A的請求。步驟304:服務(wù)器將步驟303后的關(guān)系記錄信息的檢索結(jié)果(包括用戶B的聯(lián)系人信息、用戶B聯(lián)系人與用戶B的關(guān)系信息等)返回給用戶A的客戶端。步驟305:用戶A的客戶端保存獲得的關(guān)系記錄信息的檢索結(jié)果,并根據(jù)檢索結(jié)果生成并輸出關(guān)系視圖給用戶A。當(dāng)然,關(guān)系視圖也可以由服務(wù)器生成后再輸出給用戶A客戶端進行保存。由于用戶的關(guān)系通常是比較穩(wěn)定的,變化比較慢,如增加、刪除聯(lián)系人,改變與聯(lián)系人的關(guān)系名稱等等,因此保存在客戶端可以有較少的訪問網(wǎng)絡(luò)的好處。另外,但在需要的情況下,客戶端記錄的關(guān)系記錄/關(guān)系視圖可以由客戶端發(fā)起請求進行主動更新,或由服務(wù)器在關(guān)系變化時通知用戶。下面對更新客戶端記錄的信息的步驟進行簡述客戶端主動更新關(guān)系視圖(關(guān)系記錄)的步驟客戶端在保存的關(guān)系記錄/關(guān)系視圖中選擇一個直接或間接的聯(lián)系人,將聯(lián)系人的用戶標(biāo)識發(fā)送給服務(wù)器,服務(wù)器檢索該用戶標(biāo)識的關(guān)系記錄,并發(fā)送給客戶端,客戶端將收到的關(guān)系記錄與保存的關(guān)系記錄進行對比,將變化的關(guān)系記錄更新,重新生成關(guān)系視圖。服務(wù)器可以僅對第一關(guān)系層級的聯(lián)系人的關(guān)系發(fā)生變化時進行通知,服務(wù)器通知更新關(guān)系視圖(關(guān)系記錄)的步驟服務(wù)器獲知一用戶的關(guān)系記錄發(fā)生變化后,獲取該用戶所屬的用戶標(biāo)識,向所屬用戶標(biāo)識發(fā)送關(guān)系記錄變化的通知,客戶端收到后,向服務(wù)器請求最新的關(guān)系記錄,并以此更新本地保存的關(guān)系記錄。另外,當(dāng)釆用了緩存機制時,例如服務(wù)器預(yù)先檢索并緩存用戶和各級聯(lián)系人的關(guān)系記錄信息;那么,步驟304中的查詢關(guān)系記錄信息的步驟可以通過查詢緩存的信息來實現(xiàn),僅在緩存中不存在要查詢的信息時,再從服務(wù)器中查詢。下面再來說明用戶如何獲得到某用戶關(guān)系路徑的步驟。關(guān)系路徑指由不同聯(lián)系人信息建立的從一用戶到另一用戶經(jīng)歷的所有用戶的信息。同樣的,服務(wù)器中存儲有用戶與聯(lián)系人的關(guān)系記錄,所述每條關(guān)系記錄至少包括用戶標(biāo)識、聯(lián)系人標(biāo)識、還存儲有用戶與聯(lián)系人的關(guān)系信息和公開參數(shù)信息。這里的公開參數(shù)信息即包括用戶設(shè)置的與某聯(lián)系人的關(guān)系記錄是否公開的標(biāo)記、公開范圍參數(shù)和公開程度參數(shù)。公開參數(shù)可以是在用戶控制對自己關(guān)系信息進行公開的步驟中設(shè)置的。網(wǎng)絡(luò)中還保存有用戶屬性(如性別、年齡、職業(yè))。參見圖5示出的流程圖,以用戶A獲得到用戶C關(guān)系路徑為例,對用戶獲得到某用戶關(guān)系路徑進行說明,包括以下步驟步驟501:用戶A通過客戶端向服務(wù)器發(fā)送獲取關(guān)系路徑的請求消息,所述請求消息包括、用戶A標(biāo)識、要查詢的用戶C標(biāo)識;步驟502:服務(wù)器根據(jù)接收到的所述要查詢的用戶C標(biāo)識,根據(jù)存儲的標(biāo)記為公開的各個用戶的關(guān)系記錄信息,以某種遍歷的算法(如寬度優(yōu)先搜索或/和深度優(yōu)先搜索)檢索用戶A標(biāo)識到要查詢的用戶C的關(guān)系路徑信息。其中,可以僅在滿足設(shè)定條件的關(guān)系記錄的子集中查詢關(guān)系路徑。例如,設(shè)定僅在一定的用戶關(guān)系(如家人和朋友)的關(guān)系記錄的集合中搜索,或者滿足一定親密級別的關(guān)系記錄的集合中查詢關(guān)系路徑,或在一定關(guān)系層級/數(shù)量內(nèi)。這些預(yù)設(shè)條件可以是在步驟501中由用戶A發(fā)送請求時一并發(fā)送給服務(wù)器的。凡是在設(shè)定條件內(nèi)無法查詢到關(guān)系路徑,則服務(wù)器認(rèn)為不存在這樣的關(guān)系路徑。另外,可以預(yù)先將具有直接或間接關(guān)系的用戶設(shè)置一相同的關(guān)系網(wǎng)絡(luò)標(biāo)識,表示具有直接或間接存在關(guān)系;當(dāng)服務(wù)器檢索查詢用戶A到用戶C的關(guān)系路徑時,首先判斷一下兩個用戶對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識是否相同,如果不同直接返回提示難以到達(dá)的消息即可。步驟503:將獲得的關(guān)系路徑信息返回給用戶A的客戶端。其中,對于步驟502也可以如下進行關(guān)系路徑的獲得在服務(wù)器上啟動兩個線程單元,一個線程單元從起點(即用戶A標(biāo)識)出發(fā)遍歷起點的各級聯(lián)系人,并保存關(guān)系信息,另一個線程單元從目標(biāo)(即用戶C標(biāo)識)出發(fā),遍歷目標(biāo)的各級聯(lián)系人,并保存關(guān)系信息;同時檢測已經(jīng)得到的起點和目標(biāo)的各級聯(lián)系人中是否有相同的,如果有則可到達(dá),并根據(jù)存儲的關(guān)系信息得到關(guān)系路徑信息;如果沒有,當(dāng)寬度到達(dá)預(yù)先設(shè)定的層級時,停止搜索遍歷,向客戶端返回提示很難到達(dá)的消息。相應(yīng)的,本發(fā)明還提供了一種提供關(guān)系信息的系統(tǒng),參見圖6示出的系統(tǒng)結(jié)構(gòu)圖,包括客戶端,用于發(fā)送獲取關(guān)系信息的請求,并根據(jù)獲取的關(guān)系信息生成和14輸出關(guān)系視圖。關(guān)系服務(wù)單元,用于接收客戶端請求,從關(guān)系記錄數(shù)據(jù)庫或緩存服務(wù)單元檢索出用戶及其各級聯(lián)系人的關(guān)系記錄信息或/和關(guān)系路徑信息,從用戶屬性數(shù)據(jù)庫獲取用戶的屬性信息,以及將獲取到的關(guān)系記錄和用戶屬性返回給客戶端。關(guān)系記錄數(shù)據(jù)庫,存儲有各個用戶的聯(lián)系人、用戶與聯(lián)系人之間的關(guān)系信息。查詢服務(wù)單元,用于接收請求去檢索用戶屬性數(shù)據(jù)庫獲得用戶屬性,或根據(jù)用戶屬性(如年齡、性別等)反查用戶屬性數(shù)據(jù)庫獲得對應(yīng)的用戶標(biāo)識(查出的用戶標(biāo)識可能不唯一)。用戶屬性數(shù)據(jù)庫,存儲有各個用戶的屬性信息,包括用戶標(biāo)識、姓名、電話、性別、職業(yè)等,用于向查詢服務(wù)單元和/或關(guān)系服務(wù)單元提供各級聯(lián)系人的屬性信息。緩存服務(wù)單元,用于緩存關(guān)系服務(wù)單元檢索出的關(guān)系信息,由關(guān)系服務(wù)單元提供給客戶端。活動服務(wù)單元,用于存儲客戶端創(chuàng)建的活動記錄,所述的活動記錄包括活動編號,活動名稱,創(chuàng)建者,時間等字段。創(chuàng)建者可以設(shè)置活動記錄的公開范圍,以及加入活動的權(quán)限。并在接收到查看活動信息或加入活動的請求時向關(guān)系服務(wù)單元請求驗證發(fā)送請求的用戶與創(chuàng)建活動的用戶之間的關(guān)系信息,驗證符合預(yù)設(shè)的關(guān)系后才允許查看活動信息或加入活動。其中,關(guān)系服務(wù)單元還包括第一單元,用于接收用戶請求后將用戶標(biāo)識發(fā)送給第二單元;第二單元,用于檢索關(guān)系記錄并生成用戶標(biāo)識的基本關(guān)系信息,然后返回給第一單元。具體的,第一單元首先根據(jù)發(fā)送請求的用戶(即根用戶)的用戶標(biāo)識從第二單元獲取用戶的第l級聯(lián)系人和關(guān)系信息,然后對第l級聯(lián)系人逐一根據(jù)第l級聯(lián)系人的用戶標(biāo)識向第二單元獲取用戶的第2級聯(lián)系人和關(guān)系信息。如此逐級處理,直到滿足預(yù)先設(shè)置的終止條件。最后由第一單元將獲取到的各級聯(lián)系人和關(guān)系信息發(fā)送給客戶端,客戶端據(jù)此生成關(guān)系視圖。其中,所述關(guān)系記錄數(shù)據(jù)庫可以與關(guān)系服務(wù)單元設(shè)置在一個服務(wù)器上,如設(shè)置在關(guān)系服務(wù)器或共享XDM服務(wù)器上。在實際的實現(xiàn)時,為了便于不同的業(yè)務(wù)共享關(guān)系記錄信息,因此將關(guān)系記錄數(shù)據(jù)庫存放在與業(yè)務(wù)服務(wù)器獨立的服務(wù)器上較好,如開放移動聯(lián)盟OMA給出的共享XDM服務(wù)器。下面對本發(fā)明涉及到的一些技術(shù)再進一步的進行描述。首先對本發(fā)明提到的關(guān)系記錄進行詳述。其中,所述關(guān)系記錄可以記錄為以下的形式如下表2示出了一個關(guān)系記錄<table>tableseeoriginaldocumentpage16</column></row><table>表2關(guān)系記錄還使用擴展標(biāo)記語言XML文件存儲。以上述表格中的第一條關(guān)系記錄為例,下面示出了XML存儲的方式<listname:"家人"〉<display-name>家人〈/display-name〉<entryuri="wenx@mail.cn">〈display-name〉溫馨〈/display-name〉〈relationship-name〉妻子〈/relationship-name〉〈visible〉否</visible></entry></list>如上所述,本發(fā)明中,增加了"關(guān)系名稱,,項,這是因為,
背景技術(shù):
中表1用組來表示用戶與聯(lián)系人的關(guān)系實現(xiàn)起來比較簡單,不適合精確的表示關(guān)系,因為用戶與每個聯(lián)系人的關(guān)系可能都不相同,即使與屬于同一組的聯(lián)系人。如用戶與同屬家人組兩個聯(lián)系人,對用戶的關(guān)系一個是父親,一個是兄弟,如果都用組來區(qū)別這些精確的不同關(guān)系會導(dǎo)致很多組里只有一個聯(lián)系人,因此,本發(fā)明增加"關(guān)系名稱"項來表示用戶與聯(lián)系人的精確關(guān)系,而"組,,可表示粗略的關(guān)系。關(guān)系名稱可以由用戶通過業(yè)務(wù)客戶端界面如即時消息客戶端界面進行設(shè)置。而增加的"是否公開,,項用來表示該聯(lián)系人與用戶標(biāo)識的關(guān)系信息(聯(lián)系人標(biāo)識、組標(biāo)識、關(guān)系名稱)是否公開。另外,考慮到關(guān)系記錄信息對用戶來說是一種私人數(shù)據(jù),涉及隱私,為了更加靈活的實現(xiàn)用戶對自己和每個聯(lián)系人的關(guān)系進行是否公開、對誰公開以及公開程度的控制,可以分別設(shè)定用戶和聯(lián)系人的關(guān)系記錄、關(guān)系隱私公開設(shè)定文件。例如,關(guān)系記錄可以為下述表3內(nèi)容用戶標(biāo)識聯(lián)系人標(biāo)識組標(biāo)識關(guān)系名稱sunqian@mail.comwenx@mail.cn家人妻子表3若以XML格式表示,可記錄為<listname-"家人"〉<display-name>家人</display畫name〉<entryuri="wenx@mail.cn">〈display-name〉溫馨々display-name〉々elationship-name〉妻子々relationship-name〉</entry></list>而關(guān)系隱私公開設(shè)定文件用于設(shè)定用戶的聯(lián)系人及之間的關(guān)系是否進行公開、公開范圍參數(shù)(限定提供給哪些人)、公開程度參數(shù)(限定提供哪些關(guān)系信息),可以采用下面XML格式用戶的關(guān)系隱私設(shè)定文件包括一個〈mlese^元素,〈ruleset〉元素又包括多個〈rule〉元素,每個〈rule〉元素包括一個〈conditions〉元素,設(shè)定該規(guī)則(rule)是對哪些人的,即限定了公開范圍;一個〈actions〉元素,設(shè)定處理方式,通??梢员硎臼欠裨试S公開等;一個〈transformations〉元素,設(shè)定公開程度。如下XML數(shù)據(jù)表示用戶sunqian@mail.com對另一個用戶user@example.comi殳置公開自己與wenx@mail.cn的關(guān)系<rulesetentity="sunqian@mail.com">;要查詢的目的用戶標(biāo)識<ruleid=T><conditions><identity><identity="user@example.com"/><identity〉<conditions><actions><sub-handling>allow</sub-handling><actions><transformations><provide-urilist><entryuri="wenx@mail.cn"/>;聯(lián)系人標(biāo)識<provide-listname>true</provide-listname>;組名稱公開<provide-relationshipname>true</provide-relationshipname>;關(guān)系名稱公開<provide-uri>true</provide-uri>;URI公開</entry></provide-urilist><transformations><rule><ruleset>其中統(tǒng)一資源定位符URI列表"provide-urilist"元素中可包含多個具體的URI入口;并可進一步用子元素的值限定對每個URI入口的關(guān)系信息的公開程度,即公開關(guān)系信息的哪些內(nèi)容,如組名稱公開"provide-listname"、聯(lián)系人用戶屬性公開等子元素。而對于所述的用戶屬性,指用戶注冊時的信息,可以包括姓名,電話,性別,職業(yè)等信息,可單獨存放在用戶屬性數(shù)據(jù)庫上。下面示出了XML格式的用戶屬性文件〈uprofileentity="sunqian@mail.com"><first-name〉Qian</first-name><last-name>Sun</last-name><teltype="e.164">+13760463639</tel><e-mail>mailto:sunqian@mail.com</e-mail><gendar>male</gendar><occupation>engineer</occupation></uprofile>下面,再對多級關(guān)系層級的生成和關(guān)系視圖的生成技術(shù)進行詳細(xì)介紹。關(guān)系視圖可以直觀的表示用戶與其他用戶之間直接或間接的關(guān)系。由于對于一個用戶的聯(lián)系人sunqian@mail.com,還會有其聯(lián)系人如18yangzhao@mail.com,而這個聯(lián)系人也會有自己的聯(lián)系人列表,如下表4所示yangzhao@mail.com的關(guān)系i己錄<table>tableseeoriginaldocumentpage19</column></row><table>表4同時參考表2和表4,可見存在這樣的路徑'..好朋友及同事鄰居sunqian@mail.com-yangzhao@mail.com-mary@hotmail.com本發(fā)明中,將這樣的路徑定義為關(guān)系路徑,可以看出,一條關(guān)系路徑至少有兩個節(jié)點,即有一個起點和一個終點,起點和終點之間有零或多個節(jié)點,兩個相鄰的節(jié)點之間用關(guān)系連接,關(guān)系是有向,并且關(guān)系對起點應(yīng)當(dāng)是公開可見的。如果一個用戶A與一個用戶B之間存在一條以用戶A為起點的關(guān)系路徑,則稱用戶A可到達(dá)用戶B,否則用戶A不可到達(dá)用戶B。并將關(guān)系路徑包含的除起點之外的節(jié)點數(shù)量(或關(guān)系的數(shù)量)稱為關(guān)系路徑的長度。若用戶A可到達(dá)用戶B的關(guān)系路徑有多條,將其中包含節(jié)點最少即關(guān)系路徑的長度最小的關(guān)系路徑稱為用戶A到達(dá)用戶B的最短關(guān)系路徑。從表2、4的關(guān)系記錄中可見,用戶sunqian@mail.com可到達(dá)mary@hotmial.com,而用戶sunqian@mail.com不可到達(dá)tom@hotmial.com(因為tom@hotmial.com未公開,不可見)。并且,sunqian@mail.comS'J達(dá)mary@hotmial.com的關(guān)系路徑的長度為2。由于關(guān)系是有向的,兩個互為聯(lián)系人的用戶所設(shè)置的關(guān)系名稱可以不同,如用戶yangzhao@mail.com對耳關(guān)系人sunqian@mail.comi殳置的關(guān)系名稱為"好朋友"時,則由表2、4可獲得關(guān)系路徑如下所示好朋友及同事鄰居sunqian@mail.com<;yangzhao站tnail.com<-mary@hotmail.com好朋友所述的關(guān)系視圖也可以看作是要檢索用戶在一定條件下的所有的關(guān)系路徑的圖形化表示。在前面用戶A獲取他的聯(lián)系人即用戶B所公開的關(guān)系信息的方法的步驟302中提到,服務(wù)器根據(jù)要檢索的用戶B標(biāo)識,檢索獲得該用戶標(biāo)識的關(guān)系記錄信息(聯(lián)系人、所述聯(lián)系人與所述用戶的關(guān)系)后,還可以將檢索到的聯(lián)系人依次分別作為要檢索的用戶,返回該步驟,實現(xiàn)遍歷每個聯(lián)系人的關(guān)系記錄,進一步的獲得下一層次的關(guān)系信息。循環(huán)直到滿足預(yù)先設(shè)置的終止條件。不難理解,在這個步驟中,便可以根據(jù)一次次的循環(huán)生成關(guān)系視圖。下面參見圖7示出的用戶A的2級關(guān)系視圖來進一步說明。一般的層級為n的關(guān)系視圖包含了用戶的第1級至第n級聯(lián)系人。如圖7所示,用戶A有2個聯(lián)系人B1,B2,這種直接的聯(lián)系人可以稱為A的第一級聯(lián)系人,用戶A設(shè)置的關(guān)系名稱分別為關(guān)系1和關(guān)系2;Bl又有2個聯(lián)系人C1、C2,B2有1個聯(lián)系人C3,關(guān)系名稱分別為關(guān)系3、4、5,其中關(guān)系3、4、5對用戶A來說應(yīng)當(dāng)是公開的,即對用戶A來說應(yīng)當(dāng)是可見的,對用戶A不公開可見的關(guān)系在生成用戶A的關(guān)系視圖時不予考慮,Cl、C2、C3這種間接的聯(lián)系人可以稱為A的第二級聯(lián)系人,以此類推C1、C2、C3的聯(lián)系人,不包括第一級聯(lián)系人和第二級聯(lián)系人,可以稱為第三級聯(lián)系人等等。又如當(dāng)還存在B1與其聯(lián)系人C4的關(guān)系7,但關(guān)系7設(shè)置為不公開時,導(dǎo)致C4不是到B1的關(guān)系路徑,則所得到的關(guān)系視圖仍為圖7,即用戶A的關(guān)系視圖中不會出現(xiàn)B1與C4的關(guān)系路徑。另外,用戶A和用戶C3之間也可能存在如圖8示出的有直接關(guān)系6的關(guān)系視圖。其中,將一個用戶與自己的直接聯(lián)系人形成的1級關(guān)系視圖也稱為基本關(guān)系視圖,如圖9示出了用戶A的基本關(guān)系視圖??偨Y(jié)起來,可參見圖10示出的生成關(guān)系視圖的流程圖,關(guān)系視圖的生成包括以下步驟步驟1001:檢索出所要檢索的用戶(即根用戶A)的關(guān)系記錄,從該關(guān)系記錄得到根用戶的聯(lián)系人稱為第l級聯(lián)系人(如B1、B2),生成用戶的基本關(guān)系視圖,并在內(nèi)存中記錄第l級聯(lián)系人列表;此時關(guān)系視圖的層級為1。步驟1002:針對聯(lián)系人列表中的用戶A的聯(lián)系人,檢索各個聯(lián)系人的關(guān)系記錄,并將這些關(guān)系記錄中獲得針對用戶A的下一級的聯(lián)系人列表(如Cl、C2、C3),存儲在內(nèi)存中。如果聯(lián)系人已經(jīng)存在于前級聯(lián)系人列表中,則不對該聯(lián)系人進行記錄保存(這樣可以避免重復(fù)循環(huán))。并生成對根用戶A公開的當(dāng)前的關(guān)系視圖。步驟1003:返回步驟1002,直到滿足預(yù)先設(shè)置的生成關(guān)系視圖的終止條件。生成關(guān)系視圖的終止條件如預(yù)先設(shè)置的關(guān)系視圖的層級,找到滿足預(yù)設(shè)條件的聯(lián)系人等。其中,呈現(xiàn)給用戶的可視化的關(guān)系視圖,可以是用點或方塊等圖元表示用戶或聯(lián)系人,用直線或帶箭頭的線表示用戶以及聯(lián)系人之間的關(guān)系,以及文本框在相應(yīng)位置進行注釋說明,如在表示用戶或聯(lián)系人的點旁邊標(biāo)明用戶或聯(lián)系人的姓名、性別等用戶屬性等,在表示關(guān)系的直線旁標(biāo)明關(guān)系名稱等。或者關(guān)系視圖也可以用圖ll示出的樹形圖表示。以上可見,關(guān)系視圖的節(jié)點數(shù)量是隨視圖的層數(shù)級數(shù)增長的,信息量太大對用戶來說反而用處不大,所以應(yīng)該減少信息量,可以通過在生成關(guān)系視圖時如步驟302所述,輸入限制參數(shù)條件,只處理滿足條件的節(jié)點和關(guān)系。如設(shè)置節(jié)點對應(yīng)聯(lián)系人用戶的性別、年齡、職業(yè)等條件,設(shè)置關(guān)系為家人。這樣關(guān)系視圖就不會隨著層級的增加而迅速發(fā)散,如果平均每個用戶有10個聯(lián)系人,則一個用戶的第二層聯(lián)系人的數(shù)量就有102即100個,第三層就有103即1000個;如果限定一下性別,一般就可以減少一半數(shù)量,再限定一下職業(yè)就可以減少更多。關(guān)系視圖可由服務(wù)器或客戶端生成。較佳的,關(guān)系視圖的生成由客戶端根據(jù)關(guān)系信息自行生成關(guān)系視圖,這樣網(wǎng)絡(luò)傳輸信息量較小,而且客戶端可以更靈活的根據(jù)用戶的需要和設(shè)置生成關(guān)系視圖,也可以減輕服務(wù)器的負(fù)21擔(dān)。根據(jù)用戶和各級聯(lián)系人的關(guān)系記錄即可生成關(guān)系視圖,因此客戶端只要從服務(wù)器獲取用戶和各級聯(lián)系人的關(guān)系記錄即可。另外還可以同時獲取各級聯(lián)系人的用戶屬性等信息,當(dāng)然各級聯(lián)系人的用戶屬性要對根用戶是公開的。上述的關(guān)系視圖、關(guān)系記錄以及聯(lián)系人的用戶屬性等都屬于關(guān)系信息。下面,再對關(guān)系路徑的獲取技術(shù)進行詳細(xì)介紹。實際上,服務(wù)器上存儲的關(guān)系記錄由于用戶及其聯(lián)系人的關(guān)聯(lián)關(guān)系形成了圖的數(shù)據(jù)結(jié)構(gòu),即關(guān)系網(wǎng)絡(luò)圖,因此可以應(yīng)用圖的遍歷算法獲得關(guān)系路徑以及關(guān)系視圖信息等,如寬度(廣度)優(yōu)先算法,深度優(yōu)先算法等。而其中寬度優(yōu)先算法更適合,因為一般用戶并不希望獲得較長的關(guān)系路徑,或?qū)蛹壿^大的關(guān)系視圖。當(dāng)服務(wù)器發(fā)現(xiàn)目標(biāo)用戶不是起點用戶的第n級聯(lián)系人,就可以停止遍歷搜索了,n可由起點用戶設(shè)定,如設(shè)為3。寬度(廣度)優(yōu)先算法(Breadth-FirstSearch,BFS)是先搜索完一個起點所有的第1級聯(lián)系人,然后再繼續(xù)搜索下一級聯(lián)系人,直到底層(或設(shè)定的層次)為止。該算法保證了對淺層級的首先處理,當(dāng)遇到一個無窮盡或很深的深層分支時,不會導(dǎo)致陷進其中出現(xiàn)出不來的情況發(fā)生。寬度優(yōu)先搜索以一種系統(tǒng)的方式搜索,從而發(fā)現(xiàn)起點所能到達(dá)的所有節(jié)點,并計算起點到所有這些節(jié)點的長度(最少邊數(shù)),該算法同時能生成一棵根為起點且包括所有其可達(dá)節(jié)點的寬度優(yōu)先樹。對從起點可達(dá)的任意目標(biāo)節(jié)點v,寬度優(yōu)先樹中從起點到目標(biāo)v的路徑對應(yīng)于圖中從起點到目標(biāo)v的最短路徑,即包含最小邊數(shù)的路徑。該算法對有向圖和無向圖都適用。深度優(yōu)先搜索(Depth-FirstSearch,DFS)是另一種搜索方法。從起點v出發(fā),DFS按如下過程進行首先將v標(biāo)記為已到達(dá)節(jié)點,然后選擇一個與v鄰接的尚未到達(dá)的節(jié)點u,如果這樣的u不存在,搜索中止。假設(shè)這樣的u存在,那么從u又開始一個新的DFS。當(dāng)從u開始的搜索結(jié)束時,再選擇另外一個與v鄰接的尚未到達(dá)的節(jié)點,如果這樣的節(jié)點不存在,那么搜索終止。而如果存在這樣的節(jié)點,又從這個節(jié)點開始DFS,如此循環(huán)下去。一組關(guān)系記錄的集合對應(yīng)的關(guān)系網(wǎng)絡(luò)圖中可能會存在孤島節(jié)點,如圖12示出的關(guān)系路徑圖中的El,即是一個孤島節(jié)點,與任何其他節(jié)點都沒有連接關(guān)系。例如,一個新注冊的用戶,還沒有增加任何聯(lián)系人,即還沒有關(guān)系記錄,但是存在用戶屬性數(shù)據(jù)時就是一個孤島節(jié)點。這樣,在查詢關(guān)系路徑時,首先要檢查一下發(fā)送請求的用戶,以及指定要到達(dá)的用戶是否為孤島節(jié)點,即是否存在關(guān)系記錄,如果有任何一個不存在相應(yīng)的關(guān)系記錄則直接向客戶端返回提示不可到達(dá)的消息即可。如步驟502所述,用戶在不希望系統(tǒng)在所保存的關(guān)系記錄的全集中查詢關(guān)系路徑,而是希望在滿足預(yù)設(shè)條件的關(guān)系記錄的子集中查詢關(guān)系路徑時,可以設(shè)定查詢的條件,如限定關(guān)系名稱(如家人或/和朋友),用戶屬性(如性別)等,這樣得到的關(guān)系路徑可以稱為有條件的關(guān)系路徑。另外一種有用的限定是避免關(guān)系路徑中關(guān)系的衰減,關(guān)系按用戶之間的親密程度籠統(tǒng)的可以分為強連接和弱連接,可在關(guān)系記錄中增加一個字段表示親密級別,用量化的值表示,如數(shù)值3表示高親密度級別(如與家人之間的關(guān)系),2表示較高(如與同學(xué)、同事之間的關(guān)系),l表示普通(如與網(wǎng)友之間的關(guān)系),3和2表示的關(guān)系可以屬于強連接,l表示的關(guān)系屬于弱連接,通常強連接對用戶更有用,而在一個關(guān)系路徑中強連接的關(guān)系比較多說明關(guān)系衰減的比較慢,起點和終點的用戶更可能建立信任度較高的關(guān)系,因此用戶可能會希望建立一個具有較多強連接關(guān)系的路徑,而不是簡單的最短路徑。(甚至還可用負(fù)值表示不受歡迎的負(fù)面關(guān)系,如黑名單,可用-l表示,當(dāng)然本發(fā)明中查詢關(guān)系路徑和關(guān)系視圖信息都不必考慮負(fù)面關(guān)系記錄)。這樣可以在查詢關(guān)系路徑的預(yù)設(shè)條件中限定親密級別的下限,如指定為2,則服務(wù)器只在滿足親密級別不低于2的關(guān)系記錄的集合中查詢關(guān)系路徑。同樣的可以在生成關(guān)系視圖時,通過指定親密級別限定參數(shù),生成滿足親密級別條件的關(guān)系視圖。另外還可以在生成關(guān)系視圖中,用不同的線型或顏色表示不同親密程度的關(guān)系。另外,一組關(guān)系記錄的集合對應(yīng)的關(guān)系網(wǎng)絡(luò)圖中也可能會存在多個相互獨立的關(guān)系子網(wǎng),即兩個子網(wǎng)之間沒有任何連接關(guān)系,如圖12中用戶A與用戶Fl所在的兩個子網(wǎng),分別位于兩個子網(wǎng)中的任何兩個節(jié)點都互相不能到達(dá)對方。特別的如果對關(guān)系記錄用預(yù)設(shè)條件進行了限定,則滿足預(yù)設(shè)條件的關(guān)系記錄集合對應(yīng)的關(guān)系網(wǎng)絡(luò)圖中很可能會存在相互獨立的子網(wǎng)和孤島節(jié)點。為了能盡早發(fā)現(xiàn)不能達(dá)到指定用戶的情況,避免服務(wù)器做徒勞無益的遍歷搜索浪費系統(tǒng)資源,本發(fā)明在步驟502中還提出了可采用下述方法在用戶屬性中增加一個關(guān)系網(wǎng)絡(luò)標(biāo)識字段,表示該用戶所屬的關(guān)系子網(wǎng);新增加注冊的用戶為其分配一個新的關(guān)系網(wǎng)絡(luò)標(biāo)識。當(dāng)在服務(wù)器上為用戶增加一條新的關(guān)系記錄時,如果其中的聯(lián)系人標(biāo)識對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識與用戶對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識不同,則將用戶對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識修改為聯(lián)系人標(biāo)識對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識(或者反之亦可),然后將用戶其他各級聯(lián)系人對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識全部修改為與上述同樣的關(guān)系網(wǎng)絡(luò)標(biāo)識。這個步驟實際上是在兩個獨立的關(guān)系子網(wǎng)中有兩個節(jié)點建立關(guān)系時進行合并,另外以上合并的處理可以在服務(wù)器空閑時進行,而不必在增加一條新的關(guān)系記錄時實時處理。如果其中的聯(lián)系人標(biāo)識對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識與用戶對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識相同則不用進行處理。這樣,當(dāng)服務(wù)器檢索查詢一個用戶到達(dá)另一個用戶的關(guān)系路徑時,首先判斷一下兩個用戶對應(yīng)的關(guān)系網(wǎng)絡(luò)標(biāo)識是否相同,如果不同直接返回提示不可到達(dá)的消息即可。本發(fā)明還提出在服務(wù)器上啟動兩個線程單元加快關(guān)系路徑搜索的方法,一個線程單元從起點出發(fā)遍歷起點的各級聯(lián)系人,并保存關(guān)系信息,另一個線程單元從目標(biāo)(如果存在關(guān)系路徑就是終點)出發(fā),遍歷目標(biāo)的各級聯(lián)系人,并保存關(guān)系信息,其中的遍歷方法采用寬度(或廣度)優(yōu)先方法(BFS);同時檢測已經(jīng)得到的起點和目標(biāo)的各級聯(lián)系人中是否有相同的,如果有則可到達(dá),并根據(jù)存儲的關(guān)系信息得到關(guān)系路徑信息。如果沒有,當(dāng)寬度到達(dá)預(yù)先設(shè)定的層級時,停止搜索遍歷,向客戶端返回提示很難到達(dá)的消息。由于路徑跨過多個節(jié)點時,該關(guān)系路徑對用戶的意義也就不大了,可以將兩個線程單元停止搜索遍歷的預(yù)先設(shè)定的層級條件設(shè)置為層級為2。以圖13示出的關(guān)系網(wǎng)絡(luò)圖進行說明,該圖中,兩個線程單元分別得到了用戶A和用戶D的第1級和第2級聯(lián)系人,如果在用戶A和用戶D的各級聯(lián)系人中沒有任何兩個相同的,則用戶A和用戶D之間的關(guān)系路徑至少為5,這是因為用戶A第2級聯(lián)系人不可能與用戶D的第l級聯(lián)系人有關(guān)系,反之用戶D第2級聯(lián)系人也不可能與用戶A的第1級聯(lián)系人有關(guān)系,否則用戶A和用戶D的各級聯(lián)系人中就存在兩個相同的了,因此只可能用戶A第2級聯(lián)系人與用戶D的第2級聯(lián)系人有關(guān)系,如假定F2與C4存在關(guān)系,這時用戶A到用戶D的關(guān)系路徑則為圖14所示。實際上,關(guān)系路徑的長度為5已經(jīng)是比較長的關(guān)系路徑了,該路徑對用戶的實際意義不大了,因此,在實際設(shè)置時,可以認(rèn)為用戶A很難到達(dá)用戶D。上述設(shè)置雙線程從起點和目標(biāo)同時進行遍歷的方法實際上假定了系統(tǒng)中兩個用戶之間的關(guān)系是對稱的,即存在互相對稱的兩條關(guān)系記錄;或者將兩個用戶之間只要存在一個方向的關(guān)系即認(rèn)為是有關(guān)系的。而如表2和表4所示,實際生活中互為聯(lián)系人的兩個用戶,存儲的關(guān)系記錄可能是單向的,即一個用戶把另一個用戶加為自己的聯(lián)系人,但另一個用戶并沒有這樣做,這樣兩個用戶之間的關(guān)系記錄只有1條,而不是通?;ハ鄬ΨQ的2條。另外即使兩個用戶有互相對稱的2條關(guān)系記錄,也可以分別設(shè)置不同的關(guān)系名稱(如一個為好友,另一個設(shè)置為同事),親密程度以及不同的公開程度和公開范圍等。因此,關(guān)系路徑對應(yīng)的應(yīng)該是有向關(guān)系網(wǎng)絡(luò)圖。這一點在此進行一下說明。25上述的各種遍歷方法中,多數(shù)都是單向進行搜索遍歷,如從起點(或根用戶)出發(fā),逐級遍歷各級聯(lián)系人,而沒有反向進行搜索,即檢索某用戶是哪些用戶的聯(lián)系人,這樣可以獲取更全面完整的關(guān)系,例如可以獲得雙向的關(guān)系信息,而不只是單向的關(guān)系信息,如表2和表4的例子,sunqian@mail.com可以4尋知yangzhao@mail.comi殳置的只于自己的關(guān)系名稱是"好朋友,,。但是如果同時進行反向搜索則處理效率太低,而且通常情況下關(guān)系都是對稱存在的,所以一般就不用進行反向搜索了??梢哉J(rèn)為當(dāng)兩個節(jié)點只要存在有一個方向的關(guān)系時,即認(rèn)為兩個節(jié)點之間是有關(guān)系的,其中任一節(jié)點可以到達(dá)對方節(jié)點。下面再詳細(xì)介紹一下活動服務(wù)單元,用于存儲客戶端創(chuàng)建的活動記錄,所述的活動記錄包括活動編號,活動名稱,創(chuàng)建者,時間等字段。創(chuàng)建者可以設(shè)置活動記錄的公開范圍,以及加入活動的權(quán)限。如/>開范圍可以設(shè)定對所有用戶都公開,而其他用戶加入活動需要經(jīng)創(chuàng)建者的確認(rèn)。其他用戶客戶端向活動服務(wù)單元發(fā)送加入活動的請求消息,該消息包括活動編號,活動服務(wù)單元向活動記錄的創(chuàng)建者發(fā)送確認(rèn)消息,在收到確認(rèn)消息后,將其加入到該活動的參與者列表記錄中。進一步用戶可以設(shè)置允許自己的第1級聯(lián)系人和第2級聯(lián)系人參與活動,則活動服務(wù)單元在其他用戶請求加入時,向關(guān)系服務(wù)單元請求驗證是否為第1級聯(lián)系人或第2級聯(lián)系人(也可以直接從關(guān)系記錄數(shù)據(jù)服務(wù)器中檢索關(guān)系記錄進行驗證),如果是則允許加入,否則拒絕加入。另外一個用戶還可以向活動服務(wù)單元發(fā)送請求,獲取另一個用戶參與的活動記錄,請求中包括另一個用戶的用戶標(biāo)識?;顒臃?wù)單元檢索活動的參與人列表,將參與人列表中包括指定用戶標(biāo)識的活動記錄返回。下面再對本發(fā)明的緩存機制進行介紹。通過對要訪問或常訪問的數(shù)據(jù)進行緩存,而不是在需要時才去檢索獲取數(shù)據(jù)信息,可以大大提高系統(tǒng)處理效率。本發(fā)明設(shè)置了一個緩存服務(wù)單元,來緩存用戶的關(guān)系信息,這里所說的關(guān)系信息不是指可視化的關(guān)系視圖,而是建立可視化的關(guān)系視圖所需要的關(guān)系信息。由上面的說明可知,關(guān)系視圖實際上對應(yīng)著以指定用戶為起點的寬度優(yōu)先樹,寬度優(yōu)先樹中存儲著起點用戶以及各級聯(lián)系人之間的關(guān)系信息,另外還可以包括節(jié)點的用戶屬性信息。因此只要在緩存服務(wù)單元中緩存用戶的寬度優(yōu)先樹即可,寬度優(yōu)先樹對應(yīng)關(guān)系視圖的層級最好設(shè)置為2,因為層級為l沒有必要緩存,而層級為3或更大會導(dǎo)致緩存的信息數(shù)據(jù)量極大,而使用這些數(shù)據(jù)的可能性又不是太大。除了緩存關(guān)系信息外,還可以緩存各級聯(lián)系人的用戶屬性信息。緩存服務(wù)單元所緩存用戶的關(guān)系信息來源可以由緩存服務(wù)單元主動獲取,即向關(guān)系記錄數(shù)據(jù)服務(wù)器獲取用戶的寬度優(yōu)先樹,將包含用戶各級聯(lián)系人信息的寬度優(yōu)先樹信息存儲。另外也可以在用戶客戶端獲取關(guān)系視圖或關(guān)系路徑時,關(guān)系服務(wù)單元在將檢索到的關(guān)系信息返回給客戶端的同時將其保存到緩存服務(wù)單元上。緩存機制特別適用于設(shè)置了關(guān)系隱私設(shè)定文件、用戶屬性隱私設(shè)定文件時的情況。若沒有緩存機制,每次獲取一個用戶的關(guān)系記錄和用戶屬性時,都要檢查匹配上述的隱私設(shè)定文件,對于用戶請求實時生成寬度優(yōu)先樹,處理速度會很慢。而當(dāng)一個用戶請求獲取到其他用戶的關(guān)系路徑時,如果已經(jīng)緩存了該用戶的關(guān)系信息,則只需要檢查指定的其他用戶是否在已經(jīng)緩存的各級聯(lián)系人中,如第1級聯(lián)系人和第2級聯(lián)系人,如果沒有則檢查指定的其他用戶已經(jīng)緩存的各級聯(lián)系人中是否有該用戶,如果沒有,則再檢查該用戶和指定用戶的各級聯(lián)系人是否有相同的,如果沒有,則返回用戶很難到達(dá)指定用戶的提示。以上各檢查步驟中,如果有,則已發(fā)現(xiàn)了該用戶到指定的其他用戶的關(guān)系路徑,將相應(yīng)的關(guān)系信息返回給用戶客戶端即可??梢?,通過緩存關(guān)系信息,只要進行一些簡單的檢查判斷即可獲得關(guān)系路徑信息,大大提高了系統(tǒng)效率,以及縮短了系統(tǒng)的響應(yīng)時間。其中,可以只對系統(tǒng)的部分用戶(如比較活躍的用戶,對使用共享關(guān)系信息功能付費的用戶)的關(guān)系信息進行緩存處理,而不是對系統(tǒng)中的所有用戶。并且,對于緩存信息的存儲和更新,可以在系統(tǒng)比較空閑的時間,如凌晨,進行存儲處理或更新,并且,由于關(guān)系信息通常比較穩(wěn)定,可以定期如每天,或每周更新一下緩存的關(guān)系信息。根據(jù)上述緩存機制,用戶客戶端在向關(guān)系服務(wù)單元獲取關(guān)系信息或關(guān)系路徑時,關(guān)系服務(wù)單元首先到緩存服務(wù)單元檢查是否存在該用戶(獲取關(guān)系路徑時還包括指定的目標(biāo)用戶)緩存的關(guān)系信息,如果有則基于已經(jīng)緩存的關(guān)系信息進行處理。如果已經(jīng)緩存的關(guān)系信息不能滿足用戶的請求,如用戶請求獲取限定條件(如職業(yè))的3級聯(lián)系人的關(guān)系信息,而只緩存有2級聯(lián)系人的關(guān)系信息,則關(guān)系服務(wù)單元可以在緩存服務(wù)單元上存儲的2級聯(lián)系人的基礎(chǔ)上進行遍歷搜索,獲取3相應(yīng)3級聯(lián)系人的關(guān)系信息。同時關(guān)系服務(wù)單元將獲取的進一步的關(guān)系信息即3級聯(lián)系人的關(guān)系信息也可以緩存到緩存服務(wù)單元上,以備將來使用。緩存的寬度優(yōu)先樹可以用XML格式表示,下面示出了一個緩存的寬度優(yōu)先樹<BFS-Treeentity="sunqian@mail.com"><entryuri="wenx@mail.cn"level=l〉〈display-name〉溫馨〈/display-name〉〈relationship-name〉妻子〈/relationship-name〉</entry><entryuri="yangzhao@mail.com"level=l〉〈display-name〉招揚</display-name>〈relationship-name〉好月月友及同事〈/relationship-name〉</entry><entryuri="mary@hotmail.com"level=2><parent>yangzhao@mail.com</parent>〈display畫name〉3馬麗</display-name>28〈relationship-name〉々卩居〈/relationship-name〉</entry></BFS-Tree>即在XML文件中先將第1級聯(lián)系人的信息列出,再對第2級聯(lián)系人的信息逐一列出,并標(biāo)記每個第2級聯(lián)系人的父級聯(lián)系人即對應(yīng)的第1級聯(lián)系人,如此類推。以上對本發(fā)明進行了詳細(xì)的描述,由上述方法可以看出,本發(fā)明使用戶可以共享關(guān)系信息,獲取到間接的關(guān)系信息。另外也可以控制關(guān)系信息的公開。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種公開關(guān)系信息的系統(tǒng),包括服務(wù)器,其中,所述服務(wù)器上存儲用戶的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識、該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,所述關(guān)系記錄設(shè)置有是否公開的標(biāo)記;所述服務(wù)器用于接收將關(guān)系記錄設(shè)置為公開的請求消息,所述請求消息至少包括發(fā)送該請求消息用戶的用戶標(biāo)識、聯(lián)系人標(biāo)識;并且,所述服務(wù)器根據(jù)接收到的請求消息中的用戶標(biāo)識和聯(lián)系人標(biāo)識檢索到所述用戶標(biāo)識和聯(lián)系人標(biāo)識之間的關(guān)系記錄,并將該關(guān)系記錄標(biāo)記為公開。2、一種關(guān)系信息的獲取系統(tǒng),包括服務(wù)器,其特征在于,服務(wù)器中存儲用戶與聯(lián)系人的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識,該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,以及標(biāo)識關(guān)系記錄是否公開的標(biāo)記;所述服務(wù)器接收客戶端發(fā)送的獲取關(guān)系信息的請求消息,所述請求消息包括客戶端用戶標(biāo)識、要查詢的目的用戶標(biāo)識;所述服務(wù)器根據(jù)接收到的所述請求消息中的要查詢的目的用戶標(biāo)識,檢索存儲的該目的用戶標(biāo)識對應(yīng)的標(biāo)記為公開的關(guān)系記錄信息;所述服務(wù)器將檢索到的關(guān)系記錄信息返回給發(fā)起所述請求消息的客戶端。3、一種關(guān)系路徑信息的獲取系統(tǒng),包括服務(wù)器,其特征在于,所述服務(wù)器中存儲用戶與聯(lián)系人的關(guān)系記錄,所述關(guān)系記錄至少包括用戶標(biāo)識,該用戶的聯(lián)系人標(biāo)識以及該用戶與聯(lián)系人的關(guān)系信息,以及標(biāo)識關(guān)系記錄是否7^開的標(biāo)i己;所述服務(wù)器接收所述客戶端發(fā)送的獲取關(guān)系路徑信息的請求消息,所述請求消息包括客戶端用戶標(biāo)識、要查詢的目的用戶標(biāo)識;所述服務(wù)器接收所述請求消息,根據(jù)存儲的標(biāo)記為公開的各個用戶的關(guān)系記錄,檢索客戶端用戶標(biāo)識到要查詢的目的用戶標(biāo)識的關(guān)系路徑信息;所述服務(wù)器將檢索到的關(guān)系路徑信息返回給發(fā)起所述請求消息的客戶端。4、一種提供關(guān)系信息的系統(tǒng),包括客戶端,用于發(fā)送獲取關(guān)系信息的請求,并根據(jù)獲取的關(guān)系信息生成和輸出關(guān)系視圖;關(guān)系服務(wù)單元,用于接收客戶端請求,從關(guān)系記錄數(shù)據(jù)庫檢索出用戶及其各級聯(lián)系人的關(guān)系記錄并返回給客戶端,其中,所述關(guān)系記錄至少包括用戶標(biāo)識、該用戶的耳關(guān)系人標(biāo)識、該用戶與聯(lián)系人的關(guān)系信息和關(guān)系記錄是否7^開的標(biāo)i己;關(guān)系記錄數(shù)據(jù)庫,存儲有各個用戶的聯(lián)系人、用戶與聯(lián)系人之間的關(guān)系信息。5、根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括查詢服務(wù)單元,用于接收客戶端和/或關(guān)系服務(wù)單元的請求去檢索用戶屬性數(shù)據(jù)庫獲得用戶屬性,或根據(jù)用戶屬性反查用戶屬性數(shù)據(jù)庫獲得對應(yīng)的用戶標(biāo)識;用戶屬性數(shù)據(jù)庫,存儲有各個用戶的屬性信息,向查詢服務(wù)單元和/或關(guān)系服務(wù)單元提供各級聯(lián)系人的屬性信息。6、根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括緩存服務(wù)單元,用于緩存關(guān)系服務(wù)單元檢索出的關(guān)系信息,并由關(guān)系服務(wù)單元提供給客戶端。7、根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括活動服務(wù)單元,用于存儲客戶端創(chuàng)建的活動記錄,并在接收到查看活動信息或加入活動的請求時向關(guān)系服務(wù)單元請求驗證發(fā)送請求的用戶與創(chuàng)建活動的用戶之間的關(guān)系信息,驗證符合預(yù)設(shè)的關(guān)系后才允許查看活動信息或力口入活動。8、根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,該系統(tǒng)所述關(guān)系服務(wù)單元包括第一單元,用于將發(fā)送請求的用戶標(biāo)識發(fā)送給第二單元,以及將第二單元返回的基本關(guān)系信息進行緩存,并根據(jù)所述基本關(guān)系信息中包含的各級聯(lián)系人的用戶標(biāo)識繼續(xù)上述步驟,從第二單元獲取各級聯(lián)系人的基本關(guān)系信息,最終組合各級聯(lián)系人的基本關(guān)系信息后返回給客戶端;第二單元,用于根據(jù)第一單元發(fā)送的用戶標(biāo)識檢索關(guān)系記錄并生成該用戶標(biāo)識的基本關(guān)系信息,返回給第一單元。全文摘要本發(fā)明提供了一種提供關(guān)系信息的系統(tǒng),包括客戶端,用于發(fā)送獲取關(guān)系信息的請求,并根據(jù)獲取的關(guān)系信息生成和輸出關(guān)系視圖;關(guān)系服務(wù)單元,用于接收客戶端請求,從關(guān)系記錄數(shù)據(jù)庫檢索出用戶及其各級聯(lián)系人的關(guān)系記錄并返回給客戶端,其中,所述關(guān)系記錄至少包括用戶標(biāo)識、該用戶的聯(lián)系人標(biāo)識、該用戶與聯(lián)系人的關(guān)系信息和關(guān)系記錄是否公開的標(biāo)記;關(guān)系記錄數(shù)據(jù)庫,存儲有各個用戶的聯(lián)系人、用戶與聯(lián)系人之間的關(guān)系信息。使用本發(fā)明,用戶可以在即時通信等系統(tǒng)中,共享自己的關(guān)系信息給其他用戶,以及獲取到間接的關(guān)系信息或關(guān)系路徑。文檔編號H04L29/06GK101453472SQ20081019072公開日2009年6月10日申請日期2005年11月9日優(yōu)先權(quán)日2005年11月9日發(fā)明者謙孫,揚招,田林一申請人:華為技術(shù)有限公司