客戶端與服務(wù)器端之間數(shù)據(jù)同步的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種客戶端與服務(wù)器端之間數(shù)據(jù)同步的 方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)網(wǎng)路通信技術(shù)的不斷發(fā)展,人們?cè)絹碓搅?xí)慣通過網(wǎng)絡(luò)獲取知識(shí),并利 用網(wǎng)絡(luò)進(jìn)行工作、學(xué)習(xí)和娛樂。伴隨著智能手機(jī)、平板電腦的日益普及,智能手機(jī)、平板電腦 也逐漸成為人們新興的學(xué)習(xí)工具。
[0003] 在計(jì)算機(jī)網(wǎng)絡(luò)中,用戶的電腦、智能手機(jī)、平板電腦以及其他可以連接網(wǎng)絡(luò)的便攜 式設(shè)備均被視為客戶端,呈現(xiàn)在這些便攜式設(shè)備上的網(wǎng)頁內(nèi)容,如文字、圖片、視頻和音頻 則是客戶端通過網(wǎng)絡(luò)連接服務(wù)器端后,客戶端訪問服務(wù)器端上的數(shù)據(jù),然后客戶端將服務(wù) 器端返回的數(shù)據(jù)以網(wǎng)頁的形式展現(xiàn)在便攜設(shè)備的界面上。其中,客戶端訪問服務(wù)器端時(shí),可 以利用有線網(wǎng)絡(luò)訪問,如電腦通過本地連接訪問服務(wù)器端數(shù)據(jù);客戶端也可以通過無線網(wǎng) 絡(luò)進(jìn)行訪問,如便攜式設(shè)備手機(jī)、平板電腦等連接無線網(wǎng)絡(luò)后,對(duì)服務(wù)器端數(shù)據(jù)進(jìn)行訪問。
[0004] 當(dāng)用戶利用客戶端連接服務(wù)器端,訪問服務(wù)器端上的數(shù)據(jù)內(nèi)容時(shí),服務(wù)器端的一 部分?jǐn)?shù)據(jù)已經(jīng)保存在客戶端的緩存中,客戶端在需要這部分?jǐn)?shù)據(jù)時(shí)可以直接調(diào)用緩存中的 數(shù)據(jù)。然而,出于完善客戶端功能以及用戶使用、體驗(yàn)性的需要,與客戶端連接的服務(wù)器端 則會(huì)不定時(shí)的對(duì)服務(wù)器端上的數(shù)據(jù)進(jìn)行更新??蛻舳诵枰獜姆?wù)器端加載服務(wù)器端數(shù)據(jù), 并對(duì)緩存中的數(shù)據(jù)進(jìn)行更新,實(shí)現(xiàn)客戶端數(shù)據(jù)與服務(wù)器端數(shù)據(jù)的同步更新,從而達(dá)到對(duì)客 戶端功能的完善,豐富用戶對(duì)客戶端的使用、體驗(yàn)效果。
[0005] 然而,在實(shí)際的網(wǎng)絡(luò)通信中,客戶端數(shù)據(jù)與服務(wù)器端數(shù)據(jù)在進(jìn)行同步更新時(shí),仍然 存在一些不足之處:客戶端同步更新數(shù)據(jù)時(shí),將服務(wù)器端中的所有與該客戶端有關(guān)的數(shù)據(jù) 加載到客戶端中,在加載的這部分?jǐn)?shù)據(jù)中,有些是服務(wù)器端剛更新而客戶端卻沒有同步更 新的,但更多的則是服務(wù)器端未更新且客戶端已經(jīng)加載、保存過的,客戶端重復(fù)加載服務(wù)器 端未更新且客戶端已經(jīng)加載、保存過的這部分?jǐn)?shù)據(jù)時(shí),無疑耗費(fèi)了額外的流量和加載時(shí)間, 降低了網(wǎng)絡(luò)的有效使用率。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的首要技術(shù)問題是針對(duì)上述現(xiàn)有技術(shù)提供一種既能夠充分利用 既有網(wǎng)絡(luò)、減少網(wǎng)絡(luò)流量耗費(fèi)和加載時(shí)間,又能實(shí)現(xiàn)客戶端數(shù)據(jù)與服務(wù)器端數(shù)據(jù)同步的方 法。
[0007] 本發(fā)明進(jìn)一步要解決的技術(shù)問題是針對(duì)上述現(xiàn)有技術(shù)提供一種實(shí)現(xiàn)客戶端與服 務(wù)器端之間數(shù)據(jù)同步的系統(tǒng)。
[0008] 本發(fā)明解決上述首要技術(shù)問題所采用的技術(shù)方案為:客戶端與服務(wù)器端之間數(shù)據(jù) 同步的方法,其特征在于,包括如下步驟:
[0009] (1)客戶端建立緩存數(shù)據(jù)庫,對(duì)緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)建立緩存數(shù)據(jù)屬性列表, 服務(wù)器端對(duì)服務(wù)器端上的數(shù)據(jù)屬性進(jìn)行命名,并對(duì)已經(jīng)更新過的數(shù)據(jù)屬性加入更新標(biāo)識(shí), 其中,數(shù)據(jù)屬性包括數(shù)據(jù)名稱和數(shù)據(jù)更新時(shí)間;
[0010] (2)客戶端與服務(wù)器端建立網(wǎng)絡(luò)通信,客戶端發(fā)送與服務(wù)器端數(shù)據(jù)同步更新、加載 服務(wù)器端數(shù)據(jù)請(qǐng)求;
[0011] (3)服務(wù)器端接受客戶端請(qǐng)求,并發(fā)送、返回服務(wù)器端上的所有數(shù)據(jù)的數(shù)據(jù)屬性給 客戶端;
[0012] (4)客戶端接收服務(wù)器端發(fā)送的返回?cái)?shù)據(jù)屬性,并分別對(duì)返回?cái)?shù)據(jù)的屬性進(jìn)行解 析,分別獲取返回?cái)?shù)據(jù)屬性的數(shù)據(jù)名稱及數(shù)據(jù)更新時(shí)間;
[0013] (5)客戶端將步驟(4)中解析的返回?cái)?shù)據(jù)屬性與客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù) 屬性進(jìn)行比對(duì),并做出是否加載服務(wù)器端的返回?cái)?shù)據(jù)決定:
[0014] (5-1)當(dāng)服務(wù)器端的返回?cái)?shù)據(jù)名稱存在于客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)名稱列 表中,且服務(wù)器端返回?cái)?shù)據(jù)的數(shù)據(jù)更新時(shí)間晚于客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)更新時(shí)間 時(shí),則客戶端刪除原來緩存數(shù)據(jù)庫中具有該名稱的緩存數(shù)據(jù),并加載、存儲(chǔ)服務(wù)器端的返回 數(shù)據(jù)到客戶端的緩存數(shù)據(jù)庫中;
[0015] (5-2)當(dāng)服務(wù)器端的返回?cái)?shù)據(jù)名稱存在于客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)名稱列 表中,且服務(wù)器端返回?cái)?shù)據(jù)的數(shù)據(jù)更新時(shí)間不晚于客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)更新時(shí) 間時(shí),則客戶端不加載服務(wù)器端的該返回?cái)?shù)據(jù);
[0016] (5-3)當(dāng)服務(wù)器端的返回?cái)?shù)據(jù)名稱未存在于客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)名稱 列表中時(shí),則客戶端加載、存儲(chǔ)服務(wù)器端的該返回?cái)?shù)據(jù)到客戶端的緩存數(shù)據(jù)庫中;
[0017] (6)客戶端根據(jù)步驟(5)中的比對(duì)、決定結(jié)果,調(diào)用客戶端緩存數(shù)據(jù)庫中已經(jīng)存儲(chǔ) 的與步驟(2)所需要同步更新、加載的數(shù)據(jù)名稱相同的數(shù)據(jù)。
[0018] 進(jìn)一步地,所述步驟(3)中還包括服務(wù)器端對(duì)服務(wù)器端中的所有標(biāo)記數(shù)據(jù)壓縮, 以及將壓縮后的數(shù)據(jù)返回給客戶端進(jìn)行解壓的步驟。
[0019] 進(jìn)一步地,所述步驟(6)之后還包括客戶端對(duì)緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)進(jìn)行數(shù)據(jù) 損壞檢測(cè):
[0020] 當(dāng)客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)損壞時(shí),客戶端發(fā)送該緩存數(shù)據(jù)屬性中的數(shù)據(jù) 名稱給服務(wù)器端,然后由服務(wù)器端將服務(wù)器端中與該數(shù)據(jù)名稱相同的數(shù)據(jù)返回給客戶端進(jìn) 行加載和存儲(chǔ);
[0021] 當(dāng)客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)未損壞時(shí),客戶端不做任何處理。
[0022] 進(jìn)一步地,客戶端與服務(wù)器端之間數(shù)據(jù)同步的系統(tǒng),包括客戶端和服務(wù)器端,其特 征在于,所述客戶端包括網(wǎng)絡(luò)連接模塊、數(shù)據(jù)解析模塊、數(shù)據(jù)處理模塊和緩存數(shù)據(jù)庫,其中,
[0023] 所述網(wǎng)絡(luò)連接模塊,用于與服務(wù)器端建立通信連接,發(fā)送客戶端與服務(wù)器端數(shù)據(jù) 同步更新、加載服務(wù)器端數(shù)據(jù)請(qǐng)求,并接收服務(wù)器端的返回?cái)?shù)據(jù);
[0024] 所述數(shù)據(jù)解析模塊,用于解析服務(wù)器端返回?cái)?shù)據(jù)的屬性,獲取返回?cái)?shù)據(jù)屬性的數(shù) 據(jù)名稱及數(shù)據(jù)更新時(shí)間,并發(fā)送數(shù)據(jù)名稱及數(shù)據(jù)更新時(shí)間給數(shù)據(jù)處理模塊;
[0025] 所述數(shù)據(jù)處理模塊,接收數(shù)據(jù)解析模塊發(fā)送的返回?cái)?shù)據(jù)名稱及數(shù)據(jù)更新時(shí)間,并 將返回?cái)?shù)據(jù)名稱及數(shù)據(jù)更新時(shí)間與客戶端緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)屬性進(jìn)行比對(duì),并決定 是否加載服務(wù)器端的返回?cái)?shù)據(jù);
[0026] 所述緩存數(shù)據(jù)庫,建立緩存數(shù)據(jù)屬性列表,根據(jù)數(shù)據(jù)處理模塊的決定,一方面加 載、存儲(chǔ)服務(wù)器端的返回?cái)?shù)據(jù)到緩存數(shù)據(jù)庫中;另一方面,刪除原來緩存數(shù)據(jù)庫中存在的、 且與服務(wù)器端返回?cái)?shù)據(jù)具有相同名稱且更新時(shí)間早于服務(wù)器端返回?cái)?shù)據(jù)更新時(shí)間的緩存 數(shù)據(jù);
[0027] 所述服務(wù)器端包括網(wǎng)絡(luò)模塊、數(shù)據(jù)標(biāo)識(shí)模塊、數(shù)據(jù)屬性解析模塊和數(shù)據(jù)返回模塊, 其中,
[0028] 所述網(wǎng)絡(luò)模塊,與客戶端建立通信連接,接收客戶端發(fā)送的同步更新、加載服務(wù)器 端數(shù)據(jù)請(qǐng)求;
[0029] 所述數(shù)據(jù)標(biāo)識(shí)模塊,對(duì)服務(wù)器端上的數(shù)據(jù)屬性進(jìn)行命名,并對(duì)已經(jīng)更新過的數(shù)據(jù) 屬性加入更新標(biāo)識(shí),其中,數(shù)據(jù)屬性包括數(shù)據(jù)名稱和數(shù)據(jù)更新時(shí)間;
[0030] 所述數(shù)據(jù)屬性解析模塊,解析經(jīng)數(shù)據(jù)標(biāo)識(shí)模塊處理的數(shù)據(jù)的名稱及數(shù)據(jù)更新時(shí) 間;
[0031] 所述數(shù)據(jù)返回模塊,發(fā)送服務(wù)器端的所有數(shù)據(jù)及所有數(shù)據(jù)的數(shù)據(jù)屬性給客戶端。
[0032] 進(jìn)一步地,所述服務(wù)器端還包括數(shù)據(jù)壓縮模塊,所述客戶端還包括數(shù)據(jù)解壓模塊。
[0033] 進(jìn)一步地,所述客戶端還包括對(duì)緩存數(shù)據(jù)庫中的緩存數(shù)據(jù)進(jìn)行損壞檢測(cè)的數(shù)據(jù)損 壞檢測(cè)模塊。
[0034] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:客戶端建立緩存數(shù)據(jù)庫,并建立緩存數(shù)據(jù) 名稱列表,當(dāng)客戶端發(fā)送同步更新、加載數(shù)據(jù)請(qǐng)求給服務(wù)器端后,服務(wù)器端根據(jù)客戶端的請(qǐng) 求,首先返回服務(wù)器端上所有數(shù)據(jù)的數(shù)據(jù)屬性給客戶端解析、判斷:在服務(wù)器端返回?cái)?shù)據(jù)的 數(shù)據(jù)名稱存在于緩存數(shù)據(jù)名稱列表中情況下,當(dāng)返回?cái)?shù)據(jù)的更新時(shí)間晚于緩存數(shù)據(jù)更新時(shí) 間時(shí),客戶端刪除具有該名稱的緩