專利名稱:分發(fā)器和對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)數(shù)據(jù)同步領(lǐng)域,具體涉及一種分發(fā)器和對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法。
背景技術(shù):
目前,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)作為一個(gè)龐大的信息資源,成為人們獲取信息的最方便、快捷的途徑。目前,用戶通常使用個(gè)人計(jì)算機(jī)接入英特網(wǎng)(Internet),并通過個(gè)人計(jì)算機(jī)中安裝的瀏覽器(Browser)訪問網(wǎng)頁,獲得需要的信息。隨著移動(dòng)通信技術(shù)的發(fā)展,用戶還可以通過支持瀏覽器功能的移動(dòng)終端接入英特網(wǎng),例如手機(jī)、個(gè)人數(shù)字助理(Personal Digital Assistant,簡(jiǎn)稱 PDA)。然而,無論是個(gè)人計(jì)算機(jī)上的瀏覽器還是移動(dòng)終端上的瀏覽器,一般不提供推送 服務(wù),服務(wù)器端與客戶端的信息交互依賴于客戶端發(fā)起的連接,服務(wù)器端無法主動(dòng)地將信息發(fā)送給客戶端,從而無法實(shí)現(xiàn)服務(wù)器端與瀏覽器客戶端之間的信息的實(shí)時(shí)同步。現(xiàn)有技術(shù)中,最常用的實(shí)現(xiàn)瀏覽器客戶端與服務(wù)器端瀏覽器數(shù)據(jù)同步的方式是瀏覽器客戶端以一定頻率向服務(wù)器端發(fā)送請(qǐng)求,如每周一次或每月一次,如果服務(wù)端有相關(guān)信息的更新則獲取這些信息。然而,申請(qǐng)人發(fā)現(xiàn)該種數(shù)據(jù)同步方式存在如下技術(shù)缺陷效率比較低、占用資源多、不能做到內(nèi)容的真正實(shí)時(shí)同步更新。在一種具體的實(shí)現(xiàn)方式中,瀏覽器客戶端借助套接字服務(wù)器與服務(wù)器端進(jìn)行數(shù)據(jù)同步,由此瀏覽器客戶端需要與套接字服務(wù)器保持連接。然而針對(duì)特定瀏覽器客戶端,向其分發(fā)或?qū)ぶ穼?duì)應(yīng)的套接字服務(wù)器的過程還需要進(jìn)一步優(yōu)化。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的分發(fā)器和對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法。依據(jù)本發(fā)明的一個(gè)方面,提供了一種分發(fā)器,其包括接收單元、連接標(biāo)識(shí)符生成單元和分發(fā)單元,其中所述接收單元,適于接收用戶標(biāo)識(shí)信息;所述連接標(biāo)識(shí)符生成單元,適于根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;所述分發(fā)單元,適于根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè);其中,所述用戶標(biāo)識(shí)信息包含于瀏覽器客戶端向所述分發(fā)器發(fā)送的連接請(qǐng)求中,所述分發(fā)器還包括發(fā)送單元,適于將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端。可選地,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)。
可選地,所述連接標(biāo)識(shí)符為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值??蛇x地,所述連接標(biāo)識(shí)符生成單元采用循環(huán)冗余校驗(yàn)算法。可選地,所述循環(huán)冗余校驗(yàn)算法為32位??蛇x地,所述分發(fā)單元進(jìn)一步包括均分子單元、關(guān)聯(lián)子單元和分配子單元,其中所述均分子單元,適于根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間;所述關(guān)聯(lián)子單元,適于將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián);所述分配子單元,適于根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符 指示的連接分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器。可選地,當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),所述分發(fā)單元對(duì)服務(wù)器重新進(jìn)行分配。 可選地,所述服務(wù)器為套接字服務(wù)器。根據(jù)本發(fā)明的另一方面,提供了一種對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法,該方法包括接收用戶標(biāo)識(shí)信息;根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè);云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息;所述推送服務(wù)器根據(jù)該條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將所述命令信息發(fā)送給與所述目標(biāo)客戶端對(duì)應(yīng)的套接字服務(wù)器;所述套接字服務(wù)器與相應(yīng)的瀏覽器客戶端分別建立套接字連接,并將命令信息發(fā)送給目標(biāo)客戶端;所述目標(biāo)客戶端根據(jù)所述命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步??蛇x地,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)??蛇x地,所述連接標(biāo)識(shí)符為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值??蛇x地,采用循環(huán)冗余校驗(yàn)算法根據(jù)所述用戶標(biāo)識(shí)信息生成所述連接標(biāo)識(shí)符。可選地,所述循環(huán)冗余校驗(yàn)算法為32位??蛇x地,所述根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè)的步驟進(jìn)一步包括以下子步驟根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間;將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián);根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符指示的連接分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器??蛇x地,當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),對(duì)服務(wù)器重新進(jìn)行分配。可選地,所述服務(wù)器為套接字服務(wù)器??蛇x地,所述方法還包括瀏覽器客戶端向分發(fā)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的連接請(qǐng)求的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包括所述分發(fā)器將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端的步驟。
可選地,所述方法還包括云存儲(chǔ)服務(wù)器端向推送服務(wù)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的條件信息的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包括所述推送服務(wù)器將與所述條件信息對(duì)應(yīng)的命令信息和連接標(biāo)識(shí)符發(fā)送給所分發(fā)的服務(wù)器的步驟。根據(jù)本發(fā)明的一種分發(fā)器和對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法可以在瀏覽器實(shí)時(shí)同步中對(duì)服務(wù)器進(jìn)行自動(dòng)分發(fā),由此解決了現(xiàn)有技術(shù)不能保證每臺(tái)服務(wù)器承載長(zhǎng)連接的數(shù)量大致相同,即不能實(shí)現(xiàn)服務(wù)器的負(fù)載平衡的問題,取得了服務(wù)器的負(fù)載平衡、分發(fā)結(jié)果具有唯一性,可重復(fù)性、系統(tǒng)增減服務(wù)器時(shí)具有高適配性的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)的結(jié)構(gòu)示意圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)的結(jié)構(gòu)示意圖;圖3為圖2所示實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中瀏覽器客戶端與套接字服務(wù)器建立連接的過程的示意圖;圖4為圖2所示實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第一類場(chǎng)景下向目標(biāo)客戶端進(jìn)行信息推送的過程的示意圖;圖5為圖2所示實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第二類場(chǎng)景下向目標(biāo)客戶端進(jìn)行信息推送的過程的示意圖;圖6為圖2所示實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第三類場(chǎng)景下向目標(biāo)客戶端進(jìn)行信息推送的過程的示意圖;圖7為根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的方法的流程圖;圖8為根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的瀏覽器客戶端的結(jié)構(gòu)示意圖;圖9為根據(jù)本發(fā)明實(shí)施例的對(duì)服務(wù)器進(jìn)行分發(fā)的裝置結(jié)構(gòu)圖;圖10為根據(jù)本發(fā)明實(shí)施例的對(duì)服務(wù)器進(jìn)行分發(fā)的方法流程圖;以及圖11為本發(fā)明服務(wù)器分發(fā)原理圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。在本發(fā)明的一個(gè)示例性實(shí)施例中,提供了一種實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)。如圖1所示,該實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)包括云存儲(chǔ)服務(wù)器端1、推送服務(wù)器2和多個(gè)瀏覽器客戶端3、4。其中,云存儲(chǔ)服務(wù)器端1,用于在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息;推送服務(wù)器2,用于根據(jù)條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將該命令信息推送至目標(biāo)客戶端3 ;目標(biāo)客戶端3,用于根據(jù)該命令信息實(shí)現(xiàn)目標(biāo)客戶端與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步。在圖1所示的實(shí)施例中,通過設(shè)置單獨(dú)的推送服務(wù)器2,在云存儲(chǔ)服務(wù)器端存儲(chǔ)的數(shù)據(jù)內(nèi)容發(fā)生更新的情況下,及時(shí)地將命令信息通過推送服務(wù)器發(fā)送至目標(biāo)客戶端,從而簡(jiǎn)單、高效地實(shí)現(xiàn)了服務(wù)端信息與客戶端實(shí)時(shí)同步。如圖1所示,多個(gè)瀏覽器客戶端中包含有發(fā)起客戶端4和目標(biāo)客戶端3。其中,發(fā)起客戶端4,用于對(duì)存儲(chǔ)于云存儲(chǔ)服務(wù)器端I中的數(shù)據(jù)進(jìn)行更新。該發(fā)起客戶端4和目標(biāo)客戶端3可以屬于同一個(gè)用戶,也可以屬于不同的用戶。該發(fā)起客戶端4和目標(biāo)客戶端3屬于同一個(gè)用戶的情況主要的應(yīng)用場(chǎng)景在于同一用戶使用不同的設(shè)備(例如手機(jī)和PC)登 錄瀏覽器,其中一個(gè)(例如PC)更改收藏夾,那么需要將該更新同步到同一用戶的另一設(shè)備(手機(jī))。該發(fā)起客戶端4和目標(biāo)客戶端3不屬于同一個(gè)用戶的情況的應(yīng)用場(chǎng)景例如是不同瀏覽器客戶端之間的信息通信。當(dāng)然,本發(fā)明也可以由云存儲(chǔ)服務(wù)器端自身發(fā)起對(duì)數(shù)據(jù)內(nèi)容的更新,在這種情況下,圖1中的發(fā)起瀏覽器客戶端4則可以不存在。這種情況的場(chǎng)景例如是系統(tǒng)向所有瀏覽器客戶端推送新聞消息或天氣預(yù)報(bào);或系統(tǒng)向所有某版本的瀏覽器客戶端發(fā)起更新指示。由于圖1中虛線框以內(nèi)的云存儲(chǔ)服務(wù)器端1、目標(biāo)客戶端3和發(fā)起客戶端4是現(xiàn)有瀏覽器系統(tǒng)中已有的,因此在此基礎(chǔ)上添加推送服務(wù)器可以有效地利用原有的系統(tǒng)架構(gòu),降低實(shí)現(xiàn)本發(fā)明的成本。為了實(shí)現(xiàn)云存儲(chǔ)服務(wù)器端1、推送服務(wù)器2和目標(biāo)客戶端3的連接,如圖2所示,實(shí)現(xiàn)瀏覽器客戶端與云存儲(chǔ)服務(wù)器端數(shù)據(jù)同步的系統(tǒng)還可以包括多個(gè)套接字服務(wù)器、分發(fā)器。分發(fā)器,用于在接收到客戶端的連接請(qǐng)求后,為其分配相應(yīng)的套接字服務(wù)器以及連接標(biāo)識(shí)符,并將用戶標(biāo)識(shí)信息以及連接標(biāo)識(shí)符存儲(chǔ)至分發(fā)信息數(shù)據(jù)庫。詳細(xì)的連接建立過程如圖3所示,包括步驟S301,瀏覽器客戶端向分發(fā)器提交連接請(qǐng)求,該連接請(qǐng)求中至少包括用戶標(biāo)識(shí)信息,對(duì)于登錄用戶來講,其用戶標(biāo)識(shí)信息可以包括用戶名,而對(duì)于非登錄用戶來講,其用戶標(biāo)識(shí)信息可以包括用戶的機(jī)器硬件標(biāo)識(shí)。對(duì)于登錄用戶來講,該用戶標(biāo)識(shí)信息可以為一字符串。其中,該字符串除了登錄用戶的用戶名之外,還包括登錄時(shí)間和驗(yàn)證字符等信息。用戶名為用戶唯一標(biāo)識(shí)號(hào),即一個(gè)數(shù)字,用于代表一個(gè)用戶。驗(yàn)證字符根據(jù)用戶名生成,即可通過驗(yàn)證字符判定用戶標(biāo)識(shí)信息是否被更改。對(duì)于非登錄用戶來講,該用戶標(biāo)識(shí)信息可以包括非登錄用戶的機(jī)器硬件標(biāo)識(shí),其中機(jī)器硬件標(biāo)識(shí)為機(jī)器唯一標(biāo)識(shí),為客戶端通過用戶機(jī)器硬件、系統(tǒng)配置等哈希生成。此外,為了后續(xù)的目標(biāo)客戶端篩選,該連接請(qǐng)求還可以包括用戶特征信息,例如IP地址信息、瀏覽器版本信息,或用戶分類信息等用戶特征信息。其中,瀏覽器版本號(hào)、用戶分類信息,或IP地址信息等用戶特征信息可以用于后續(xù)的客戶端篩選使用。步驟S302,分發(fā)器基于該用戶標(biāo)識(shí)信息使用預(yù)設(shè)算法進(jìn)行計(jì)算得到一個(gè)數(shù)值,根據(jù)該數(shù)值為提交連接請(qǐng)求的瀏覽器客戶端分配套接字服務(wù)器;該數(shù)值是全局唯一的,即連接標(biāo)識(shí)符;分發(fā)器將該套接字服務(wù)器的IP地址、端口等連接信息及連接標(biāo)識(shí)符發(fā)送至提交請(qǐng)求的瀏覽器客戶端;本步驟中,使用預(yù)設(shè)的算法根據(jù)登錄用戶的用戶名計(jì)算上述數(shù)值。對(duì)于非登錄用戶來講,直接采用非登錄用戶的機(jī)器硬件標(biāo)識(shí)計(jì)算上述數(shù)值,該算法可以為循環(huán)冗余校驗(yàn)(CRC) 32 算法。步驟S303,瀏覽器客戶端根據(jù)接收到的套接字服務(wù)器的IP地址和端口號(hào)與對(duì)應(yīng)的套接字服務(wù)器建立連接,該連接可以是傳輸控制協(xié)議TCP (Transmission ControlProtocol)連接。在瀏覽器客戶端與套接字服務(wù)器建立連接時(shí),該套接字服務(wù)器得到標(biāo)識(shí)該套接字服務(wù)器和瀏覽器客戶端連接關(guān)系的資源標(biāo)識(shí)符。瀏覽器客戶端利用已經(jīng)建立的連接向該套接字服務(wù)器傳送其接收到的連接標(biāo)識(shí)符。步驟S304,套接字服務(wù)器接收到連接標(biāo)識(shí)符后,向分發(fā)器對(duì)該連接標(biāo)識(shí)符進(jìn)行驗(yàn)證,若驗(yàn)證成功,則保持與瀏覽器客戶端之間建立的連接,若驗(yàn)證不成功,則斷開已經(jīng)建立的連接。 步驟S305,分發(fā)器將用戶標(biāo)識(shí)信息(登錄用戶的用戶名或非登錄用戶的機(jī)器硬件標(biāo)識(shí))、用戶特征信息(如果有的話)以及連接標(biāo)識(shí)符存儲(chǔ)在分發(fā)信息數(shù)據(jù)庫中,并且套接字服務(wù)器也將所得到的資源標(biāo)識(shí)符存儲(chǔ)在該分發(fā)信息數(shù)據(jù)庫中。需要說明的是,為了防止服務(wù)器端變化引起的分配混亂,瀏覽器客戶端需要在隔一段時(shí)間后重新執(zhí)行步驟S301-步驟S304進(jìn)行連接。此外,對(duì)于每一個(gè)套接字服務(wù)器,在分發(fā)信息數(shù)據(jù)庫中均存在對(duì)應(yīng)的單獨(dú)數(shù)據(jù)表,以減小數(shù)據(jù)表的規(guī)模,加快在后續(xù)信息推送階段,套接字服務(wù)器的查詢速度。通過增加分發(fā)器和套接字服務(wù)器,并且在分發(fā)器中設(shè)置分發(fā)信息數(shù)據(jù)庫,使得能夠在建立連接階段將用戶標(biāo)識(shí)信息、資源標(biāo)識(shí)符和用戶特征信息等存儲(chǔ)于分發(fā)信息數(shù)據(jù)庫中,從而實(shí)現(xiàn)了推送服務(wù)器對(duì)預(yù)設(shè)目標(biāo)客戶端的數(shù)據(jù)內(nèi)容的推送。在信息推送階段推送服務(wù)器,用于將條件信息和命令信息發(fā)送至套接字服務(wù)器;套接字服務(wù)器,用于將推送服務(wù)器推送的信息轉(zhuǎn)發(fā)至相應(yīng)的目標(biāo)客戶端。詳細(xì)的信息推送過程以下分三類場(chǎng)景進(jìn)行詳細(xì)說明。(I)當(dāng)該實(shí)時(shí)同步由發(fā)起客戶端發(fā)起,且發(fā)起客戶端和接收客戶端屬于同一用戶時(shí),條件信息中包括用戶標(biāo)識(shí)信息。舉例來講,如圖4所示,該信息推送過程包括步驟S401,發(fā)起客戶端發(fā)起對(duì)存儲(chǔ)在云存儲(chǔ)服務(wù)器端存儲(chǔ)的數(shù)據(jù)進(jìn)行更新;本步驟中,云存儲(chǔ)服務(wù)器端存儲(chǔ)的數(shù)據(jù)包括以下之一收藏夾信息、歷史記錄信息、瀏覽器配置信息、便簽信息、登錄管家信息、消息提醒信息、密鑰信息等等其他可能的信肩、O步驟S402,云存儲(chǔ)服務(wù)器端向推送服務(wù)器發(fā)送條件信息和命令信息,該條件信息包括用戶標(biāo)識(shí)信息,例如登錄用戶的用戶名或未登錄用戶的機(jī)器硬件標(biāo)識(shí),并且該條件信息中還包括標(biāo)識(shí)該發(fā)起客戶端與其對(duì)應(yīng)的套接字服務(wù)器的連接的資源標(biāo)識(shí)符;步驟S403,推送服務(wù)器由與分發(fā)器中同樣的算法根據(jù)用戶標(biāo)識(shí)信息計(jì)算得到一個(gè)數(shù)值,從而得到為目標(biāo)客戶端分配的套接字服務(wù)器,該數(shù)值是全局唯一的,即連接標(biāo)識(shí)符,并將條件信息及命令信息發(fā)送給該為目標(biāo)客戶端分配的套接字服務(wù)器;步驟S404,套接字服務(wù)器根據(jù)條件信息中的用戶標(biāo)識(shí)信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫,確定與目標(biāo)客戶端對(duì)應(yīng)的資源標(biāo)識(shí)符,其中排除了標(biāo)識(shí)發(fā)起客戶端與其對(duì)應(yīng)的套接字服務(wù)器的連接的資源標(biāo)識(shí)符;步驟S405,套接字服務(wù)器根據(jù)該資源標(biāo)識(shí)符在與該目標(biāo)客戶端(一個(gè)或多個(gè))的連接中向該客戶端發(fā)送該命令信息。(2)當(dāng)該實(shí)時(shí)同步由發(fā)起客戶端發(fā)起,且發(fā)起客戶端和接收客戶端屬于不同登錄用戶時(shí),即條件信息中包括用戶標(biāo)識(shí)信息,如圖5所示,該信息推送過程包括步驟S501,發(fā)起客戶端發(fā)起對(duì)存儲(chǔ)在云存儲(chǔ)服務(wù)器端存儲(chǔ)的數(shù)據(jù)進(jìn)行更新;本步驟中,云存儲(chǔ)服務(wù)器端存儲(chǔ)的數(shù)據(jù)包括以下之一收藏夾信息、歷史記錄信息、瀏覽器配置信息、便簽信息、登錄管家信息、消息提醒信息、密鑰信息、新聞信息和/或用戶生成的信息等等。
步驟S502,云存儲(chǔ)服務(wù)器端向推送服務(wù)器發(fā)送條件信息和命令信息,其中該條件信息可以包括用戶標(biāo)識(shí)信息,例如登錄用戶的用戶名或未登錄用戶的機(jī)器硬件標(biāo)識(shí);步驟S503,推送服務(wù)器由與分發(fā)器中同樣的算法根據(jù)用戶標(biāo)識(shí)信息計(jì)算得到一個(gè)數(shù)值,從而得到為目標(biāo)客戶端分配的套接字服務(wù)器,該數(shù)值是全局唯一的,即連接標(biāo)識(shí)符,并將條件信息及命令信息發(fā)送給該為目標(biāo)客戶端分配的套接字服務(wù)器;步驟S504,套接字服務(wù)器根據(jù)條件信息中的用戶標(biāo)識(shí)信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫,確定目標(biāo)客戶端的資源標(biāo)識(shí)符;步驟S505,對(duì)應(yīng)的套接字服務(wù)器依據(jù)該資源標(biāo)識(shí)符,在與目標(biāo)客戶端(一個(gè)或多個(gè))的連接中向該客戶端發(fā)送該通知消息,至此,信息推送過程結(jié)束。(3)當(dāng)該實(shí)時(shí)同步由云存儲(chǔ)服務(wù)器端主動(dòng)發(fā)起,且條件信息中包括目標(biāo)客戶端的特征篩選信息,而不包括用戶標(biāo)識(shí)信息,其中特征篩選信息也可以為空,這種情況下,在連接建立階段,由瀏覽器客戶端向分發(fā)器提交連接請(qǐng)求中還包含特征篩選信息,其與如前的在分發(fā)信息數(shù)據(jù)庫中保存的用戶特征信息相對(duì)應(yīng)。如圖6所示,該信息推送過程包括步驟S601,云存儲(chǔ)服務(wù)器端向推送服務(wù)器下發(fā)條件信息和命令信息中,條件信息中包含目標(biāo)客戶端的特征篩選信息(例如某瀏覽器的版本號(hào)),該命令信息例如是通知用戶升級(jí)的指令;步驟S602,推送服務(wù)器將條件信息和命令信息推送給所有的套接字服務(wù)器;步驟S603,各個(gè)套接字服務(wù)器分別向分發(fā)器的分發(fā)信息數(shù)據(jù)庫遞交查詢請(qǐng)求,該查詢請(qǐng)求中包含特征篩選信息;分發(fā)信息數(shù)據(jù)庫根據(jù)特征篩選條件查詢分發(fā)信息數(shù)據(jù)庫中各個(gè)瀏覽器客戶端的用戶特征信息,確定滿足該特征篩選條件的目標(biāo)客戶端的資源標(biāo)識(shí)符,并將該資源標(biāo)識(shí)符返回至發(fā)起查詢的各套接字服務(wù)器;步驟S604,各套接字服務(wù)器根據(jù)接收到的資源標(biāo)識(shí)符向相應(yīng)的客戶端發(fā)送命令信息,至此,信息推送過程結(jié)束。為了進(jìn)一步節(jié)約系統(tǒng)資源,由推送服務(wù)器2推送至瀏覽器客戶端3的命令信息為通知消息。在這種情況下,瀏覽器客戶端,還用于在接收到推送服務(wù)器推送的通知消息后,與云存儲(chǔ)服務(wù)器端建立連接,從云存儲(chǔ)服務(wù)器端下載發(fā)生更新的數(shù)據(jù)內(nèi)容,依照下載的數(shù)據(jù)內(nèi)容進(jìn)行本地?cái)?shù)據(jù)內(nèi)容的同步。通過傳送通知消息可以減少傳送數(shù)據(jù)量,減少系統(tǒng)資源占用。
當(dāng)然,由推送服務(wù)器推送至目標(biāo)客戶端的命令信息也可以為內(nèi)容消息,即該內(nèi)容消息中包含發(fā)生更新的數(shù)據(jù)內(nèi)容,在這種情況下,目標(biāo)客戶端在接收到推送服務(wù)器推送的內(nèi)容消息后,從該內(nèi)容消息中提取發(fā)生更新的數(shù)據(jù)內(nèi)容,依照提取的數(shù)據(jù)內(nèi)容進(jìn)行本地?cái)?shù)據(jù)內(nèi)容的同步。通過傳送內(nèi)容消息可以直接將內(nèi)容消息推送至客戶端,信息傳遞快速,步驟簡(jiǎn)單。為了實(shí)現(xiàn)對(duì)多語言的支持、方便地調(diào)用文本,推送服務(wù)器和云存儲(chǔ)服務(wù)器端之間采用HTTP接口。基于圖1及圖2所示的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),本發(fā)明又提供了一種實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的方法。如圖7所示,該實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的方法包括
步驟S710,云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息;步驟S720,推送服務(wù)器根據(jù)該條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將該命令信息發(fā)送給目標(biāo)客戶端;步驟S730,目標(biāo)客戶端根據(jù)命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步。進(jìn)一步地,步驟S710之前還包括瀏覽器客戶端與套接字服務(wù)器之間建立套接字連接,該連接的建立過程如圖3所示,這里就不再贅述。進(jìn)一步地,步驟S710云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息的步驟中,如果條件信息中包含目標(biāo)客戶端的登錄用戶用戶名或未登錄用戶的機(jī)器硬件標(biāo)識(shí),包括以下兩種情況情況一發(fā)起客戶端和接收客戶端屬于同一用戶,該用戶使用不同的設(shè)備(例如手機(jī)和PC)登錄瀏覽器,其中一個(gè)(例如PC)更改收藏夾,那么需要將該更新同步到同一用戶的另一設(shè)備(手機(jī));該情況下,發(fā)起客戶端首先發(fā)起對(duì)存儲(chǔ)在云存儲(chǔ)服務(wù)器端中的有關(guān)配置、功能、或收藏的信息或其他的信息的修改。然后云存儲(chǔ)服務(wù)器端向推送服務(wù)器發(fā)送條件信息和命令信息,該命令信息包括內(nèi)容消息和通知消息,推送服務(wù)器通過套接字服務(wù)器將根據(jù)條件信息將該命令信息發(fā)送到目標(biāo)客戶端,其中該目標(biāo)客戶端排除了發(fā)起客戶端。該種情況下的信息推送過程如圖4所示,這里也不再贅述。情況二 發(fā)起客戶端和接收客戶端不屬于同一用戶,從而實(shí)現(xiàn)不同用戶之間通過客戶端的信息交互。具體來說,一個(gè)用戶的客戶端將條件信息和內(nèi)容消息發(fā)送至云存儲(chǔ)服務(wù)器端,云存儲(chǔ)服務(wù)器端將條件信息和相關(guān)通知消息其發(fā)送至推送器,推送器根據(jù)條件信息將通知消息發(fā)送至目的客戶端,進(jìn)而目的客戶端可以訪問云存儲(chǔ)服務(wù)器端以獲取內(nèi)容。在這種情況下的信息推送過程如圖5所示,這里也不再贅述。此外,如果條件信息中不包含目標(biāo)客戶端的用戶標(biāo)識(shí)信息,而可以包括特征篩選信息,則還包括以下情況情況三云存儲(chǔ)服務(wù)器端自身有數(shù)據(jù)更新,需要瀏覽器客戶端與云存儲(chǔ)服務(wù)器端進(jìn)行數(shù)據(jù)同步,云存儲(chǔ)服務(wù)器端主動(dòng)向推送服務(wù)器下發(fā)條件信息和命令信息,例如1、云存儲(chǔ)服務(wù)器端向某版本的所有瀏覽器客戶端發(fā)起更新指示,以使該版本的所有瀏覽器客戶端升級(jí)為新版本,其中,命令信息為升級(jí)為新版本的通知消息,條件為某版本瀏覽器的客戶端,即其中的特征篩選信息為瀏覽器客戶端的版本號(hào)。則推送服務(wù)器根據(jù)該條件信息將該命令信息發(fā)送給多個(gè)瀏覽器客戶端中的目標(biāo)客戶端包括推送服務(wù)器將升級(jí)為新版本的通知消息發(fā)送給某版本的所有瀏覽器客戶端。2、云存儲(chǔ)服務(wù)器端向所有瀏覽器客戶端推送新聞消息,其中條件為所有瀏覽器客戶端,即特征篩選信息為空,命令信息為包含新聞消息的內(nèi)容消息;則推送服務(wù)器根據(jù)該條件信息將該命令信息發(fā)送給多個(gè)瀏覽器客戶端中的目標(biāo)客戶端包括推送服務(wù)器將包含新聞消息的內(nèi)容消息發(fā)送給所有瀏覽器客戶端。應(yīng)該理解,發(fā)送的也可以是通知消息。3、云存儲(chǔ)服務(wù)器端向不同地區(qū)的瀏覽器客戶端推送天氣預(yù)報(bào),其中條件為某一地區(qū)的瀏覽器客戶端,即特征篩選信息為該某一地區(qū)對(duì)應(yīng)的IP段,命令信息為包含天氣預(yù)報(bào)的內(nèi)容消息;則推送服務(wù)器根據(jù)該條件信息將該命令信息發(fā)送給多個(gè)瀏覽器客戶端中的目標(biāo)客戶端包括推送服務(wù)器將包含天氣預(yù)報(bào)的內(nèi)容消息發(fā)送給某一地區(qū)的瀏覽器客戶端。應(yīng)該理解,發(fā)送的也可以是通知消息。
在這種情況下的信息推送過程如圖6所示,這里也不再贅述。基于圖1及圖2所示的實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),本發(fā)明又提供了一種實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步的瀏覽器客戶端。如圖8所示,該瀏覽器客戶端包括連接模塊,用于通過分發(fā)器與套接字服務(wù)器建立連接關(guān)系,并從相應(yīng)的套接字服務(wù)器接收命令信息;應(yīng)用模塊,用于根據(jù)該命令信息,執(zhí)行其對(duì)應(yīng)的應(yīng)用操作。其中,所述命令信息為通知消息或內(nèi)容消息。如圖8所示,連接模塊又包括分發(fā)器連接子模塊,用于向所述分發(fā)器提交連接請(qǐng)求,該連接請(qǐng)求中至少包括用戶標(biāo)識(shí)信息,并接收由分發(fā)器返回的被分配的套接字服務(wù)器的連接信息及連接標(biāo)識(shí)符;套接字連接子模塊,用于根據(jù)接收到的套接字服務(wù)器的連接信息及所述連接標(biāo)識(shí)符與對(duì)應(yīng)的套接字服務(wù)器建立套接字連接,并通過該套接字連接從相應(yīng)的套接字服務(wù)器接收命令信息。其中,所述用戶標(biāo)識(shí)信息為登錄用戶的用戶名或非登錄用戶的機(jī)器硬件標(biāo)識(shí)。如圖8所示,上述瀏覽器客戶端中還可以包括云存儲(chǔ)通信模塊,用于響應(yīng)應(yīng)用模塊的應(yīng)用操作,與云存儲(chǔ)服務(wù)器端進(jìn)行通信。在上文描述的瀏覽器數(shù)據(jù)同步系統(tǒng)中,在進(jìn)行套接字服務(wù)器分發(fā)時(shí)需要滿足以下條件1、在一定程度上實(shí)現(xiàn)負(fù)載均衡,即實(shí)現(xiàn)每臺(tái)套接字服務(wù)器承載長(zhǎng)連接的數(shù)量大致相同;2、分發(fā)結(jié)果具有唯一性,可重復(fù)性;即分發(fā)器根據(jù)登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)將請(qǐng)求分配于某一套接字服務(wù)器,而推送器可以根據(jù)登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)定位出目前的連接是連接于哪個(gè)套接字服務(wù)器;3、當(dāng)系統(tǒng)增減套接字服務(wù)器時(shí),套接字服務(wù)器的分發(fā)應(yīng)具有適配性,即當(dāng)系統(tǒng)增減套接字服務(wù)器的數(shù)量時(shí),應(yīng)可以通過簡(jiǎn)單的改變就能完成請(qǐng)求的重新分配。為了滿足上述分發(fā)條件,本發(fā)明進(jìn)一步提出了一種對(duì)服務(wù)器進(jìn)行分發(fā)的裝置。該裝置可以存在于上述的分發(fā)器和推送器以及任何其他需要對(duì)服務(wù)器進(jìn)行分發(fā)的設(shè)備和系統(tǒng)中。如圖9所示,該裝置包括,接收單元910、連接標(biāo)識(shí)符生成單元920和分發(fā)單元930,其中
所述接收單元910,適于接收用戶標(biāo)識(shí)信息;所述連接標(biāo)識(shí)符生成單元920,適于根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;所述分發(fā)單元930,適于根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè)。其中,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí);所述連接標(biāo)識(shí)符用于識(shí)別每個(gè)客戶端的連接,其為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值。其中,所述連接標(biāo)識(shí)符生成單元920采用循環(huán)冗余校驗(yàn)算法,比如32位的循環(huán)冗余校驗(yàn)算法。在本發(fā)明的一實(shí)施例中,所述分發(fā)單元930進(jìn)一步包括均分子單元、關(guān)聯(lián)子單元 和分配子單元,其中所述均分子單元,適于根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間;所述關(guān)聯(lián)子單元,適于將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián);所述分配子單元,適于根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器。當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),所述分發(fā)單元930能夠?qū)Ψ?wù)器重新進(jìn)行分配??蛇x地,所述服務(wù)器為套接字服務(wù)器。本發(fā)明還提供一種分發(fā)器,包含上述對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的裝置。其中,所述用戶標(biāo)識(shí)信息包含于瀏覽器客戶端向所述分發(fā)器發(fā)送的連接請(qǐng)求中,所述分發(fā)器還包括發(fā)送單元,適于將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端。本發(fā)明還提供一種推送服務(wù)器,包含上述對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的裝置。其中,所述用戶標(biāo)識(shí)信息包含于云存儲(chǔ)服務(wù)器端向所述推送服務(wù)器發(fā)送的條件信息中,所述推送服務(wù)器還包括發(fā)送單元,適于將與所述條件信息對(duì)應(yīng)的命令信息和連接標(biāo)識(shí)符發(fā)送給所分發(fā)的服務(wù)器。本發(fā)明還提供一種分發(fā)系統(tǒng),包含上述對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的裝置。所述系統(tǒng)用于實(shí)現(xiàn)瀏覽器數(shù)據(jù)同步,其包括云存儲(chǔ)服務(wù)器端、推送服務(wù)器、套接字服務(wù)器、多個(gè)瀏覽器客戶端和分發(fā)器,其中所述云存儲(chǔ)服務(wù)器端,用于在有數(shù)據(jù)更新時(shí)向所述推送服務(wù)器下發(fā)條件信息和命令信息;所述推送服務(wù)器,用于根據(jù)該條件信息在所述多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將所述命令信息發(fā)送給與所述目標(biāo)客戶端對(duì)應(yīng)的套接字服務(wù)器;所述套接字服務(wù)器,用于與相應(yīng)的瀏覽器客戶端分別建立套接字連接,并將命令信息發(fā)送給目標(biāo)客戶端;以及所述目標(biāo)客戶端,用于根據(jù)所述命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步;分發(fā)器,用于向?yàn)g覽器客戶端分發(fā)與其建立套接字連接的套接字服務(wù)器;其中,所述推送服務(wù)器和所述分發(fā)器中包含上述對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的裝置。
本發(fā)明還提供一種瀏覽器實(shí)時(shí)同步中對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法,如圖10所示,該方法包括以下步驟步驟S1010,接收用戶標(biāo)識(shí)信息;步驟S1020,根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;步驟S1030,根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè)。其中,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí);所述連接標(biāo)識(shí)符為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值。其中,在所述步驟S1020中,可以采用循環(huán)冗余校驗(yàn)算法,比如32位循環(huán)冗余校驗(yàn)(CRC32)算法,根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符。所述CRC32算法是一種 一致性哈希算法,依據(jù)這種一致性哈希算法能夠?qū)崿F(xiàn)一種較為動(dòng)態(tài)、均衡且可尋址的服務(wù)器分發(fā)方式。在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)CRC32算法,可以將登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)均衡、穩(wěn)定唯一地轉(zhuǎn)換為一個(gè)0-232-1范圍中的特定數(shù)值。在本發(fā)明的一實(shí)施例中,所述根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè)的步驟進(jìn)一步包括以下子步驟根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間;將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián);根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器。其中,所述服務(wù)器為套接字服務(wù)器。在本發(fā)明的另一實(shí)施例中,所述方法還包括瀏覽器客戶端首先向分發(fā)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的連接請(qǐng)求的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包括所述分發(fā)器將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端的步驟。在本發(fā)明的另一實(shí)施例中,所述方法還包括云存儲(chǔ)服務(wù)器端首先向推送服務(wù)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的條件信息的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包括所述推送服務(wù)器將與所述條件信息對(duì)應(yīng)的命令信息和連接標(biāo)識(shí)符發(fā)送給所分發(fā)的服務(wù)器的步驟。在本發(fā)明的另一實(shí)施例中,所述方法還包括以下步驟云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息;所述推送服務(wù)器根據(jù)該條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將所述命令信息發(fā)送給與所述目標(biāo)客戶端對(duì)應(yīng)的套接字服務(wù)器;所述套接字服務(wù)器與相應(yīng)的瀏覽器客戶端分別建立套接字連接,并將命令信息發(fā)送給目標(biāo)客戶端;所述目標(biāo)客戶端根據(jù)所述命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步。上述分發(fā)策略可以通過圖11所示的服務(wù)器分發(fā)原理圖得到更好的理解,如圖11所示,各個(gè)連接標(biāo)識(shí)符被哈希成一個(gè)0-232-1范圍中的特定數(shù)值,并分布在如圖中所示的圓環(huán)上。該圓環(huán)的起點(diǎn)為0,終點(diǎn)為232-1。當(dāng)服務(wù)器的數(shù)目為三時(shí),將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為三個(gè)數(shù)值區(qū)間,并為這三臺(tái)服務(wù)器分別賦一個(gè)值,例如如果將第一臺(tái)服務(wù)器賦值為0和232-1,第二臺(tái)服務(wù)器則賦值為(232-1)/3,第三臺(tái)服務(wù)器則賦值為2*(232-1)/3。根據(jù)所述連接標(biāo)識(shí)符的特定數(shù)值所落入的數(shù)值區(qū)間,將其分配給特定的服務(wù)器來處理。例如落入O至(232-1)/3之間的數(shù)值可以分配給第一服務(wù)器,落入(232-1) /3至2* (232-1) /3之間的數(shù)值可以分配給第二服務(wù)器,落入2*(232-1)/3至232-1之間的數(shù)值可以分配給第三服務(wù)器。另外,當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),按照所述子步驟對(duì)服務(wù)器重新進(jìn)行分配。比如,當(dāng)服務(wù)器調(diào)整為4臺(tái)時(shí),可以將該4臺(tái)服務(wù)器分別賦值為0和232_1、(232-1)/4、(232-1)/2、3*(232-1)/4。那么,落入0至(232_1)/4之間的數(shù)值可以分配給第一服務(wù)器,落入(232-1)/4至(232-1)/2之間的數(shù)值可以分配給第二服務(wù)器,落入(232-1)/2至3* (232-1) /4之間的數(shù)值可以分配給第三服務(wù)器,落入3* (232-1) /4至232-1之間的數(shù)值可以分配給第四服務(wù)器。
上述對(duì)服務(wù)器進(jìn)行分發(fā)的方法能夠應(yīng)用于上文介紹的瀏覽器實(shí)時(shí)同步系統(tǒng)中以及其他需要對(duì)服務(wù)器進(jìn)行分發(fā)的系統(tǒng)中。綜上,本發(fā)明實(shí)現(xiàn)了動(dòng)態(tài)、均衡且可尋址的服務(wù)器分發(fā)。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的相關(guān)設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件 項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種分發(fā)器,包括接收單元、連接標(biāo)識(shí)符生成單元和分發(fā)單元,其中 所述接收單元,適于接收用戶標(biāo)識(shí)信息; 所述連接標(biāo)識(shí)符生成單元,適于根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;所述分發(fā)單元,適于根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè); 其中,所述用戶標(biāo)識(shí)信息包含于瀏覽器客戶端向所述分發(fā)器發(fā)送的連接請(qǐng)求中,所述分發(fā)器還包括發(fā)送單元,適于將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端。
2.如權(quán)利要求1所述的分發(fā)器,其中,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)。
3.如權(quán)利要求1所述的分發(fā)器,其中,所述連接標(biāo)識(shí)符為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值。
4.如權(quán)利要求1所述的分發(fā)器,其中,所述連接標(biāo)識(shí)符生成單元采用循環(huán)冗余校驗(yàn)算法。
5.如權(quán)利要求4所述的分發(fā)器,其中,所述循環(huán)冗余校驗(yàn)算法為32位。
6.如權(quán)利要求1所述的分發(fā)器,其中,所述分發(fā)單元進(jìn)一步包括均分子單元、關(guān)聯(lián)子單元和分配子單元,其中 所述均分子單元,適于根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間; 所述關(guān)聯(lián)子單元,適于將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián); 所述分配子單元,適于根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符指示的連接分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器。
7.如權(quán)利要求1所述的分發(fā)器,其中,當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),所述分發(fā)單元對(duì)服務(wù)器重新進(jìn)行分配。
8.如權(quán)利要求1所述的分發(fā)器,其中,所述服務(wù)器為套接字服務(wù)器。
9.一種對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法,該方法包括 接收用戶標(biāo)識(shí)信息; 根據(jù)所述用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符; 根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè); 云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息; 所述推送服務(wù)器根據(jù)該條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將所述命令信息發(fā)送給與所述目標(biāo)客戶端對(duì)應(yīng)的套接字服務(wù)器; 所述套接字服務(wù)器與相應(yīng)的瀏覽器客戶端分別建立套接字連接,并將命令信息發(fā)送給目標(biāo)客戶端; 所述目標(biāo)客戶端根據(jù)所述命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步。
10.如權(quán)利要求9所述的方法,其中,所述用戶標(biāo)識(shí)信息包括登錄用戶的用戶名和/或非登錄用戶的機(jī)器硬件標(biāo)識(shí)。
11.如權(quán)利要求9所述的方法,其中,所述連接標(biāo)識(shí)符為在一定數(shù)值范圍內(nèi)的一個(gè)特定的數(shù)值。
12.如權(quán)利要求9所述的方法,其中,采用循環(huán)冗余校驗(yàn)算法根據(jù)所述用戶標(biāo)識(shí)信息生成所述連接標(biāo)識(shí)符。
13.如權(quán)利要求12所述的方法,其中,所述循環(huán)冗余校驗(yàn)算法為32位。
14.如權(quán)利要求9所述的方法,其中,所述根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將所述連接標(biāo)識(shí)符指示的連接分發(fā)給所述多個(gè)服務(wù)器中的一個(gè)的步驟進(jìn)一步包括以下子步驟 根據(jù)服務(wù)器的數(shù)目將連接標(biāo)識(shí)符所在的數(shù)值范圍平均分為多個(gè)數(shù)值區(qū)間; 將每個(gè)服務(wù)器與所述多個(gè)數(shù)值區(qū)間中的一個(gè)相關(guān)聯(lián); 根據(jù)所述連接標(biāo)識(shí)符所在的數(shù)值區(qū)間,將所述連接標(biāo)識(shí)符指示的連接分配給與其數(shù)值區(qū)間相關(guān)聯(lián)的服務(wù)器。
15.如權(quán)利要求14所述的方法,其中,當(dāng)服務(wù)器的數(shù)目發(fā)生變化時(shí),對(duì)服務(wù)器重新進(jìn)行分配。
16.如權(quán)利要求9所述的方法,其中,所述服務(wù)器為套接字服務(wù)器。
17.如權(quán)利要求9-16中任一項(xiàng)所述的方法,其中,所述方法還包括瀏覽器客戶端向分發(fā)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的連接請(qǐng)求的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包 括所述分發(fā)器將所分發(fā)的服務(wù)器標(biāo)識(shí)和連接標(biāo)識(shí)符發(fā)送給所述瀏覽器客戶端的步驟。
18.如權(quán)利要求9-16中任一項(xiàng)所述的方法,其中,所述方法還包括云存儲(chǔ)服務(wù)器端向推送服務(wù)器發(fā)送包含有所述用戶標(biāo)識(shí)信息的條件信息的步驟,以及在對(duì)服務(wù)器進(jìn)行分發(fā)之后,還包括所述推送服務(wù)器將與所述條件信息對(duì)應(yīng)的命令信息和連接標(biāo)識(shí)符發(fā)送給所分發(fā)的服務(wù)器的步驟。
全文摘要
本發(fā)明公開了一種分發(fā)器和對(duì)多個(gè)服務(wù)器進(jìn)行分發(fā)的方法。該方法包括接收用戶標(biāo)識(shí)信息;根據(jù)用戶標(biāo)識(shí)信息生成全局唯一的連接標(biāo)識(shí)符;根據(jù)連接標(biāo)識(shí)符以及服務(wù)器的數(shù)目,將連接標(biāo)識(shí)符指示的連接分發(fā)給多個(gè)服務(wù)器中的一個(gè);云存儲(chǔ)服務(wù)器端在有數(shù)據(jù)更新時(shí)向推送服務(wù)器下發(fā)條件信息和命令信息;推送服務(wù)器根據(jù)該條件信息在多個(gè)瀏覽器客戶端中確定目標(biāo)客戶端,并將命令信息發(fā)送給與目標(biāo)客戶端對(duì)應(yīng)的套接字服務(wù)器;套接字服務(wù)器與相應(yīng)的瀏覽器客戶端分別建立套接字連接,并將命令信息發(fā)送給目標(biāo)客戶端;目標(biāo)客戶端根據(jù)所述命令信息實(shí)現(xiàn)其與云存儲(chǔ)服務(wù)器端的數(shù)據(jù)同步。本發(fā)明能夠?qū)崿F(xiàn)服務(wù)器的負(fù)載平衡,使得系統(tǒng)在增減服務(wù)器時(shí)具有高適配性。
文檔編號(hào)H04L29/08GK103024050SQ20121054937
公開日2013年4月3日 申請(qǐng)日期2012年12月17日 優(yōu)先權(quán)日2012年12月17日
發(fā)明者吳浩, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司