專利名稱:通信系統(tǒng)以及用于通過該通信系統(tǒng)進行通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通信系統(tǒng)以及通過該通信系統(tǒng)進行通信的方法。
背景技術(shù):
通信系統(tǒng)允許用戶互相進行通信。每個用戶可以與用戶終端相關(guān)聯(lián)以使得能夠在用戶終端之間傳送數(shù)據(jù)分組以便用戶通過通信系統(tǒng)進行通信。數(shù)據(jù)分組可以通過諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)進行傳送。每個用戶終端 可以執(zhí)行由與通信系統(tǒng)相關(guān)聯(lián)的軟件提供方所提供的通信客戶端,其允許用戶終端通過網(wǎng)絡(luò)進行呼叫和即時消息傳送通信會話。在點對點通信系統(tǒng)中,為了第一用戶向第二用戶傳送消息,使用點對點通信,其中(第一用戶所使用的)第一用戶終端使用第二用戶終端的互聯(lián)網(wǎng)協(xié)議(IP)地址直接向(第二用戶所使用的)第二用戶終端傳送消息。以這種方式,在點對點通信中,數(shù)據(jù)分組在客戶端之間直接傳送(即,并不將數(shù)據(jù)分組指向服務(wù)器)。與P2P通信系統(tǒng)相比,基于服務(wù)器的通信系統(tǒng)通常提供用于在客戶端之間傳送數(shù)據(jù)的更為可靠的通信路徑。然而,基于服務(wù)器的通信系統(tǒng)并不像P2P通信系統(tǒng)那樣對系統(tǒng)中非常大量的用戶進行妥善應(yīng)對,因為在那樣的情況下,對基于服務(wù)器的通信系統(tǒng)的服務(wù)器強加了很大的處理需求。一些點對點通信系統(tǒng)使用服務(wù)器進行IP地址查找,在這種情況下,要求客戶端與在其每次希望與服務(wù)器建立連接時都要與地址查找服務(wù)器建立連接。與適當服務(wù)器建立連接同樣對客戶端的資源提出了需求。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種通信系統(tǒng),包括在用戶終端執(zhí)行的客戶端;前端服務(wù)器;和多個其它節(jié)點,其中該通信系統(tǒng)被配置為在客戶端和其它節(jié)點之一之間傳送點對點通信的數(shù)據(jù)分組,并且其中在客戶端和前端服務(wù)器之間提供持久性連接,該通信系統(tǒng)被配置為使用該持久性連接對客戶端和所述其它節(jié)點之一之間的點對點通信提供支持。根據(jù)本發(fā)明的第二方面,提供了一種通過通信系統(tǒng)進行通信的方法,所述通信系統(tǒng)包括在用戶終端執(zhí)行的客戶端,前端服務(wù)器和多個其它節(jié)點,其中在該通信系統(tǒng)中的客戶端和前端服務(wù)器之間提供有持久性連接,該方法包括在客戶端和該通信系統(tǒng)中的其它節(jié)點之一之間傳送點對點通信的數(shù)據(jù)分組,其中該持久性連接被用來對客戶端和所述其它節(jié)點之一之間的點對點通信提供支持。在客戶端和其它節(jié)點之間傳送的數(shù)據(jù)分組在客戶端和其它節(jié)點之間提供了點對點通信。優(yōu)選地,該通信系統(tǒng)被配置為使用客戶端和前端服務(wù)器之間的持久性連接經(jīng)由該前端服務(wù)器從客戶端向其它節(jié)點傳送數(shù)據(jù)分組。該客戶端可以具有與該通信系統(tǒng)的(不同于該持久性連接的)另一連接以便在點對點通信中使用。
發(fā)明人已經(jīng)意識到,在客戶端和前端服務(wù)器之間存在持久性連接會是有益的。以這種方式,前端服務(wù)器能夠通過持久性連接向客戶端提供后端通信服務(wù),由此為客戶端和通信系統(tǒng)中其它節(jié)點之間的點對點通信提供支持。從客戶端發(fā)送的服務(wù)請求能夠通過使用服務(wù)標識符(服務(wù)ID)來識別。消息能夠使用服務(wù)ID在客戶端和適當服務(wù)器之間進行中繼。這樣,能夠使用服務(wù)ID通過持久性連接對服務(wù)進行有效多路傳輸。例如,服務(wù)器ID可以指示消息是要發(fā)送至即時消息服務(wù)器的即時消息??商鎿Q地,服務(wù)ID可以指示消息是要發(fā)送至增值視頻網(wǎng)關(guān)服務(wù)器的增值視頻消息。經(jīng)由前端服務(wù)器傳送至客戶端的數(shù)據(jù)分組可以使用前端服務(wù)器的標識符和持久性連接的標識符進行尋址。該數(shù)據(jù)分組可以是消息。可替換地,該數(shù)據(jù)分組可以包括在通過通信系統(tǒng)的呼叫中使用的呼叫數(shù)據(jù)。在優(yōu)選實施例中,前端服務(wù)器是連接適配器。在客戶端和連接適配器之間擁有持久性連接使得消息能夠在任何時候都被推送至客戶端。這還使得能夠使用連接適配器的標識和持久性連接對客戶端進行尋址。這提供了一種不依賴于點對點消息傳遞而在客戶端之間進行通信的更為魯棒的方法。此外,與前端服務(wù)器的持久性連接允許前端服務(wù)器主動對點對點通信會話的各方面進行控制,諸如通過通信系統(tǒng)在客戶端之間進行傳送的即時消息的計費和存儲。在優(yōu)選實施例中,持久性連接是傳輸控制協(xié)議(TCP )連接。就客戶端注冊到通信系統(tǒng)中時的意義而言該連接是 持久的,客戶端和前端服務(wù)器之間的連接是始終開啟的。然而,當客戶端沒有注冊到通信系統(tǒng)時(例如,如果用戶終端關(guān)機,或者用戶終端失去了到互聯(lián)網(wǎng)的連接),則客戶端和前端服務(wù)器之間的連接斷開。因此術(shù)語“持久性”僅是指客戶端在其間注冊到通信系統(tǒng)中的期間。通過在已經(jīng)建立的連接(即持久性連接)上向多個服務(wù)器發(fā)送諸如消息之類的數(shù)據(jù)分組而不是為每個數(shù)據(jù)分組創(chuàng)建新的連接,節(jié)約了否則會被加密握手、授權(quán)和客戶端注冊以建立連接所需的資源。優(yōu)選實施例允許通過客戶端和前端服務(wù)器之間的通信系統(tǒng)進行點對點通信,并且允許到前端服務(wù)器的持久性連接被用于為點對點通信提供支持。就該意義而言,通信系統(tǒng)可以被認為實現(xiàn)了混合的點對點服務(wù)器架構(gòu)。在點對點通信中,使用末端點的IP地址直接向點對點通信的末端點傳送數(shù)據(jù)分組。這意味著數(shù)據(jù)分組在點對點通信中可以在客戶端之間直接傳送,而并不使用客戶端與所連接的服務(wù)器對數(shù)據(jù)分組進行尋址。點對點通信可以包括客戶端和所述其它節(jié)點之一之間的即時消息傳送通信會話,并且數(shù)據(jù)分組可以是即時消息。在這種情況下,通信系統(tǒng)可以進一步被配置為通過以下而使用持久性連接來為客戶端和所述其它節(jié)點之一之間的即時消息傳送通信會話提供支持使用持久性連接經(jīng)由前端服務(wù)器將即時消息傳送至通信系統(tǒng)中的存儲服務(wù)器;并且將該即時消息存儲在該存儲服務(wù)器。通信系統(tǒng)可以進一步被配置為允許其它節(jié)點取得存儲在存儲服務(wù)器的即時消息??商鎿Q地,點對點通信可以包括客戶端和所述其它節(jié)點之一之間的增值通信會話,其中增值通信會話中的至少一個用戶被要求具有增值訂購狀態(tài)以便允許該增值通信會話得以進行。在這種情況下,通信系統(tǒng)可以進一步被配置為使用該持久性連接為客戶端和所述其它節(jié)點之一之間的增值通信會話提供支持,其中前端服務(wù)器確定該增值通信會話中的至少一個用戶是否具有增值訂購狀態(tài)。
為了更好地理解本發(fā)明并且示出其可以如何生效,現(xiàn)在將通過示例參考附圖,其中
圖1示出了根據(jù)優(yōu)選實施例的通信網(wǎng)絡(luò);
圖2示出了根據(jù)優(yōu)選實施例的用戶終端的示意 圖3圖示了從第一客戶端向第二客戶端傳送即時消息的方法;并且 圖4是用于處理多方視頻通信會話的通信系統(tǒng)的示意圖。
具體實施方式
現(xiàn)在將僅通過示例對本發(fā)明的優(yōu)選實施例進行描述。首先參考圖1,其圖示了優(yōu)選實施例的基于分組的通信系統(tǒng)100。通信系統(tǒng)的第一用戶(用戶A 102)操作用戶終端104。用戶終端104例如可以是移動電話、個人數(shù)字助理(PDA)、個人計算機(PC)(例如包括Windows 、Mac OS 和Linux PC)、游戲設(shè)備或者能夠通過通信系統(tǒng)100進行通信的其它嵌入式設(shè)備。用戶終端104被配置為從設(shè)備的用戶102接收信息并且對其輸出信息。在優(yōu)選實施例中,用戶終端104包括諸如屏幕的顯示器以及諸如小鍵盤、操縱桿、觸摸屏、鍵盤、鼠標、麥克風和/或網(wǎng)絡(luò)攝像頭之類的輸入設(shè)備。用戶終端104執(zhí)行與通信系統(tǒng)100相關(guān)的軟件提供方所提供的通信客戶端106。通信客戶端106是在用戶終端104中的本地處理器上執(zhí)行的軟件程序,其允許用戶終端104通過通信系統(tǒng)100進行呼叫和即時消息傳送通信會話。通信客戶端106具有與連接適配器108的持久性連接109。通信適配器108是通信系統(tǒng)100中的前端服務(wù)器。當客戶端106在用戶終端104執(zhí)行的同時,客戶端106始終連接至連接適配器108以提供持久性連接109。通信系統(tǒng)100還包括第二連接適配器116、用戶狀態(tài)服務(wù)器118和另一節(jié)點120。如圖1所描繪的,圖1中示出的連接適配器108和116、用戶狀態(tài)服務(wù)器118和其它節(jié)點120這四個節(jié)點都能夠向這四個節(jié)點中的每個其它節(jié)點傳送數(shù)據(jù)。如對于本領(lǐng)域技術(shù)人員將會顯而易見的是,通信系統(tǒng)100可以包括比圖1所示的那些更多的節(jié)點。圖1所示的通信系統(tǒng)100的部件(或“節(jié)點”)能夠通過網(wǎng)絡(luò)互相通信,該網(wǎng)絡(luò)例如可以是互聯(lián)網(wǎng)。圖1還示出了第二用戶110 (User B),其具有執(zhí)行客戶端114以便以與用戶終端104執(zhí)行客戶端106而通過通信系統(tǒng)100進行通信相同的方式通過通信系統(tǒng)100進行通信。因此,用戶A和B (102和110)能夠通過通信系統(tǒng)100互相通信。在通信系統(tǒng)100中可以有更多用戶,但是出于簡明僅在圖1的通信系統(tǒng)100中示出了兩個用戶102和110。通信客戶端114具有與連接適配器116的持久性連接117。連接適配器116是通信系統(tǒng)100中的前端服務(wù)器。當客戶端114在用戶終端112執(zhí)行時,客戶端114始終連接至連接適配器116以提供持久性連接117。圖2圖示了客戶端106在其上執(zhí)行的用戶終端104的詳細視圖。用戶終端104包括中央處理器(CPU) 202,與之相連接的有諸如屏幕的顯示器204、諸如小鍵盤(或鍵盤)206的輸入設(shè)備、諸如操縱桿(或鼠標)208的指示設(shè)備和用于捕捉視頻數(shù)據(jù)的網(wǎng)絡(luò)攝像頭225。顯示器204可以包括用于向CPU 202輸入數(shù)據(jù)的觸摸屏。輸出音頻設(shè)備210 (例如,揚聲器)和輸入音頻設(shè)備212 (例如,麥克風)連接至CPU 202。顯示器204、小鍵盤206、操縱桿208、網(wǎng)絡(luò)攝像頭225、輸出音頻設(shè)備210和輸入音頻設(shè)備212集成到用戶終端104中。在可替換的用戶終端中,顯示器204、小鍵盤206、操縱桿208、網(wǎng)絡(luò)攝像頭225、輸出音頻設(shè)備210和輸入音頻設(shè)備212中的一個或多個可以不集成到用戶終端104中并且可以經(jīng)由相應(yīng)接口連接至CPU 202。這樣的接口的一個示例是USB接口。CPU 202連接至諸如調(diào)制解調(diào)器的網(wǎng)絡(luò)接口 226以便與通信系統(tǒng)100的網(wǎng)絡(luò)通信從而通過通信系統(tǒng)100進行通信。網(wǎng)絡(luò)接口 226可以如圖2所示集成到用戶終端104中。在可替換用戶終端中,網(wǎng)絡(luò)接口 226并不集成到用戶終端104中。網(wǎng)絡(luò)接口 226提供了用于保持與連接適配器108的持久性連接109的手段。圖2還圖示了在CPU 202上執(zhí)行的操作系統(tǒng)(OS) 214。在OS 214頂端運行的是用于客戶端106的軟件棧216。該軟件棧示出了客戶端協(xié)議層218、客戶端引擎層220和客戶端用戶接口層(UI) 222。每一層負責具體功能。由于每一層通常與其它兩層進行通信,所以它們被視為配置在如圖2所示的棧中。操作系統(tǒng)214對計算機的硬件資源進行管理并且對經(jīng)由網(wǎng)絡(luò)接口 226往來于網(wǎng)絡(luò)進行傳送的數(shù)據(jù)進行處置??蛻舳塑浖目蛻舳藚f(xié)議層218與操作系統(tǒng)214進行通信并且對通信系統(tǒng)100上的連接進行管理。需要更高級別處理的過程被送至客戶端引擎層220。客戶端引擎220還與客戶端用戶接口層222進行通信??蛻舳艘?20可以被配置為對客戶端用戶接口層222進行通信以經(jīng)由客戶端的用戶接口向用戶呈現(xiàn)信息并且經(jīng)由用戶接口接收來自用戶的信息?,F(xiàn)在將對通信系統(tǒng)100的操作的優(yōu)選實施例進行描述??蛻舳?06和114使用到相應(yīng)連接適配器108和106的相應(yīng)持久性連接109和117 (其可以是TCP連接)連接至通信系統(tǒng)100。連接適配器108和116是接受持久性連接109和117并且將來自客戶端的連接請求轉(zhuǎn)換為注冊呼叫的組件。響應(yīng)于該注冊呼叫,連接適配器108和116能夠確定將從通信系統(tǒng)100中的客戶端106和114所接收的數(shù)據(jù)傳送至哪里。客戶端106和114在客戶端登錄到通信系統(tǒng)100中時 始終保持到連接適配器(108和116)的連接(109和117)。連接適配器(108和116)能夠在任意時刻向任意所連接的客戶端(106和114)發(fā)出通知。與連接至通信系統(tǒng)100的所有客戶端(例如,客戶端106和114)相關(guān)的信息存儲在用戶狀態(tài)服務(wù)器118中。用戶狀態(tài)服務(wù)器118也可以被稱作“客戶端登記表”。用戶狀態(tài)服務(wù)器118是映射表,其保存有包含與哪些用戶正使用哪些客戶端以及那些客戶端連接至哪些前端服務(wù)器相關(guān)的信息的條目。例如,用戶狀態(tài)服務(wù)器118可以存儲包括(i)標識用戶102的用戶ID以及(ii)標識客戶端106通過持久性連接109與之相連接的連接適配器108的前端服務(wù)器ID的條目。該條目還可以包括用來將客戶端106連接至連接適配器108的持久性連接109的ID。當客戶端106連接至連接適配器108時,用戶和客戶端信息被注冊在用戶狀態(tài)服務(wù)器118中的條目中。響應(yīng)于客戶端106使用持久性連接109連接至連接適配器108,該條目的信息例如可以從客戶端106或者從連接適配器108被傳送至用戶狀態(tài)服務(wù)器118。用戶狀態(tài)服務(wù)器118還提供允許通信系統(tǒng)100內(nèi)的服務(wù)查詢存儲在用戶狀態(tài)服務(wù)器118的條目中的信息的接口。任何服務(wù)都能夠請求從用戶狀態(tài)服務(wù)器118中的條目接收信息。當服務(wù)意圖向特定用戶發(fā)送消息時,該服務(wù)可以使用從用戶狀態(tài)服務(wù)器118所接收的信息來確定該特定用戶的客戶端連接至哪個連接適配器和/或哪個持久性連接。該服務(wù)隨后能夠向所指定的連接適配器傳送消息,該連接適配器將其轉(zhuǎn)發(fā)至客戶端以使得該消息能夠被送至特定用戶。在客戶端106和連接適配器108之間的兩個方向中傳遞的命令和通知(例如,服務(wù)請求)可以是序列化的屬性容器。在這種情況下,每個命令具有特定格式并且除了數(shù)據(jù)之外具有命令名稱、服務(wù)ID和請求ID。當命令從客戶端106到達連接適配器108時,連接適配器查詢命令中的服務(wù)ID以確定該命令應(yīng)當被傳送至哪里并且隨后將該命令送至該服務(wù)ID所標識的相對應(yīng)服務(wù)。該服務(wù)可以由通信系統(tǒng)100中的服務(wù)器所提供。該服務(wù)器可以通過經(jīng)由連接適配器108和持久性連接109向客戶端106提供服務(wù)來對服務(wù)請求進行響應(yīng)。在通信系統(tǒng)100上從客戶端106發(fā)送的數(shù)據(jù)分組例如可以是即時消息或用于在通信系統(tǒng)100上的呼叫中使用的呼叫數(shù)據(jù)。數(shù)據(jù)分組可以是即時消息。可替換地,即時消息可以包括多個數(shù)據(jù)分組。數(shù)據(jù)分組因此可以是即時消息的至少一部分??蛻舳?06能夠使用客戶端106和連接適配器108之間的持久性連接109以及使用客戶端114和連接適配器116之間的持久性連接117而通過通信系統(tǒng)100與客戶端114進行通信。此外,客戶端106可以能夠使用圖1中沒有示出的連接而通過通信系統(tǒng)100與客戶端114進行通信。以這種方式,用戶102和110能夠通過通信系統(tǒng)100進行點對點通信,并且該點對點通信可以使用連接適配器108和116以及持久性連接109和117而得到支持??蛻舳?06和114能夠通過通信系統(tǒng)100進行點對點通信,并且連接適配器108和116能夠?qū)υ擖c對點通信的各個方面進行控制。這能夠有助于對點對點通信中所提供的通信服務(wù)提供更大的靈活性,并且與依賴于網(wǎng)絡(luò)上的端對端消息傳遞相比還能夠提供更為魯棒的通過通信系統(tǒng)100進行通信的方法。例如,數(shù)據(jù)分組可以使用持久性連接109和117而經(jīng)由前端服務(wù)器108和116在客戶端106和114之間發(fā)送。應(yīng)當注意的是,通信系統(tǒng)100中的每個連接適配器可以利用多于一個的相應(yīng)持久性連接連接至多于一個的客戶端。以下對連接適配 器如何能夠為點對點通信提供支持的兩個示例進行詳細解釋。1.將連接適配器用于即時消息傳送
能夠由連接適配器108和116為點對點通信提供的支持的一個示例是存儲即時消息傳送通信會話中客戶端106和114之間傳送的即時消息??蛻舳?06和114之間的即時消息傳送對話中的每條即時消息都能夠被存儲在通信系統(tǒng)100中的服務(wù)器(即,存儲服務(wù)器)處的數(shù)據(jù)庫上。這允許用戶在通信系統(tǒng)中在不同用戶終端處使用不同客戶端實例并且仍然能夠從處于通信系統(tǒng)100中的服務(wù)器處的數(shù)據(jù)庫獲得對聊天歷史(即在之前的即時消息傳送對話中所傳送的即時消息)的訪問。這為用戶使用遍布通信系統(tǒng)100的不同客戶端提供了更大的靈活性。在通信系統(tǒng)100中使用連接適配器提供了一種實施即時消息存儲的簡單方法。現(xiàn)在將參考圖3對根據(jù)優(yōu)選實施例的即時消息傳送方法進行描述。如本領(lǐng)域中已知的,即時消息傳送對話可以包括多于兩個的用戶,并且即時消息可以在對話中的任意用戶之間進行傳送。圖3示出了通信系統(tǒng)100的各個部件。特別地,圖3示出了用戶終端104和112的客戶端106和114。圖3還示出了第一和第二連接適配器108和116、第一和第二登記表304和312 (它們可以與圖1所示的用戶狀態(tài)服務(wù)器118相同或不同)、交談服務(wù)器306、加密服務(wù)器308、數(shù)據(jù)庫309和客戶端調(diào)度器310。第一和第二連接適配器108和116、第一和第二登記表304和312、交談服務(wù)器306、加密服務(wù)器308、數(shù)據(jù)庫309和客戶端調(diào)度器310在通信系統(tǒng)100中的多個服務(wù)器節(jié)點處實施。第一和第二登記表304和312可以被實施為單個登記表(例如,用戶狀態(tài)服務(wù)器118)或者通信系統(tǒng)100中分開的登記表。如以下所描述的,圖3中標記以I至15的箭頭示出了從第一用戶終端104的客戶端106向第二用戶終端112的客戶端114傳送即時消息的方法中的步驟。在步驟I中,客戶端106向連接適配器108發(fā)送即時消息。連接適配器108在該配置中被用作前端服務(wù)器以向客戶端106提供各種后端服務(wù)。即時消息包括向連接適配器108指示該消息為即時消息的服務(wù)ID。在步驟2中,連接適配器108針對交談服務(wù)器306的通信系統(tǒng)100中的地址查詢登記表304。在步驟3中,登記表304向連接適配器108返回交談服務(wù)器306的地址。在步驟4中,連接適配器108向交談服務(wù)器306提供即時消息(連同元數(shù)據(jù)一起,諸如時間戳以及第一用戶102和第二用戶110的標識)。在步驟5中,交談服務(wù)器306將該即時消息發(fā)送至加密服務(wù)器308。加密服務(wù)器308對該即時消息進行加密并且在步驟6中將經(jīng)加密的即時消息返回至交談服務(wù)器306。在步驟7中,交談服務(wù)器306將經(jīng)加密的即時消息傳送至數(shù)據(jù)庫309以便存儲于其上。在數(shù)據(jù)庫309上,該即時消息作為發(fā)送消息被存儲在用戶102的郵箱中并且作為接收消息被存儲在用戶110的郵箱中。無論第二用戶在通信系統(tǒng)100中離線還是在線,該對話的完整聊天歷史都被保存。在步驟8、9和10中,經(jīng)由交談服務(wù)器306和連接適配器108從數(shù)據(jù)庫309向第一用戶終端104處的客戶端10 6傳送響應(yīng)消息,其指示“存儲消息”操作的狀態(tài),S卩即時消息是否已經(jīng)被存儲在數(shù)據(jù)庫309。如果客戶端106沒有接收到肯定的響應(yīng)消息,則客戶端106將在對話中重發(fā)該即時消息。圖3示出了其中當?shù)谝挥脩?02向第二用戶110的第二用戶終端112傳送即時消息時第二用戶110在線的情形。在步驟11中,交談服務(wù)器306向客戶端調(diào)度器310發(fā)送識別第二用戶110的查詢。該查詢可以包括在步驟4中在交談服務(wù)器306處從連接適配器108所接收的第二用戶110的標識。在步驟12中,客戶端調(diào)度器310查詢客戶端登記表312以確定第二用戶110連接至哪個連接適配器并且第二用戶110在哪個TCP連接上連接至連接適配器。在步驟13中,當?shù)诙脩?10在通信系統(tǒng)100中在線時,則客戶端登記表312利用第二用戶110在網(wǎng)絡(luò)中的位置向客戶端調(diào)度器310進行回復(fù)。該位置由客戶端114所連接的連接適配器116實例的地址所明確。在步驟14中,即時消息從客戶端調(diào)度器310發(fā)送至步驟13中所標識的連接適配器116,并且在步驟15中,即時消息通過步驟13中所標識的TCP連接從連接適配器116發(fā)送至第二用戶終端112處的客戶端114。在圖3所示的方法結(jié)束時,即時消息已經(jīng)從第一用戶終端104處的客戶端106被傳送至第二用戶終端112處的客戶端114。該即時消息已經(jīng)被存儲在數(shù)據(jù)庫309中。該即時消息使用持久性連接經(jīng)由連接適配器在客戶端106和114之間進行傳送。該即時消息另外可以使用通信系統(tǒng)100中的其它連接在客戶端106和114之間進行傳送。
注意到,如果在從客戶端106傳送意在針對于第二用戶110的即時消息時第二用戶110在通信系統(tǒng)100中不在線,則該即時消息被存儲在數(shù)據(jù)庫309中(例如,通過遵循圖
3所示的步驟I至10),但是該消息并不立即被傳送至第二用戶終端112。例如,第一用戶102可以開始使用第三用戶終端(圖1中未示出)。第一用戶102隨后可能想要觀看其在通信系統(tǒng)100上的聊天歷史。該聊天歷史(即每個用戶針對每個對話的即時消息)可以從數(shù)據(jù)庫309取得。為了在第三用戶終端取得該聊天歷史,用戶102能夠從第三用戶終端向數(shù)據(jù)庫309傳送消息更新請求。該消息更新請求可以包括在用戶102的第三用戶終端所接收的最后的即時消息的標識符。數(shù)據(jù)庫309隨后能夠確定存儲于其上的哪些即時消息是在該最后的即時消息在用戶102的第三用戶終端被接收之后的即時消息傳送對話中所傳送。數(shù)據(jù)庫309隨后能夠?qū)⒛切┧_定的即時消息傳送至第三用戶終端以使得用戶102能夠在第三用戶終端處獲得其完整的聊天歷史的訪問。因此,使用以上所描述的方法,能夠在用戶的多個客戶端實例上同步聊天歷史。在以上所描述的優(yōu)選實施例中,這是通過將對話的即時消息存儲在數(shù)據(jù)庫309中所實現(xiàn)的,數(shù)據(jù)庫309由此可由通信系統(tǒng)100中的不同用戶終端所訪問。2.將連接適配器用于控制增值訂購服務(wù)
能夠由連接適配器108和116對點對點通信提供的支持的另一示例是用于對通信系統(tǒng)100中的增值訂購服務(wù)的支付(例如,以便進行增值通信會話)進行控制的方案。例如,為了進行多方視頻呼叫(這是增值通信會話的一種類型),多方視頻呼叫中的至少一個用戶可以被要求具有向通信系統(tǒng)100訂購的增值視頻訂購狀態(tài)。通信系統(tǒng)100中的連接適配器100能夠被用來控制通信系統(tǒng)100上的增 值訂購服務(wù)。圖4示出了與連接適配器108進行通信的客戶端106。為了客戶端106能夠通過通信系統(tǒng)100進行增值服務(wù),連接適配器108能夠與通信系統(tǒng)100中的其它服務(wù)器進行通信以控制客戶端106對增值服務(wù)的使用。例如,在客戶端106試圖通過通信系統(tǒng)100與其它客戶端進行多方視頻呼叫的情況下,如圖4所示,連接適配器108能夠與通信系統(tǒng)100的C++后端服務(wù)器402和數(shù)據(jù)庫404進行通信。C++后端服務(wù)器402包括增值視頻網(wǎng)關(guān)模塊406和增值視頻超時追蹤器模塊408。如圖4中所描繪的,數(shù)據(jù)庫404包括增值視頻會話模塊410、增值視頻統(tǒng)計模塊412和增值視頻訂購模塊414。連接適配器108能夠與增值視頻網(wǎng)關(guān)模塊406進行通信。增值視頻網(wǎng)關(guān)模塊406能夠與增值視頻超時追蹤器模塊408和增值視頻會話模塊410進行通信。增值視頻會話模塊410還能夠與增值視頻統(tǒng)計模塊412和增值視頻訂購模塊414進行通信。增值視頻訂購模塊414保存每個用戶在通信系統(tǒng)100中的訂購狀態(tài)的記錄??梢栽谠鲋狄曨l網(wǎng)關(guān)模塊406處經(jīng)由連接適配器108從客戶端106接收進行多方視頻呼叫的請求。增值視頻網(wǎng)關(guān)模塊406將轉(zhuǎn)發(fā)該請求至增值視頻會話模塊410,其保存通信系統(tǒng)100中正在/已經(jīng)活躍的增值視頻會話的記錄。增值視頻會話模塊410對增值視頻訂購模塊414進行輪詢并且如果任何意圖加入多方視頻呼叫的用戶具有允許該多方視頻呼叫進行的有效訂購狀態(tài),則多方視頻呼叫就被允許進行。增值視頻超時追蹤器|旲塊408能夠在多方視頻呼叫進行時保存用戶的訂購狀態(tài)的記錄,以使得如果提供資金的用戶的訂購狀態(tài)在多方視頻呼叫期間過期,則多方視頻呼叫可以被停止。在這種情況下,多方視頻呼叫中的其它用戶可以能夠獲取適當?shù)脑鲋涤嗁彔顟B(tài)以便保留該多方視頻呼叫。
假設(shè)多方呼叫中所涉及的其它用戶之一具有適當?shù)挠嗁彔顟B(tài),則即使用戶102并不具有適當?shù)脑鲋涤嗁彔顟B(tài),使用連接適配器108也允許客戶端106將現(xiàn)有的多方呼叫轉(zhuǎn)換為多方視頻呼叫。連接適配器108能夠通過如以上所描述的對C++后端服務(wù)器402和數(shù)據(jù)庫404進行輪詢來確定用戶之一具有所要求的增值訂購狀態(tài)。類似地,如果為多方視頻呼叫提供資金的主叫方離開該呼叫(或者如果其訂購在呼叫期間過期),則連接適配器108能夠?qū)++后端服務(wù)器402和數(shù)據(jù)庫404進行輪詢來確定該呼叫上的任何其它用戶是否具有足夠的訂購狀態(tài)以允許該多方視頻呼叫得以進行。在以上所描述的實施例中,客戶端106與連接適配器108具有持久性連接109,由此連接適配器108是客戶端106的前端服務(wù)器。通過使用連接適配器108,客戶端106通過通信系統(tǒng)100所進行的通信可以通過一個連接(持久性連接109)進行路由,以使得客戶端106每次跨通信系統(tǒng)100傳送數(shù)據(jù)時否則被客戶端106的加密握手、授權(quán)和注冊所要求的資源得以被節(jié)省。在優(yōu)選實施例中,這些握手授權(quán)和注冊步驟僅需要執(zhí)行一次,即,在建立到連接適配器108的持久性連接109時。此外,連接適配器108的標識能夠被用來對要發(fā)送至客戶端106的數(shù)據(jù)分組進行尋址,因為客戶端106始終都連接至連接適配器108。這簡化了針對客戶端106的數(shù)據(jù)分組的尋址和路由,并且與使用端對端方法路由數(shù)據(jù)分組相比提供了通過網(wǎng)絡(luò)的更為魯棒的路徑。此外,使用連接適配器108允許在使用端對端通信系統(tǒng)時無法使用的各種集中的功能,諸如即時消息在集中服務(wù)器上的存儲以及使用用戶的增值訂購狀態(tài)在通信系統(tǒng)中靈活提供以便通過通信系統(tǒng)100進行增值通信服務(wù)??蛻舳?06和連接適配器108之間的持久性連接109可以被用來對客戶端106和114之間的點對點通信提供支持。因此在客戶端106和連接適配器108之間具有持久性連接109的好處對于本領(lǐng)域技術(shù)人員而言是顯而易見的。雖然已經(jīng)參考優(yōu)選實施例特別示出并描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將要理解的是,可以在形式和細節(jié)上 進行各種改變而并不背離如所附權(quán)利要求所確定的本發(fā)明的范圍。
權(quán)利要求
1.一種通信系統(tǒng),包括 在用戶終端執(zhí)行的客戶端; 前端服務(wù)器;和 多個其它節(jié)點, 其中該通信系統(tǒng)被配置為在客戶端和其它節(jié)點之一之間傳送點對點通信的數(shù)據(jù)分組, 并且其中在客戶端和前端服務(wù)器之間提供持久性連接,該通信系統(tǒng)被配置為使用該持久性連接對客戶端和所述其它節(jié)點之一之間的點對點通信提供支持。
2.根據(jù)權(quán)利要求1的通信系統(tǒng),進一步包括在所述其它節(jié)點之一處執(zhí)行的另外的客戶端,其中該點對點通信處于所述客戶端和所述另外的客戶端之間。
3.根據(jù)權(quán)利要求2的通信系統(tǒng),進一步包括另外的前端服務(wù)器,其中在另外的客戶端和另外的前端服務(wù)器之間提供另外的持久性連接,并且其中該通信系統(tǒng)被配置為使用該另外的持久性連接對客戶端和所述另外客戶端之間的點對點通信提供支持。
4.根據(jù)權(quán)利要求1至3中任一項的通信系統(tǒng),其中該通信系統(tǒng)進一步被配置為使用客戶端和前端服務(wù)器之間的持久性連接將數(shù)據(jù)分組從客戶端經(jīng)由該前端服務(wù)器傳送至所述其它節(jié)點之一。
5.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),其中點對點通信包括客戶端和所述其它節(jié)點之一之間的即時消息傳送通信會話,并且其中數(shù)據(jù)分組是即時消息。
6.根據(jù)權(quán)利要求5的通信系統(tǒng),其中該通信系統(tǒng)進一步被配置為通過以下而使用持久性連接來為客戶端和所述其它節(jié)點之一之間的即時消息傳送通信會話提供支持 使用持久性連接經(jīng)由前端服務(wù)器將即時消息傳送至通信系統(tǒng)中的存儲服務(wù)器;并且 將該即時消息存儲在該存儲服務(wù)器。
7.根據(jù)權(quán)利要求6的通信系統(tǒng),其中該通信系統(tǒng)進一步被配置為允許其它節(jié)點取得存儲在存儲服務(wù)器的即時消息。
8.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),其中點對點通信包括客戶端和所述其它節(jié)點之一之間的增值通信會話,其中該增值通信會話中的至少一個用戶被要求具有增值訂閱狀態(tài)以允許該增值通信會話得以進行。
9.根據(jù)權(quán)利要求8的通信系統(tǒng),其中該通信系統(tǒng)進一步被配置為通過以下而使用持久性連接對客戶端和所述其它節(jié)點之一之間的增值通信會話提供支持 前端服務(wù)器確定該增值通信會話中的至少一個用戶是否具有增值訂閱狀態(tài)。
10.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),進一步包括用于存儲條目的用戶狀態(tài)服務(wù)器,該條目包括(i)標識客戶端的用戶的用戶標識符以及(ii)標識客戶端通過持久性連接與之相連接的前端服務(wù)器的前端服務(wù)器標識符。
11.根據(jù)權(quán)利要求10的通信系統(tǒng),其中該通信系統(tǒng)被配置為使得所述條目響應(yīng)于客戶端使用持久性連接而連接至前端服務(wù)器而被傳送至用戶狀態(tài)服務(wù)器以便存儲于其上。
12.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),其中從客戶端傳送至前端服務(wù)器的數(shù)據(jù)分組包括服務(wù)標識符,并且其中前端服務(wù)器被配置為使用該服務(wù)標識符確定要將該數(shù)據(jù)分組傳送至通信系統(tǒng)中的哪個/些其它節(jié)點。
13.根據(jù)權(quán)利要求12的通信系統(tǒng),其中數(shù)據(jù)分組是用于至該通信系統(tǒng)中的另外的用戶終端的通信的即時消息的至少一部分,并且服務(wù)標識符將數(shù)據(jù)分組標識為即時消息的至少一部分,以使得前端服務(wù)器能夠確定將數(shù)據(jù)分組傳送到另外的用戶終端。
14.根據(jù)權(quán)利要求12的通信系統(tǒng),其中數(shù)據(jù)分組是針對至通信系統(tǒng)中另外的服務(wù)器的通信的服務(wù)請求,并且其中服務(wù)標識符將數(shù)據(jù)分組標識為服務(wù)請求,以使得前端服務(wù)器能夠確定將數(shù)據(jù)分組傳送到另外的服務(wù)器。
15.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),其中其它節(jié)點之一是被配置為向客戶端提供服務(wù)的另外的服務(wù)器。
16.根據(jù)之前任一項權(quán)利要求的通信系統(tǒng),其中持久性連接是傳輸控制協(xié)議連接。
17.—種通過通信系統(tǒng)進行通信的方法,所述通信系統(tǒng)包括在用戶終端執(zhí)行的客戶端、前端服務(wù)器和多個其它節(jié)點,其中在該通信系統(tǒng)中在客戶端和前端服務(wù)器之間提供有持久性連接,該方法包括 在客戶端和該通信系統(tǒng)中的其它節(jié)點之一之間傳送點對點通信的數(shù)據(jù)分組, 其中該持久性連接被用來對客戶端和所述其它節(jié)點之一之間的點對點通信提供支持。
18.根據(jù)權(quán)利要求17的方法,進一步包括使用客戶端和前端服務(wù)器之間的持久性連接經(jīng)由前端服務(wù)器在客戶端和所述其它節(jié)點之一之間傳送數(shù)據(jù)分組。
19.根據(jù)權(quán)利要求17或18的方法,其中經(jīng)由前端服務(wù)器傳送至客戶端的數(shù)據(jù)分組使用前端服務(wù)器的標識符和持久性連接的標識符被進行尋址。
20.根據(jù)權(quán)利要求17至19中任一項的方法,進一步包括 向通信系統(tǒng)的數(shù)據(jù)狀態(tài)服務(wù)器傳送條目,并且 將該條目存儲在用戶狀態(tài)服務(wù)器,其中所述條目包括(i)標識客戶端用戶的用戶標識符以及(ii)標識客戶端通過持久性連接與之相連接的前端服務(wù)器的前端服務(wù)器標識符。
21.根據(jù)權(quán)利要求20的方法,其中所述向用戶狀態(tài)服務(wù)器傳送條目的步驟是響應(yīng)于客戶端使用持久性連接而連接至前端服務(wù)器來執(zhí)行的。
22.根據(jù)權(quán)利要求20或21的方法,進一步包括 所述其它節(jié)點之一向用戶狀態(tài)服務(wù)器發(fā)送查詢以取得所述條目; 所述其它節(jié)點之一使用所述用戶標識符和所述前端服務(wù)器標識符來識別前端服務(wù)器;并且 所述其它節(jié)點之一經(jīng)由前端服務(wù)器將意在針對用戶的數(shù)據(jù)分組傳送至客戶端。
23.根據(jù)權(quán)利要求17至22中任一項的方法,其中通信系統(tǒng)中的所述其它節(jié)點之一是執(zhí)行另外的客戶端的另外的用戶終端,并且其中該點對點通信處于所述客戶端和所述另外的客戶端之間。
24.根據(jù)權(quán)利要求17至23中任一項的方法,其中數(shù)據(jù)分組是消息。
25.根據(jù)權(quán)利要求17至23中任一項的方法,其中數(shù)據(jù)分組包括用于在通過該通信系統(tǒng)的呼叫中使用的呼叫數(shù)據(jù)。
全文摘要
提供了一種通信系統(tǒng)以及通過該通信系統(tǒng)進行通信的方法。該通信系統(tǒng)包括在用戶終端執(zhí)行的客戶端;前端服務(wù)器以及多個其它節(jié)點。點對點通信的數(shù)據(jù)分組在客戶端和其它節(jié)點之一之間進行傳送。在客戶端和前端服務(wù)器之間提供持久性連接,并且該通信系統(tǒng)被配置為使用該持久性連接為客戶端和所述其它節(jié)點之一之間的點對點通信提供支持。
文檔編號H04L29/06GK103069782SQ201180042628
公開日2013年4月24日 申請日期2011年9月2日 優(yōu)先權(quán)日2010年9月2日
發(fā)明者A.波托夫, R.約翰松 申請人:斯凱普公司