專利名稱::即時(shí)消息路由方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及即時(shí)消息通信領(lǐng)域,特別涉及即時(shí)消息^各由方法、設(shè)備和系統(tǒng)。
背景技術(shù):
:即時(shí)消息通信(InstantMessaging,IM)是在兩個(gè)或更多人之間基于打字、語音或視頻等的一種實(shí)時(shí)通信形式。與電子郵件或電話相比,即時(shí)消息通信具有特有的優(yōu)點(diǎn),例如,即時(shí)消息通信可以比電話通信具有較少的干擾,即時(shí)消息通信系統(tǒng)可以允許用戶在客戶端設(shè)置在線狀態(tài)信息以使得對(duì)方可以知道其是否是可用的,并且即時(shí)消息通信不需要對(duì)方立即做出回答。因此,在web應(yīng)用和企業(yè)環(huán)境中,即時(shí)消息通信已經(jīng)越來越普遍?,F(xiàn)在的即時(shí)消息通信系統(tǒng)包括服務(wù)器和客戶端。在即時(shí)消息通信系統(tǒng)中,服務(wù)器通常用于收集客戶端的狀態(tài)信息,從而初始化客戶端之間的通信,以及在某些情況下傳送即時(shí)消息通信會(huì)話。在客戶端,每個(gè)最終用戶可以使用自己的賬號(hào)登錄到即時(shí)消息通信系統(tǒng),當(dāng)用戶希望與另一用戶通信時(shí),即時(shí)消息通信系統(tǒng)中的源客戶端向服務(wù)器發(fā)送通信請(qǐng)求。服務(wù)器將該通信請(qǐng)求傳送到相應(yīng)的目的地客戶端,并將來自目的地客戶端的應(yīng)答信息傳送回源客戶端,從而建立源客戶端與目的地客戶端之間的通信。傳統(tǒng)的即時(shí)消息通信系統(tǒng)中的用戶具有相同的能力,但目前在一些即時(shí)消息通信系統(tǒng)中的用戶具有不對(duì)等的能力。例如,在使用即時(shí)消息通信的在線購物中心,買方與賣方都是即時(shí)消息通信系統(tǒng)中的客戶端,其中買方是源客戶端,賣方是目的地客戶端。賣方可以具有多個(gè)業(yè)務(wù)員,即子用戶,每個(gè)業(yè)務(wù)員例如有一個(gè)IM賬號(hào)。在賣方有多個(gè)業(yè)務(wù)員同時(shí)在線的情況下,當(dāng)買方與賣方的一個(gè)或多個(gè)業(yè)務(wù)員進(jìn)行了通信例如購買了一個(gè)產(chǎn)品后,希望按照某種策略與賣方的同一業(yè)務(wù)員再次進(jìn)行通信,例如該策略可能是希望選擇最近通信過的業(yè)務(wù)員、希望選擇曾經(jīng)通信過的業(yè)務(wù)員中當(dāng)前最空閑的業(yè)務(wù)員、或者希望選擇曾經(jīng)通信過的業(yè)務(wù)員中與買方地理位置距離最近的業(yè)務(wù)員等等。然而,現(xiàn)有技術(shù)無法解決按照策略選擇目的地客戶端中的子用戶這一問題。
發(fā)明內(nèi)容針對(duì)以上問題,本發(fā)明提供了一種即時(shí)消息;洛由方法、設(shè)備和系統(tǒng)。本發(fā)明的目的是,當(dāng)源客戶端請(qǐng)求與目的地客戶端通信時(shí),利用上下文,使用策略將該通信請(qǐng)求路由到目的地客戶端中曾經(jīng)與該源客戶端進(jìn)行過通信的子用戶。根據(jù)本發(fā)明的第一方面,提供了一種即時(shí)消息^各由方法,包括步驟接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文;以及根據(jù)上下文,使用策略選擇目的地客戶端的子用戶進(jìn)行通信。根據(jù)本發(fā)明的第二方面,提供了一種即時(shí)消息^^由設(shè)備,包括:接收器,操作用于接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取器,操作用于獲取與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文;以及選擇器,操作用于根據(jù)上下文而使用策略選擇目的地客戶端的子用戶進(jìn)4亍通信。根據(jù)本發(fā)明的第三方面,提供了一種即時(shí)消息路由系統(tǒng),包括:源客戶端,操作用于與目的地客戶端進(jìn)行通信;目的地客戶端,包括一個(gè)或多個(gè)子用戶,操作用于以其中一個(gè)子用戶與源客戶端進(jìn)行通信;服務(wù)器,操作用于根據(jù)與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文,使用策略選擇目的地客戶端的子用戶與源客戶端進(jìn)行通信。圖,本發(fā)明的其他特征以及優(yōu)點(diǎn)將會(huì)是顯而易見的。圖1是按照本發(fā)明的一個(gè)實(shí)施例的即時(shí)消息通信系統(tǒng)的示意圖2是圖1所示的即時(shí)消息通信系統(tǒng)建立通信的操作時(shí)序圖;圖3是按照本發(fā)明的一個(gè)實(shí)施例的民P時(shí)消息路由方法的流程以及圖4是按照本發(fā)明的一個(gè)實(shí)施例的即時(shí)消息路由設(shè)備的方框圖。具體實(shí)施例方式以下將詳細(xì)描述本發(fā)明的實(shí)施方式。應(yīng)當(dāng)理解,在本發(fā)明所用的術(shù)語中,普通用戶和虛擬用戶是即時(shí)消息通信系統(tǒng)中的不同種類的客戶端。其中,"普通用戶"是即時(shí)消息通信系統(tǒng)中的傳統(tǒng)用戶。"虛擬用戶,,是即時(shí)消息通信系統(tǒng)中的一種用戶其可以象普通用戶那樣具有簡(jiǎn)檔(profile),并可以包括一個(gè)或多個(gè)普通用戶作為一組子用戶。當(dāng)普通用戶與虛擬用戶通信時(shí),該普通用戶將該虛擬用戶看作自己的通信伙伴,而實(shí)際上正在與該普通用戶通信的是屬于該虛擬用戶的子用戶之一,并且該普通用戶通常不知道自己正在與哪一個(gè)子用戶通信。"子用戶,,可以是即時(shí)消息通信系統(tǒng)中的一個(gè)普通用戶,其可以采用獨(dú)立于其所屬的虛擬用戶標(biāo)識(shí)符的普通用戶標(biāo)識(shí)符,也可以采用虛擬用戶標(biāo)識(shí)符作為自身的標(biāo)識(shí)符,而沒有獨(dú)立標(biāo)識(shí)符。在本發(fā)明中,即時(shí)消息通信系統(tǒng)中的"服務(wù)器"用于維持即時(shí)消息通信系統(tǒng)中的客戶端(例如,普通用戶和包含一個(gè)或多個(gè)子用戶的虛擬用戶)之間的通信,并存儲(chǔ)相關(guān)通信信息,例如上下文。"上下文"可以包括源客戶端標(biāo)識(shí)符、目的地客戶端標(biāo)識(shí)符、目的地客戶端的子用戶標(biāo)識(shí)符、源客戶端的個(gè)人信息、地理信息、通信狀態(tài)信息和通信歷史信息、目的地客戶端的地理信息、通信狀態(tài)信息和通信歷史信息、目的地客戶端的子用戶的地理信息、通信狀態(tài)信息。通信狀態(tài)信息包括例如通信的時(shí)間戳、帶寬以及操作系統(tǒng)信息等等。"策略"是根據(jù)上下文中包含的各種信息來選擇適合的子用戶進(jìn)行通信的設(shè)定。例如,策略可以包括根據(jù)上下文中的通信歷史記錄,選擇最近通信的可用子用戶;根據(jù)上下文中的地理位置信息,選擇地理位置最近的可用子用戶;根據(jù)上下文中的負(fù)載信息,選擇負(fù)載最小的可用子用戶;根據(jù)上下文中的多種信息,對(duì)某些策略進(jìn)行組合來選擇子用戶,等等。在詳細(xì)描述本發(fā)明的實(shí)施例之前,先介紹本發(fā)明的應(yīng)用場(chǎng)景的一個(gè)例子。首先,普通用戶A和虛擬用戶B登錄到即時(shí)消息通信系統(tǒng)中。普通用戶A按照常規(guī)的方式登錄,在此不再詳述。在登錄過程中,虛擬用戶B向服務(wù)器發(fā)出登錄請(qǐng)求,服務(wù)器接收到該請(qǐng)求后檢查虛擬用戶B的用戶類型,得知該用戶是一個(gè)包含N個(gè)子用戶的虛擬用戶;然后服務(wù)器查找記錄用戶信息的表,得到該虛擬用戶B的子用戶的信息,并獲取該虛擬用戶B的每個(gè)子用戶的在線信息和狀態(tài)信息,來更新該虛擬用戶B的當(dāng)前在線信息和狀態(tài)信息。然后,普通用戶A通過服務(wù)器而與虛擬用戶B進(jìn)行通信。因?yàn)樘摂M用戶B是一個(gè)包含N個(gè)子用戶的組。所以當(dāng)普通用戶A請(qǐng)求與虛擬用戶B進(jìn)行通信時(shí),實(shí)際上只能由虛擬用戶B中的子用戶之一進(jìn)行通信。因此如何選擇適合的子用戶與普通用戶A通信是本發(fā)明所要解決的問題。圖1是按照本發(fā)明的一個(gè)實(shí)施例的即時(shí)消息通信系統(tǒng)的示意圖。其中,服務(wù)器協(xié)助請(qǐng)求建立連接的源客戶端找到其希望通信的目的地客戶端;然后建立這兩個(gè)客戶端之間的通信;之后這兩個(gè)客戶端直接通信而不需服務(wù)器參與,或者這兩個(gè)客戶端仍通過服務(wù)器作為橋梁進(jìn)行通信(在圖1中未示出)。在圖1所示的例子中,目的地客戶端是一個(gè)虛擬用戶,其包括四個(gè)子用戶,即子用戶1、子用戶2、子用戶3和子用戶4。假設(shè)源客戶端與目的地客戶端的子用戶1近期進(jìn)行過通信,則在源客戶端再次希望與目的地客戶端進(jìn)行通信時(shí),服務(wù)器將根據(jù)本發(fā)明的基于上下文路由的方法,使用策略選擇目的地客戶端的子用戶與源客戶端進(jìn)行通信,從而使得源客戶端再一次與目的地客戶端的子用戶1進(jìn)行通信,而不是與子用戶2、子用戶3或子用戶4進(jìn)行通信。圖1中的步驟101-106在圖2中進(jìn)一步解釋。圖2是圖1所示的即時(shí)消息通信系統(tǒng)建立通信的操作時(shí)序圖。應(yīng)當(dāng)注意,本發(fā)明的基于上下文的路由方法是在即時(shí)消息通信系統(tǒng)的服務(wù)器端進(jìn)行的,如圖2中六邊形框所示。在步驟101,源客戶端接受來自外部的通信請(qǐng)求,并根據(jù)從該請(qǐng)求內(nèi)容得到的目的地客戶端標(biāo)識(shí)符。在步驟102,源客戶端向服務(wù)器發(fā)出希望與該目的地客戶端進(jìn)行通信的請(qǐng)求。服務(wù)器接收到該請(qǐng)求后,獲取與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文,然后根據(jù)該上下文,使用策略選擇目的地客戶端的子用戶進(jìn)行通信。其中,所選擇的子用戶即與該源客戶端最近通信過的目的地客戶端中的子用戶1。接著,在步驟103,服務(wù)器將來自源客戶端的通信請(qǐng)求傳送至目的地客戶端的子用戶1,請(qǐng)求與其通信。在步驟104,該目的地客戶端的子用戶1同意與源客戶端進(jìn)行通信,向服務(wù)器做出應(yīng)答。然后,在步驟105,服務(wù)器將該同意進(jìn)行通信的應(yīng)答消息傳送至源客戶端。在步驟106,源客戶端與已經(jīng)建立連接的子用戶1進(jìn)行通信。圖3是按照本發(fā)明的一個(gè)實(shí)施例的即時(shí)消息^各由方法的流程圖。該方法對(duì)應(yīng)于圖2中的步驟102與103之間由服務(wù)器執(zhí)行的基于上下文來選擇目的地客戶端子用戶的處理。以下通過圖3的流程圖詳細(xì)描述本發(fā)明的方法。在步驟301,接收客戶端的通信發(fā)起請(qǐng)求。如上所述,在即時(shí)消息通信系統(tǒng)中,首先由源客戶端處的用戶發(fā)起通信請(qǐng)求,然后服務(wù)器接收該請(qǐng)求,根據(jù)該請(qǐng)求中包含的內(nèi)容而進(jìn)行相應(yīng)的處理。該通信請(qǐng)求中,可以包括多種信息,例如,源客戶端標(biāo)識(shí)符、源客戶端希望與其通信的目的地客戶端標(biāo)識(shí)符等。在步驟302,根據(jù)所接收到的通信請(qǐng)求而取得目的地客戶端標(biāo)識(shí)符。當(dāng)服務(wù)器接收到來自源客戶端的通信請(qǐng)求后,讀取該請(qǐng)求中包括的源客戶端希望與其通信的目的地客戶端標(biāo)識(shí)符。在步驟303,確定目的地客戶端是否可用。在建立源和目的地客戶端之間的通信之前,應(yīng)該預(yù)先確定該目的地客戶端是否是可用的。在傳統(tǒng)的即時(shí)消息通信系統(tǒng)中,通常具有支持普通用戶的各種狀態(tài)的功能,例如"在線"、"忙"、"離開,,、"離線"等。在傳統(tǒng)的確定客戶端狀態(tài)的處理中,需要查詢存儲(chǔ)在服務(wù)器上或者服務(wù)器可訪問的其他存儲(chǔ)介質(zhì)中的客戶端狀態(tài)表,其中該客戶端狀態(tài)表的每條記錄中包括客戶端標(biāo)識(shí)符、該客戶端的狀態(tài)等。例如,當(dāng)記錄中的目的地客戶端狀態(tài)是"在線,,、"忙,,、"離開"時(shí),認(rèn)為該目的地客戶端是可用的,而當(dāng)其狀態(tài)是"離線"時(shí),認(rèn)為該目的地客戶端是不可用的。與傳統(tǒng)的即時(shí)消息通信系統(tǒng)不同,本發(fā)明給出了一種新的用戶,即虛擬用戶。虛擬用戶可以包括多個(gè)普通用戶作為子用戶,因此虛擬用戶狀態(tài)不同于普通用戶,其可以具有多種定義方法。例如,虛擬用戶的狀態(tài)可以定義如下虛擬用戶"在線",即一個(gè)或多個(gè)子用戶都"在線"。虛擬用戶"忙",即所有子用戶都"忙"或者一部分子用戶"忙"而其他子用戶"離線"或"離開"。虛擬用戶"離開",即所有子用戶都"離開"或者一部分子用戶"離開"而其他子用戶"離線"。虛擬用戶"離線",即所有子用戶都"離線"。在本發(fā)明中,虛擬用戶和普通用戶的狀態(tài)信息同樣存儲(chǔ)在客戶端狀態(tài)表中。在本發(fā)明的確定客戶端狀態(tài)的處理中,也需要查詢客戶端狀態(tài)表,其中該客戶端狀態(tài)表的每條記錄中包括客戶端(包含普通用戶和虛擬用戶)標(biāo)識(shí)符、該客戶端的狀態(tài)等。在本實(shí)施例中,客戶端狀態(tài)表存儲(chǔ)在服務(wù)器上,另外,客戶端狀態(tài)表也可以存儲(chǔ)在服務(wù)器可訪問的任何存儲(chǔ)介質(zhì)中。根據(jù)客戶端的狀態(tài)信息,可以有多種方式定義客戶端是否可用。例如,可以當(dāng)記錄中的目的地客戶端狀態(tài)是"在線"、"忙"、"離開"時(shí),認(rèn)為該目的地客戶端是可用的,而當(dāng)其狀態(tài)是"離線"時(shí),認(rèn)為該目的地客戶端是不可用的。又例如,可以當(dāng)記錄中的目的地客戶端狀態(tài)是"在線,,時(shí),認(rèn)為該目的地客戶端是可用的,而當(dāng)其狀態(tài)是"忙"、"離開"、"離線"時(shí),認(rèn)為該目的地客戶端是不可用的。當(dāng)確定目的地客戶端是可用的時(shí),進(jìn)入步驟304,否則,處理流程結(jié)束。在本實(shí)施例中,目的地客戶端的子用戶l的狀態(tài)是"在線"、子用戶2的狀態(tài)是"離線"、子用戶3的狀態(tài)是"忙"以及子用戶3的狀態(tài)是"在線",所以目的地客戶端的狀態(tài)是"在線,,。因此,接下來進(jìn)入步驟304。在步驟304,檢查目的地客戶端類型。在本發(fā)明中,目的地客戶端可能是普通用戶,也可能是具有一個(gè)或多個(gè)子用戶的虛擬用戶。對(duì)于不同類型的客戶端,具有不同的處理方式。因此,需要查詢存儲(chǔ)在服務(wù)器上或服務(wù)器可訪問的任何其他存儲(chǔ)介質(zhì)上的客戶端類型表。在客戶端類型表中記錄了客戶端標(biāo)識(shí)符以及該客戶端的類型等。該客戶端類型表與客戶端狀態(tài)表可以是同一個(gè)表,也可以是獨(dú)立存儲(chǔ)的不同表。根據(jù)客戶端類型表,可以查找目的地客戶端,并確定該客戶端所對(duì)應(yīng)的類型。在步驟305,確定目的地客戶端是否是虛擬用戶。當(dāng)該客戶端是虛擬用戶時(shí),繼續(xù)進(jìn)行后續(xù)的處理步驟,進(jìn)入步驟306;而當(dāng)該客戶端不是虛擬用戶時(shí),進(jìn)入步驟311,此時(shí)按照現(xiàn)有技術(shù)進(jìn)行處理,將通信建立請(qǐng)求傳送至屬于普通用戶的目的地客戶端,然后處理結(jié)束。在本實(shí)施例中,目的地客戶端是虛擬用戶,其具有子用戶l至子用戶4,因此進(jìn)入步驟306。在步驟306,獲取與源客戶端以及目的地客戶端相關(guān)聯(lián)的上下文。源客戶端和曾經(jīng)建立過通信的目的地客戶端及其子用戶的上下文存儲(chǔ)在上下文信息庫中。上下文信息庫可以位于服務(wù)器上,也可以位于服務(wù)器可訪問的任何存儲(chǔ)介質(zhì)中。在本實(shí)施例中,上下文信息庫位于服務(wù)器上。上下文可以例如是包括時(shí)間戳、源客戶端標(biāo)識(shí)符、目的地客戶端標(biāo)識(shí)符、子用戶標(biāo)識(shí)符的通信歷史記錄以及與源客戶端和目標(biāo)客戶端通信相關(guān)的其他信息等。在步驟306,例如可以源客戶端標(biāo)識(shí)符為查詢關(guān)鍵詞,查找包含該源客戶端標(biāo)識(shí)符的所有上下文,然后再以目的地客戶端標(biāo)識(shí)符為查詢關(guān)^fc詞,在以上查詢結(jié)果中進(jìn)一步查找還包含該目的地客戶端標(biāo)識(shí)符的上下文。在步驟307,根據(jù)上下文,得到源客戶端最近的通信歷史記錄以及該記錄中的時(shí)間戳。表1示出了在本實(shí)施例中所獲取的上下文所包4舌的通j言歷史記錄。表1<table>tableseeoriginaldocumentpage13</column></row><table>表l中共示出了兩條記錄,第一條記錄是在2007年1月16日11點(diǎn)45分10秒,標(biāo)識(shí)符為abc的源客戶端與標(biāo)識(shí)符為XianFengShuDian的目的地客戶端的子用戶1即ShopAssistantl進(jìn)行了通信;第二條記錄是在2007年1月13日14點(diǎn)23分49秒,標(biāo)識(shí)符為abc的源客戶端與標(biāo)識(shí)符為XianFengShuDian的目的地客戶端的子用戶3即ShopAssistant3進(jìn)行了通信。在本實(shí)施例中,根據(jù)表l所示的上下文,第一條記錄的2007年1月16日11點(diǎn)45分10秒進(jìn)行的通信是最近的通信歷史記錄。在該條通信記錄中,源客戶端abc與目的地客戶端XianFengShuDian的子用戶1ShopAssistantl進(jìn)行了通信,該最近通信的時(shí)間戳是2007年1月16日11點(diǎn)45分10秒。在步驟308,在得到最近通信記錄中的時(shí)間戳之后,需要確定該記錄是否有效,當(dāng)該記錄有效時(shí),獲取該有效記錄中的子用戶標(biāo)識(shí)符。也就是得到有效的記錄中的子用戶。在本實(shí)施例中,假定本步驟進(jìn)行的時(shí)間是2007年1月16日13點(diǎn)05分55秒。另外,假定在本發(fā)明的即時(shí)消息通信系統(tǒng)中,判斷記錄有效的時(shí)間期限是1天即24小時(shí)。由于第一條記錄距離當(dāng)前時(shí)間不超過1天,因此是有效的,從而得到目的地客戶端XianFengShuDian中的與源客戶端abc相關(guān)聯(lián)的子用戶1的標(biāo)識(shí)符Sh叩A(chǔ)ssistantl,繼而進(jìn)入步驟309。另夕卜,應(yīng)該理解,在任何即時(shí)消息通信系統(tǒng)中,可以規(guī)定不同的判斷記錄有效的時(shí)間期限,例如1小時(shí)、24小時(shí)、l周、l個(gè)月等等。如果判斷記錄有效的時(shí)間期限是1小時(shí),則由于第一條記錄距離當(dāng)前時(shí)間是1小時(shí)20分鐘45秒,因此該記錄無效,繼而可以選擇其他策略來選擇子用戶。在本發(fā)明的另一個(gè)實(shí)施例中,當(dāng)確定最近的通信歷史記錄無效時(shí),可以根據(jù)上下文中的子用戶負(fù)載信息來選擇負(fù)載最小的可用的子用戶,作為為源客戶端選擇的進(jìn)行通信的子用戶。在本發(fā)明的又一個(gè)實(shí)施例中,當(dāng)確定最近的通信歷史記錄無效時(shí),可以根據(jù)上下文中的子用戶地理位置信息來選擇地理位置最近的可用的子用戶,作為為源客戶端選擇的進(jìn)行通信的子用戶。在步驟309,當(dāng)確定所得到的子用戶1ShopAssistantl可用時(shí),選擇該子用戶進(jìn)行與源客戶端的通信。在本實(shí)施例中,子用戶l至子用戶4都是普通用戶,因此子用戶狀態(tài)的判斷與傳統(tǒng)技術(shù)中確定普通用戶的狀態(tài)的方法相同。子用戶的狀態(tài)存儲(chǔ)在服務(wù)器上或者服務(wù)器可訪問的其他存儲(chǔ)介質(zhì)上的子用戶狀態(tài)表中,其中該子用戶狀態(tài)表的每條記錄中可以包括子用戶標(biāo)識(shí)符、該子用戶所屬的客戶端標(biāo)識(shí)符以及該子用戶的狀態(tài)等。根據(jù)子用戶的狀態(tài),例如包括"在線"、"忙"、"離開,,、"離線,,等,可以以多種方式規(guī)定子用戶是否可用。例如,當(dāng)子用戶狀態(tài)表中的一個(gè)子用戶的狀態(tài)是"在線,,、"忙,,、"離開,,日于,認(rèn)為該目的地客戶端是可用的,從而選擇該子用戶進(jìn)行與源客戶端的通信;而當(dāng)其狀態(tài)是"離線"時(shí),認(rèn)為該目的地客戶端是不可用的,繼而可以選擇其他策略來選擇子用戶,例如根據(jù)上下文,基于負(fù)載最小或者地理位置最近等策略來選擇子用戶。在本實(shí)施例中,子用戶1ShopAssistantl的狀態(tài)是"在線",因此確定該子用戶是可用的,所以選擇子用戶1ShopAssistantl作為目的地客戶端XianFengShuDian中與源客戶端abc進(jìn)行通信的子用戶。在步驟310,更新上下文信息庫中與該源客戶端和該目的地客戶端相關(guān)聯(lián)的上下文。例如,在上下文信息庫中增加在2007年1月16日13點(diǎn)05分55秒源客戶端abc與目的地客戶端XianFengShuDian的子用戶1Sh叩A(chǔ)ssistantl進(jìn)行通信的一條記錄,如表2中的第一條記錄所示。然后處理結(jié)束。表2<table>tableseeoriginaldocumentpage15</column></row><table>應(yīng)該理解,在獲取到與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文之后,除了根據(jù)圖3所示的步驟307和步驟308選擇最近通信的有效的子用戶之外,本發(fā)明的策略還可以包括多種其他可能策略。在本發(fā)明的另一個(gè)實(shí)施例中,在獲取到與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文之后,可以根據(jù)從上下文中獲取的子用戶負(fù)載信息來選擇負(fù)載最小的子用戶,并當(dāng)確定該子用戶可用時(shí),將其作為為源客戶端選擇的進(jìn)行通信的子用戶。在本發(fā)明的又一個(gè)實(shí)施例中,在獲取到與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文之后,可以根據(jù)從上下文中獲耳又的子用戶地理位置信息來選擇地理位置最近的子用戶,并當(dāng)確定該子用戶可用時(shí),將其作為為源客戶端選擇的進(jìn)行通信的子用戶。此外,還可以根據(jù)源客戶端的用戶個(gè)人信息中的年齡、性別或級(jí)別來選擇適合的子用戶與源客戶端進(jìn)行通信。其他可能的方案包括根據(jù)通信的時(shí)段、帶寬而選擇子用戶或者根據(jù)各種信息的組合來同的選擇子用戶的方案,并且可以動(dòng)態(tài)調(diào)整選擇子用戶的策略。圖4是按照本發(fā)明的一個(gè)實(shí)施例的即時(shí)消息路由設(shè)備400的方框圖。該設(shè)備400包括接收器410、獲取器420和選擇器430。該設(shè)備400還可以包括更新器440。另外,設(shè)備400還可以包括上下文信息庫450和策略庫460。接收器410操作用于接收源客戶端向目的地客戶端的通信請(qǐng)求。獲取器420操作用于獲取與所述源客戶端和所述目的地客戶端相關(guān)聯(lián)的上下文。獲取器420可以包括操作用于確定目的地客戶端是否是虛擬用戶并當(dāng)目的地客戶端是虛擬用戶時(shí)獲取與源客戶端相關(guān)的上下文的裝置。地客戶端的子用戶進(jìn)行通信。選擇器430可以包括操作用于獲取上下文中的最近的通信歷史記錄,得到該記錄中有效的子用戶的標(biāo)識(shí)符并選擇有效的子用戶中的可用的子用戶的裝置;操作用于獲取上下文中的子用戶地理位置信息并選擇地理位置最近的可用的子用戶的裝置;或者,操作用于獲取上下文中的子用戶負(fù)載信息并選擇負(fù)載最小的可用的子用戶的裝置。更新器440操作用于根據(jù)來自選擇器的子用戶選擇結(jié)果,更新上下文信息庫中的上下文。上下文信息庫450操作用于存儲(chǔ)上下文。策略庫460操作用于存儲(chǔ)用于選擇子用戶的策略。本發(fā)明還公開了一種即時(shí)消息路由系統(tǒng),包括源客戶端,操作用于與目的地客戶端進(jìn)行通信;目的地客戶端,包括一個(gè)或多個(gè)子用戶,操作用于以其中一個(gè)子用戶與源客戶端進(jìn)行通信;服務(wù)器,操作用于根據(jù)與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文,使用策略選擇目的地客戶端的子用戶與源客戶端進(jìn)行通信。其中,該服務(wù)器可以包括接收器410、獲取器420和選擇器430。該服務(wù)器還可以包括更新器440。另外,該服務(wù)器還可以包括上下文信息庫450和策略庫460。應(yīng)該理解,本發(fā)明的即時(shí)消息^各由方法、設(shè)備和系統(tǒng)也可以用于P2P即時(shí)消息通信。在P2P即時(shí)消息通信中,兩個(gè)客戶端建立底層通信鏈接的過程可能與傳統(tǒng)的即時(shí)消息通信系統(tǒng)不同,例如需要建立鏈接信息在P2P網(wǎng)絡(luò)中進(jìn)行傳播。然而,本發(fā)明的即時(shí)消息路由方法和設(shè)備是工作在即時(shí)消息通信系統(tǒng)的應(yīng)用層來選擇子用戶的,因此本發(fā)明的方法、設(shè)備和系統(tǒng)也適用于P2P即時(shí)消息通信統(tǒng)。本發(fā)明的方法適于與具有多個(gè)子用戶的虛擬用戶進(jìn)行的通信,的子用戶的信息的上下文,按照策略為源客戶端選擇虛擬用戶中的子用戶與其通信。因此,源客戶端可以在與虛擬用戶的子用戶進(jìn)行過通信后,使用策略與希望的子用戶進(jìn)行再次通信,而不必每次與虛擬用戶的不同子用戶建立新的通信。本發(fā)明還涉及一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括用于執(zhí)行如下的代碼接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文;以及4艮據(jù)上下文,使用策略選擇目的地客戶端的子用戶進(jìn)行通信。這樣的計(jì)算機(jī)程序產(chǎn)品可以存儲(chǔ)在存儲(chǔ)載體中。雖然上文已經(jīng)參考了本發(fā)明的特定實(shí)施方式,但本領(lǐng)域的技術(shù)人員將會(huì)理解,這些只是示例性的說明,并且在不違背本發(fā)明原理的情況下,能對(duì)這些實(shí)施方式進(jìn)行改變,本發(fā)明的范圍由所附權(quán)利要求書限定。權(quán)利要求1.一種即時(shí)消息路由方法,包括步驟接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取與所述源客戶端和所述目的地客戶端相關(guān)聯(lián)的上下文;以及根據(jù)所述上下文,使用策略選擇所述目的地客戶端的子用戶進(jìn)行通信。2.如權(quán)利要求1所述的方法,其中所述獲取上下文的步驟進(jìn)一步包括確定所述目的地客戶端是否是虛擬用戶;以及當(dāng)所述目的地客戶端是虛擬用戶時(shí),獲取與所述源客戶端相關(guān)的上下文。3.如權(quán)利要求1所述的方法,其中所述上下文包括源客戶端標(biāo)識(shí)符、目的地客戶端標(biāo)識(shí)符、目的地客戶端的子用戶標(biāo)識(shí)符、源客戶端的個(gè)人信息、地理信息、通信狀態(tài)信息和通信歷史信息、目的地客戶端的地理信息、通信狀態(tài)信息和通信歷史信息、目的地客戶端的子用戶的地理信息、通信狀態(tài)信息和通信歷史信息以及選擇所述子用戶所使用的策略。4.如權(quán)利要求1所述的方法,其中選擇所述子用戶的步驟使用的策略包括下列一個(gè)或多個(gè)策略策略一獲取上下文中的最近的通信歷史記錄;得到該記錄中有效的子用戶;選擇有效的子用戶中的可用的子用戶;策略二獲取所述上下文中的子用戶地理位置信息;選擇地理位置最近的可用的子用戶;策略三獲取所述上下文中的子用戶負(fù)載信息;選擇負(fù)載最小的可用的子用戶。5.如權(quán)利要求1所述的方法,其中進(jìn)一步包括根據(jù)所述子用戶選擇結(jié)果,更新上下文。6.—種即時(shí)消息路由設(shè)備,包括接收器,操作用于接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取器,操作用于獲取與所述源客戶端和所述目的地客戶端相關(guān)聯(lián)的上下文;以及客戶端的子用戶進(jìn)行通信。7.如權(quán)利要求6所述的設(shè)備,其中所述獲取器進(jìn)一步包括操作用于確定所述目的地客戶端是否是虛擬用戶并當(dāng)所述目的地客戶端是虛擬用戶時(shí)獲取與所述源客戶端相關(guān)的上下文的裝置。8.如權(quán)利要求6所述的設(shè)備,進(jìn)一步包括上下文信息庫,操作用于存儲(chǔ)所述上下文;和策略庫,操作用于存儲(chǔ)所述策略。9.如權(quán)利要求6所述的設(shè)備,其中所述選擇器進(jìn)一步根據(jù)以下一個(gè)或多個(gè)策略選擇子用戶策略一獲取所述上下文信息庫中的上下文中的最近的通信歷史記錄,得到該記錄中有效的子用戶的標(biāo)識(shí)符并選擇有效的子用戶中的可用的子用戶;策略二獲取所述上下文信息庫中的上下文中的子用戶地理位置信息并選擇地理位置最近的可用的子用戶;策略三獲取所述上下文信息庫中的上下文中的子用戶負(fù)載信息并選擇負(fù)載最小的可用的子用戶。10.如權(quán)利要求6所述的設(shè)備,進(jìn)一步包括更新器,操作用于根據(jù)來自所述選擇器的子用戶選擇結(jié)果,更新所述上下文信息庫中的上下文。11.一種即時(shí)消息路由系統(tǒng),包括源客戶端,操作用于與目的地客戶端進(jìn)行通信;目的地客戶端,包括一個(gè)或多個(gè)子用戶,操作用于以其中一個(gè)子用戶與所述源客戶端進(jìn)行通信;服務(wù)器,操作用于根據(jù)與所述源客戶端和所述目的地客戶端相關(guān)聯(lián)的上下文,使用策略選擇所述目的地客戶端的子用戶與所述源客戶端進(jìn)4亍通信。12.如權(quán)利要求11所述的系統(tǒng),其中所述服務(wù)器進(jìn)一步包括接收器,操作用于接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取器,操作用于獲取與所述源客戶端和所述目的地客戶端相關(guān)耳關(guān)的上下文;以及選擇器,操作用于根據(jù)所述上下文而使用策略選擇所述目的地客戶端的子用戶進(jìn)行通信。13.如權(quán)利要求12所述的系統(tǒng),其中所述獲取器進(jìn)一步包括操作用于確定所述目的地客戶端是否是虛擬用戶并當(dāng)所述目的地客戶端是虛擬用戶時(shí)獲取與所述源客戶端相關(guān)的上下文的裝置。14.如權(quán)利要求11所述的系統(tǒng),其中所述服務(wù)器進(jìn)一步包括上下文信息庫,操作用于存儲(chǔ)所述上下文;和策略庫,操作用于存儲(chǔ)所述策略。15.如權(quán)利要求12所述的系統(tǒng),其中所述選擇器進(jìn)一步根據(jù)以下一個(gè)或多個(gè)策略選擇子用戶策略一獲取上下文中的最近的通信歷史記錄,得到該記錄中有效的子用戶的標(biāo)識(shí)符并選擇有效的子用戶中的可用的子用戶;策略二獲取所述上下文中的子用戶地理位置信息并選擇地理位置最近的可用的子用戶;策略三獲取所述上下文中的子用戶負(fù)載信息并選擇負(fù)載最小的可用的子用戶。16.如權(quán)利要求11所述的系統(tǒng),其中所述服務(wù)器進(jìn)一步包括更新器,操作用于根據(jù)來自選擇器的子用戶選擇結(jié)果,更新所述上下文信息庫中的上下文。全文摘要公開了一種即時(shí)消息路由方法、設(shè)備和系統(tǒng),該方法包括步驟接收源客戶端向目的地客戶端的通信請(qǐng)求;獲取與源客戶端和目的地客戶端相關(guān)聯(lián)的上下文;以及根據(jù)上下文,使用策略選擇目的地客戶端的子用戶進(jìn)行通信。該方法能夠當(dāng)源客戶端請(qǐng)求與虛擬用戶通信時(shí),利用上下文按照策略將該通信請(qǐng)求路由到虛擬用戶的曾經(jīng)與該源客戶端進(jìn)行過通信的子用戶。文檔編號(hào)H04L12/16GK101316377SQ20071010557公開日2008年12月3日申請(qǐng)日期2007年5月28日優(yōu)先權(quán)日2007年5月28日發(fā)明者岳治宇,俐張,王守慧,芮蘇英申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司