一種頁(yè)面?zhèn)鬏斕幚矸椒ā⒀b置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種頁(yè)面?zhèn)鬏敺椒?、裝置及系統(tǒng)。該方法包括:服務(wù)器在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板;在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù);將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。本發(fā)明提供的技術(shù)方案,能提升頁(yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。
【專利說(shuō)明】一種頁(yè)面?zhèn)鬏斕幚矸椒ā⒀b置和系統(tǒng)
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及移動(dòng)通信【技術(shù)領(lǐng)域】,更為具體地,涉及一種頁(yè)面?zhèn)鬏斕幚矸椒ā⒀b置和系統(tǒng)。
[0003]【背景技術(shù)】
[0004]在基于瀏覽器后臺(tái)服務(wù)器(簡(jiǎn)稱服務(wù)器)和瀏覽器客戶端(簡(jiǎn)稱客戶端)配合的“C/S”瀏覽服務(wù)架構(gòu)中,服務(wù)器快速向客戶端返回瀏覽的頁(yè)面數(shù)據(jù)是提高用戶瀏覽體驗(yàn)的一個(gè)關(guān)鍵點(diǎn)。頁(yè)面數(shù)據(jù)一般包括主文檔頁(yè)面(page)及頁(yè)面上與顯示相關(guān)的子資源(外聯(lián)CSS樣式文件、外聯(lián)javascript文件、圖片等)。其中,主文檔頁(yè)面的傳輸是決定傳輸速度的關(guān)鍵,也是決定客戶端的T0/T1時(shí)間快慢的關(guān)鍵資源。所謂TO是指從客戶端發(fā)起HTTP請(qǐng)求到接收到第一個(gè)字節(jié)數(shù)據(jù)的耗時(shí),所謂Tl是指從客戶端發(fā)起HTTP請(qǐng)求到接收到足夠頁(yè)面數(shù)據(jù)可進(jìn)行顯示的耗時(shí)。
[0005]現(xiàn)有的處理方法,一般是服務(wù)器向客戶端優(yōu)先返回主文檔頁(yè)面,然后再返回與顯示相關(guān)的子資源,而服務(wù)器對(duì)于發(fā)送主文檔頁(yè)面,會(huì)采用壓縮算法來(lái)減少文件大小,這樣可以通過(guò)減少傳輸數(shù)據(jù)大小來(lái)提高傳輸速度,從而減少?gòu)目蛻舳税l(fā)起HTTP請(qǐng)求到接收到足夠頁(yè)面數(shù)據(jù)可進(jìn)行顯示的耗時(shí)Tl時(shí)間,同時(shí)也為用戶節(jié)省流量。而現(xiàn)有常用的壓縮算法,主要是基于預(yù)置字典或者原始數(shù)據(jù)生成的字典進(jìn)行特征數(shù)據(jù)串的復(fù)用來(lái)達(dá)到壓縮效果。
[0006]但是,現(xiàn)有處理方法中采用的壓縮算法對(duì)于某些場(chǎng)景,例如低速網(wǎng)絡(luò)的場(chǎng)景或者頁(yè)面數(shù)據(jù)較大的場(chǎng)景,壓縮效果并不是十分好,傳輸時(shí)間雖有減少但并不十分理想。因此,現(xiàn)有的頁(yè)面?zhèn)鬏敺椒ㄔ跍p少傳輸耗時(shí)和節(jié)省流量方面仍有待提高。
[0007]
【發(fā)明內(nèi)容】
[0008]鑒于上述,本發(fā)明提出了一種頁(yè)面?zhèn)鬏敺椒ā⒀b置及系統(tǒng),能提升頁(yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。
[0009]根據(jù)本發(fā)明的一個(gè)方面,提供了一種頁(yè)面?zhèn)鬏斕幚矸椒ǎ?服務(wù)器在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板;在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù);將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0010]進(jìn)一步的,服務(wù)器中的模型中心代理在服務(wù)器中的后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板;所述模型中心代理在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板;所述模型中心代理依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊;所述后臺(tái)服務(wù)模塊將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0011]進(jìn)一步的,所述服務(wù)器中的模型中心代理在服務(wù)器中的后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板包括:所述模型中心代理接收所述后臺(tái)服務(wù)模塊傳輸?shù)母鶕?jù)所述多個(gè)客戶端的頁(yè)面請(qǐng)求而提供的內(nèi)容,所述提供的內(nèi)容包括:后臺(tái)服務(wù)模塊在所述客戶端的頁(yè)面請(qǐng)求不包括模板標(biāo)識(shí)時(shí),提供的根據(jù)所述頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù),或者,在所述客戶端的頁(yè)面請(qǐng)求包括模板標(biāo)識(shí)時(shí),提供的根據(jù)所述頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)和所述模板標(biāo)識(shí);所述模型中心代理在接收所述提供的內(nèi)容后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板。
[0012]進(jìn)一步的,在所述客戶端的頁(yè)面請(qǐng)求包括模板標(biāo)識(shí)時(shí),還包括:所述模型中心代理在得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否都低于第一設(shè)定閾值,若是,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊;若否,傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
[0013]進(jìn)一步的,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率之后還包括:判斷所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)是否已由所述客戶端提供,若是,再進(jìn)行所述將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊的步驟,若否,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端。
[0014]進(jìn)一步的,在所述客戶端的頁(yè)面請(qǐng)求不包括模板標(biāo)識(shí)時(shí),還包括:所述模型中心代理在得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否都低于第一設(shè)定閾值,若是,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端;若否,傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
[0015]進(jìn)一步的,所述將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端之后還包括:后臺(tái)服務(wù)模塊接收所述客戶端在空閑時(shí)發(fā)起的含所述選擇的模板標(biāo)識(shí)的模板請(qǐng)求,將從所述模板請(qǐng)求中獲取的模板標(biāo)識(shí)傳輸給所述模型中心代理;所述模型中心代理根據(jù)所述模板標(biāo)識(shí)向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板,傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊下發(fā)給所述客戶端進(jìn)行存儲(chǔ);其中,所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板由所述模型中心集群預(yù)先根據(jù)從所述模型中心代理采集的頁(yè)面數(shù)據(jù)生成。
[0016]根據(jù)本發(fā)明的另一個(gè)方面,提供一種服務(wù)器,包括模型中心代理和后臺(tái)服務(wù)模塊:模型中心代理,用于在后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),傳輸給后臺(tái)服務(wù)模塊;后臺(tái)服務(wù)模塊,用于接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求,將模型中心代理傳輸?shù)乃鲈隽繑?shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0017]進(jìn)一步的,其中所述模型中心代理包括:獲取單元,用于在所述后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板;增量處理單元,用于依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊。
[0018]進(jìn)一步的,所述模型中心代理還包括:壓縮比較單元,用于在所述增量處理單元得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值;若是,所述增量處理單元從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊;若否,所述增量處理單元傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
[0019]進(jìn)一步的,所述模型中心代理還包括:標(biāo)識(shí)比較單元,用于判斷所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)是否已由所述客戶端提供,若是,所述增量處理單元再進(jìn)行所述將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊的步驟,若否,所述增量處理單元將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端。
[0020]進(jìn)一步的,所述模型中心代理還包括:壓縮比較單元,用于在所述增量處理單元得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值;若是,所述增量處理單元從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端;若否,所述增量處理單元傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
[0021]根據(jù)本發(fā)明的另一個(gè)方面,提供一種頁(yè)面?zhèn)鬏斚到y(tǒng),包括服務(wù)器、客戶端和模型中心集群:客戶端,用于向服務(wù)器發(fā)送頁(yè)面請(qǐng)求,接收服務(wù)器返回的頁(yè)面應(yīng)答數(shù)據(jù);服務(wù)器,用于在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端;模型中心集群,用于向所述服務(wù)器返回頁(yè)面模板。
[0022]進(jìn)一步的,所述服務(wù)器還包括模型中心代理和后臺(tái)服務(wù)模塊:模型中心代理,用于在所述后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊;后臺(tái)服務(wù)模塊,用于接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求,接收所述模型中心代理返回的增量數(shù)據(jù),將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0023]進(jìn)一步的,所述模型中心集群還包括模板緩存服務(wù)模塊和模板運(yùn)算服務(wù)模塊;模板緩存服務(wù)模塊,用于接收所述模型中心代理發(fā)起的第一請(qǐng)求后,根據(jù)網(wǎng)頁(yè)地址進(jìn)行查詢,向所述模型中心代理返回含模板標(biāo)識(shí)的頁(yè)面模板列表,在接收所述模型中心代理發(fā)起的含有所述模板標(biāo)識(shí)的第二請(qǐng)求后,根據(jù)所述模板標(biāo)識(shí)查找對(duì)應(yīng)的模板后返回給所述模型中心代理;模板運(yùn)算服務(wù)模塊,用于根據(jù)從所述模型中心代理采集的頁(yè)面數(shù)據(jù)進(jìn)行運(yùn)算,生成模板傳輸給所述模板緩存服務(wù)模塊進(jìn)行存儲(chǔ)。
[0024]利用上述技術(shù)方案,本發(fā)明提供的頁(yè)面?zhèn)鬏斕幚矸椒?,設(shè)置了存儲(chǔ)頁(yè)面模板的模型中心集群,針對(duì)多個(gè)客戶端發(fā)送頁(yè)面請(qǐng)求的情況,由服務(wù)器按照網(wǎng)頁(yè)地址向模型中心集群獲取得到頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),那么傳輸給客戶端的就是數(shù)據(jù)量很小的數(shù)據(jù),就可以通過(guò)提升頁(yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。
[0025]為了實(shí)現(xiàn)上述以及相關(guān)目的,本發(fā)明的一個(gè)或多個(gè)方面包括后面將詳細(xì)說(shuō)明并在權(quán)利要求中特別指出的特征。下面的說(shuō)明以及附圖詳細(xì)說(shuō)明了本發(fā)明的某些示例性方面。然而,這些方面指示的僅僅是可使用本發(fā)明的原理的各種方式中的一些方式。此外,本發(fā)明旨在包括所有這些方面以及它們的等同物。
[0026]【專利附圖】
【附圖說(shuō)明】
[0027]根據(jù)下述參照附圖進(jìn)行的詳細(xì)描述,本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)將變得更加顯而易見(jiàn)。在附圖中:
圖1是本發(fā)明涉及的系統(tǒng)架構(gòu)示意圖;
圖2是本發(fā)明的頁(yè)面?zhèn)鬏敺椒鞒虉D;
圖3是本發(fā)明客戶端不含模板的頁(yè)面?zhèn)鬏敺椒ǖ牧鞒虉D;
圖4是本發(fā)明方法中客戶端向后臺(tái)服務(wù)模塊請(qǐng)求獲取模板的流程圖;
圖5是本發(fā)明客戶端含模板的頁(yè)面?zhèn)鬏敺椒ǖ牧鞒虉D;
圖6是本發(fā)明服務(wù)器的結(jié)構(gòu)示意圖。
[0028]在所有附圖中相同的標(biāo)號(hào)指示相似或相應(yīng)的特征或功能。
[0029]【具體實(shí)施方式】
[0030]下面描述本公開(kāi)的各個(gè)方面。應(yīng)該明白的是,本文的教導(dǎo)可以以多種多樣形式具體體現(xiàn),并且在本文中公開(kāi)的任何具體結(jié)構(gòu)、功能或兩者僅僅是代表性的?;诒疚牡慕虒?dǎo),本領(lǐng)域技術(shù)人員應(yīng)該明白的是,本文所公開(kāi)的一個(gè)方面可以獨(dú)立于任何其它方面實(shí)現(xiàn),并且這些方面中的兩個(gè)或多個(gè)方面可以按照各種方式組合。例如,可以使用本文所闡述的任何數(shù)目的方面,實(shí)現(xiàn)裝置或?qū)嵺`方法。另外,可以使用其它結(jié)構(gòu)、功能、或除了本文所闡述的一個(gè)或多個(gè)方面之外或不是本文所闡述的一個(gè)或多個(gè)方面的結(jié)構(gòu)和功能,實(shí)現(xiàn)這種裝置或?qū)嵺`這種方法。此外,本文所描述的任何方面可以包括權(quán)利要求的至少一個(gè)元素。
[0031]本發(fā)明提供一種頁(yè)面?zhèn)鬏敺椒?,能提升?yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。
[0032]本發(fā)明主要是基于多用戶瀏覽歷史情況下改進(jìn)頁(yè)面?zhèn)鬏敺椒?,?jié)省網(wǎng)頁(yè)流量,對(duì)于某些場(chǎng)景特別是例如低速網(wǎng)絡(luò)的場(chǎng)景或者頁(yè)面數(shù)據(jù)較大的場(chǎng)景,效果較好。對(duì)于特定的客戶端(用戶)而言,在某一個(gè)頁(yè)面請(qǐng)求中,其自身的歷史瀏覽頁(yè)面并沒(méi)有合適的模板,可以通過(guò)由服務(wù)器下發(fā)優(yōu)化后的頁(yè)面數(shù)據(jù)作為模板(字典)來(lái)使用增量壓縮機(jī)制。
[0033]本發(fā)明為了提升頁(yè)面數(shù)據(jù)壓縮效果,利用了 SDCH機(jī)制,并進(jìn)行了改進(jìn)。
[0034]在介紹本發(fā)明方案前,先對(duì)SDCH進(jìn)行簡(jiǎn)單介紹。
[0035]在標(biāo)準(zhǔn)的web 服務(wù)中,SDCH (Shared Dictionary Compression over HTTP)是一種基于字典進(jìn)行HTTP數(shù)據(jù)壓縮機(jī)制,是一種與HTTP/1.1兼容的擴(kuò)展,它通過(guò)在客戶端和服務(wù)器之間共享字典來(lái)支持對(duì)HTTP響應(yīng)數(shù)據(jù)的壓縮。SDCH的一種應(yīng)用場(chǎng)景是:某個(gè)web站點(diǎn)的所有頁(yè)面都使用同一頁(yè)面模板T,每個(gè)頁(yè)面上的差異數(shù)據(jù)非常少,假定每個(gè)頁(yè)面的相似度接近90%,那么通過(guò)使用SDCH機(jī)制,服務(wù)器先下發(fā)頁(yè)面模板T給客戶端作為字典D,當(dāng)客戶端訪問(wèn)服務(wù)器的某一頁(yè)面時(shí),就可以使用增量壓縮算法方式來(lái)應(yīng)答該頁(yè)面基于頁(yè)面模板T的增量數(shù)據(jù),從而達(dá)到減少傳輸數(shù)據(jù)流量的目的。增量壓縮算法與自身壓縮算法的主要區(qū)別在于增量壓縮算法中的壓縮字典是可變的,可指定的。增量壓縮的計(jì)算:對(duì)于給定的數(shù)據(jù)大小S,其增量壓縮數(shù)據(jù)大小為Z,則增量壓縮率為:Z / S * 100%。增量壓縮率越小,則壓縮效果越好。自身壓縮的計(jì)算:使用通用的壓縮算法對(duì)給定的數(shù)據(jù)B進(jìn)行壓縮,例如gzip、7zip,實(shí)際的實(shí)現(xiàn)是基于壓縮算法內(nèi)置的字典(相對(duì)固定)對(duì)數(shù)據(jù)進(jìn)行壓縮處理。對(duì)于給定的數(shù)據(jù)大小S,其增量壓縮數(shù)據(jù)大小為Z,則增量壓縮率為:Z / S * 100%。增量壓縮率越小,則壓縮效果越好。
[0036]本發(fā)明方案涉及到客戶端與后臺(tái)多個(gè)服務(wù)設(shè)備(如服務(wù)器和模型中心集群)之間的配合。在介紹本發(fā)明方案之前,先介紹本發(fā)明涉及的系統(tǒng)架構(gòu)。
[0037]圖1是本發(fā)明涉及的系統(tǒng)架構(gòu)示意圖。圖中包括客戶端、服務(wù)器和模型中心集群三大部分。各部分功能介紹如下:
客戶端:例如用戶使用的手機(jī)瀏覽器。
[0038]服務(wù)器:主要提供接入服務(wù),包括后臺(tái)服務(wù)模塊和模型中心代理(proxy)。
[0039]模型中心集群:主要提供模型服務(wù),包括模板運(yùn)算服務(wù)模塊和模板緩存服務(wù)模塊。
[0040]后臺(tái)服務(wù)模塊:該模塊設(shè)置在服務(wù)器中,提供對(duì)于客戶端的頁(yè)面請(qǐng)求的接入服務(wù)。后臺(tái)服務(wù)模塊物理上部署在后臺(tái)服務(wù)器集群,一個(gè)后臺(tái)服務(wù)器集群有多個(gè)服務(wù)器,以作分布式服務(wù)。
[0041]模型中心代理(proxy):設(shè)置在服務(wù)器中,為后臺(tái)服務(wù)模塊和模型中心集群的交互提供以下服務(wù):1)將后臺(tái)服務(wù)模塊提供的原始頁(yè)面作為采樣數(shù)據(jù)轉(zhuǎn)發(fā)給模型中心集群。2)為后臺(tái)服務(wù)模塊提供從模型中心集群查詢的模板數(shù)據(jù)。3)提供基于模板的增量壓縮運(yùn)算并基于設(shè)定的增量壓縮率閾值選擇是否使用增量數(shù)據(jù)。
[0042]模板運(yùn)算服務(wù)模塊:設(shè)置在模型中心集群。通過(guò)由proxy轉(zhuǎn)發(fā)的原始頁(yè)面作為采樣數(shù)據(jù),按照設(shè)定的模板運(yùn)算模型產(chǎn)生關(guān)聯(lián)到一個(gè)或多個(gè)特定url路徑的模板,并將產(chǎn)生的模板保存到模板緩存服務(wù)模塊中。
[0043]模板緩存服務(wù)模塊:該模塊提供基于memcached的緩存服務(wù),主要提供兩類模板緩存服務(wù)的寫(xiě)入和查詢。寫(xiě)入操作是由模板運(yùn)算服務(wù)模塊執(zhí)行,查詢操作是由proxy執(zhí)行。查詢過(guò)程包括:Dproxy向模板緩存服務(wù)模塊發(fā)起含url路徑的查詢請(qǐng)求,模板緩存服務(wù)模塊基于url路徑查詢模板ID列表,對(duì)于特定的路徑,向proxy返回模板列表,模板列表中包括I個(gè)或多個(gè)模板ID ;如果沒(méi)有匹配的模板,則返回空列表。2) proxy根據(jù)模板列表選擇模板ID,再向模板緩存服務(wù)模塊發(fā)起含選擇的模板ID的查詢請(qǐng)求,模板緩存服務(wù)模塊基于模板ID查詢返回模板數(shù)據(jù)。
[0044]需說(shuō)明的是,在物理上將后臺(tái)服務(wù)模塊和模型中心代理proxy都部署在同一臺(tái)服務(wù)器具有一些優(yōu)點(diǎn):1)把增量壓縮運(yùn)算的邏輯放置在proxy,可以減少后臺(tái)服務(wù)模塊的CPU占用率。2)與模型中心集群的所有交互都由proxy完成,相關(guān)的交互細(xì)節(jié)對(duì)于后臺(tái)服務(wù)模塊是透明的,不需要在后臺(tái)服務(wù)模塊實(shí)現(xiàn)更復(fù)雜的交互邏輯。3)后臺(tái)服務(wù)模塊在服務(wù)器上是以多進(jìn)程進(jìn)行部署的,多個(gè)進(jìn)程之間共享同一個(gè)proxy。而在proxy內(nèi)部,也實(shí)現(xiàn)了本地緩存隊(duì)列用于存放查詢過(guò)的模板數(shù)據(jù)。在這種方案下,對(duì)于接入到同一臺(tái)服務(wù)器上的不同后臺(tái)服務(wù)模塊的不同客戶端可能使用的同一個(gè)模板,可以直接在proxy的本地緩存中查找至IJ,不需要查詢后端的模型中心集群的模板緩存服務(wù)模塊。
[0045]還需要說(shuō)明的是,本發(fā)明基于模型中心模板的增量壓縮需要額外傳輸模板(字典),其模板的質(zhì)量依靠模型中心集群中的模板運(yùn)算服務(wù)模塊提供支撐。
[0046]本發(fā)明對(duì)模板ID進(jìn)行統(tǒng)一的約定。
[0047]模型中心集群產(chǎn)生的模板可以統(tǒng)一使用Google開(kāi)源的Protocol Buffer (二進(jìn)制)協(xié)議編碼方式進(jìn)行封裝。模板的數(shù)據(jù)結(jié)構(gòu)包含:1)該模板適用的路徑及相應(yīng)的權(quán)重?cái)?shù)據(jù)對(duì)(可以用列表形式,權(quán)重?cái)?shù)據(jù)對(duì)可能有I對(duì)或者多對(duì))。2)模板數(shù)據(jù)。
[0048]關(guān)于模板ID,計(jì)算模板ID的過(guò)程為:通過(guò)對(duì)使用Protocol Buffer協(xié)議封裝好的模板進(jìn)行MD5運(yùn)算,取設(shè)定個(gè)字符例如前6個(gè)字符再進(jìn)行base64轉(zhuǎn)碼為8個(gè)字符后進(jìn)行標(biāo)識(shí)(全局唯一標(biāo)識(shí))。需說(shuō)明的是,服務(wù)器、客戶端及模型中心集群中的模板運(yùn)算服務(wù)模塊需要保證使用同一種base64編碼方式。
[0049]舉例說(shuō)明,對(duì)于模型中心集群中的模板運(yùn)算服務(wù)模塊所產(chǎn)生的某一個(gè)模板,其ID為fr4D9oEv,適用路徑及權(quán)重可能是如下信息:
路徑權(quán)重
www.abc.com/def/ghi/ 90 www.abc.com/def/80
www.abc.com/50
該模板對(duì)于以上的三個(gè)路徑都適用,但對(duì)于深度越大的路徑,其適用面越廣(所適用的頁(yè)面覆蓋率越高)。權(quán)重可以用于模板的優(yōu)先選擇。
[0050]客戶端接收到該模板后,保存到模板緩存隊(duì)列??蛻舳藢?duì)該緩存隊(duì)列進(jìn)行持久化保存。同時(shí),對(duì)模板數(shù)據(jù)進(jìn)行解析,識(shí)別適用的路徑及權(quán)重信息,這些信息在客戶端發(fā)起新的頁(yè)面請(qǐng)求時(shí),將作為挑選候選模板的依據(jù),例如路徑越相似或權(quán)重越大,可優(yōu)先選擇。
[0051 ] 下面將參照附圖描述本發(fā)明的各個(gè)實(shí)施例。
[0052]圖2是本發(fā)明的頁(yè)面?zhèn)鬏敺椒鞒虉D。
[0053]如圖2所示,包括步驟:
步驟201、服務(wù)器在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板。[0054]具體的,服務(wù)器中的模型中心代理在服務(wù)器中的后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板;
所述模型中心代理在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板。
[0055]步驟202、在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù)。
[0056]具體的,所述模型中心代理在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊。
[0057]步驟203、將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0058]具體的,所述后臺(tái)服務(wù)模塊將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0059]可以發(fā)現(xiàn),本發(fā)明提供的頁(yè)面?zhèn)鬏斕幚矸椒?,設(shè)置了存儲(chǔ)頁(yè)面模板的模型中心集群,針對(duì)多個(gè)客戶端發(fā)送頁(yè)面請(qǐng)求的情況,由服務(wù)器按照網(wǎng)頁(yè)地址向模型中心集群獲取得到頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),那么傳輸給客戶端的就是數(shù)據(jù)量很小的數(shù)據(jù),就可以通過(guò)提升頁(yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。
[0060]上述概括介紹了本發(fā)明的方法,以下再進(jìn)一步進(jìn)行具體描述。
[0061]圖3的實(shí)施例是針對(duì)客戶端沒(méi)有模板的頁(yè)面請(qǐng)求處理的情況。
[0062]圖3是本發(fā)明客戶端不含模板的頁(yè)面?zhèn)鬏敺椒ǖ牧鞒虉D,該流程涉及客戶端、月艮務(wù)器中的后臺(tái)服務(wù)模塊、服務(wù)器中的模型中心代理proxy。
[0063]步驟30廣304在后臺(tái)服務(wù)模塊中實(shí)現(xiàn),步驟305?311在proxy實(shí)現(xiàn),步驟312?314在后臺(tái)服務(wù)模塊實(shí)現(xiàn),步驟315?317在客戶端實(shí)現(xiàn)。
[0064]如圖3所示,包括步驟:
步驟301:服務(wù)器中的后臺(tái)服務(wù)模塊接收和處理客戶端的頁(yè)面請(qǐng)求。
[0065]本發(fā)明中,服務(wù)器與客戶端約定由客戶端通過(guò)自定義的協(xié)議字段來(lái)標(biāo)識(shí)客戶端是否支持增量壓縮方式。為描述的方便,用于標(biāo)識(shí)客戶端是否支持增量壓縮方式的標(biāo)識(shí)稱為標(biāo)識(shí)A。另外,還可以約定定義其他協(xié)議字段作為其他標(biāo)識(shí)。
[0066]需說(shuō)明的是,關(guān)于標(biāo)識(shí)A,可以認(rèn)為含有該標(biāo)識(shí)A就表示支持,也可以根據(jù)協(xié)議字段中的標(biāo)識(shí)A的取值判斷,例如為I表示支持,為O表示不支持,或者相反的含義。本發(fā)明對(duì)此不加以限定,只強(qiáng)調(diào)定義標(biāo)識(shí)用于進(jìn)行識(shí)別作用。
[0067]客戶端發(fā)起的頁(yè)面請(qǐng)求中含有標(biāo)識(shí)客戶端是否支持增量壓縮方式的標(biāo)識(shí)A。服務(wù)器接收客戶端發(fā)起的頁(yè)面請(qǐng)求,解析頁(yè)面請(qǐng)求,可以得到頁(yè)面請(qǐng)求中含有的各個(gè)字段,包括標(biāo)識(shí)A。
[0068]步驟302:判斷客戶端是否支持增量壓縮方式,如支持轉(zhuǎn)步驟303,如不支持則轉(zhuǎn)步驟314。
[0069]服務(wù)器中的后臺(tái)服務(wù)模塊根據(jù)步驟301中的解析結(jié)果判斷客戶端是否支持增量壓縮方式。該步驟以含有該標(biāo)識(shí)A就表示支持為例說(shuō)明。后臺(tái)服務(wù)模塊如果發(fā)現(xiàn)解析得到的客戶端的頁(yè)面請(qǐng)求中含有標(biāo)識(shí)A,認(rèn)為客戶端是否支持增量壓縮方式,否則不支持。另外,也可以是根據(jù)標(biāo)識(shí)A的取值判斷是否支持增量壓縮。
[0070]需說(shuō)明的是,本發(fā)明服務(wù)器中的后臺(tái)服務(wù)模塊還可以基于客戶端不同的接入點(diǎn),決定是否使用增量壓縮方式。例如對(duì)于帶寬較大不關(guān)注流量的wifi接入點(diǎn),后臺(tái)服務(wù)模塊可以禁止增量壓縮機(jī)制,即認(rèn)為不支持增量壓縮。
[0071]步驟303:確認(rèn)客戶端沒(méi)有提供模板ID。進(jìn)入步驟304。
[0072]后臺(tái)服務(wù)模塊根據(jù)步驟301中的解析結(jié)果,確認(rèn)客戶端發(fā)起的頁(yè)面請(qǐng)求中不含有模板ID,因此確認(rèn)客戶端沒(méi)有提供模板ID,進(jìn)入步驟304。
[0073]步驟304:將原始頁(yè)面數(shù)據(jù)發(fā)送給服務(wù)器中的模型中心代理proxy進(jìn)行模板運(yùn)算。進(jìn)入步驟305。
[0074]后臺(tái)服務(wù)模塊根據(jù)客戶端的請(qǐng)求獲取對(duì)應(yīng)的頁(yè)面,得到原始頁(yè)面數(shù)據(jù),將原始頁(yè)面數(shù)據(jù)發(fā)送給proxy進(jìn)行模板運(yùn)算。
[0075]步驟305:proxy以頁(yè)面url查詢模型中心集群中的模板緩存服務(wù)模塊是否有適用的模板列表。如果有,進(jìn)入步驟306,如果沒(méi)有則轉(zhuǎn)步驟310。
[0076]該步驟中,proxy根據(jù)頁(yè)面地址的url路徑,向模板緩存服務(wù)模塊發(fā)起含url路徑的查詢請(qǐng)求,模板緩存服務(wù)模塊基于url路徑查詢模板ID列表,對(duì)于特定的路徑,向proxy返回模板列表,模板列表里包括I個(gè)或多個(gè)模板ID ;如果沒(méi)有匹配的模板,則返回空列表,proxy根據(jù)模板列表選擇模板ID,再向模板緩存服務(wù)模塊發(fā)起含選擇的模板ID的查詢請(qǐng)求,模板緩存服務(wù)模塊基于模板ID查詢返回模板數(shù)據(jù)。
[0077]步驟306:proxy基于查詢返回的模板列表和模板數(shù)據(jù),依次把原始頁(yè)面進(jìn)行增量壓縮運(yùn)算。進(jìn)入步驟307。
[0078]proxy基于查詢返回的模板列表和模板數(shù)據(jù),依次把原始頁(yè)面與對(duì)應(yīng)的模板數(shù)據(jù)進(jìn)行增量壓縮運(yùn)算。
[0079]增量壓縮運(yùn)算具體為:將原始頁(yè)面數(shù)據(jù)與查找到的對(duì)應(yīng)的模板進(jìn)行差異比較,找到差異數(shù)據(jù)作為增量數(shù)據(jù),再進(jìn)行壓縮。
[0080]本發(fā)明選取第三方open vcdiff的增量壓縮算法作為使用算法。使用該種算法,對(duì)于給定的大小在100KB左右的文件集合,文件兩兩之間的增量壓縮耗時(shí)大致在20ms以下,而增量數(shù)據(jù)還原(解壓)耗時(shí)大致在IOms以下。需要說(shuō)明的是,也可以選取其他的增量壓縮算法。
[0081]步驟307:proxy判斷增量壓縮率是否都低于設(shè)定的閾值model_zip_ratio,如果是,進(jìn)入步驟308,如果都沒(méi)有低于閾值model_zip_ratio,則轉(zhuǎn)步驟310。
[0082]本發(fā)明的后臺(tái)服務(wù)模塊,是對(duì)于增量壓縮的效果進(jìn)行策略判斷,以決定是否使用增量壓縮數(shù)據(jù)。該步驟中以增量壓縮率作為壓縮效果為例進(jìn)行策略判斷。增量壓縮率越小,則壓縮效果越好。
[0083]本發(fā)明預(yù)先設(shè)定一個(gè)增量壓縮率閾值model_zip_ratio,該閾值取經(jīng)驗(yàn)值。如果增量壓縮率低于設(shè)定的閾值,認(rèn)為增量壓縮效果較好,反之認(rèn)為增量壓縮效果不好。
[0084]步驟308:如果有多個(gè)模板的增量壓縮率都低于設(shè)定的閾值,則選取增量壓縮率最低的模板。進(jìn)入步驟309。
[0085]因?yàn)樵隽繅嚎s率低于設(shè)定的閾值,增量壓縮效果較好,因此可以考慮使用增量數(shù)據(jù)。而多個(gè)都低于閾值的話,增量壓縮率最低的模板,效果是最好的,可優(yōu)先選擇。需說(shuō)明的是,如果不選增量壓縮率最低的模板,次低的也可以選擇。將該步驟選取的增量壓縮率低的模板作為客戶端適用的模板。
[0086]步驟309:proxy返回成功的狀態(tài)碼和選中的模板ID給后臺(tái)服務(wù)模塊。轉(zhuǎn)步驟311。[0087]步驟310:proxy返回失敗的狀態(tài)碼給后臺(tái)服務(wù)模塊。進(jìn)入步驟311。
[0088]因?yàn)樵隽繅嚎s率高于設(shè)定的閾值,增量壓縮效果不太好,因此可以考慮不使用增量數(shù)據(jù)。返回失敗的狀態(tài)碼給后臺(tái)服務(wù)模塊。
[0089]步驟311:后臺(tái)服務(wù)模塊將原始頁(yè)面數(shù)據(jù)發(fā)送給模型中心集群的模板運(yùn)算服務(wù)模塊進(jìn)行頁(yè)面采集。進(jìn)入步驟312。
[0090]后臺(tái)服務(wù)模塊將根據(jù)頁(yè)面請(qǐng)求獲取得到的原始頁(yè)面數(shù)據(jù),發(fā)送給模型中心集群的模板運(yùn)算服務(wù)模塊進(jìn)行頁(yè)面采集。
[0091]步驟312:后臺(tái)服務(wù)模塊檢查proxy的應(yīng)答結(jié)果。如果為失敗,則轉(zhuǎn)步驟314。如果成功,進(jìn)入步驟313。
[0092]需說(shuō)明的是,步驟312和步驟311沒(méi)有必然的順序關(guān)系,可以分開(kāi)執(zhí)行,此處只是出于描述的方便按順序敘述。也即步驟309和310可以先到步驟312,再執(zhí)行步驟311。
[0093]步驟313:后臺(tái)服務(wù)模塊在應(yīng)答數(shù)據(jù)中通過(guò)約定的協(xié)議聲明適用的模板ID。進(jìn)入步驟315。
[0094]后臺(tái)服務(wù)模塊在應(yīng)答數(shù)據(jù)中通過(guò)約定的協(xié)議,設(shè)置標(biāo)識(shí)用于聲明適用的模板ID。
[0095]步驟314:后臺(tái)服務(wù)模塊將原始頁(yè)面發(fā)送給客戶端作為應(yīng)答數(shù)據(jù)。進(jìn)入步驟315。
[0096]步驟315:客戶端接收到應(yīng)答數(shù)據(jù),判斷應(yīng)答數(shù)據(jù)中是否含有適用的模板ID,如果是進(jìn)入步驟316,否則轉(zhuǎn)步驟317。
[0097]步驟316:客戶端記錄該模板ID,待空閑時(shí)從后臺(tái)服務(wù)模塊獲取該模板ID相應(yīng)的模板數(shù)據(jù)。進(jìn)入步驟317。
[0098]步驟317:客戶端解析該頁(yè)面并進(jìn)行展現(xiàn)。
[0099]客戶端按現(xiàn)有的處理方式,將頁(yè)面原始數(shù)據(jù)進(jìn)行解析,然后展現(xiàn)。
[0100]圖4是本發(fā)明方法中客戶端向后臺(tái)服務(wù)模塊請(qǐng)求獲取模板的流程圖。在圖3的步驟316中,描述了客戶端將待空閑時(shí)從后臺(tái)服務(wù)模塊獲取該模板ID相應(yīng)的模板數(shù)據(jù)。
[0101]該實(shí)施例描述客戶端向后臺(tái)服務(wù)模塊請(qǐng)求獲取模板的過(guò)程:
當(dāng)客戶端接收到模板ID后,會(huì)在空閑時(shí)間(用戶沒(méi)有觸發(fā)頁(yè)面請(qǐng)求)向服務(wù)器中的后臺(tái)服務(wù)模塊請(qǐng)求進(jìn)行模板更新。該請(qǐng)求及應(yīng)答格式由兩者進(jìn)行約定,與一般的頁(yè)面請(qǐng)求進(jìn)行區(qū)分。后臺(tái)服務(wù)模塊下發(fā)模板時(shí)可進(jìn)行g(shù)zip壓縮以減少傳輸流量。
[0102]該流程涉及客戶端、后臺(tái)服務(wù)模塊、proxy。
[0103]步驟401~402在后臺(tái)服務(wù)模塊中實(shí)現(xiàn),步驟403~405在proxy實(shí)現(xiàn),步驟406~409在后臺(tái)服務(wù)模塊實(shí)現(xiàn),步驟410-412在客戶端實(shí)現(xiàn)。
[0104]如圖4所示,包括步驟:
步驟401:后臺(tái)服務(wù)模塊接收和處理客戶端的模板請(qǐng)求。
[0105]后臺(tái)服務(wù)模塊接收客戶端發(fā)送的含有模板ID的獲取模板請(qǐng)求,解析請(qǐng)求內(nèi)容獲得其中的模板ID。
[0106]步驟402:將從模板請(qǐng)求中獲取的模板ID發(fā)送給proxy。[0107]步驟403:proxy以模板ID為關(guān)鍵字key查詢模型中心集群中的模板緩存服務(wù)模塊,如果沒(méi)有模板ID對(duì)應(yīng)的模板數(shù)據(jù)則轉(zhuǎn)步驟405,如果有則進(jìn)入步驟404。
[0108]proxy向模板緩存服務(wù)模塊發(fā)起含模板ID的查詢請(qǐng)求,模板緩存服務(wù)模塊根據(jù)其中的模板ID進(jìn)行查詢,向proxy返回查詢結(jié)果。
[0109]步驟404:proXy返回模板更新成功的狀態(tài)碼和模板數(shù)據(jù)給后臺(tái)服務(wù)模塊。轉(zhuǎn)步驟406。
[0110]該步驟中,proxy接收到模板緩存服務(wù)模塊返回的模板ID對(duì)應(yīng)的模板數(shù)據(jù)后,將更新成功的狀態(tài)碼和模板數(shù)據(jù)發(fā)送給后臺(tái)服務(wù)模塊。
[0111]步驟405:proxy返回模板更新失敗的狀態(tài)碼給后臺(tái)服務(wù)模塊。進(jìn)入步驟406。
[0112]該步驟中,proxy獲知模板緩存服務(wù)模塊沒(méi)有模板ID對(duì)應(yīng)的模板數(shù)據(jù)后,將更新失敗的狀態(tài)碼發(fā)送給后臺(tái)服務(wù)模塊。
[0113]步驟406:后臺(tái)服務(wù)模塊檢查proxy的應(yīng)答結(jié)果。如果為失敗,則轉(zhuǎn)步驟408,如果成功轉(zhuǎn)步驟407。
[0114]步驟407:后臺(tái)服務(wù)模塊組裝模板數(shù)據(jù)到應(yīng)答數(shù)據(jù)。轉(zhuǎn)步驟409。
[0115]后臺(tái)服務(wù)模塊將模板數(shù)據(jù)按照約定的格式進(jìn)行封裝作為應(yīng)答數(shù)據(jù)。本發(fā)明對(duì)于約定格式不加以限定,只要客戶端和服務(wù)器約定的格式都可以。
[0116]步驟408:后臺(tái)服務(wù)模塊組裝空模板數(shù)據(jù)到應(yīng)答數(shù)據(jù)。轉(zhuǎn)步驟409。
[0117]后臺(tái)服務(wù)模塊將模板數(shù)據(jù)按照約定的格式進(jìn)行封裝作為應(yīng)答數(shù)據(jù)。
[0118]步驟409:后臺(tái)服務(wù)模塊返回應(yīng)答數(shù)據(jù)給客戶端。進(jìn)入步驟410。
[0119]步驟410:客戶端接收到應(yīng)答數(shù)據(jù),判斷其中是否含有模板數(shù)據(jù),如果有則轉(zhuǎn)步驟411,否則轉(zhuǎn)步驟412。
[0120]步驟411:客戶端將該模板數(shù)據(jù)加入到模板緩存隊(duì)列。
[0121]步驟412:處理過(guò)程結(jié)束。
[0122]圖5是本發(fā)明客戶端含模板的頁(yè)面?zhèn)鬏敺椒ǖ牧鞒虉D,該流程涉及客戶端、后臺(tái)服務(wù)模塊、proxy。
[0123]圖5的實(shí)施例是針對(duì)客戶端含有模板的頁(yè)面請(qǐng)求處理的情況。
[0124]步驟50廣504在后臺(tái)服務(wù)模塊中實(shí)現(xiàn),步驟505?513在proxy實(shí)現(xiàn),步驟514?518在后臺(tái)服務(wù)模塊實(shí)現(xiàn),步驟519飛23在客戶端實(shí)現(xiàn)。
[0125]如圖5所示,包括步驟:
步驟501:后臺(tái)服務(wù)模塊接收和處理客戶端的頁(yè)面請(qǐng)求。
[0126]客戶端發(fā)起的頁(yè)面請(qǐng)求中含有表示客戶端是否支持增量壓縮方式的標(biāo)識(shí)A和已保存模板的模板ID。服務(wù)器接收客戶端發(fā)起的頁(yè)面請(qǐng)求,解析頁(yè)面請(qǐng)求,可以得到頁(yè)面請(qǐng)求中含有的標(biāo)識(shí)A和模板ID。
[0127]步驟502:后臺(tái)服務(wù)模塊判斷客戶端是否支持增量壓縮方式,如支持進(jìn)入步驟503,如不支持則轉(zhuǎn)步驟518。
[0128]服務(wù)器中的后臺(tái)服務(wù)模塊根據(jù)步驟501中的解析結(jié)果判斷客戶端是否支持增量壓縮方式。該步驟以含有該標(biāo)識(shí)A就表示支持為例說(shuō)明。后臺(tái)服務(wù)模塊如果發(fā)現(xiàn)解析得到的客戶端的頁(yè)面請(qǐng)求中含有標(biāo)識(shí)A,認(rèn)為客戶端是否支持增量壓縮方式,否則不支持。另外,也可以是根據(jù)標(biāo)識(shí)A的取值判斷是否支持增量壓縮。[0129]步驟503:確認(rèn)客戶端提供了模板ID。進(jìn)入步驟504。
[0130]后臺(tái)服務(wù)模塊根據(jù)步驟501中的解析結(jié)果,確認(rèn)客戶端發(fā)起的頁(yè)面請(qǐng)求中含有模板ID,因此確認(rèn)客戶端提供了模板ID,進(jìn)入步驟504。
[0131]步驟504:后臺(tái)服務(wù)模塊將原始頁(yè)面數(shù)據(jù)及模板ID發(fā)送給proxy進(jìn)行模板運(yùn)算。
[0132]后臺(tái)服務(wù)模塊根據(jù)客戶端的請(qǐng)求獲取對(duì)應(yīng)的頁(yè)面,得到原始頁(yè)面數(shù)據(jù),將原始頁(yè)面數(shù)據(jù)及獲得的模板ID —起發(fā)送給proxy進(jìn)行模板運(yùn)算。
[0133]步驟505:proxy以頁(yè)面url查詢模型中心集群中的模板緩存服務(wù)模塊是否含有適用的模板列表。如果有,進(jìn)入步驟506,如果沒(méi)有則轉(zhuǎn)步驟512。
[0134]該步驟中,proxy根據(jù)頁(yè)面地址的url路徑,向模板緩存服務(wù)模塊發(fā)起含url路徑的查詢請(qǐng)求,模板緩存服務(wù)模塊基于url路徑查詢模板ID列表,對(duì)于特定的路徑,向proxy返回模板列表,模板列表里包括I個(gè)或多個(gè)模板ID ;如果沒(méi)有匹配的模板,則返回空列表,proxy根據(jù)模板列表里選擇模板ID,再向模板緩存服務(wù)模塊發(fā)起含選擇的模板ID的查詢請(qǐng)求,模板緩存服務(wù)模塊基于模板ID查詢返回模板數(shù)據(jù)。
[0135]因?yàn)閷?duì)于客戶端提供的模板ID,有可能已經(jīng)被模型中心集群的模板運(yùn)算服務(wù)模塊進(jìn)行淘汰了。所以proxy會(huì)根據(jù)頁(yè)面url來(lái)查詢當(dāng)前所推薦的適用模板列表。如果客戶端所提供的模板ID還未淘汰,且增量壓縮率符合設(shè)定的閾值,則該次應(yīng)答會(huì)使用增量數(shù)據(jù)進(jìn)行頁(yè)面返回,否則還是會(huì)返回原始頁(yè)面數(shù)據(jù)。
[0136]步驟506:proXy基于查詢返回的模板列表,依次把原始頁(yè)面進(jìn)行增量壓縮運(yùn)算。
[0137]proxy基于查詢返回的模板列表和模板數(shù)據(jù),依次把原始頁(yè)面與對(duì)應(yīng)的模板數(shù)據(jù)進(jìn)行增量壓縮運(yùn)算。
[0138]增量壓縮運(yùn)算具體為:將原始頁(yè)面數(shù)據(jù)與查找到的對(duì)應(yīng)的模板進(jìn)行差異比較,找到差異數(shù)據(jù)作為增量數(shù)據(jù),再進(jìn)行壓縮。
[0139]步驟507:proxy判斷增量壓縮率是否都低于設(shè)定的閾值model_zip_ratio,如果是,進(jìn)入步驟508,如果都沒(méi)有低于設(shè)定的增量壓縮率閾值model_zip_ratio,則轉(zhuǎn)步驟
512。
[0140]本發(fā)明預(yù)先設(shè)定一個(gè)增量壓縮率閾值model_zip_ratio,該閾值取經(jīng)驗(yàn)值。如果增量壓縮率低于設(shè)定的閾值,認(rèn)為增量壓縮效果較好,反之認(rèn)為增量壓縮效果不好。
[0141]步驟508:如果有多個(gè)模板的增量壓縮率都低于設(shè)定的閾值,則proxy選取增量壓縮率最低的模板。進(jìn)入步驟509。
[0142]因?yàn)樵隽繅嚎s率低于設(shè)定的閾值,增量壓縮效果較好,因此可以考慮使用增量數(shù)據(jù)。而多個(gè)都低于閾值的話,增量壓縮率最低的模板,效果是最好的,可優(yōu)先選擇。需說(shuō)明的是,如果不選增量壓縮率最低的模板,次低的也可以選擇。
[0143]步驟509:proxy判斷選中的模板ID是否已由客戶端提供。如果是,進(jìn)入步驟510,否則轉(zhuǎn)步驟511。
[0144]步驟510:proXy返回成功的狀態(tài)碼、模板ID和增量數(shù)據(jù)給后臺(tái)服務(wù)模塊。轉(zhuǎn)步驟
513。
[0145]步驟511:proXy返回成功的狀態(tài)碼和選中的模板ID給后臺(tái)服務(wù)模塊。轉(zhuǎn)步驟513。
[0146]步驟512:proxy返回失敗的狀態(tài)碼給后臺(tái)服務(wù)模塊。進(jìn)入步驟513。[0147]因?yàn)樵隽繅嚎s率高于設(shè)定的閾值,增量壓縮效果不太好,因此可以考慮不使用增量數(shù)據(jù)。返回失敗的狀態(tài)碼給后臺(tái)服務(wù)模塊。
[0148]步驟513:后臺(tái)服務(wù)模塊把原始頁(yè)面數(shù)據(jù)發(fā)送給模型中心集群的模板運(yùn)算服務(wù)模塊進(jìn)行頁(yè)面采集。進(jìn)入步驟514。
[0149]后臺(tái)服務(wù)模塊將根據(jù)頁(yè)面請(qǐng)求獲取得到的原始頁(yè)面數(shù)據(jù),發(fā)送給模型中心集群的模板運(yùn)算服務(wù)模塊進(jìn)行頁(yè)面采集。
[0150]步驟514:后臺(tái)服務(wù)模塊檢查proxy的應(yīng)答結(jié)果。如果為成功,進(jìn)入步驟515,如果為失敗,則轉(zhuǎn)步驟518。
[0151]需說(shuō)明的是,步驟514和步驟513沒(méi)有必然的順序關(guān)系,可以分開(kāi)執(zhí)行,此處只是出于描述的方便設(shè)置順序。也即步驟510、511和512也可以分別先進(jìn)入步驟514,再執(zhí)行步驟 513。
[0152]步驟515:后臺(tái)服務(wù)模塊判斷模板ID是否和客戶端提供的一致,如是進(jìn)入步驟516,否則轉(zhuǎn)步驟517。
[0153]步驟516:后臺(tái)服務(wù)模塊將模板ID及增量數(shù)據(jù)發(fā)送給客戶端作為應(yīng)答數(shù)據(jù)。轉(zhuǎn)步驟 519。
[0154]步驟517:后臺(tái)服務(wù)模塊組裝適用的模板ID到應(yīng)答數(shù)據(jù)發(fā)送給客戶端。進(jìn)入步驟521。
[0155]因?yàn)榕袛喑瞿0錓D和客戶端提供的不一致,因此后臺(tái)服務(wù)模塊會(huì)另外為客戶端選擇可適用的模板ID。
[0156]步驟518:后臺(tái)服務(wù)模塊將原始頁(yè)面發(fā)送給客戶端作為應(yīng)答數(shù)據(jù)。進(jìn)入步驟519。
[0157]步驟519:客戶端接收到應(yīng)答數(shù)據(jù),判斷應(yīng)答數(shù)據(jù)中是否含有增量數(shù)據(jù),如果是,進(jìn)入步驟520,否則轉(zhuǎn)步驟521。
[0158]步驟520:客戶端根據(jù)模板ID從模板緩存隊(duì)列中查找到對(duì)應(yīng)的模板數(shù)據(jù),使用增量解壓縮算法解壓增量數(shù)據(jù),還原為原始頁(yè)面。進(jìn)入步驟523。
[0159]客戶端根據(jù)應(yīng)答數(shù)據(jù)中的模板ID,找到對(duì)應(yīng)的模板,使用同樣的增量解壓縮算法進(jìn)行解壓,還原為原始的頁(yè)面數(shù)據(jù)。
[0160]步驟521:客戶端判斷應(yīng)答數(shù)據(jù)中是否含有適用的模板ID,如果是,進(jìn)入步驟522,否則轉(zhuǎn)步驟523。
[0161]之前已經(jīng)判斷出模板ID和客戶端提供的不一致,后臺(tái)服務(wù)模塊為客戶端另外選擇了可適用的模板ID。該步驟則判斷應(yīng)答數(shù)據(jù)中是否提供了可適用的模板ID。
[0162]步驟522:客戶端記錄該適用的模板ID,待空閑時(shí)從后臺(tái)服務(wù)模塊獲取適用的模板ID所對(duì)應(yīng)的模板數(shù)據(jù)。進(jìn)入步驟523。
[0163]空閑時(shí)從后臺(tái)服務(wù)模塊獲取適用的模板ID所對(duì)應(yīng)的模板數(shù)據(jù)的過(guò)程可以參見(jiàn)圖4所描述的流程。
[0164]步驟523:客戶端解析該頁(yè)面并進(jìn)行展現(xiàn)。
客戶端按現(xiàn)有的處理方式,將頁(yè)面原始數(shù)據(jù)進(jìn)行解析,然后展現(xiàn)。
[0165]可以發(fā)現(xiàn),利用本發(fā)明提出的方法,能提升頁(yè)面數(shù)據(jù)壓縮效果,從而更好減少傳輸耗時(shí)和節(jié)省流量。具體,如果頁(yè)面數(shù)據(jù)大小為100KB,按照現(xiàn)有技術(shù)的壓縮處理方法,需傳輸?shù)捻?yè)面數(shù)據(jù)減小為35KB左右,如果是在2G網(wǎng)絡(luò)傳輸,那么傳輸耗時(shí)大概1.1秒左右,而應(yīng)用本發(fā)明的增量壓縮處理方式后,需傳輸?shù)捻?yè)面數(shù)據(jù)減少為18KB左右,傳輸耗時(shí)大概0.5秒左右??梢园l(fā)現(xiàn),本發(fā)明方法比現(xiàn)有技術(shù)實(shí)現(xiàn)了更好的效果,達(dá)到很好的節(jié)省流量效果。
[0166]進(jìn)一步舉例說(shuō)明,用戶在瀏覽頁(yè)面時(shí)通常有一定的連續(xù)性,即訪問(wèn)同一站點(diǎn)的統(tǒng)一路徑下的頁(yè)面,比如連續(xù)訪問(wèn)新浪新聞?lì)l道的不同內(nèi)容頁(yè)面。而大部分站點(diǎn)對(duì)于頁(yè)面都會(huì)使用同一套或者相近的頁(yè)面模板通過(guò)填充數(shù)據(jù)生成頁(yè)面,彼此之間的頁(yè)面相似度比較高。延伸來(lái)看,對(duì)于客戶端連續(xù)訪問(wèn)過(guò)同一站點(diǎn)同一路徑下的兩個(gè)相似度極高的頁(yè)面A及A’,本發(fā)明的服務(wù)器和客戶端約定以頁(yè)面A作為字典,在傳輸頁(yè)面A’時(shí)采用增量壓縮的方式,那么實(shí)際傳輸?shù)脑隽繑?shù)據(jù)的流量就極少。特別的,如果頁(yè)面A和頁(yè)面A’是同一個(gè)頁(yè)面的先后刷新,增量數(shù)據(jù)將會(huì)接近于O (前提是該頁(yè)面的動(dòng)態(tài)生成數(shù)據(jù)極少)。
[0167]上述詳細(xì)介紹了本發(fā)明的方法流程,相應(yīng)的,本發(fā)明提供一種服務(wù)器和系統(tǒng)。
[0168]如圖6所示,是本發(fā)明服務(wù)器的結(jié)構(gòu)示意圖。
[0169]本發(fā)明提供的服務(wù)器,包括模型中心代理601和后臺(tái)服務(wù)模塊602:
模型中心代理601,用于在后臺(tái)服務(wù)模塊602接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),傳輸給后臺(tái)服務(wù)模塊602 ;
后臺(tái)服務(wù)模塊602,用于接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求,將模型中心代理601傳輸?shù)乃鲈隽繑?shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
[0170]進(jìn)一步的,其中所述模型中心代理601包括:獲取單元6011、增量處理單元6012。
[0171]獲取單元6011,用于在所述后臺(tái)服務(wù)模塊602接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板;
增量處理單元6012,用于依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊602。
[0172]進(jìn)一步的,所述模型中心代理601還包括:壓縮比較單元6013。
[0173]壓縮比較單元6013,用于在所述增量處理單元6012得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值;若是,所述增量處理單元6012從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊602 ;若否,所述增量處理單元6012傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊602,由所述后臺(tái)服務(wù)模塊602只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。或者,
壓縮比較單元6013,用于在所述增量處理單元6012得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值;若是,所述增量處理單元6012從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊602,由所述后臺(tái)服務(wù)模塊602將選擇的模板標(biāo)識(shí)發(fā)送給客戶端;若否,所述增量處理單元傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊602,由所述后臺(tái)服務(wù)模塊602只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
[0174]進(jìn)一步的,所述模型中心代理601還包括:標(biāo)識(shí)比較單元6014。
[0175]標(biāo)識(shí)比較單元6014,用于判斷所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)是否已由所述客戶端提供,若是,所述增量處理單元6012再進(jìn)行所述將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊602的步驟,若否,所述增量處理單元6012將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊602,由所述后臺(tái)服務(wù)模塊602將選擇的模板標(biāo)識(shí)發(fā)送給客戶端。
[0176]本發(fā)明還提供一種頁(yè)面?zhèn)鬏斚到y(tǒng),參見(jiàn)前面圖1所示結(jié)構(gòu),包括服務(wù)器、客戶端和模型中心集群。
[0177]客戶端,用于向服務(wù)器發(fā)送頁(yè)面請(qǐng)求,接收服務(wù)器返回的頁(yè)面應(yīng)答數(shù)據(jù);
服務(wù)器,用于在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)
求獲取頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端;
模型中心集群,用于向所述服務(wù)器返回頁(yè)面模板。
[0178]服務(wù)器更具體的結(jié)構(gòu)具體如圖6所示,此處不再贅述??蛻舳耍梢栽O(shè)置于移動(dòng)終端上。
[0179]進(jìn)一步的,所述模型中心集群還包括模板緩存服務(wù)模塊和模板運(yùn)算服務(wù)模塊。
[0180]模板緩存服務(wù)模塊,用于接收所述模型中心代理發(fā)起的第一請(qǐng)求后,根據(jù)網(wǎng)頁(yè)地址進(jìn)行查詢,向所述模型中心代理返回含模板標(biāo)識(shí)的頁(yè)面模板列表,在接收所述模型中心代理發(fā)起的含有所述模板標(biāo)識(shí)的第二請(qǐng)求后,根據(jù)所述模板標(biāo)識(shí)查找對(duì)應(yīng)的模板后返回給所述模型中心代理;
模板運(yùn)算服務(wù)模塊,用于根據(jù)從所述模型中心代理采集的頁(yè)面數(shù)據(jù)進(jìn)行運(yùn)算,生成模板傳輸給所述模板緩存服務(wù)模塊進(jìn)行存儲(chǔ)。
[0181]上述各裝置各模塊的具體交互過(guò)程,參見(jiàn)前面方法流程的描述,此處不再贅述。
[0182]此外,典型地,本發(fā)明所述的移動(dòng)終端可為各種具有藍(lán)牙功能的手持終端設(shè)備,例如具有藍(lán)牙功能的手機(jī)、個(gè)人數(shù)字助理(PDA)。
[0183]此外,根據(jù)本發(fā)明的方法還可以被實(shí)現(xiàn)為由移動(dòng)終端中的處理器(比如CPU)執(zhí)行的計(jì)算機(jī)程序,并且存儲(chǔ)在移動(dòng)終端的存儲(chǔ)器中。在該計(jì)算機(jī)程序被處理器執(zhí)行時(shí),執(zhí)行本發(fā)明的方法中限定的上述功能。
[0184]此外,根據(jù)本發(fā)明的方法還可以實(shí)現(xiàn)為一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì),在該計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)有用于執(zhí)行本發(fā)明的方法中限定的上述功能的計(jì)算機(jī)程序。
[0185]此外,上述方法步驟以及系統(tǒng)單元也可以利用控制器以及用于存儲(chǔ)使得控制器實(shí)現(xiàn)上述步驟或單元功能的計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備實(shí)現(xiàn)。
[0186]本領(lǐng)域技術(shù)人員還將明白的是,結(jié)合這里的公開(kāi)所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說(shuō)明硬件和軟件的這種可互換性,已經(jīng)就各種示意性組件、方塊、模塊、電路和步驟的功能對(duì)其進(jìn)行了一般性的描述。這種功能是被實(shí)現(xiàn)為軟件還是被實(shí)現(xiàn)為硬件取決于具體應(yīng)用以及施加給整個(gè)系統(tǒng)的設(shè)計(jì)約束。本領(lǐng)域技術(shù)人員可以針對(duì)每種具體應(yīng)用以各種方式來(lái)實(shí)現(xiàn)所述的功能,但是這種實(shí)現(xiàn)決定不應(yīng)被解釋為導(dǎo)致脫離本發(fā)明的范圍。
[0187]盡管前面公開(kāi)的內(nèi)容示出了本發(fā)明的示例性實(shí)施例,但是應(yīng)當(dāng)注意,在不背離權(quán)利要求限定的本發(fā)明的范圍的前提下,可以進(jìn)行多種改變和修改。根據(jù)這里描述的發(fā)明實(shí)施例的方法權(quán)利要求的功能、步驟和/或動(dòng)作不需以任何特定順序執(zhí)行。此外,盡管本發(fā)明的元素可以以個(gè)體形式描述或要求,但是也可以設(shè)想多個(gè),除非明確限制為單數(shù)。
[0188]雖然如上參照?qǐng)D描述了根據(jù)本發(fā)明的各個(gè)實(shí)施例進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,對(duì)上述本發(fā)明所提出的各個(gè)實(shí)施例,還可以在不脫離本
【發(fā)明內(nèi)容】
的基礎(chǔ)上做出各種改進(jìn)。
【權(quán)利要求】
1.一種頁(yè)面?zhèn)鬏斕幚矸椒?包括: 服務(wù)器在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板; 在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù); 將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
2.根據(jù)權(quán)利要求1所述的方法,其中: 服務(wù)器中的模型中心代理在服務(wù)器中的后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板; 所述模型中心代理在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板; 所述模型中心代理依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊; 所述后臺(tái)服務(wù)模塊將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
3.根據(jù)權(quán)利要求2所述的方法,所述服務(wù)器中的模型中心代理在服務(wù)器中的后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板包括: 所述模型中心代理接收所述后臺(tái)服務(wù)模塊傳輸?shù)母鶕?jù)所述多個(gè)客戶端的頁(yè)面請(qǐng)求而提供的內(nèi)容,所述提供的內(nèi)容包括:后臺(tái)服務(wù)模塊在所述客戶端的頁(yè)面請(qǐng)求不包括模板標(biāo)識(shí)時(shí),提供的根據(jù)所述頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù),或者,在所述客戶端的頁(yè)面請(qǐng)求包括模板標(biāo)識(shí)時(shí),提供的根據(jù)所述頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)和所述模板標(biāo)識(shí); 所述模型中心代理在接收所述提供的內(nèi)容后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板。
4.根據(jù)權(quán)利要求3所述的方法,在所述客戶端的頁(yè)面請(qǐng)求包括模板標(biāo)識(shí)時(shí),還包括: 所述模型中心代理在得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否都低于第一設(shè)定閾值, 若是,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊;若否,傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
5.根據(jù)權(quán)利要求4所述的方法,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率之后還包括: 判斷所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)是否已由所述客戶端提供, 若是,再進(jìn)行所述將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊的步驟, 若否,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端。
6.根據(jù)權(quán)利要求3所述的方法,在所述客戶端的頁(yè)面請(qǐng)求不包括模板標(biāo)識(shí)時(shí),還包括: 所述模型中心代理在得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否都低于第一設(shè)定閾值, 若是,從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端; 若否,傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
7.根據(jù)權(quán)利要求5或6所述的方法,所述將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端之后還包括: 后臺(tái)服務(wù)模塊接收所述客戶端在空閑時(shí)發(fā)起的含所述選擇的模板標(biāo)識(shí)的模板請(qǐng)求,將從所述模板請(qǐng)求中獲取的模板標(biāo)識(shí)傳輸給所述模型中心代理; 所述模型中心代理根據(jù)所述模板標(biāo)識(shí)向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板,傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊下發(fā)給所述客戶端進(jìn)行存儲(chǔ); 其中,所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板由所述模型中心集群預(yù)先根據(jù)從所述模型中心代理采集的頁(yè)面數(shù)據(jù)生成。
8.一種服務(wù)器,包括模型中心代理和后臺(tái)服務(wù)模塊: 模型中心代理,用于在后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取`頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),傳輸給后臺(tái)服務(wù)模塊; 后臺(tái)服務(wù)模塊,用于接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求,將模型中心代理傳輸?shù)乃鲈隽繑?shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其中所述模型中心代理包括: 獲取單元,用于在所述后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板; 增量處理單元,用于依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,所述模型中心代理還包括: 壓縮比較單元,用于在所述增量處理單元得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值; 若是,所述增量處理單元從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)1吳塊; 若否,所述增量處理單元傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
11.根據(jù)權(quán)利要求10所述的服務(wù)器,所述模型中心代理還包括: 標(biāo)識(shí)比較單元,用于判斷所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)是否已由所述客戶端提供, 若是,所述增量處理單元再進(jìn)行所述將所選擇的低的增量壓縮率對(duì)應(yīng)的增量數(shù)據(jù)、模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊的步驟, 若否,所述增量處理單元將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端。
12.根據(jù)權(quán)利要求9所述的服務(wù)器,所述模型中心代理還包括: 壓縮比較單元,用于在所述增量處理單元得到增量數(shù)據(jù)之后,判斷增量壓縮運(yùn)算的增量壓縮率是否低于第一設(shè)定閾值; 若是,所述增量處理單元從多個(gè)都低于第一設(shè)定閾值的增量壓縮率中選擇一個(gè)低的增量壓縮率,將所選擇的低的增量壓縮率對(duì)應(yīng)的模板標(biāo)識(shí)和成功狀態(tài)碼傳輸給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊將選擇的模板標(biāo)識(shí)發(fā)送給客戶端; 若否,所述增量處理單元傳輸失敗狀態(tài)碼給所述后臺(tái)服務(wù)模塊,由所述后臺(tái)服務(wù)模塊只將根據(jù)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)發(fā)送給對(duì)應(yīng)的客戶端。
13.一種頁(yè)面?zhèn)鬏斚到y(tǒng),包括服務(wù)器、客戶端和模型中心集群: 客戶端 ,用于向服務(wù)器發(fā)送頁(yè)面請(qǐng)求,接收服務(wù)器返回的頁(yè)面應(yīng)答數(shù)據(jù); 服務(wù)器,用于在接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回頁(yè)面模板后,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端; 模型中心集群,用于向所述服務(wù)器返回頁(yè)面模板。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),所述服務(wù)器還包括模型中心代理和后臺(tái)服務(wù)模塊: 模型中心代理,用于在所述后臺(tái)服務(wù)模塊接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求后,按照網(wǎng)頁(yè)地址向模型中心集群請(qǐng)求獲取頁(yè)面模板,在所述模型中心集群返回含模板標(biāo)識(shí)的頁(yè)面模板列表后,根據(jù)所述頁(yè)面模板列表中的模板標(biāo)識(shí)后再向所述模型中心集群獲取所述模板標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面模板,依次將根據(jù)多個(gè)頁(yè)面請(qǐng)求獲取的頁(yè)面數(shù)據(jù)與從所述模型中心集群獲取到的頁(yè)面模板進(jìn)行增量壓縮運(yùn)算,得到增量數(shù)據(jù),將增量數(shù)據(jù)傳輸給所述后臺(tái)服務(wù)模塊;后臺(tái)服務(wù)模塊,用于接收多個(gè)客戶端發(fā)送的頁(yè)面請(qǐng)求,接收所述模型中心代理返回的增量數(shù)據(jù),將所述增量數(shù)據(jù)作為頁(yè)面應(yīng)答數(shù)據(jù)傳輸給對(duì)應(yīng)的客戶端。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),所述模型中心集群還包括模板緩存服務(wù)模塊和模板運(yùn)算服務(wù)模塊; 模板緩存服務(wù)模塊,用于接收所述模型中心代理發(fā)起的第一請(qǐng)求后,根據(jù)網(wǎng)頁(yè)地址進(jìn)行查詢,向所述模型中心代理返回含模板標(biāo)識(shí)的頁(yè)面模板列表,在接收所述模型中心代理發(fā)起的含有所述模板標(biāo)識(shí)的第二請(qǐng)求后,根據(jù)所述模板標(biāo)識(shí)查找對(duì)應(yīng)的模板后返回給所述模型中心代理; 模板運(yùn)算服務(wù)模塊,用于根據(jù)從所述模型中心代理采集的頁(yè)面數(shù)據(jù)進(jìn)行運(yùn)算,生成模板傳輸給所述模板緩存服務(wù)模塊進(jìn)行存儲(chǔ)。
【文檔編號(hào)】H04L29/08GK103731492SQ201310745193
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】吳偉勇, 江蔚然 申請(qǐng)人:優(yōu)視科技有限公司