專利名稱:用于在經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的裝置之間建立連接的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明大體涉及用于在網(wǎng)絡(luò)上通信的裝置之間建立連接的系統(tǒng)和方法。此類系統(tǒng)和技術(shù)可能(例如)在通過一個或一個以上防火墻邏輯上彼此分離的裝置之間建立連接方面有用。在各種實(shí)施例中,下文描述的技術(shù)和系統(tǒng)可用于在媒體播放器與在網(wǎng)絡(luò)上提供媒體內(nèi)容的易地播放(placeshifting)裝置之間建立串流連接,但等效概念可容易應(yīng)用于任何數(shù)目的其它應(yīng)用和環(huán)境中。
背景技術(shù):
因特網(wǎng)和其它數(shù)字通信網(wǎng)絡(luò)持續(xù)對個人和職業(yè)生活的每個方面具有顯著影響。網(wǎng)絡(luò)通信歸因于便攜式計算裝置的減少的成本和增加的能力、移動電話和其它無線通信技術(shù)的增加的流行度和能力以及其它因素而正變得愈加普遍。因此,消費(fèi)者越來越期望在不考慮此類內(nèi)容的物理或地理接近度的情況下訪問數(shù)據(jù)、娛樂和其它媒體。作為一實(shí)例,消費(fèi)者已對“易地播放”裝置表現(xiàn)出很大興趣,“易地播放”裝置允許遠(yuǎn)程觀看在除觀看者的原始電視機(jī)外的位置處的電視或其它媒體內(nèi)容。易地播放裝置通常將可在局域網(wǎng)或廣域網(wǎng)上傳輸?shù)奖銛y式計算機(jī)、移動電話、個人數(shù)字助理、遠(yuǎn)程電視或其它能夠?yàn)橛^看者回放經(jīng)包化媒體流的遠(yuǎn)程裝置的媒體內(nèi)容包化。易地播放因此允許消費(fèi)者從例如其它房間、酒店、辦公室和/或其中便攜式媒體播放器裝置可獲得對無線或其它通信網(wǎng)絡(luò)的接入權(quán)的任何其它位置等遠(yuǎn)程位置觀看其媒體內(nèi)容。其它媒體和其它數(shù)據(jù)密集型應(yīng)用正類似地享有廣泛的消費(fèi)者關(guān)注度。雖然現(xiàn)代計算和網(wǎng)絡(luò)技術(shù)允許增加的移動性和對所要內(nèi)容的改進(jìn)的接入,但接入與安全性之間常常存在折衷。盡管防火墻和其它結(jié)構(gòu)可有效維持網(wǎng)絡(luò)安全性,但這些相同結(jié)構(gòu)可具有阻止對所要服務(wù)的接入的非所要的效應(yīng)。使用易地播放作為一實(shí)例,如果防火墻或其它安全結(jié)構(gòu)駐留在希望通信的兩個實(shí)體之間,那么在易地播放裝置與媒體播放器之間建立連接可能非常具有挑戰(zhàn)性。除了阻止對安全網(wǎng)絡(luò)的非所要的接入外,接著,防火墻還可能阻止對易地播放或其它服務(wù)的合法且所要的接入,尤其是在防火墻由用戶不正確或不完全配置的情況下。在客戶端與服務(wù)器之間有效建立連接用于易地播放、媒體串流和/或其它應(yīng)用可常常提出挑戰(zhàn)。因此需要創(chuàng)建用于經(jīng)由網(wǎng)絡(luò)在客戶端與服務(wù)器之間可靠且便利地建立連接的系統(tǒng)和方法。從結(jié)合附圖和此背景技術(shù)部分考慮的后續(xù)詳細(xì)描述和所附權(quán)利要求書中將了解這些和其它合意的特征和特性。
發(fā)明內(nèi)容
根據(jù)各種示范性實(shí)施例,描述用于在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的客戶端與服務(wù)器裝置之間建立連接的系統(tǒng)和方法。下文描述的某些方法和技術(shù)可在一些實(shí)例中用于在存在防火墻或?qū)χ苯泳W(wǎng)絡(luò)連接的其它阻礙時在媒體播放器與易地播放裝置之間建立媒體串流連接。其它實(shí)施例可等效地用于其它環(huán)境中,包含與媒體串流等有關(guān)的任何環(huán)境。在各種實(shí)施例中,提供一種在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的媒體播放器與易地播放裝置之間建立媒體串流連接的方法。中繼服務(wù)器接收與媒體播放器相關(guān)聯(lián)的第一請求和與易地播放裝置相關(guān)聯(lián)的第二請求。響應(yīng)于接收第一和第二請求,在中繼服務(wù)器與媒體播放器之間建立第一連接,且在中繼服務(wù)器與易地播放裝置之間建立第二連接。將中繼服務(wù)器在第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到第一和第二連接中的另一者,以借此經(jīng)由中繼服務(wù)器在媒體播放器與易地播放裝置之間建立媒體串流連接。在其它實(shí)施例中,提供一種用于經(jīng)由中繼服務(wù)器在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的客戶端裝置與服務(wù)器裝置之間建立連接的方法。首先跨網(wǎng)絡(luò)在客戶端裝置與服務(wù)器裝置之間嘗試無連接會話。如果所述無連接會話不成功,那么引導(dǎo)客戶端和服務(wù)器經(jīng)由網(wǎng)絡(luò)聯(lián)系中繼服務(wù)器,其中通過經(jīng)由網(wǎng)絡(luò)上預(yù)先存在的連接傳輸?shù)南硪龑?dǎo)服務(wù)器。響應(yīng)于客戶端和服務(wù)器隨后聯(lián)系中繼服務(wù)器,在中繼服務(wù)器與客戶端之間建立第一連接,且在中繼服務(wù)器與服務(wù)器之間建立第二連接。接著將中繼服務(wù)器在第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到第一和第二連接中的另一者,以借此經(jīng)由中繼服務(wù)器在客戶端與服務(wù)器之間建立連接。在另外其它實(shí)施例中,提供一種用于在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的媒體播放器與易地播放裝置之間建立媒體串流連接的系統(tǒng)。中繼管理器模塊經(jīng)配置以接收在媒體播放器與易地播放裝置之間建立媒體串流連接的請求。中繼實(shí)例模塊經(jīng)配置以響應(yīng)于所述請求而建立與媒體播放器的第一連接和與易地播放裝置的第二連接,且將在第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到第一和第二連接中的另一者,以借此在媒體播放器與易地播放裝置之間建立媒體串流連接。下文更詳細(xì)描述各種實(shí)施例、方面和其它特征。
下文將結(jié)合以下圖式描述示范性實(shí)施例,圖式中相同數(shù)字表示相同元件,且圖1是用于在客戶端節(jié)點(diǎn)與服務(wù)器節(jié)點(diǎn)之間建立和支持中繼連接的示范性系統(tǒng)的框圖;圖2是展示用于在客戶端與服務(wù)器之間可靠地建立連接的示范性過程的消息流程圖;以及圖3是用于在客戶端節(jié)點(diǎn)與服務(wù)器節(jié)點(diǎn)之間建立中繼連接的示范性過程的流程圖。
具體實(shí)施例方式本發(fā)明的以下詳細(xì)描述本質(zhì)上僅為示范性的,且不希望限制本發(fā)明或本發(fā)明的應(yīng)用和用途。此外,無意受前述背景技術(shù)或以下詳細(xì)描述中呈現(xiàn)的任何理論束縛。
根據(jù)各種實(shí)施例,中繼服務(wù)器可建立與客戶端和服務(wù)器的單獨(dú)連接以當(dāng)直接連接不可用時有效地橋接兩個裝置之間的通信。中繼服務(wù)器可建立(例如)與媒體播放器以及與易地播放裝置的單獨(dú)連接,且可隨后視需要在兩個連接之間中繼數(shù)據(jù)。此外,盡管在中繼服務(wù)器與客戶端和服務(wù)器中的任一者或兩者之間建立的兩個連接可使用任何協(xié)議或技術(shù)來實(shí)施,但在一些實(shí)施方案中,所述連接為可從防火墻后方發(fā)起的可靠連接(例如,傳輸控制協(xié)議(TCP)連接)。通過提供能夠?qū)蓚€單獨(dú)連接之間的信息中繼到客戶端和服務(wù)器的中繼服務(wù)器,向用戶提供用于容易地建立客戶端-服務(wù)器連接的非常可信賴的機(jī)制。此外, 在許多實(shí)施方案中可容易將配置此連接所需的大多數(shù)信息自動化,借此極大地改進(jìn)客戶端與服務(wù)器之間的成功連接的可能性,同時減小與配置此類連接相關(guān)聯(lián)的復(fù)雜性(以及,因此帶來的受挫感)。盡管以下論述為了方便說明而常常提起易地播放裝置和技術(shù),但等效實(shí)施例可在任何數(shù)目的其它環(huán)境中應(yīng)用本文描述的相同結(jié)構(gòu)和方法。事實(shí)上,本文描述的技術(shù)可容易用于經(jīng)由任何種類的網(wǎng)絡(luò)在任何種類的客戶端和/或服務(wù)器之間建立通信。此類應(yīng)用的實(shí)例可包含任何種類的媒體串流應(yīng)用、任何種類的媒體共享或存儲應(yīng)用,或其中客戶端正試圖建立與經(jīng)由防火墻或其它安全機(jī)制邏輯上與客戶端隔離的服務(wù)器的連接的任何其它應(yīng)用?,F(xiàn)轉(zhuǎn)向圖式且起初參看圖1,用于經(jīng)由網(wǎng)絡(luò)110在客戶端102與服務(wù)器104之間建立連接的示范性網(wǎng)絡(luò)系統(tǒng)100適宜地包含在與客戶端102和服務(wù)器104單獨(dú)建立的兩個連接之間中繼數(shù)據(jù)的中繼系統(tǒng)116。系統(tǒng)100因此允許客戶端102和服務(wù)器104使用中繼系統(tǒng)116通信,即使防火墻106原本會阻止客戶端102與服務(wù)器104之間的直接通信,如下文更充分描述??蛻舳?02是能夠接收由一個或一個以上服務(wù)器104經(jīng)由網(wǎng)絡(luò)110提供的串流、 基于文件的數(shù)據(jù)和/或其它數(shù)據(jù)的任何裝置、組件、模塊、硬件、軟件和/或其它網(wǎng)絡(luò)節(jié)點(diǎn)。 客戶端102可用任何種類的硬件、軟件、固件和/或類似物實(shí)施,包含任何種類的通用或?qū)S糜嬎闫脚_。在各種實(shí)施例中,客戶端102是個人計算機(jī)(例如,“膝上型”計算機(jī)或類似地便攜式計算機(jī),但也可使用桌上型計算機(jī))、移動電話、個人數(shù)字助理、機(jī)頂盒(STB)、任何種類的音頻/視頻接收器、視頻游戲播放器、導(dǎo)航裝置、個人媒體播放器(例如,可從法國伊尼(Igny,F(xiàn)rance)的愛可視公司(Archos company)購得的ARCHOS產(chǎn)品)等。在許多實(shí)施例中,客戶端102是通用計算裝置,其包含媒體播放器或呈軟件或固件形式的能夠安全地連接到服務(wù)器104(如下文更充分描述)且能夠在適當(dāng)時接收內(nèi)容并向裝置的用戶呈現(xiàn)內(nèi)容的其它應(yīng)用。然而,在其它實(shí)施例中,客戶端102是能夠經(jīng)由網(wǎng)絡(luò)110的任何部分接收數(shù)據(jù)且能夠?qū)λ邮諗?shù)據(jù)進(jìn)行解碼以向用戶提供適當(dāng)輸出(例如,在電視或其它顯示器上的輸出)的獨(dú)立或其它單獨(dú)的硬件裝置??稍谝恍?shí)施例中使用的獨(dú)立媒體接收器產(chǎn)品的一個實(shí)例為可從加州福斯特市(Foster City, California)的斯靈媒體(Sling Media)購得的SLINGCATCHER產(chǎn)品,但可等效地使用其它產(chǎn)品。服務(wù)器104為能夠在網(wǎng)絡(luò)110上傳輸包化數(shù)據(jù)的任何組件、硬件、軟件邏輯和/或類似物。在一些實(shí)施例中,包化數(shù)據(jù)是呈MPEG、Quicktime、Windows Media,Real Media或任何其它格式的媒體內(nèi)容的包化流,但在其它實(shí)施例中可等效地應(yīng)用任何種類的串流、基于文件的數(shù)據(jù)和/或其它數(shù)據(jù)。服務(wù)器104可用任何種類的通用或?qū)S糜布④浖?或固件實(shí)施,包含任何種類的常規(guī)個人計算機(jī)、工作站或其它服務(wù)器系統(tǒng)。適于在易地播放應(yīng)用中使用的服務(wù)器104的若干實(shí)例可使用可從加州福斯特市的斯靈媒體購得的各種SLINGB0X產(chǎn)品中的任一者來實(shí)施,但在其它實(shí)施例中可使用其它產(chǎn)品或服務(wù)器104。許多不同類型的易地播放裝置通常能夠從例如任何種類的數(shù)字視頻記錄器(DVR)、機(jī)頂盒(STB)、電纜或衛(wèi)星節(jié)目源、DVD播放器和/或類似物等外部源接收媒體內(nèi)容。在其它實(shí)施例中,服務(wù)器104可與任何種類的內(nèi)容接收或其它能力集成。服務(wù)器104 可為(例如)也提供代碼轉(zhuǎn)換和易地播放特征的混合STB或其它接收器。此裝置可接收對從天線、調(diào)制解調(diào)器、服務(wù)器和/或其它源接收的電視節(jié)目或其它內(nèi)容進(jìn)行編碼的衛(wèi)星、電纜、廣播和/或其它信號。接收器可進(jìn)一步對所接收信號進(jìn)行解調(diào)或以其它方式解碼以提取可本地觀看和/或在適當(dāng)時向遠(yuǎn)程客戶端102易地播放的節(jié)目。此類裝置還可包含存儲在硬盤驅(qū)動器、存儲器或其它存儲媒體上以在適當(dāng)時支持個人或數(shù)字視頻記錄器(DVR)特征的內(nèi)容數(shù)據(jù)庫,或其它內(nèi)容庫。因此,在一些實(shí)施例中,媒體源可物理上和/或邏輯上包含于與服務(wù)器104共同的組件、外殼或機(jī)箱內(nèi)。常規(guī)易地播放功能、特征、系統(tǒng)和結(jié)構(gòu)的實(shí)例在第2006/00%471號美國專利公開案中描述,但本文描述的特征可等效地與除所述特定公開案中描述的技術(shù)和結(jié)構(gòu)外的任何數(shù)目的其它技術(shù)和結(jié)構(gòu)一起應(yīng)用。在另外其它實(shí)施例中,服務(wù)器104是在常規(guī)計算系統(tǒng)(例如,個人計算機(jī))上執(zhí)行的軟件程序、小程序等。在此類實(shí)施例中,服務(wù)器104可對(例如)通常提供到計算系統(tǒng)的用戶以供向遠(yuǎn)程位置易地播放的一些或所有屏幕顯示進(jìn)行編碼。能夠提供此功能性的一個裝置是在常規(guī)個人計算機(jī)上執(zhí)行的可從加州福斯特市的斯靈媒體購得的SlingProjector 產(chǎn)品,但也可使用其它產(chǎn)品。且再次,在系統(tǒng)100中使用的客戶端102和服務(wù)器104的類型不限于易地播放裝置;可等效地應(yīng)用能夠在網(wǎng)絡(luò)110上通信的任何其它客戶端102和服務(wù)器 104。在其它實(shí)施例中,服務(wù)器104簡單地在網(wǎng)絡(luò)110上提供串流、基于文件的信息和/ 或任何其它種類的信息,包含對數(shù)據(jù)庫詢問的響應(yīng)等。如上所述,本發(fā)明特征不限于易地播放應(yīng)用,且可與在網(wǎng)絡(luò)Iio上操作的任何常規(guī)服務(wù)器104裝置或應(yīng)用一起使用。網(wǎng)絡(luò)110為能夠在發(fā)送者(例如,服務(wù)器104)與接收者(例如,客戶端102)之間傳輸消息的任何數(shù)字或其它通信網(wǎng)絡(luò)。在各種實(shí)施例中,網(wǎng)絡(luò)110包含支持任何數(shù)目的通信協(xié)議的任何數(shù)目的公共或私人數(shù)據(jù)連接、鏈接或網(wǎng)絡(luò)。網(wǎng)絡(luò)110可包含(例如)因特網(wǎng)或任何其它基于TCP/IP或其它常規(guī)協(xié)議的網(wǎng)絡(luò)。在各種實(shí)施例中,網(wǎng)絡(luò)110還并入有無線和/或有線電話網(wǎng)絡(luò),例如用于與移動電話、個人數(shù)字助理等通信的蜂窩式通信網(wǎng)絡(luò)。網(wǎng)絡(luò)110還可并入有任何種類的無線或有線局域網(wǎng),例如一個或一個以上IEEE 802. 3和/或 IEEE 802. 11 網(wǎng)絡(luò)。如上所述,歸因于一個或一個以上防火墻106的存在,客戶端102與服務(wù)器104之間的直接連接可能并非始終可用。防火墻106表示用于限制客戶端102與服務(wù)器104之間的連接的任何種類的硬件、軟件和/或硬件與軟件的組合。在一些實(shí)例中,防火墻106可使用專用硬件實(shí)施,但在其它情況下,防火墻106可用服務(wù)器和/或客戶端系統(tǒng)的架構(gòu)、路由器控制(例如,接入控制列表(ACL))和/或類似物來實(shí)施。通常,防火墻僅為在路由器內(nèi)實(shí)施的特征,例如用于(視需要)提供家庭或辦公室LAN與電纜、光纖、數(shù)字訂戶線(DSL) 和/或其它提供者連接之間的接口的路由器。
當(dāng)防火墻106或其它特征阻止客戶端102與服務(wù)器104之間的直接連接時,那么可嘗試其它用于建立連接的技術(shù)。中介服務(wù)器112(例如)可用于支持使用用戶數(shù)據(jù)報協(xié)議(UDP)等的連接。中介服務(wù)器112因此充當(dāng)一種“看門人”機(jī)器,其在客戶端102與服務(wù)器104之間建立間接連接,且處置客戶端與服務(wù)器之間的同步細(xì)節(jié)以及與系統(tǒng)100的其余部分通信。在許多實(shí)施方案中,中介服務(wù)器112能夠建立與客戶端102和服務(wù)器104兩者的 UDP或其它無連接會話。當(dāng)客戶端102請求到已與中介服務(wù)器通信的服務(wù)器104的連接時, 所提出的會話的兩方通??珊唵蔚亟粨QUDP (或其它)參數(shù)并繼續(xù)通信。此技術(shù)通常稱為 “UDP打洞(UDP hole punching) ”,且通?;诔R?guī)網(wǎng)絡(luò)地址變換(NAT)技術(shù)。然而,此類技術(shù)通常不成功,尤其當(dāng)客戶端102和服務(wù)器104被相對復(fù)雜的防火墻106(例如,與許多企業(yè)網(wǎng)絡(luò)相關(guān)聯(lián)的防火墻)分離時,所述防火墻106可辨識出在客戶端102采用服務(wù)器112 先前使用的參數(shù)之后最初參與建立UDP會話的一方(例如,中介服務(wù)器11 不再是參與通信的一方。此外,UDP或類似會話可涉及用戶進(jìn)行的一些手動配置,其尤其對于相對經(jīng)驗(yàn)不足的用戶來說可能不便利且通常較困難。當(dāng)直接連接或UDP型代理服務(wù)均不可由用戶使用時,將需要提供仍然允許客戶端102與服務(wù)器104通信的額外連接特征。各種實(shí)施例因此提供中繼系統(tǒng)116,其能夠建立與客戶端102和服務(wù)器104的單獨(dú)連接且在兩個連接之間中繼信息,以借此在客戶端102與服務(wù)器104之間創(chuàng)建橋接連接。 為此,中繼系統(tǒng)116適宜地包含一個或一個以上中繼服務(wù)器120,其能夠在任何數(shù)目的客戶端102與服務(wù)器104之間建立和處理各種連接。在各種實(shí)施例中,每一中繼服務(wù)器120包含中繼管理器模塊122,中繼管理器模塊122調(diào)用響應(yīng)于所接收的連接請求而處理中繼會話的任何數(shù)目的中繼實(shí)例124,如下文更充分描述。中繼管理器模塊122還可與數(shù)據(jù)庫1 和/或管理接口 1 交互以控制對中繼功能的接入,實(shí)施商業(yè)規(guī)則,且/或視需要采取其它動作。在各種實(shí)施例中,還可提供負(fù)載平衡118以有效且高效地分配中繼服務(wù)器120和/ 或其它資源。可使用硬件和/或軟件資源的任何組合來實(shí)施負(fù)載平衡118,且負(fù)載平衡118 可基于網(wǎng)絡(luò)業(yè)務(wù)、服務(wù)器120上的處理器負(fù)載、客戶端102和/或服務(wù)器104的地理分布, 和/或適當(dāng)?shù)娜魏纹渌蛩?。在各種實(shí)施例中,使用常規(guī)計算機(jī)服務(wù)器硬件和軟件來實(shí)施每一中繼服務(wù)器120。 可例如用基于任何處理器、架構(gòu)和/或操作系統(tǒng)的服務(wù)器計算機(jī)系統(tǒng)來實(shí)施每一中繼服務(wù)器120。在各種實(shí)施例中,每一中繼服務(wù)器120為執(zhí)行例如任何版本的LINUX、UNIX、 SOLARIS、NETWARE、WINDOWS、OS/X, AIX或其它操作系統(tǒng)等操作系統(tǒng)的實(shí)際或虛擬的計算機(jī)系統(tǒng)。各種UNIX/LINUX操作系統(tǒng)通常提供能夠?qū)⒅欣^管理器模塊122實(shí)施為應(yīng)用的計算核心,以及(視需要)任何數(shù)目的后臺程序(daemon)、進(jìn)程、應(yīng)用或其它中繼實(shí)例模塊124。在一示范性實(shí)施例中,使用可從加州森尼韋爾(Sunnyvale,California)的太陽微系統(tǒng)(Sun Microsystems)購得的JAVA環(huán)境來實(shí)施中繼管理器模塊122,其中用常規(guī)C、C++或其它編程來實(shí)施中繼實(shí)例模塊124。其它實(shí)施例可使用任何其它編程語言、腳本撰寫語言、開發(fā)或執(zhí)行環(huán)境等來實(shí)施系統(tǒng)116的各種組件。在一示范性實(shí)施例中,當(dāng)從中介服務(wù)器112、客戶端102或其它請求方接收到中繼連接的請求時,中繼管理器模塊122將服務(wù)器120上的傳入的端口編號分配到所述連接且調(diào)用新的中繼實(shí)例1 來處理所述連接。所述實(shí)例接收所指派的端口編號且等待客戶端 102和服務(wù)器104兩者均已聯(lián)系中繼服務(wù)器120以請求連接為止。來自客戶端102和服務(wù)器104的請求在系統(tǒng)116處被接收且通過負(fù)載平衡特征118等轉(zhuǎn)發(fā)到適當(dāng)端口。盡管可使用TCP、UDP或任何其它協(xié)議建立連接,但在各種實(shí)施例中,所述連接可由客戶端102和服務(wù)器104使用TCP協(xié)議發(fā)起以輔助穿過可能正進(jìn)行干預(yù)的任何防火墻106。因?yàn)榇蠖鄶?shù)防火墻106不阻擋從可信網(wǎng)絡(luò)內(nèi)發(fā)起的TCP連接,所以此類連接在經(jīng)由中繼服務(wù)器120建立通信方面可非常有效。在建立與客戶端102和服務(wù)器104的單獨(dú)連接之后,中繼實(shí)例124適宜地將每一連接上所接收的數(shù)據(jù)中繼到另一連接以在客戶端102與服務(wù)器104之間創(chuàng)建虛擬通道。此虛擬連接可在任何時間基于任何準(zhǔn)則而維持或終止。在各種實(shí)施例中,中繼實(shí)例125跟蹤自從連接開始以來已逝去的時間和/或在整個連接過程期間所處理的數(shù)據(jù)量。此信息可與中繼管理器122共享以在預(yù)定時間周期或已處理預(yù)定業(yè)務(wù)量之后終止連接。時間和帶寬消耗可進(jìn)一步存儲在數(shù)據(jù)庫126中以允許進(jìn)一步驗(yàn)證、授權(quán)和/或類似操作。來自服務(wù)器104的與中繼系統(tǒng)116的通信可以任何方式起始。在各種實(shí)施例中, 服務(wù)器104在統(tǒng)一資源定位符(URL)或可容易從防火墻106后方聯(lián)系的其它網(wǎng)絡(luò)地址處維持與消息接發(fā)服務(wù)器114的相對恒定的連接。消息接發(fā)服務(wù)器114可簡單地為(例如)TCP 服務(wù)器,其在服務(wù)器104啟動時自動接入。在此類情況下,服務(wù)器104在啟動時(或依據(jù)某一其它時間基礎(chǔ))聯(lián)系消息接發(fā)服務(wù)器114,建立TCP或類似連接,且接著等待進(jìn)一步動作。 此連接可使用作為TCP協(xié)議的一部分的相對低帶寬的“保持活躍”特征而保持活躍。通過預(yù)先建立從服務(wù)器104到消息接發(fā)服務(wù)器114的連接,盡管服務(wù)器在防火墻106后方,也維持可用于將指令或請求發(fā)送到服務(wù)器104的通道。這是因?yàn)樵诜阑饓?06中使用的許多路由器將允許在可信空間內(nèi)發(fā)起的傳出TCP連接,同時不允許傳入TCP (和其它)連接。在建立從服務(wù)器104到消息服務(wù)器114的TCP或其它連接之后,所述預(yù)先存在的連接可用于將指令傳輸?shù)椒?wù)器104以建立與中繼服務(wù)器116的單獨(dú)連接。此第二連接可建立為不可能被防火墻106阻擋的另一傳出TCP(或其它協(xié)議)通信。即,消息服務(wù)器114可在預(yù)先存在的通道上傳輸引導(dǎo)服務(wù)器104單獨(dú)聯(lián)系中繼服務(wù)器的指令。此指令可任選地包含關(guān)于客戶端102或正請求連接的另一方的信息,但此信息無需在所有實(shí)施例中均存在。當(dāng)被指令這樣做時,服務(wù)器104適宜地建立可用于將數(shù)據(jù)傳輸?shù)娇蛻舳?02的與中繼服務(wù)器的TCP或其它連接,如下文更充分描述。如上所述,中繼服務(wù)器116可建立與客戶端102和服務(wù)器104的連接以使得可將數(shù)據(jù)從一個連接中繼到另一連接。雖然數(shù)據(jù)的中繼確實(shí)對服務(wù)器116施加額外處理負(fù)荷, 但這確實(shí)創(chuàng)建了用于在客戶端與服務(wù)器之間建立連接的非常便利且有效的機(jī)制?,F(xiàn)轉(zhuǎn)向圖2,展示用于經(jīng)由網(wǎng)絡(luò)110在客戶端102與服務(wù)器104之間建立連接的示范性過程200。在此實(shí)例中,客戶端102起初試圖建立與服務(wù)器104的直接連接202,但此連接202被防火墻106阻擋。在創(chuàng)建直接連接的不成功嘗試之后,客戶端102試圖使用中介服務(wù)器112創(chuàng)建中介連接205。在此情境中,客戶端102將請求與中介服務(wù)器112的UDP(或其它)會話210 的消息204發(fā)送到中介服務(wù)器112。服務(wù)器104類似地傳輸建立與中介服務(wù)器112的UDP 會話208的請求206 ;來自服務(wù)器104的此請求206可在任何時間發(fā)送,包含在客戶端102CN 102396206 A
說明書
7/9頁
發(fā)送消息204之前的時間。服務(wù)器104可(例如)在啟動時用消息206自動聯(lián)系中介服務(wù)器112,使得當(dāng)客戶端102請求接入服務(wù)器104時UDP會話208已經(jīng)可用。在客戶端102與服務(wù)器104兩者正與共同代理(例如,服務(wù)器11 通信時,所述代理可將與客戶端102相關(guān)聯(lián)的UDP (或其它)信息轉(zhuǎn)發(fā)到服務(wù)器104,且所述代理可將與服務(wù)器104相關(guān)聯(lián)的UDP (或其它)信息轉(zhuǎn)發(fā)到客戶端102,希望客戶端102與服務(wù)器104可在其后使用來自代理服務(wù)器的共享UDP信息直接通信,如圖2中的會話212和213所指示。然而,如上所述,許多防火墻106將不允許此類連接。再次回想到服務(wù)器104先前已建立與消息服務(wù)器114的TCP或其它可靠的連接 214,此預(yù)先存在的連接214可用于建立從服務(wù)器104到中繼服務(wù)器116的中繼連接。當(dāng)代理型連接不成功時,消息服務(wù)器114適宜地引導(dǎo)服務(wù)器104(經(jīng)由消息218)以起始與中繼系統(tǒng)116的單獨(dú)連接。雖然圖2展示消息218正從消息服務(wù)器114被發(fā)送到服務(wù)器104,但此消息218可響應(yīng)于從任何數(shù)目的源接收的請求216而起始。在各種實(shí)施例中,中介服務(wù)器112將請求216發(fā)送到消息服務(wù)器114以指示服務(wù)器104聯(lián)系中繼服務(wù)器116。在其它實(shí)施例中,客戶端102傳輸請求216以起始指令消息218。在任一情況下,從服務(wù)器104到消息服務(wù)器114的所建立的預(yù)先存在的連接214用于引導(dǎo)服務(wù)器104在適當(dāng)時聯(lián)系中繼系統(tǒng)116。當(dāng)被引導(dǎo)這樣做時,服務(wù)器104將請求220發(fā)送到中繼服務(wù)器116。此請求220在系統(tǒng)116處經(jīng)適當(dāng)處理以使用TCP、UDP和/或任何其它適當(dāng)協(xié)議創(chuàng)建連接226??梢匀魏畏绞浇⒅欣^系統(tǒng)116與客戶端102之間的連接。在圖2所示的示范性實(shí)施例中,客戶端102或中介服務(wù)器112起始產(chǎn)生中繼服務(wù)器116與客戶端102之間的連接224的請求222。可響應(yīng)于當(dāng)代理連接不成功時從中介服務(wù)器112到客戶端102的指令來起始請求222。然而,其它實(shí)施例可以任何其它方式起始請求222。再次,如果客戶端102 使用TCP起始連接,那么隨之發(fā)生的連接2M非常可能在無明顯問題的情況下通過任何進(jìn)行干預(yù)的防火墻106。然而,其它實(shí)施例可在適當(dāng)時使用UDP或其它協(xié)議。一旦連接2M和2 處于適當(dāng)位置,則可經(jīng)由中繼連接2 如上所述進(jìn)行客戶端 102與服務(wù)器104之間的數(shù)據(jù)的中繼。舉例來說,在易地播放應(yīng)用中,可經(jīng)由連接2 從易地播放服務(wù)器104提供串流媒體以在媒體播放器客戶端102上播放。在此類實(shí)施例中,可能需要在中繼傳輸期間限制媒體流的位速率、幀速率、分辨率或其它編碼參數(shù)以便減少關(guān)于服務(wù)器120上的帶寬和處理能力的問題。此限制可例如通過從中繼服務(wù)器116或另一源 (視需要)傳輸?shù)椒?wù)器104的指令來強(qiáng)加。或者,服務(wù)器104中的固件或其它指令可每當(dāng)經(jīng)由中繼服務(wù)器116進(jìn)行連接時視需要配置編碼、串流或其它特征。再次,可除易地播放外還預(yù)期其它特征和實(shí)施方案?,F(xiàn)轉(zhuǎn)向圖3,用于在客戶端102與服務(wù)器104之間建立連接的示范性方法300適宜地包含以下大概步驟在中繼服務(wù)器120處分別從客戶端102和服務(wù)器104接收請求222、 220 (功能310);在客戶端102與服務(wù)器104之間建立兩個連接224,226 (功能314);以及在中繼服務(wù)器120處的兩個連接224、2沈之間中繼數(shù)據(jù)(功能316)以建立中繼連接228。 其它實(shí)施例也可提供額外特征,例如批準(zhǔn)中繼連接(功能312)、在超過時間或帶寬限制之后中斷中繼連接(功能318)和/或類似物。如上所述,中繼連接確實(shí)消耗服務(wù)器120上的資源,因此在許多實(shí)施例中可能需要鼓勵客戶端102在嘗試中繼連接之前嘗試直接連接(功能302和304)和/或中介連接(功能306和308)。在直接和/或中介連接不成功的情況下,接著可嘗試中繼連接??蓪?shí)施任何數(shù)目的規(guī)則或程序以操縱中繼特征是否以及何時可由任何特定用戶、客戶端102和 /或服務(wù)器104使用。在圖3所示的示范性實(shí)施例中,在直接連接(功能302)和中介(例如,UDP)連接(功能306)均已不成功(功能304、308)之后嘗試使用服務(wù)器120的中繼連接。其它實(shí)施例可允許用戶手動強(qiáng)制中繼連接,或當(dāng)已知(或當(dāng)可確信地認(rèn)為)直接或中介連接將不成功時自動起始中繼條件。此類特征可編碼到媒體播放器或在客戶端102處執(zhí)行的其它客戶端應(yīng)用中,且/或可使用存儲在數(shù)據(jù)庫126等中的商業(yè)規(guī)則來實(shí)行。如上所述,中繼服務(wù)器120分別響應(yīng)于從服務(wù)器104和客戶端102接收的連接請求220、222而創(chuàng)建中繼連接228。在一示范性實(shí)施例中,中繼實(shí)例IM在適當(dāng)時間周期內(nèi)監(jiān)視中繼管理器模塊122識別的端口。如果在適當(dāng)超時周期(例如,大約幾秒左右)期滿之前接收到請求220和222,那么處理繼續(xù)。如果未從客戶端102或服務(wù)器104中的任一者或兩者接收到請求,那么可中止連接??筛鶕?jù)任何適宜的規(guī)則批準(zhǔn)或拒絕連接(功能312)。如上所述,可實(shí)施任何數(shù)目的商業(yè)規(guī)則以限制或約束對中繼服務(wù)器的接入。此類規(guī)則可包含將特征限于特定用戶、特定服務(wù)器和/或特定客戶端。在另外其它實(shí)施例中,用戶(或服務(wù)器或客戶端)可被限于所允許的數(shù)目的中繼服務(wù)。此限制可為合計數(shù)目(例如,在客戶端或服務(wù)器的使用壽命內(nèi)), 或可在任何適當(dāng)?shù)臅r間周期(例如,每月十個中繼連接)之后復(fù)位??捎糜脩鬷d/ 口令、數(shù)字簽名、生物計量識別或任何其它數(shù)字證書來識別用戶??蛻舳?02和服務(wù)器104可類似地通過任何種類的數(shù)字證書來識別,包含任何種類的數(shù)字簽名或其它識別符(例如,序列號、MAC地址和/或類似物)。此信息可包含在請求220和/ 或222中,且可視需要與存儲在數(shù)據(jù)庫1 或其它地方的信息進(jìn)行比較。在許多實(shí)施例中, 中繼管理器模塊122可處理批準(zhǔn),但其它實(shí)施例可視需要使用中繼實(shí)例124、管理特征1 和/或任何其它特征來處理批準(zhǔn)。如果批準(zhǔn)得到許可,那么從中繼服務(wù)器120建立連接2M和2 (功能314),且可經(jīng)由中繼連接228開始客戶端102與服務(wù)器104之間的數(shù)據(jù)中繼(功能316)。在各種實(shí)施例中,存儲在數(shù)據(jù)庫126內(nèi)和/或中繼實(shí)例124中的數(shù)據(jù)可用于根據(jù)適當(dāng)規(guī)則中斷連接 228。在一些實(shí)施例中,可能需要在預(yù)定時間周期(例如,三十分鐘左右,但其它實(shí)施例可使用更長或更短的時間)之后或在已處理預(yù)定數(shù)據(jù)量(例如,10吉字節(jié)/月,或任何其它值) 之后中斷所有連接(或僅與特定客戶端、服務(wù)器或用戶相關(guān)聯(lián)的連接)(功能318)。所實(shí)施的特定規(guī)則和參數(shù)可隨實(shí)施例而不同;可視需要使用數(shù)據(jù)庫126的規(guī)則引擎實(shí)施任何數(shù)目的規(guī)則。一般來說,可用系統(tǒng)100內(nèi)的任何種類的硬件、軟件和/或固件實(shí)行方法300的各種步驟。方法300可例如視需要由結(jié)合任何適當(dāng)客戶端102和/或服務(wù)器104操作的中繼服務(wù)器120(圖1)來實(shí)行。圖3還展示關(guān)于嘗試直接和中介連接的功能302、304、306、308, 如上文描述。在實(shí)踐中,這些特征可由客戶端102或服務(wù)器104而非由中繼服務(wù)器120實(shí)行。在各種實(shí)施例中,響應(yīng)于存儲在存儲器中或磁盤驅(qū)動器上和/或與中繼服務(wù)器120和/ 或客戶端102相關(guān)聯(lián)的其它存儲裝置上的軟件或固件指令而實(shí)行方法300的各種步驟。此類指令可由服務(wù)器120、客戶端102和/或類似物內(nèi)的任何處理器和/或其它處理特征執(zhí)行。用于實(shí)施圖3中所示的各種功能中的每一者的特定構(gòu)件于是可為以任何格式執(zhí)行常規(guī)軟件邏輯的任何種類的處理硬件(例如,圖1的服務(wù)器120、客戶端102和/或服務(wù)器104)。
如本文描述,于是已描述了用于經(jīng)由數(shù)字網(wǎng)絡(luò)在客戶端與服務(wù)器之間建立連接的新的系統(tǒng)和技術(shù)。本文描述的各種技術(shù)允許客戶端和服務(wù)器單獨(dú)建立與中繼服務(wù)器的TCP 或其它連接,所述中繼服務(wù)器有效地在兩個連接之間中繼數(shù)據(jù)以在客戶端與服務(wù)器之間建立虛擬點(diǎn)對點(diǎn)鏈接。通過允許客戶端與服務(wù)器中的每一者起始與共同中繼服務(wù)的連接,可穿過原本將阻止客戶端與服務(wù)器之間的直接連接的防火墻,借此允許客戶端與服務(wù)器之間的數(shù)據(jù)傳遞或其它通信而不損害網(wǎng)絡(luò)的安全性。此服務(wù)可用于通過允許易地播放服務(wù)器裝置將媒體數(shù)據(jù)串流到中繼服務(wù)器(所述中繼服務(wù)器又將所接收的流中繼到媒體播放器客戶端)而支持易地播放或其它串流媒體應(yīng)用。等效實(shí)施例可提供用于傳遞任何格式的任何流、基于文件的數(shù)據(jù)、基于包的數(shù)據(jù)或其它數(shù)據(jù)的類似特征。本文使用術(shù)語“示范性”來表示可具有任何數(shù)目的替代物的一個實(shí)例、例子或說明。本文描述為示范性的任何實(shí)施方案不必解釋為比其它實(shí)施方案優(yōu)選或有利。雖然已在前述詳細(xì)描述中呈現(xiàn)若干示范性實(shí)施例,但應(yīng)了解,存在大量替代但等效的變型,且本文所呈現(xiàn)的實(shí)例不希望以任何方式限制本發(fā)明的范圍、適用性或配置。相反,可在不脫離權(quán)利要求書及其合法等效物的范圍的情況下在所描述的元件的功能和布置方面做出各種改變。
權(quán)利要求
1.一種在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的媒體播放器與易地播放裝置之間建立媒體串流連接的方法,所述方法包括由中繼服務(wù)器接收與所述媒體播放器相關(guān)聯(lián)的第一請求和與所述易地播放裝置相關(guān)聯(lián)的第二請求;響應(yīng)于接收所述第一和第二請求,在所述中繼服務(wù)器與所述媒體播放器之間建立第一連接,且在所述中繼服務(wù)器與所述易地播放裝置之間建立第二連接;以及將由所述中繼服務(wù)器在所述第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到所述第一和第二連接中的另一者,以借此經(jīng)由所述中繼服務(wù)器在所述媒體播放器與所述易地播放裝置之間建立所述媒體串流連接。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二連接為傳輸控制協(xié)議TCP連接。
3.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于所述媒體播放器與所述易地播放裝置之間的不成功的用戶數(shù)據(jù)報協(xié)議UDP連接而發(fā)生所述接收。
4.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于在所述媒體播放器與所述易地播放裝置之間建立直接連接的不成功的嘗試而發(fā)生所述接收。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括引導(dǎo)所述易地播放裝置將所述第二請求發(fā)送到所述中繼服務(wù)器。
6.根據(jù)權(quán)利要求5所述的方法,其中所述引導(dǎo)包括在經(jīng)由所述網(wǎng)絡(luò)與所述易地播放裝置的預(yù)先建立的連接上引導(dǎo)將消息發(fā)送到所述易地播放裝置。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在預(yù)定時間已逝去之后中斷所述媒體串流連接。
8.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在已中繼預(yù)定數(shù)據(jù)量之后中斷所述媒體串流連接。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括基于與所述易地播放裝置、所述媒體播放器和所述易地播放裝置的用戶中的至少一者相關(guān)聯(lián)的識別信息而在建立所述第一和第二連接之前批準(zhǔn)所述媒體串流連接。
10.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括基于包含在所述第一和第二請求中的至少一者中的識別信息而在建立所述第一和第二連接之前批準(zhǔn)所述媒體串流連接。
11.一種經(jīng)由中繼服務(wù)器在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的客戶端與服務(wù)器之間建立連接的方法,所述方法包括首先嘗試在所述網(wǎng)絡(luò)上在所述客戶端裝置與所述服務(wù)器之間建立無連接會話;如果所述無連接會話不成功,那么引導(dǎo)所述客戶端和所述服務(wù)器經(jīng)由所述網(wǎng)絡(luò)聯(lián)系所述中繼服務(wù)器,其中通過經(jīng)由所述網(wǎng)絡(luò)上預(yù)先存在的連接而傳輸?shù)南硪龑?dǎo)所述服務(wù)器;響應(yīng)于所述客戶端和所述服務(wù)器隨后聯(lián)系所述中繼服務(wù)器,在所述中繼服務(wù)器與所述客戶端之間建立第一連接,且在所述中繼服務(wù)器與所述服務(wù)器之間建立第二連接;以及將由所述中繼服務(wù)器在所述第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到所述第一和第二連接中的另一者,以借此經(jīng)由所述中繼服務(wù)器在所述客戶端與所述服務(wù)器之間建立所述連接。
12.根據(jù)權(quán)利要求11所述的方法,其中所述無連接會話為用戶數(shù)據(jù)報協(xié)議UDP會話,且其中所述第一和第二連接為傳輸控制協(xié)議TCP連接。
13.一種用于在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的媒體播放器與易地播放裝置之間建立媒體串流連接的系統(tǒng),所述系統(tǒng)包括中繼管理器模塊,其經(jīng)配置以接收在所述媒體播放器與所述易地播放裝置之間建立所述媒體串流連接的請求;以及中繼實(shí)例模塊,其經(jīng)配置以響應(yīng)于所述請求而建立與所述媒體播放器的第一連接和與所述易地播放裝置的第二連接,且將在所述第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到所述第一和第二連接中的另一者,以借此在所述媒體播放器與所述易地播放裝置之間建立所述媒體串流連接。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述第一和第二連接為傳輸控制協(xié)議TCP連接。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其進(jìn)一步包括經(jīng)配置以存儲信息的數(shù)據(jù)庫,且其中所述中繼管理器模塊經(jīng)配置以基于存儲在所述數(shù)據(jù)庫中的所述信息而允許或不允許所述媒體串流連接。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中存儲在所述數(shù)據(jù)庫中的所述信息包括所述媒體串流連接已被建立的逝去時間,且其中所述中繼管理器模塊進(jìn)一步經(jīng)配置以在所述逝去時間超過預(yù)定值時不允許所述媒體串流連接。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中存儲在所述數(shù)據(jù)庫中的所述信息包括所述易地播放裝置已使用所述系統(tǒng)的總時間,且其中所述中繼管理器模塊進(jìn)一步經(jīng)配置以在所述總時間超過預(yù)定允許值時不允許所述媒體串流連接。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中存儲在所述數(shù)據(jù)庫中的所述信息包括所述媒體串流連接已被建立的逝去時間,且其中所述中繼管理器模塊進(jìn)一步經(jīng)配置以在所述逝去時間超過預(yù)定值時不允許所述媒體串流連接。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其進(jìn)一步包括中介服務(wù)器,所述中介服務(wù)器經(jīng)配置以嘗試使用無連接協(xié)議經(jīng)由所述網(wǎng)絡(luò)來連接所述易地播放裝置和所述媒體播放器,且在經(jīng)由所述無連接協(xié)議進(jìn)行連接的所述嘗試不成功的情況下,起始經(jīng)由基于連接的協(xié)議在所述媒體播放器與所述易地播放裝置之間建立所述媒體串流連接的請求。
20.根據(jù)權(quán)利要求15所述的系統(tǒng),其進(jìn)一步包括消息服務(wù)器,所述消息服務(wù)器經(jīng)配置以使用基于連接的協(xié)議在所述網(wǎng)絡(luò)上建立與所述易地播放裝置的預(yù)先存在的連接,且在所述預(yù)先存在的連接上將引導(dǎo)所述易地播放裝置建立所述第二連接的消息發(fā)送到所述易地播放裝置。
全文摘要
本發(fā)明描述用于在各自經(jīng)由網(wǎng)絡(luò)進(jìn)行通信的客戶端與服務(wù)器之間建立連接的系統(tǒng)和方法。舉例來說,可使用所述方法和技術(shù)在存在防火墻或?qū)χ苯泳W(wǎng)絡(luò)連接的其它阻礙時在媒體播放器與易地播放裝置之間建立媒體串流連接。中繼服務(wù)器經(jīng)由所述網(wǎng)絡(luò)從所述客戶端以及從所述服務(wù)器接收連接請求。響應(yīng)于接收所述請求,在所述中繼服務(wù)器與所述客戶端之間建立第一連接,且在所述中繼服務(wù)器與所述服務(wù)器之間建立第二連接。將由所述中繼服務(wù)器在所述第一和第二連接中的每一者上接收的數(shù)據(jù)中繼到所述第一和第二連接中的另一者,以借此經(jīng)由所述中繼服務(wù)器在所述客戶端與所述服務(wù)器之間建立所述連接。
文檔編號H04L29/06GK102396206SQ201080016835
公開日2012年3月28日 申請日期2010年3月29日 優(yōu)先權(quán)日2009年4月17日
發(fā)明者伊利亞·阿斯尼斯, 布萊恩·盧卡斯 申請人:斯靈媒體公司