專利名稱:數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)中的實(shí)時(shí)通信的制作方法
技術(shù)領(lǐng)域:
本公開涉及由數(shù)字計(jì)算機(jī)進(jìn)行的數(shù)據(jù)處理,并且更具體地涉及數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)中 的實(shí)時(shí)通信。
背景技術(shù):
即時(shí)消息傳送(IM)是在兩個(gè)或更多人之間基于鍵入文本的實(shí)時(shí)通信形式。文本 是使用諸如因特網(wǎng)之類的網(wǎng)絡(luò)中連接的計(jì)算機(jī)來傳送的。IM通過迅速地發(fā)送信息來同時(shí) 使能若干方之間的即時(shí)通信。一些IM系統(tǒng)使得用戶能夠使用網(wǎng)絡(luò)攝像頭(webcams)和 麥克風(fēng)來實(shí)時(shí)會話。另外,IM具有其它特征,諸如確認(rèn)或答復(fù)的立即接收、群組聊天、 會議服務(wù)(包括語音和視頻)、會話記錄和文件傳輸。例如,可以保存會話以供以后參 考。即時(shí)消息一般被記錄在本地消息歷史中,該本地消息歷史填補(bǔ)了與電子郵件的永久 性特征的差距,并且方便了類似統(tǒng)一資源定位符(URL)或者文檔片段之類的信息的迅速 交換(這樣的信息在經(jīng)由電話傳送時(shí)可能是難以處理的)。
發(fā)明內(nèi)容
本發(fā)明提供了用于數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)中的實(shí)時(shí)通信的方法和設(shè)備(包括計(jì)算機(jī)程序
產(chǎn)品)。一般而言,在一個(gè)方面中,本發(fā)明的特征在于一種方法,包括接收來自被鏈 接到互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的網(wǎng)絡(luò)的第一用戶系統(tǒng)的檢索在所述網(wǎng)絡(luò)中被逐個(gè)節(jié)點(diǎn)存儲 器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù)的請求,所述第一用戶系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶端程序,所述實(shí)時(shí)通 信客戶端程序建立與執(zhí)行實(shí)時(shí)通信客戶端程序的第二用戶系統(tǒng)的實(shí)時(shí)通信會話;響應(yīng)于 來自所述第一用戶系統(tǒng)的檢索數(shù)據(jù)的請求,從節(jié)點(diǎn)存儲器檢索數(shù)據(jù);以及將檢索出的數(shù) 據(jù)轉(zhuǎn)發(fā)給所述第二用戶系統(tǒng)。在另一方面中,本發(fā)明的特征在于一種架構(gòu),包括互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的 群組,每個(gè)計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)適于響應(yīng)于來自客戶端系統(tǒng)的存儲來自請求系統(tǒng)的數(shù)據(jù)的請 求來接收數(shù)據(jù)并且逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)而不存儲到任何物理存儲裝置上, 以及響應(yīng)于來自請求系統(tǒng)的檢索數(shù)據(jù)的請求來檢索正被逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)的 數(shù)據(jù);以及鏈接到所述群組的至少兩個(gè)客戶端系統(tǒng),每個(gè)客戶端系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶 端程序。本公開的其它特征和優(yōu)點(diǎn)從下面的描述和權(quán)利要求書中變得顯而易見。
圖1是示例性架構(gòu)的框圖;圖2是流程圖;圖3是示例性即時(shí)消息傳送用戶界面。各個(gè)示圖中的相同標(biāo)號和標(biāo)記指示類似的元件。
具體實(shí)施例方式與使用瞬時(shí)方式的數(shù)據(jù)轉(zhuǎn)發(fā)從而使得數(shù)據(jù)被最終存儲在諸如盤片驅(qū)動器之類的 物理介質(zhì)上的對等(peer to peer)網(wǎng)絡(luò)不同,本發(fā)明使得諸如即時(shí)消息傳送之類的社會聯(lián) 網(wǎng)應(yīng)用能夠由連續(xù)數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)來支持,即,數(shù)據(jù)是通過在節(jié)點(diǎn)網(wǎng)絡(luò)中被逐個(gè)節(jié)點(diǎn)存儲 器地連續(xù)轉(zhuǎn)發(fā)而被存儲的。如圖1所示,示例性的連續(xù)數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)10包括耦合到若干網(wǎng)絡(luò)系統(tǒng)16、18、 20、22(也稱為服務(wù)器)的兩個(gè)用戶系統(tǒng)12、14(也稱為客戶端系統(tǒng))。網(wǎng)絡(luò)系統(tǒng)16、 18、20、22中的每一個(gè)被認(rèn)為是網(wǎng)絡(luò)24中的節(jié)點(diǎn),并且一個(gè)這樣的網(wǎng)絡(luò)系統(tǒng)(例如網(wǎng)絡(luò) 系統(tǒng)16)可以被指定作為主機(jī)或中央服務(wù)器。這樣,網(wǎng)絡(luò)系統(tǒng)16可以擔(dān)當(dāng)網(wǎng)絡(luò)24中的 控制位置。節(jié)點(diǎn)16、18、20、22中的每一個(gè)可以被建立作為在中央服務(wù)器16的直接控 制下的私人控制的對等方網(wǎng)絡(luò)。對等節(jié)點(diǎn)也可以是私人節(jié)點(diǎn)和公共節(jié)點(diǎn)(例如,因特網(wǎng)) 的混合,并且因此不在中央服務(wù)器16的直接物理控制下。網(wǎng)絡(luò)24也可以完全是公共的, 這里中央服務(wù)器16 (或者多個(gè)服務(wù)器)不具有對任何對等節(jié)點(diǎn)的直接所有權(quán)或直接物理控 制。連續(xù)數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)10支持計(jì)算機(jī)用戶(諸如用戶系統(tǒng)12、14上的用戶)之間的 通信。用戶系統(tǒng)12、14上的用戶是地理上分布的,并且使用網(wǎng)絡(luò)24中的網(wǎng)絡(luò)系統(tǒng)16、 18、20、22中的一個(gè)或多個(gè)來進(jìn)行通信。用戶系統(tǒng)12、14通過諸如連接到電話線的調(diào) 制解調(diào)器之類的各種通信介質(zhì)(例如,使用串行線路互聯(lián)網(wǎng)協(xié)議(SLIP)或者點(diǎn)對點(diǎn)協(xié)議 (PPP))或者直接互聯(lián)網(wǎng)絡(luò)連接(例如,使用傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP))被連 接到網(wǎng)絡(luò)24。用戶系統(tǒng)12、14中的每一個(gè)例如可以使用能夠以定義的方式響應(yīng)和執(zhí)行指令的 通用計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、專用計(jì)算機(jī)、工作臺、服務(wù)器、裝置、組件或能夠響應(yīng)和執(zhí) 行指令的其它設(shè)備或者它們的某些組合來實(shí)現(xiàn)。如這里描述的,用戶系統(tǒng)12、14例如可 以從軟件應(yīng)用、程序、代碼段、裝置、計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或者它們的組合(它們獨(dú)立 或者一起進(jìn)行操作)接收指令。這些指令可以采取有助于客戶端系統(tǒng)12、14的用戶間的 通信的一種或多種通信程序的形式。例如,這樣的通信程序可以包括電子郵件程序、即 時(shí)消息傳送(IM)程序、文件傳輸協(xié)議(FTP)程序、基于因特網(wǎng)的語音(VoIP)程序,等 等。這些指令可以被永久地或者臨時(shí)地嵌入在任何類型的機(jī)器、組件、設(shè)備、存儲介質(zhì) 中,或者可以是能夠被遞送到客戶端系統(tǒng)12、14的傳播信號??蛻舳讼到y(tǒng)12、14包括通信接口(未示出),通信接口被通信程序用來通過網(wǎng)絡(luò) 24發(fā)送通信。通信可以包括電子郵件、音頻數(shù)據(jù)、視頻數(shù)據(jù)、一般二進(jìn)制數(shù)據(jù)或文本數(shù) 據(jù)(例如,被以美國標(biāo)準(zhǔn)信息交換碼(ASCII)格式編碼)。網(wǎng)絡(luò)24可以包括通過關(guān)聯(lián)系統(tǒng)(coherent system)互連的一系列入口(portal)。網(wǎng)
絡(luò)24的示例包括因特網(wǎng)、廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、模擬或數(shù)字有線和無線電話 網(wǎng)(例如,公共交換電話網(wǎng)(PSTN))、綜合服務(wù)數(shù)字網(wǎng)(ISND)、數(shù)字訂戶線(xDSL)或 者任何其它的有線或無線網(wǎng)絡(luò)。網(wǎng)絡(luò)24可以包括多個(gè)網(wǎng)絡(luò)或子網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)或子網(wǎng)絡(luò) 例如可以包括有線或無線數(shù)據(jù)路徑。主機(jī)服務(wù)器16可以被連接到網(wǎng)絡(luò)24并且可以用于幫助客戶端系統(tǒng)12、14間的某些直接或間接通信。對于客戶端系統(tǒng)12、14,主機(jī)服務(wù)器16例如可以使用能夠以定義 的方式響應(yīng)和執(zhí)行指令的通用計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、專用計(jì)算機(jī)、工作臺、服務(wù)器、裝 置、組件或能夠響應(yīng)和執(zhí)行指令的其它設(shè)備或它們的一些組合來實(shí)現(xiàn)。如這里描述的, 主機(jī)服務(wù)器16例如可以從軟件應(yīng)用、程序、代碼段、裝置、計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或者它 們的組合(它們獨(dú)立或者一起進(jìn)行操作)接收指令。這些指令可以采取一種或多種通信 程序的形式。例如,這樣的通信程序可以包括電子郵件程序、IM程序、FTP程序、VoIP 程序,等等。這些指令可以被永久地或者臨時(shí)地嵌入在任何類型的機(jī)器、組件、設(shè)備、 存儲介質(zhì)中,或者可以是能夠被遞送到主機(jī)服務(wù)器16的傳播信號。此外,主機(jī)服務(wù)器16包括通信接口(未示出),通信接口被通信程序用來通過網(wǎng) 絡(luò)24發(fā)送通信。通信可以包括電子郵件、音頻數(shù)據(jù)、視頻數(shù)據(jù)、一般二進(jìn)制數(shù)據(jù)或文本 數(shù)據(jù)(例如,被以美國標(biāo)準(zhǔn)信息交換碼(ASCII)格式編碼)。用戶系統(tǒng)12、14可以執(zhí)行即使消息傳送(IM)客戶端程序。IM程序一般而言使 得用戶能夠以多種方式彼此實(shí)時(shí)通信。多數(shù)IM程序例如提供(1)即時(shí)消息-與在線朋友來回發(fā)送短信(2)聊天_創(chuàng)建與朋友或合作者的聊天室(3)網(wǎng)絡(luò)鏈接_共享到你最喜歡的網(wǎng)站的鏈接(4)視頻-發(fā)送和觀看視頻,以及與朋友面對面地聊天(5)圖像_看存儲在你的朋友的計(jì)算機(jī)上的圖像(6)聲音_為你的朋友播放聲音(7)文件_通過直接向你的朋友發(fā)送文件來共享文件(8)談話_使用因特網(wǎng)替代電話來與朋友進(jìn)行實(shí)際談話(9)流傳輸內(nèi)容_實(shí)時(shí)或接近實(shí)時(shí)的股票行情和新聞(10)移動能力_從你的移動電話發(fā)送即時(shí)消息IM 通信的示例包括由 AIM (America Online Instant Messenger)、Yahoo Messenger、MSN Messenger以及ICQ 等提供的那些通信。架構(gòu)10支持這些IM通信并且使得用戶能夠存儲視頻、圖像、聲音、文件和其它 內(nèi)容,這些內(nèi)容可以包括在IM通信中。與諸如數(shù)據(jù)存儲網(wǎng)絡(luò)之類的其它系統(tǒng)不同,架構(gòu) 10不使用固定的物理數(shù)據(jù)存儲裝置來存儲諸如圖像文件和視頻文件之類的數(shù)據(jù)。當(dāng)中央 服務(wù)器16從用戶系統(tǒng)12、14中的一個(gè)接收到存儲數(shù)據(jù)的請求時(shí),數(shù)據(jù)被引導(dǎo)到網(wǎng)絡(luò)24 中的節(jié)點(diǎn),然后在網(wǎng)絡(luò)24中被逐個(gè)節(jié)點(diǎn)存儲器地連續(xù)轉(zhuǎn)發(fā),而不存儲到諸如盤片驅(qū)動器 之類的任何物理存儲介質(zhì)上。被轉(zhuǎn)發(fā)的數(shù)據(jù)在網(wǎng)絡(luò)24中的任意一個(gè)節(jié)點(diǎn)的存儲器中僅駐 留非常短暫的一段時(shí)間。數(shù)據(jù)不被存儲在任何網(wǎng)絡(luò)節(jié)點(diǎn)中的任何物理存儲介質(zhì)上。按照類似的方式,當(dāng)中央處理器16接收到來自用戶系統(tǒng)12、14的檢索數(shù)據(jù)的請 求時(shí),被請求的數(shù)據(jù)(該數(shù)據(jù)正在網(wǎng)絡(luò)24中被逐個(gè)節(jié)點(diǎn)存儲器地轉(zhuǎn)發(fā))被檢索。按照這種方式轉(zhuǎn)發(fā)的數(shù)據(jù)可以被分段并且如上所述被分段轉(zhuǎn)發(fā)。另外,分段的 數(shù)據(jù)也不會被存儲在任何網(wǎng)絡(luò)節(jié)點(diǎn)中的任何物理存儲介質(zhì)上,而只是被從一個(gè)節(jié)點(diǎn)的存 儲器轉(zhuǎn)發(fā)到另一節(jié)點(diǎn)的存儲器。圖2是示出駐留在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)16、18、20、22上的幫助數(shù)據(jù)轉(zhuǎn)發(fā)的處200。 處理200包括接收(202)來自用戶系統(tǒng)的存儲或檢索數(shù)據(jù)的請求。如果接收到的請求是存儲數(shù)據(jù)的請求,則處理200確定(204)可用于在存儲器中接收數(shù)據(jù)的節(jié)點(diǎn)的地址。此 確定(204)可以包括探測(pinging)網(wǎng)絡(luò)并且確定網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)可用,或者確定網(wǎng)絡(luò) 中的哪個(gè)節(jié)點(diǎn)具有最少流量,或者確定網(wǎng)絡(luò)中的哪個(gè)節(jié)點(diǎn)具有最大的可用存儲器,或者 這些的任意組合或其它因素。處理200利用請求者用來轉(zhuǎn)發(fā)數(shù)據(jù)的特定節(jié)點(diǎn)的地址向用戶系統(tǒng)發(fā)送(206)消 肩、ο處理200檢測(208)節(jié)點(diǎn)存儲器中數(shù)據(jù)的存在與否。處200將存儲器中的數(shù)據(jù) 轉(zhuǎn)發(fā)(210)給節(jié)點(diǎn)網(wǎng)絡(luò)中的另一節(jié)點(diǎn),并且繼續(xù)重復(fù)檢測(208)和逐個(gè)節(jié)點(diǎn)存儲器地轉(zhuǎn) 發(fā)(210)數(shù)據(jù)。當(dāng)數(shù)據(jù)到達(dá)任何節(jié)點(diǎn)存儲器時(shí),處理200對數(shù)據(jù)附加(212)時(shí)間戳。另 外,當(dāng)數(shù)據(jù)進(jìn)入和離開任何節(jié)點(diǎn)存儲器時(shí),數(shù)據(jù)可以被加密和被解密。轉(zhuǎn)發(fā)(210)可以包括探測網(wǎng)絡(luò)中的節(jié)點(diǎn),以確定網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)可用,或者 確定網(wǎng)絡(luò)中的哪個(gè)節(jié)點(diǎn)具有最少流量,或者確定網(wǎng)絡(luò)中的哪個(gè)節(jié)點(diǎn)具有最大的可用存儲 器,或者這些的任意組合或者其它因素。在一個(gè)具體示例中,在進(jìn)入節(jié)點(diǎn)時(shí),數(shù)據(jù)經(jīng)歷與該節(jié)點(diǎn)或中央服務(wù)器16或用戶 的加密的“握手”。這可以是可以使用公共-私人密鑰的諸如Cashmere系統(tǒng)之類的公共 的或私人的加密系統(tǒng)。Cashmere對加密的轉(zhuǎn)發(fā)路徑和消息載荷進(jìn)行解耦合,這改善了性 能,因?yàn)樵磧H需要對使用目的地的唯一公共密鑰的每個(gè)消息執(zhí)行單次公共密鑰加密。這 具有如下益處只有真正的目的地節(jié)點(diǎn)才能夠解密消息載荷,而不是相應(yīng)中繼群組中的 每個(gè)節(jié)點(diǎn)都能夠解密消息載荷。Cashmere提供如下的能力目的地可以在無需知道源的 身份(identity)的情況下發(fā)送匿名答復(fù)消息。在源處也進(jìn)行類似的處理,其中源按照與轉(zhuǎn) 發(fā)路徑類似的方式創(chuàng)建答復(fù)路徑并對其加密。在另一示例中,其它路由方案被利用。如果接收到的請求是檢索正被逐個(gè)節(jié)點(diǎn)存儲器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù)的請求,則處 理200在中央服務(wù)器16處使用哈希標(biāo)記或者其它唯一碼(此哈希標(biāo)記或者其它唯一碼可 以在數(shù)據(jù)經(jīng)由加密握手進(jìn)入節(jié)點(diǎn)時(shí)由節(jié)點(diǎn)“尋取(sniff)”)來進(jìn)行匹配(214)。這可以 通過探測網(wǎng)絡(luò)中的節(jié)點(diǎn)來發(fā)生。處理200向節(jié)點(diǎn)或者節(jié)點(diǎn)狀態(tài)發(fā)送(216)將數(shù)據(jù)直接返 回用戶的消息,其中該節(jié)點(diǎn)狀態(tài)是中央服務(wù)器16相信數(shù)據(jù)很可能會出現(xiàn)的狀態(tài)。中央處 理器16將其探測的節(jié)點(diǎn)狀態(tài)收縮的越窄,檢索的效率越高,并且由于不必要的消息傳送 流量(對于中央服務(wù)器16和能夠轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點(diǎn)之間的處理來說是不必要的)而對節(jié)點(diǎn) 造成的負(fù)擔(dān)越小。一旦正確的節(jié)點(diǎn)接收到將節(jié)點(diǎn)存儲器中的數(shù)據(jù)轉(zhuǎn)發(fā)給請求者的消息,處理200 將節(jié)點(diǎn)存儲器中的數(shù)據(jù)轉(zhuǎn)發(fā)(218)給請求者并且轉(zhuǎn)發(fā)(220)數(shù)據(jù)已經(jīng)被發(fā)送給用戶的確認(rèn) 消息。此路由消息可以被直接發(fā)送給中央服務(wù)器16或者可以經(jīng)由網(wǎng)絡(luò)24中的其它(一 個(gè)或多個(gè))節(jié)點(diǎn)或(一個(gè)或多個(gè))超節(jié)點(diǎn)而被傳遞到中央服務(wù)器16或多個(gè)服務(wù)器。當(dāng)用 戶接收到所請求的數(shù)據(jù)時(shí),用戶的應(yīng)用自動向中央服務(wù)器16通知(ping)所請求的數(shù)據(jù)已 經(jīng)接收到。這樣,網(wǎng)絡(luò)24創(chuàng)建了數(shù)據(jù)存儲而沒有將數(shù)據(jù)緩存、下載和/或存儲到任何物 理存儲介質(zhì)上。數(shù)據(jù)存儲和管理是經(jīng)由數(shù)據(jù)從節(jié)點(diǎn)存儲器到節(jié)點(diǎn)存儲器的連續(xù)路由來實(shí) 現(xiàn)的。新的節(jié)點(diǎn)和節(jié)點(diǎn)狀態(tài)可以基于性能被添加到網(wǎng)絡(luò)24和/或被從網(wǎng)絡(luò)24刪除。用戶可以通過(一個(gè)或多個(gè))中央服務(wù)器或者經(jīng)由私人、公共或私人-公共網(wǎng)絡(luò)的特定架構(gòu) 訪問所有節(jié)點(diǎn)或者可以被分段到某些節(jié)點(diǎn)或“節(jié)點(diǎn)狀態(tài)”。各個(gè)節(jié)點(diǎn)、節(jié)點(diǎn)狀態(tài)和超節(jié)點(diǎn)也可以是公共或私人網(wǎng)絡(luò)中的外聯(lián)網(wǎng)對等方、無 線網(wǎng)絡(luò)對等方、衛(wèi)星對等節(jié)點(diǎn)、Wi-Fi對等節(jié)點(diǎn)、寬帶網(wǎng)絡(luò),等等。對等節(jié)點(diǎn)或用戶可 以用作網(wǎng)絡(luò)24中來自采用相同的安全系統(tǒng)、以及適于特定部署的嚴(yán)密性(rigors)的定制 方案(例如用于無線對等方的無線加密方案等)的任何有效對等點(diǎn)的路由參與者。在處理200中,數(shù)據(jù)沒有被緩存或保持在遠(yuǎn)程服務(wù)器、硬驅(qū)動器或其它固定的 存儲介質(zhì)中,而是被逐個(gè)節(jié)點(diǎn)存儲器地傳遞、路由、轉(zhuǎn)發(fā)。數(shù)據(jù)從不被下載,直到授權(quán) 用戶調(diào)用該數(shù)據(jù)為止。系統(tǒng)中的用戶可以授權(quán)不止一個(gè)用戶訪問數(shù)據(jù)。處理200的主要目的是生成數(shù)據(jù)存儲和管理系統(tǒng),在此系統(tǒng)中,數(shù)據(jù)從不會被 固定到物理存儲裝置中,而是實(shí)際上在網(wǎng)絡(luò)中被逐個(gè)節(jié)點(diǎn)存儲器地連續(xù)路由/轉(zhuǎn)發(fā)。節(jié) 點(diǎn)的轉(zhuǎn)發(fā)數(shù)據(jù)的路徑還可以被中央服務(wù)器16改變,以調(diào)整系統(tǒng)能力并消除冗余數(shù)據(jù)路 徑,在沒有此特征的情況下冗余數(shù)據(jù)路徑可能會由于數(shù)據(jù)路徑的增加的可能性而削弱網(wǎng) 絡(luò)的安全性。圖3示出了當(dāng)運(yùn)行即時(shí)消息傳送客戶端程序時(shí)呈現(xiàn)給客戶端系統(tǒng)12、14中的一 個(gè)系統(tǒng)的用戶的示例界面。如上所述,即時(shí)消息傳送程序一般使得用戶能夠以各種方式 彼此實(shí)時(shí)通信。例如,許多即時(shí)消息傳送程序使得用戶能夠?qū)⑽谋咀鳛榧磿r(shí)消息發(fā)送、 能夠傳送文件以及能夠用語音通信。示出了具有即時(shí)消息傳送客戶端程序的用戶界面305的桌面300。用戶界面305 具有文本框310,文本框310顯示程序用戶的聯(lián)系人或伙伴(這兩個(gè)術(shù)語可互換使用, 它們是該程序用戶希望與之通信和交互的其他即時(shí)消息傳送程序用戶)的表示315。表 示315可以向程序用戶提供有關(guān)伙伴的文脈信息(contextual information),諸如聯(lián)系人是 否在線,聯(lián)系人已經(jīng)在線多長時(shí)間,聯(lián)系人是否離開,或者聯(lián)系人是否正在使用移動裝 置。顯示在用戶界面305的文本框310中的聯(lián)系人的列表一般被稱為聯(lián)系人列表或伙 伴列表。IM程序用戶一般可以向聯(lián)系人列表添加聯(lián)系人或者從聯(lián)系人列表移除聯(lián)系人。 在所示的示例中,表示315是示出聯(lián)系人的屏幕名稱的文本圖標(biāo)。即時(shí)消息傳送程序可以使用即時(shí)消息傳送服務(wù)器來幫助即時(shí)消息傳送程序的用 戶之間的通信。即時(shí)消息傳送服務(wù)器例如可以使用主機(jī)服務(wù)器16來實(shí)現(xiàn)。當(dāng)用戶被連 接到網(wǎng)絡(luò)并執(zhí)行即時(shí)消息傳送程序時(shí),即時(shí)消息傳送程序聯(lián)系主機(jī)服務(wù)器16并且將用戶 登陸到主機(jī)服務(wù)器16。主機(jī)服務(wù)器16在該程序用戶的聯(lián)系人在線時(shí)通知即時(shí)消息程序并 且?guī)椭摮绦蛴脩艉驮诰€聯(lián)系人之間的通信。主機(jī)服務(wù)器16可以支持IM服務(wù)而不論程序用戶的網(wǎng)絡(luò)或因特網(wǎng)接入如何。因 此,主機(jī)服務(wù)器16可以使得用戶能夠發(fā)送和接收IM,而不管他們是否已經(jīng)接入任何具體 的因特網(wǎng)服務(wù)提供商(ISP)。主機(jī)服務(wù)器16還可以支持相關(guān)聯(lián)的服務(wù),諸如行政事務(wù)、 廣告、電話簿服務(wù)、聊天以及與IM有關(guān)的興趣群組。為了傳送數(shù)據(jù),主機(jī)服務(wù)器16采 用一種或多種IM協(xié)議。為了開始IM會話,運(yùn)行在客戶端系統(tǒng)12、14上的IM客戶端程序建立與主機(jī)服 務(wù)器16的連接并且登陸到主機(jī)服務(wù)器16。一旦會話被建立,則用戶可以使用IM客戶端
8程序來查看特定伙伴是否在線、與特定伙伴交換IM,參與群組聊天室,交換諸如圖片、 邀請或文檔之類的文件。IM程序用戶還可以找出具有相似興趣的其他伙伴,獲取諸如新 聞和股票行情之類的定制信息,以及搜索萬維網(wǎng)。主機(jī)服務(wù)器16可以通過幫助在IM客戶端程序間建立對等通信會話來幫助IM客 戶端程序的用戶之間的通信?;蛘?,主機(jī)服務(wù)器16可以通過在IM客戶端程序間直接路 由通信來幫助IM通信。當(dāng)聯(lián)系人在線時(shí),IM程序用戶可以以多種方式與該聯(lián)系人通信或交互。例如, IM程序用戶可以向該聯(lián)系人發(fā)送即時(shí)消息(一般以文本的形式)。發(fā)送消息打開了一個(gè)窗口,在該窗口中,可以在IM程序用戶和聯(lián)系人之間來回 地鍵入消息。類似地,IM程序用戶還可以向聯(lián)系人發(fā)送文件或其它內(nèi)容。為了針對聯(lián)系人發(fā)起這些動作,IM程序用戶對顯示在用戶界面305中的聯(lián)系人 的表示執(zhí)行操作。程序然后響應(yīng)于對表示執(zhí)行的操作來執(zhí)行相應(yīng)的動作。例如,可以通 過雙擊聯(lián)系人的表示來發(fā)起即時(shí)消息?;蛘?,可以通過IM程序用戶選擇聯(lián)系人的表示以 引出上下文菜單并且從菜單選擇“發(fā)送文件”來發(fā)起文件傳送。響應(yīng)于對顯示在界面305中的聯(lián)系人的表示執(zhí)行的操作,還可以執(zhí)行其它動 作。例如,可以針對聯(lián)系人設(shè)置“伙伴圖標(biāo)”,從而使得與聯(lián)系人的通信顯示該伙伴圖 標(biāo)。另外,例如,還可以檢索有關(guān)聯(lián)系人的簡檔文件,可以設(shè)置警告以在聯(lián)系人在線時(shí) 通知該程序用戶,可以建立VoIP通信會話,或者可以發(fā)送電子郵件。用戶界面305可以具有用于幫助用戶設(shè)置各種選項(xiàng)或者執(zhí)行即時(shí)消息傳送程序 中的操作的圖標(biāo)330。上述技術(shù)不限于任何特定硬件或軟件配置。而是,它們可以使用硬件、軟件或 二者的組合來實(shí)現(xiàn)。程序可以以高級編程語言來實(shí)現(xiàn),并且如果希望也可以以匯編或其 它低級語言來實(shí)現(xiàn)。任何這樣的程序通常將被存儲在計(jì)算機(jī)可用存儲介質(zhì)或裝置(例如 CD-ROM、RAM或磁盤)上。當(dāng)讀入計(jì)算機(jī)的處理器并被執(zhí)行時(shí),程序的指令使得可編 程計(jì)算機(jī)執(zhí)行所述的各種操作。此外,雖然主要結(jié)合IM應(yīng)用描述了這些技術(shù),但是它們也可以應(yīng)用于其它通信 程序,諸如FTP程序、電子郵件程序、基于IP的語音(VoIP)或者其它電話程序或者用于 流傳輸媒體的播放器。應(yīng)當(dāng)理解,前面的描述意在說明而不是限制本公開的范圍,本公開的范圍由所 附權(quán)利要求的范圍來定義。其它實(shí)施例也落在下面的權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1. 一種方法,包括接收來自被鏈接到互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的網(wǎng)絡(luò)的第一用戶系統(tǒng)的檢索正在所述網(wǎng) 絡(luò)中被逐個(gè)節(jié)點(diǎn)存儲器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù)的請求,所述第一用戶系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶 端程序,所述實(shí)時(shí)通信客戶端程序建立與執(zhí)行實(shí)時(shí)通信客戶端程序的第二用戶系統(tǒng)的實(shí) 時(shí)通信會話;響應(yīng)于來自所述第一用戶系統(tǒng)的檢索數(shù)據(jù)的請求,從節(jié)點(diǎn)存儲器檢索數(shù)據(jù);以及將檢索出的數(shù)據(jù)轉(zhuǎn)發(fā)給所述第二用戶系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述檢索包括在所述網(wǎng)絡(luò)的中央服務(wù)器處使用表示進(jìn)入節(jié)點(diǎn)存儲器的數(shù)據(jù)的哈希標(biāo)記來匹配數(shù)據(jù) 請求;向被預(yù)測在存儲器中具有數(shù)據(jù)的節(jié)點(diǎn)發(fā)送消息,所述消息指示所述節(jié)點(diǎn)將存儲器中 的數(shù)據(jù)轉(zhuǎn)發(fā)給請求者;并且向所述中央服務(wù)器發(fā)送數(shù)據(jù)已經(jīng)被轉(zhuǎn)發(fā)給所述請求者的確認(rèn)消息。
3.根據(jù)權(quán)利要求2所述的方法,還包括接收來自所述第一用戶系統(tǒng)的所請求的數(shù)據(jù)已 經(jīng)被接收的確認(rèn)。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)包括音頻文件、視聽文件、圖像文 件、視頻文件、一般二進(jìn)制數(shù)據(jù)或文本文件中的至少一種。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述實(shí)時(shí)通信客戶端程序是即時(shí)消息傳送客戶 端程序、電子郵件客戶端程序、文件傳輸協(xié)議(FTP)客戶端程序或者基于互聯(lián)網(wǎng)協(xié)議的 語音(VoIP)客戶端程序。
6.—種計(jì)算機(jī)程序產(chǎn)品,被有形地嵌入在信息載體中,用于幫助節(jié)點(diǎn)轉(zhuǎn)發(fā)結(jié)構(gòu)中的 實(shí)時(shí)通信,所述計(jì)算機(jī)程序產(chǎn)品可操作用于促使數(shù)據(jù)處理設(shè)備接收來自被鏈接到互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的網(wǎng)絡(luò)的第一用戶系統(tǒng)的檢索正在所述網(wǎng) 絡(luò)中被逐個(gè)節(jié)點(diǎn)存儲器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù)的請求,所述第一用戶系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶 端程序,所述實(shí)時(shí)通信客戶端程序建立與執(zhí)行實(shí)時(shí)通信客戶端程序的第二用戶系統(tǒng)的實(shí) 時(shí)通信會話;響應(yīng)于來自所述第一用戶系統(tǒng)的檢索數(shù)據(jù)的請求,從節(jié)點(diǎn)存儲器檢索數(shù)據(jù);以及將檢索出的數(shù)據(jù)轉(zhuǎn)發(fā)給所述第二用戶系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)程序產(chǎn)品,其中,檢索包括在所述網(wǎng)絡(luò)的中央服務(wù)器處使用表示進(jìn)入節(jié)點(diǎn)存儲器的數(shù)據(jù)的哈希標(biāo)記來匹配數(shù)據(jù) 請求;向被預(yù)測在存儲器中具有數(shù)據(jù)的節(jié)點(diǎn)發(fā)送消息,所述消息指示所述節(jié)點(diǎn)將存儲器中 的數(shù)據(jù)轉(zhuǎn)發(fā)給請求者;以及向所述中央服務(wù)器發(fā)送數(shù)據(jù)已經(jīng)被轉(zhuǎn)發(fā)給所述請求者的確認(rèn)消息。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,還可操作用于使得數(shù)據(jù)處理設(shè)備接收 來自所述第一用戶系統(tǒng)的所請求的數(shù)據(jù)已經(jīng)被接收的確認(rèn)。
9.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述數(shù)據(jù)包括音頻文件、視聽文 件、圖像文件、視頻文件、一般二進(jìn)制數(shù)據(jù)或文本文件中的至少一種。
10.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述實(shí)時(shí)通信客戶端程序是即時(shí)消息傳送客戶端程序、電子郵件客戶端程序、文件傳輸協(xié)議(FTP)客戶端程序或者基于 互聯(lián)網(wǎng)協(xié)議的語音(VoIP)客戶端程序。
11.一種架構(gòu),包括互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的群組,每個(gè)計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)適于響應(yīng)于來自客戶端系統(tǒng)的 存儲來自請求系統(tǒng)的數(shù)據(jù)的請求來接收數(shù)據(jù)并且逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)而不 存儲在任何物理存儲裝置中,以及響應(yīng)于來自所述請求系統(tǒng)的檢索數(shù)據(jù)的請求來檢索正 被逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù);鏈接到所述群組的至少兩個(gè)客戶端系統(tǒng),每個(gè)客戶端系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶端程序。
12.根據(jù)權(quán)利要求11所述的架構(gòu),其中,每個(gè)節(jié)點(diǎn)適于檢測其自身存儲器中數(shù)據(jù)的存 在與否,應(yīng)用時(shí)間戳,并且根據(jù)節(jié)點(diǎn)的可用性來將數(shù)據(jù)轉(zhuǎn)發(fā)給所述互連的計(jì)算機(jī)系統(tǒng)節(jié) 點(diǎn)中的另一節(jié)點(diǎn)的計(jì)算機(jī)存儲器。
13.根據(jù)權(quán)利要求12所述的架構(gòu),其中,所述節(jié)點(diǎn)的可用性是根據(jù)其網(wǎng)絡(luò)流量的容量 來確定的。
14.根據(jù)權(quán)利要求12所述的架構(gòu),其中,每個(gè)節(jié)點(diǎn)都對數(shù)據(jù)進(jìn)行加密。
15.根據(jù)權(quán)利要求11所述的架構(gòu),其中,中央節(jié)點(diǎn)適于在中央服務(wù)器處使用表示進(jìn)入 節(jié)點(diǎn)的數(shù)據(jù)的哈希標(biāo)記來匹配所述客戶端系統(tǒng)的數(shù)據(jù)檢索請求,向被預(yù)測在存儲器中具 有數(shù)據(jù)的節(jié)點(diǎn)發(fā)送消息,所述消息指示所述節(jié)點(diǎn)將存儲器中的數(shù)據(jù)轉(zhuǎn)發(fā)給請求客戶端系 統(tǒng),并且向所述中央服務(wù)器發(fā)送存儲器中的數(shù)據(jù)已經(jīng)被轉(zhuǎn)發(fā)給所述請求客戶端系統(tǒng)的確 認(rèn)消息。
16.根據(jù)權(quán)利要求11所述的架構(gòu),其中,所述實(shí)時(shí)通信客戶端程序是即時(shí)消息傳送客 戶端程序、電子郵件客戶端程序、文件傳輸協(xié)議(FTP)客戶端程序或者基于互聯(lián)網(wǎng)協(xié)議 的語音(VoIP)客戶端程序。
17.根據(jù)權(quán)利要求11所述的架構(gòu),其中,所述數(shù)據(jù)包括音頻文件、視聽文件、圖像文 件、視頻文件、一般二進(jìn)制數(shù)據(jù)或文本文件中的至少一種。
全文摘要
用于數(shù)據(jù)轉(zhuǎn)發(fā)架構(gòu)中的實(shí)時(shí)通信的方法和設(shè)備,包括計(jì)算機(jī)程序產(chǎn)品。一種架構(gòu)包括互連的計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)的群組,每個(gè)計(jì)算機(jī)系統(tǒng)節(jié)點(diǎn)適于響應(yīng)于來自客戶端系統(tǒng)的存儲來自請求系統(tǒng)的數(shù)據(jù)的請求來接收數(shù)據(jù)并且逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)而不存儲到任何物理存儲裝置上,以及響應(yīng)于來自請求系統(tǒng)的檢索數(shù)據(jù)的請求來檢索被逐個(gè)計(jì)算機(jī)存儲器地連續(xù)轉(zhuǎn)發(fā)的數(shù)據(jù);以及鏈接到所述群組的至少兩個(gè)客戶端系統(tǒng),每個(gè)客戶端系統(tǒng)執(zhí)行實(shí)時(shí)通信客戶端程序。
文檔編號G06F15/16GK102016820SQ200980114568
公開日2011年4月13日 申請日期2009年4月27日 優(yōu)先權(quán)日2008年4月25日
發(fā)明者吉恩·費(fèi)恩, 愛德華·麥里特 申請人:塔吉特樞轉(zhuǎn)讓有限責(zé)任公司