專利名稱:實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)和方法
技術領域:
本發(fā)明涉及信息技術數(shù)據(jù)同步領域,尤其涉及一種實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)和方法。
背景技術:
目前,隨著網(wǎng)絡技術的發(fā)展,互聯(lián)網(wǎng)作為ー個龐大的信息資源,成為人們獲取信息的最方便、快捷的途徑。目前,用戶通 常使用個人計算機接入英特網(wǎng)(Internet),并通過個人計算機中安裝的瀏覽器(Browser)訪問網(wǎng)頁,獲得需要的信息。隨著移動通信技術的發(fā)展,用戶還可以通過支持瀏覽器功能的移動終端接入英特網(wǎng),例如手機、個人數(shù)字助理(PersonalDigital Assistant,簡稱 PDA)。然而,無論是個人計算機上的瀏覽器還是移動終端上的瀏覽器,一般不提供推送服務,服務器端與客戶端的信息交互依賴于客戶端發(fā)起的連接,服務器端無法主動地將信息發(fā)送給客戶端,從而無法實現(xiàn)服務器端與瀏覽器客戶端之間的信息的實時同歩?,F(xiàn)有技術中,最常用的實現(xiàn)瀏覽器客戶端與服務器端瀏覽器數(shù)據(jù)同步的方式是瀏覽器客戶端以一定頻率向服務器端發(fā)送請求,如每周一次或毎月一次,如果服務端有相關信息的更新則獲取這些信息。然而,申請人發(fā)現(xiàn)該種數(shù)據(jù)同步方式存在如下技術缺陷效率比較低、占用資源多、不能做到內(nèi)容的真正實時同步更新。因此,目前急需解決如何實現(xiàn)瀏覽器客戶端與云存儲服務器端數(shù)據(jù)實時同步的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了ー種克服上述問題或者至少部分地解決上述問題的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)和方法。根據(jù)本發(fā)明的ー個方面,提供了一種實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),該系統(tǒng)包括云存儲服務器端、推送服務器和多個瀏覽器客戶端,其中所述云存儲服務器端,用于在有數(shù)據(jù)更新時向所述推送服務器下發(fā)條件信息和命令信息;所述推送服務器,用于根據(jù)該條件信息在所述多個瀏覽器客戶端中確定目標客戶端,并將所述命令信息發(fā)送給所述目標客戶端;以及所述目標客戶端,用于根據(jù)所述命令信息實現(xiàn)其與云存儲服務器端的數(shù)據(jù)同歩。根據(jù)本發(fā)明的另ー個方面,還提供了一種實現(xiàn)瀏覽器數(shù)據(jù)同步的方法,應用于所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),該方法包括云存儲服務器端在有數(shù)據(jù)更新時向推送服務器下發(fā)條件信息和命令信息;推送服務器根據(jù)該條件信息在所述多個瀏覽器客戶端中確定目標客戶端,并將所述命令信息發(fā)送給所述目標客戶端;以及目標客戶端根據(jù)該命令信息實現(xiàn)瀏覽器客戶端與云存儲服務器端的數(shù)據(jù)同歩。從上述技術方案可以看出,本發(fā)明具有以下有益效果(I)設置單獨的推送服務器,在云存儲服務器端存儲的數(shù)據(jù)內(nèi)容發(fā)生更新的情況下,及時地將命令信息通過推送服務器發(fā)送至目標客戶端,從而簡單、高效地實現(xiàn)了云存儲服務器端與瀏覽器客戶端的數(shù)據(jù)實時同步;(2)云存儲服務器端、目標客戶端和發(fā)起客戶端是現(xiàn)有瀏覽器系統(tǒng)中已有的,因此在此基礎上添加推送服務器可以有效地利用原有的系統(tǒng)架構(gòu),降低實現(xiàn)實時同步系統(tǒng)的成本;(3)通過增加套接字服務器、分發(fā)器和分發(fā)信息數(shù)據(jù)庫,順利實現(xiàn)了云存儲服務器端、推送服務器和目標客戶端的連接;(4)由推送服務器推送至目標客戶端的命令信息為通知消息,在接收到推送服務器推送的通知消息后,目標客戶端從云存儲服務器端下載發(fā)生更新的數(shù)據(jù)內(nèi)容,依照下載內(nèi)容進行本地數(shù)據(jù)內(nèi)容的同歩,從而可以進ー步節(jié)約系統(tǒng)資源。(5)由于分發(fā)信息數(shù)據(jù)庫是集群形式,本發(fā)明可以實現(xiàn)多個套接字服務器同步查詢數(shù)據(jù)庫的特定部分,從而減少了每個部分的查詢量,提高了查詢速度。另ー方面,由于查詢由套接字服務器自身來執(zhí)行,因而其能夠在查詢出每個結(jié)果之后立即觸發(fā)命令信息發(fā)送,大大減少了時間延遲,加快了處理速度。 上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1為根據(jù)本發(fā)明ー個實施例的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)的結(jié)構(gòu)示意圖;圖2為根據(jù)本發(fā)明另一個實施例的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)的結(jié)構(gòu)示意圖;圖3為圖2所示實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中瀏覽器客戶端與套接字服務器建立連接的過程的示意圖;圖4為圖2所示實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第一類場景下向目標客戶端進行信息推送的過程的示意圖;圖5為圖2所示實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第二類場景下向目標客戶端進行信息推送的過程的示意圖;圖6為圖2所示實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)中在第三類場景下向目標客戶端進行信息推送的過程的示意圖;圖7為根據(jù)本發(fā)明實施例的實現(xiàn)瀏覽器數(shù)據(jù)同步的方法的流程圖;圖8為根據(jù)本發(fā)明實施例的實現(xiàn)瀏覽器數(shù)據(jù)同步的瀏覽器客戶端的結(jié)構(gòu)示意圖;圖9為根據(jù)本發(fā)明實施例的采用集群形式分發(fā)信息數(shù)據(jù)庫的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。在本發(fā)明的一個示例性實施例中,提供了一種實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)。如圖1所示,該實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)包括云存儲服務器端1、推送服務器2和多個瀏覽器客戶端3、4。其中,云存儲服務器端1,用于在有數(shù)據(jù)更新時向推送服務器下發(fā)條件信息和命令信息;推送服務器2,用于根據(jù)條件信息在多個瀏覽器客戶端中確定目標客戶端,并將該命令信息推送至目標客戶端3 ;目標客戶端3,用于根據(jù)該命令信息實現(xiàn)目標客戶端與云存儲服務器端的數(shù)據(jù)同歩。在圖1所示的實施例中,通過設置単獨的推送服務器2,在云存儲服務器端存儲的數(shù)據(jù)內(nèi)容發(fā)生更新的情況下,及時地將命令信 息通過推送服務器發(fā)送至目標客戶端,從而簡單、高效地實現(xiàn)了服務端信息與客戶端實時同歩。如圖1所示,多個瀏覽器客戶端中包含有發(fā)起客戶端4和目標客戶端3。其中,發(fā)起客戶端4,用于對存儲于云存儲服務器端I中的數(shù)據(jù)進行更新。該發(fā)起客戶端4和目標客戶端3可以屬于同一個用戶,也可以屬于不同的用戶。該發(fā)起客戶端4和目標客戶端3屬于同一個用戶的情況主要的應用場景在于同一用戶使用不同的設備(例如手機和PC)登錄瀏覽器,其中ー個(例如PC)更改收藏夾,那么需要將該更新同步到同一用戶的另ー設備(手機)。該發(fā)起客戶端4和目標客戶端3不屬于同一個用戶的情況的應用場景例如是不同瀏覽器客戶端之間的信息通信。當然,本發(fā)明也可以由云存儲服務器端自身發(fā)起對數(shù)據(jù)內(nèi)容的更新,在這種情況下,圖1中的發(fā)起瀏覽器客戶端4則可以不存在。這種情況的場景例如是系統(tǒng)向所有瀏覽器客戶端推送新聞消息或天氣預報;或系統(tǒng)向所有某版本的瀏覽器客戶端發(fā)起更新指示。由于圖1中虛線框以內(nèi)的云存儲服務器端1、目標客戶端3和發(fā)起客戶端4是現(xiàn)有瀏覽器系統(tǒng)中已有的,因此在此基礎上添加推送服務器可以有效地利用原有的系統(tǒng)架構(gòu),降低實現(xiàn)本發(fā)明的成本。為了實現(xiàn)云存儲服務器端1、推送服務器2和目標客戶端3的連接,如圖2所示,實現(xiàn)瀏覽器客戶端與云存儲服務器端數(shù)據(jù)同步的系統(tǒng)還可以包括多個套接字服務器、分發(fā)器。分發(fā)器,用于在接收到客戶端的連接請求后,為其分配相應的套接字服務器以及連接標識符,并將用戶標識信息以及連接標識符存儲至分發(fā)信息數(shù)據(jù)庫。詳細的連接建立過程如圖3所示,包括步驟S301,瀏覽器客戶端向分發(fā)器提交連接請求,該連接請求中至少包括用戶標識信息,對于登錄用戶來講,其用戶標識信息可以包括用戶名,而對于非登錄用戶來講,其用戶標識信息可以包括用戶的機器硬件標識。對于登錄用戶來講,該用戶標識信息可以為一字符串。其中,該字符串除了登錄用戶的用戶名之外,還包括登錄時間和驗證字符等信息。用戶名為用戶唯一標識號,即ー個數(shù)字,用于代表一個用戶。驗證字符根據(jù)用戶名生成,即可通過驗證字符判定用戶標識信息是否被更改。對于非登錄用戶來講,該用戶標識信息可以包括非登錄用戶的機器硬件標識,其中機器硬件標識為機器唯一標識,為客戶端通過用戶機器硬件、系統(tǒng)配置等哈希生成。
此外,為了后續(xù)的目標客戶端篩選,該連接請求還可以包括用戶特征信息,例如IP地址信息、瀏覽器版本信息,或用戶分類信息等用戶特征信息。其中,瀏覽器版本號、用戶分類信息,或IP地址信息等用戶特征信息可以用于后續(xù)的客戶端篩選使用。步驟S302,分發(fā)器基于該用戶標識信息使用預設算法進行計算得到ー個數(shù)值,根據(jù)該數(shù)值為提交連接請求的瀏覽器客戶端分配套接字服務器;該數(shù)值是全局唯一的,即連接標識符;分發(fā)器將該套接字服務器的IP地址、端ロ等連接信息及連接標識符發(fā)送至提交請求的瀏覽器客戶端;本步驟中,使用預設的算法根據(jù)登錄用戶的用戶名計算上述數(shù)值。對于非登錄用戶來講,直接采用非登錄用戶的機器標識計算上述數(shù)值,該算法可以為循環(huán)冗余校驗(CRC) 32 算法。步驟S303,瀏覽器客戶端根據(jù)接收到的套接字服務器的IP地址和端口號與對應的套接字服務器建立連接,該連接可以是傳輸控制協(xié)議TCP (Transmission ControlProtocol)連接。在瀏覽器客戶端與套接字服務器建立連接時,該套接字服務器得到標識該 套接字服務器和瀏覽器客戶端連接關系的資源標識符。瀏覽器客戶端利用已經(jīng)建立的連接向該套接字服務器傳送其接收到的連接標識符。步驟S304,套接字服務器接收到連接標識符后,向分發(fā)器對該連接標識符進行驗證,若驗證成功,則保持與瀏覽器客戶端之間建立的連接,若驗證不成功,則斷開已經(jīng)建立的連接。步驟S305,分發(fā)器將用戶標識信息(登錄用戶的用戶名或非登錄用戶的機器標識)、用戶特征信息(如果有的話)以及連接標識符存儲在分發(fā)信息數(shù)據(jù)庫中,并且套接字服務器也將所得到的資源標識符存儲在該分發(fā)信息數(shù)據(jù)庫中。需要說明的是,為了防止服務器端變化引起的分配混亂,瀏覽器客戶端需要在隔一段時間后重新執(zhí)行步驟S301-步驟S304進行連接。此外,對于每一個套接字服務器,在分發(fā)信息數(shù)據(jù)庫中均存在對應的単獨數(shù)據(jù)表,以減小數(shù)據(jù)表的規(guī)模,加快在后續(xù)信息推送階段,套接字服務器的查詢速度。通過増加分發(fā)器和套接字服務器,并且在分發(fā)器中設置分發(fā)信息數(shù)據(jù)庫,使得能夠在建立連接階段將用戶標識信息、連接標識符、資源標識符和用戶特征信息等存儲于分發(fā)信息數(shù)據(jù)庫中,從而實現(xiàn)了推送服務器對預設目標客戶端的數(shù)據(jù)內(nèi)容的推送。在信息推送階段推送服務器,用于將條件信息和命令信息發(fā)送至套接字服務器;套接字服務器,用于將推送服務器推送的信息轉(zhuǎn)發(fā)至相應的目標客戶端。詳細的信息推送過程以下分三類場景進行詳細說明。(I)當該實時同步由發(fā)起客戶端發(fā)起,且發(fā)起客戶端和接收客戶端屬于同一用戶吋,條件信息中包括用戶標識信息。舉例來講,如圖4所示,該信息推送過程包括步驟S401,發(fā)起客戶端發(fā)起對存儲在云存儲服務器端存儲的數(shù)據(jù)進行更新;本步驟中,云存儲服務器端存儲的數(shù)據(jù)包括以下之一收藏夾信息、歷史記錄信息、瀏覽器配置信息、便簽信息、登錄管家信息、消息提醒信息、密鑰信息等等其他可能的信
o步驟S402,云存儲服務器端向推送服務器發(fā)送條件信息和命令信息,該條件信息包括用戶標識信息,例如登錄用戶的用戶名或未登錄用戶的機器硬件標識,并且該條件信息中還包括標識該發(fā)起客戶端與其對應的套接字服務器的連接的資源標識符;
步驟S403,推送服務器由與分發(fā)器中同樣的算法根據(jù)用戶標識信息計算得到ー個數(shù)值,從而得到為目標客戶端分配的套接字服務器,并將條件信息及命令信息發(fā)送給該為目標客戶端分配的套接字服務器;步驟S404,套接字服務器根據(jù)條件信息中的用戶標識信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫,確定與目標客戶端對應的資源標識符,其中排除了標識發(fā)起客戶端與其對應的套接字服務器的連接的資源標識符;步驟S405,套接字服務器根據(jù)該資源標識符在與該目標客戶端(ー個或多個)的連接中向該客戶端發(fā)送該命令信息。(2)當該實時同步由發(fā)起客戶端發(fā)起,且發(fā)起客戶端和接收客戶端屬于不同登錄用戶時,即條件信息中包括用戶標識信息,如圖5所示,該信息推送過程包括步驟S501,發(fā)起客戶端發(fā)起對存儲在云存儲服務器端存儲的數(shù)據(jù)進行更新; 本步驟中,云存儲服務器端存儲的數(shù)據(jù)包括以下之一收藏夾信息、歷史記錄信息、瀏覽器配置信息、便簽信息、登錄管家信息、消息提醒信息、密鑰信息、新聞信息和/或用戶生成的信息等等。步驟S502,云存儲服務器端向推送服務器發(fā)送條件信息和命令信息,其中該條件信息可以包括用戶標識信息,例如登錄用戶的用戶名或未登錄用戶的機器硬件標識;步驟S503,推送服務器由與分發(fā)器中同樣的算法根據(jù)用戶標識信息計算得到ー個數(shù)值,從而得到為目標客戶端分配的套接字服務器,并將條件信息及命令信息發(fā)送給該為目標客戶端分配的套接字服務器;步驟S504,套接字服務器根據(jù)條件信息中的用戶標識信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫,確定目標客戶端的資源標識符;步驟S505,對應的套接字服務器依據(jù)該資源標識符,在與目標客戶端(一個或多個)的連接中向該客戶端發(fā)送該通知消息,至此,信息推送過程結(jié)束。(3)當該實時同步由云存儲服務器端主動發(fā)起,且條件信息中包括目標客戶端的特征篩選信息,而不包括用戶標識信息,其中特征篩選信息也可以為空,這種情況下,在連接建立階段,由瀏覽器客戶端向分發(fā)器提交連接請求中還包含特征篩選信息,其與如前的在分發(fā)信息數(shù)據(jù)庫中保存的用戶特征信息相對應。 如圖6所示,該信息推送過程包括步驟S601,云存儲服務器端向推送服務器下發(fā)條件信息和命令信息中,條件信息中包含目標客戶端的特征篩選信息(例如某瀏覽器的版本號),該命令信息例如是通知用戶升級的指令。步驟S602,推送服務器將條件信息和命令信息推送給所有的套接字服務器。步驟S603,各個套接字服務器分別向分發(fā)器的分發(fā)信息數(shù)據(jù)庫遞交查詢請求,該查詢請求中包含特征篩選信息;分發(fā)信息數(shù)據(jù)庫根據(jù)特征篩選條件查詢分發(fā)信息數(shù)據(jù)庫中各個瀏覽器客戶端的用戶特征信息,確定滿足該特征篩選條件的目標客戶端的資源標識符,并將該資源標識符返回至發(fā)起查詢的各套接字服務器。步驟S604,各套接字服務器根據(jù)接收到的資源標識符向相應的客戶端發(fā)送命令信息,至此,信息推送過程結(jié)束。在步驟S603,套接字服務器通過查詢分發(fā)信息數(shù)據(jù)庫來確定目標客戶端所采用的查詢機制主要包括以下兩種情況
第一種情況條件信息中包括目標客戶端的登錄用戶的用戶名或非登錄用戶的機器硬件標識,在該情況下,推送過程為云存儲服務器觸發(fā)對該目標客戶端的相關信息的實時同步,具體來說,云存儲服務器向推送服務器發(fā)送目標客戶端用戶標識信息或機器硬件標識、命令信息以及其他可能的參數(shù)信息。在推送服務器中,由與分發(fā)器中同樣的算法根據(jù)用戶標識信息或機器硬件標識計算出該全局唯一的連接標識符,進而得出其被分配處于的套接字服務器,繼而推送服務器將用戶標識信息或機器硬件標識以及命令信息發(fā)送給所計算出的套接字服務器。套接字服務器根據(jù)用戶標識信息或機器硬件標識查詢分發(fā)信息數(shù)據(jù)庫,確定目標客戶端。 對應的套接字服務器在與該用戶標識信息或機器硬件標識對應的瀏覽器客戶端(ー個或多個)的連接中向該客戶端發(fā)送該命令信息。客戶端收到命令信息,根據(jù)其中的通知消息內(nèi)容,從對應的云存儲服務器中下載更新內(nèi)容,如配置、收藏夾等(如果直接發(fā)送內(nèi)容消息則沒有這ー步驟)。第二種情況條件消息中不包括目標客戶端的用戶標識信息或機器硬件標識,在該情況下,推送過程為云存儲服務器向推送服務器發(fā)送條件信息(例如某版本號)以及命令信息(包括通知消息或內(nèi)容消息,其中的通知消息例如通知用戶升級的指令);推送服務器將條件信息和命令信息推送給所有的套接字服務器;套接字服務器根據(jù)條件信息查詢分發(fā)信息數(shù)據(jù)庫,確定目標客戶端,然后向相應的目標客戶端發(fā)送命令信息;在對應目標客戶端處收到命令信息,并觸發(fā)對應的動作,例如,彈窗提示,下載更新等(如果直接發(fā)送內(nèi)容消息則沒有這ー步驟)。在上面的步驟中,也可以先執(zhí)行推送服務器查詢分發(fā)信息數(shù)據(jù)庫,然后根據(jù)查詢結(jié)果將信息發(fā)送給對應的套接字服務器。為了提高查詢效率,分發(fā)信息數(shù)據(jù)庫優(yōu)選采取數(shù)據(jù)庫集群的形式,分發(fā)信息數(shù)據(jù)庫采取數(shù)據(jù)庫集群的形式,每個套接字服務器在分發(fā)信息數(shù)據(jù)庫中對應ー表格,該表格中包含有套接字服務器中的所有連接的信息,該表格是以連接標識符為關鍵字(key)的信息列表,至少包括連接標識符、用戶標識信息、用戶特征信息、資源標識符等信息。該分發(fā)信息數(shù)據(jù)庫可以使用任何合適的數(shù)據(jù)庫來實現(xiàn),在本發(fā)明的ー個優(yōu)選實施例中,分發(fā)信息數(shù)據(jù)庫可以選擇文檔類型數(shù)據(jù)庫,優(yōu)選地選擇對數(shù)據(jù)列數(shù)沒有限定的數(shù)據(jù)庫來實現(xiàn),以使得數(shù)據(jù)項目靈活可變,有利于對數(shù)據(jù)項目缺失和擴充的兼容。本發(fā)明的ー個實施例使用MongoDB集群來實現(xiàn)該數(shù)據(jù)庫,也可以使用CouchDB集群或其他類似物數(shù)據(jù)庫集群實現(xiàn)。分發(fā)信息數(shù)據(jù)庫如果采取集群的形式,則在上述兩種查詢機制下,即可以根據(jù)套接字服務器的數(shù)目,在數(shù)據(jù)庫集群中維護相同數(shù)的部分。在上述實施例中,例如如圖4所示,系統(tǒng)中有3個套接字服務器的情況下,數(shù)據(jù)庫集群也由三個部分組成,每個部分維護ー個表格,其對應于每個套接字服務器中連接的信息。具體來說,這樣的列表是以連接標識符為key的信息列表,其中包括連接標識符、用戶標識信息、用戶特征信息、資源標識符等信息,信息列表的ー個不例如下表I所不:
權利要求
1.一種實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),該系統(tǒng)包括云存儲服務器端、推送服務器和多個瀏覽器客戶端,其中 所述云存儲服務器端,用于在有數(shù)據(jù)更新時向所述推送服務器下發(fā)條件信息和命令信息; 所述推送服務器,用于根據(jù)該條件信息在所述多個瀏覽器客戶端中確定目標客戶端,并將所述命令信息發(fā)送給所述目標客戶端;以及 所述目標客戶端,用于根據(jù)所述命令信息實現(xiàn)其與云存儲服務器端的數(shù)據(jù)同步。
2.根據(jù)權利要求1所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,該系統(tǒng)在所述推送服務器與所述多個瀏覽器客戶端之間還具有多個套接字服務器; 在所述推送服務器根據(jù)條件信息將命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端之前,所述多個瀏覽器客戶端分別與相應的套接字服務器之間建立套接字連接; 在所述推送服務器根據(jù)條件信息將命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端時,所述推送服務器通過相應的套接字服務器將所述命令信息發(fā)送給所述多個瀏覽器客戶端中的目標客戶端。
3.根據(jù)權利要求2所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,該系統(tǒng)還包括分發(fā)器,所述多個瀏覽器客戶端與相應的套接字服務器之間通過該分發(fā)器建立連接。
4.根據(jù)權利要求3所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,瀏覽器客戶端與套接字服務器之間通過分發(fā)器建立套接字連接包括 所述瀏覽器客戶端向所述分發(fā)器提交連接請求,該連接請求中至少包括用戶標識信息; 所述分發(fā)器由用戶標識信息使用預設算法進行計算得到全局唯一的連接標識符,根據(jù)該連接標識符為提交連接請求的瀏覽器客戶端分配套接字服務器; 所述分發(fā)器將該套接字服務器的連接信息及所述連接標識符發(fā)送至提交請求的瀏覽器客戶端; 提交請求的瀏覽器客戶端根據(jù)接收到的套接字服務器的連接信息及所述連接標識符與對應的套接字服務器建立連接。
5.根據(jù)權利要求4所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述提交請求的瀏覽器客戶端根據(jù)接收到的套接字服務器的連接信息與對應的套接字服務器建立連接,包括 提交請求的瀏覽器客戶端向相應的套接字服務器傳送其接收到的連接標識符; 所述套接字服務器從所述提交請求的瀏覽器客戶端接收到連接標識符后,向所述分發(fā)器對該連接標識符進行驗證,在驗證成功后,保持所述套接字服務器與所述瀏覽器客戶端之間已經(jīng)建立的連接,驗證失敗,則斷開已經(jīng)建立的連接; 其中在所述套接字服務器與所述瀏覽器客戶端之間的連接建立時,套接字服務器獲得標識套接字服務器和瀏覽器客戶端連接關系的資源標識符。
6.根據(jù)權利要求5所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述用戶標識信息包括登錄用戶的用戶名、非登錄用戶的機器硬件標識。
7.根據(jù)權利要求5所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,該分發(fā)器包括分發(fā)信息數(shù)據(jù)庫,用于存儲用戶標識信息、連接標識符,以及資源標識符。
8.根據(jù)權利要求7所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述云存儲服務器端向推送服務器發(fā)送條件信息及命令信息中,所述條件信息中包括目標客戶端的用戶標識信息; 所述推送服務器根據(jù)該條件信息將該命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端包括 推送服務器采用與分發(fā)器相同的預設算法對目標客戶端的用戶標識信息進行計算得到一個數(shù)值,從而得到為目標客戶端分配的套接字服務器, 推送服務器將所述條件信息及所述命令信息發(fā)送給該為目標客戶端分配的套接字服務器; 該套接字服務器根據(jù)所述條件信息中的用戶標識信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫,確定與目標客戶端對應的資源標識符,并依照該資源標識符將該命令信息發(fā)送給該目標客戶端。
9.根據(jù)權利要求5所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,該分發(fā)器還包括分發(fā)信息數(shù)據(jù)庫; 所述分發(fā)器還從瀏覽器客戶端獲取用戶特征信息,該用戶特征信息包括以下信息其中之一 IP地址信息、瀏覽器版本信息和用戶分類信息; 所述分發(fā)信息數(shù)據(jù)庫,用于存儲所述用戶特征信息、連接標識符及資源標識符。
10.根據(jù)權利要求9所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述云存儲服務器端向所述推送服務器下發(fā)條件信息和命令信息中,所述條件信息中包含目標客戶端的特征篩選信息; 所述推送服務器根據(jù)該條件信息將該命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端包括 推送服務器將該條件信息和該命令信息發(fā)送給所有的套接字服務器; 每一個套接字服務器根據(jù)該條件信息中的特征篩選信息查詢分發(fā)信息數(shù)據(jù)庫,確定滿足該特征篩選信息的目標客戶端的資源標識符,并依照該資源標識符向相應的目標客戶端發(fā)送命令信息。
11.根據(jù)權利要求7至10中任一項所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述分發(fā)信息數(shù)據(jù)庫為文檔類型數(shù)據(jù)庫。
12.根據(jù)權利要求7至10中任一項所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述分發(fā)信息數(shù)據(jù)庫采取數(shù)據(jù)庫集群的形式。
13.根據(jù)權利要求12所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述分發(fā)信息數(shù)據(jù)庫分為多個部分,數(shù)據(jù)庫的各部分保存與各套接字服務器相對應的信息。
14.根據(jù)權利要求12所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述數(shù)據(jù)庫集群采用MongoDB集群或CouchDB集群。
15.根據(jù)權利要求13所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,套接字服務器根據(jù)所述條件信息查詢分發(fā)器中的分發(fā)信息數(shù)據(jù)庫包括套接字服務器查詢分發(fā)信息數(shù)據(jù)庫中與其自身對應的部分以確定目標客戶端。
16.根據(jù)權利要求1至10中任一項所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng),其中,所述命令信息為通知消息或內(nèi)容消息。
17.一種實現(xiàn)瀏覽器數(shù)據(jù)同步的方法,其中該方法包括云存儲服務器端在有數(shù)據(jù)更新時向推送服務器下發(fā)條件信息和命令信息; 推送服務器根據(jù)該條件信息在所述多個瀏覽器客戶端中確定目標客戶端,并將所述命令信息發(fā)送給所述目標客戶端;以及 目標客戶端根據(jù)該命令信息實現(xiàn)瀏覽器客戶端與云存儲服務器端的數(shù)據(jù)同步。
18.根據(jù)權利要求17所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的方法,其中,該方法進一步包括步驟 在所述推送服務器根據(jù)條件信息將命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端之前,所述多個瀏覽器客戶端分別與相應的套接字服務器之間建立連接; 在所述推送服務器根據(jù)條件信息將命令信息發(fā)送給多個瀏覽器客戶端中的目標客戶端時,所述推送服務器通過相應的套接字服務器將所述命令信息發(fā)送給所述多個瀏覽器客戶端中的目標客戶端。
19.根據(jù)權利要求18所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的方法,其中,該方法進一步包括步驟所述多個瀏覽器客戶端與相應的套接字服務器之間通過分發(fā)器建立連接。
20.根據(jù)權利要求19所述的實現(xiàn)瀏覽器數(shù)據(jù)同步的方法,其中,瀏覽器客戶端與套接字服務器之間通過分發(fā)器建立套接字連接進一步包括步驟 所述瀏覽器客戶端向所述分發(fā)器提交連接請求,該連接請求中至少包括用戶標識信息; 所述分發(fā)器由用戶標識信息使用預設算法進行計算得到全局唯一的連接標識符,根據(jù)該連接標識符為提交連接請求的瀏覽器客戶端分配套接字服務器; 所述分發(fā)器將該套接字服務器的連接信息及所述連接標識符發(fā)送至提交請求的瀏覽器客戶端; 提交請求的瀏覽器客戶端根據(jù)接收到的套接字服務器的連接信息及所述連接標識符與對應的套接字服務器建立連接。
全文摘要
本發(fā)明提供了實現(xiàn)瀏覽器數(shù)據(jù)同步的系統(tǒng)和方法。該系統(tǒng)包括云存儲服務器端、推送服務器和多個瀏覽器客戶端,其中云存儲服務器端,用于在有數(shù)據(jù)更新時向推送服務器下發(fā)條件信息和命令信息;推送服務器,用于根據(jù)該條件信息在多個瀏覽器客戶端中確定目標客戶端,并將命令信息發(fā)送給目標客戶端;以及目標客戶端,用于根據(jù)命令信息實現(xiàn)其與云存儲服務器端的數(shù)據(jù)同步。本發(fā)明在云存儲服務器端存儲的數(shù)據(jù)內(nèi)容發(fā)生更新的情況下,及時地將命令信息通過推送服務器發(fā)送至目標客戶端,從而簡單、高效地實現(xiàn)了云存儲服務器端與瀏覽器客戶端的數(shù)據(jù)的實時同步。
文檔編號H04L29/08GK103024052SQ20121054944
公開日2013年4月3日 申請日期2012年12月17日 優(yōu)先權日2012年12月17日
發(fā)明者吳浩, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司