專利名稱:適用于wap 服務(wù)的緩存架構(gòu)系統(tǒng)及其緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及緩存技術(shù),特別是涉及一種適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng)及其緩存方法。
背景技術(shù):
隨著手機(jī)硬件技術(shù)的迅速發(fā)展,手機(jī)頁面展示功能越來越強(qiáng),從WAP1. 2頁面到WAP2. O頁面。為了獲得更好的用戶體驗(yàn),服務(wù)提供商需要進(jìn)行頁面適配,即根據(jù)不同的手機(jī)類型,為用戶提供不同類型的頁面視圖。為了解決巨大的WAP頁面訪問壓力,會使用到緩存系統(tǒng)。當(dāng)WAP服務(wù)系統(tǒng)中適配多種頁面格式后,會導(dǎo)致緩存系統(tǒng)對內(nèi)存的要求無限增長。同時,現(xiàn)有的緩存系統(tǒng)還無法根據(jù)數(shù)據(jù)訪問頻率設(shè)置優(yōu)先級,內(nèi)存利用率低,不能快速清理失效內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng)及其緩存方法,用于解決現(xiàn)有緩存系統(tǒng)無法根據(jù)數(shù)據(jù)有效性設(shè)置失效時間,無法快速命中常用數(shù)據(jù),查詢速度慢以及無法充分利用內(nèi)存資源的問題。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),包括WAP服務(wù)器、緩存系統(tǒng),其特征在于,所述WAP服務(wù)器接收用戶HTTP請求,適配頁面格式,調(diào)用所述緩存系統(tǒng)獲取緩存結(jié)果,并根據(jù)所述緩存結(jié)果生成WAP頁面,以向用戶展示;所述緩存系統(tǒng)依次查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù),返回緩存結(jié)果至所述WAP服務(wù)器。所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其中,所述緩存系統(tǒng)當(dāng)查詢到一代緩存數(shù)據(jù)時,修改該一代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,當(dāng)未查詢到一代緩存數(shù)據(jù)時,則進(jìn)一步查詢二代緩存數(shù)據(jù),若查詢到二代緩存數(shù)據(jù),則修改該二代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,若未查詢到二代緩存數(shù)據(jù),則返回空數(shù)據(jù)。所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其中,所述緩存架構(gòu)系統(tǒng)還包括數(shù)據(jù)庫系統(tǒng),連接所述WAP服務(wù)器,用于存儲數(shù)據(jù)信息以供所述WAP服務(wù)器讀取或記錄。 所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其中,所述WAP服務(wù)器當(dāng)所述緩存系統(tǒng)未查詢到二代緩存數(shù)據(jù)時,訪問所述數(shù)據(jù)庫系統(tǒng)獲取頁面模板數(shù)據(jù),并根據(jù)該頁面模板數(shù)據(jù)生成所述WAP頁面。所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其中,所述緩存系統(tǒng)還通過一自維護(hù)應(yīng)用程序依次清理一代緩存、二代緩存。為了實(shí)現(xiàn)上述目的,本發(fā)明還提供一種適用于WAP服務(wù)的緩存方法,其特征在于,包括步驟一,WAP服務(wù)器接收用戶HTTP請求,適配頁面格式,調(diào)用所述緩存系統(tǒng);步驟二,所述緩存系統(tǒng)依次查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù),并返回該緩存結(jié)構(gòu)至所述WAP服務(wù)器;步驟三,所述WAP服務(wù)器根據(jù)所述緩存結(jié)果生成WAP頁面,以向用戶展示。所述的適用于WAP服務(wù)的緩存方法,其中,所述步驟一中,還包括所述WAP服務(wù)器通過識別用戶終端型號適配頁面格式。所述的適用于WAP服務(wù)的緩存方法,其中,所述步驟二中,還包括
所述緩存系統(tǒng)當(dāng)查詢到一代緩存數(shù)據(jù)時,修改該一代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,當(dāng)未查詢到一代緩存數(shù)據(jù)時,則進(jìn)一步查詢二代緩存數(shù)據(jù),若查詢到二代緩存數(shù)據(jù),則修改該二代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,若未查詢到二代緩存數(shù)據(jù),則返回空數(shù)據(jù)。所述的適用于WAP服務(wù)的緩存方法,其中,所述步驟二中,還包括所述緩存系統(tǒng)通過一自維護(hù)應(yīng)用程序依次清理一代緩存、二代緩存的步驟,該步驟包括查詢一代緩存數(shù)據(jù);判斷遍歷一代緩存數(shù)據(jù)是否完成,若完成,讀取二代緩存數(shù)據(jù),進(jìn)入下一步,否則判斷遍歷一代緩存數(shù)據(jù)是否超時,若超時,則將一代緩存數(shù)據(jù)移入二代緩存,并繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成,若未超時,則繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成;判斷遍歷二代緩存數(shù)據(jù)是否完成,若完成,則結(jié)束,否則判斷遍歷二代緩存數(shù)據(jù)是否超時,若超時,則將二代緩存數(shù)據(jù)移出二代緩存,繼續(xù)讀取二代緩存數(shù)據(jù),若未超時,則繼續(xù)讀取二代緩存數(shù)據(jù)。所述的適用于WAP服務(wù)的緩存方法,其中,所述步驟三中,還包括當(dāng)所述緩存系統(tǒng)未查詢到二代緩存數(shù)據(jù)時,所述WAP服務(wù)器訪問一數(shù)據(jù)庫系統(tǒng)獲取頁面模板數(shù)據(jù),并根據(jù)該頁面模板數(shù)據(jù)生成所述WAP頁面。與現(xiàn)有技術(shù)相比,本發(fā)明的有益技術(shù)效果在于本發(fā)明能夠根據(jù)數(shù)據(jù)有效性設(shè)置失效時間,實(shí)現(xiàn)了緩存內(nèi)容的分代管理,能夠快速命中最常用數(shù)據(jù),提高了緩存命中率,加快響應(yīng)速度;同時還能夠高效、充分地利用緩存系統(tǒng)內(nèi)存資源,節(jié)約緩存系統(tǒng)內(nèi)存。本發(fā)明的緩存系統(tǒng)還實(shí)現(xiàn)了多種頁面格式適配。
圖I是本發(fā)明的系統(tǒng)架構(gòu)圖; 圖2是本發(fā)明的WAP服務(wù)流程圖;圖3是本發(fā)明的緩存系統(tǒng)自維護(hù)流程圖。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。如圖I所示,是本發(fā)明的系統(tǒng)架構(gòu),該系統(tǒng)包括WAP服務(wù)器10、數(shù)據(jù)庫系統(tǒng)20、緩存系統(tǒng)30。WAP服務(wù)器10設(shè)置WAP服務(wù)接口、數(shù)據(jù)庫訪問接口、緩存訪問接口。WAP服務(wù)器10通過WAP服務(wù)接口(即HTTP服務(wù)接口)接收用戶HTTP請求,通過數(shù)據(jù)庫訪問接口與數(shù)據(jù)庫系統(tǒng)20之間進(jìn)行數(shù)據(jù)存取,通過緩存訪問接口與緩存系統(tǒng)30進(jìn)行緩存數(shù)據(jù)存取。WAP服務(wù)器10當(dāng)用戶訪問WAP頁面時,接收用戶HTTP請求,根據(jù)用戶HTTP請求識別用戶終端/設(shè)備型號信息,根據(jù)用戶終端型號信息適配頁面格式,其調(diào)用緩存系統(tǒng)30獲得查詢結(jié)果(即頁面模板數(shù)據(jù)),根據(jù)查詢結(jié)果生成最終WAP頁面,將最終WAP頁面返回至用戶瀏覽器,以向用戶展現(xiàn)。WAP服務(wù)器10首先調(diào)用緩存訪問接口,通過緩存系統(tǒng)30依次查詢一代緩存、二代緩存,如均未能查詢到結(jié)果時,則調(diào)用數(shù)據(jù)庫訪問接口,從數(shù)據(jù)庫系統(tǒng)20中讀出頁面模板數(shù)據(jù),并存入一代緩存,再經(jīng)過渲染處理后,返回給用戶。數(shù)據(jù)庫系統(tǒng)20用于存儲數(shù)據(jù)信息,如產(chǎn)品信息、用戶信息等,供WAP服務(wù)器10讀 取或記錄。緩存系統(tǒng)30通過存取接口與WAP服務(wù)器10進(jìn)行緩存數(shù)據(jù)存取,并將一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù)分別存儲在一代緩存、二代緩存中。一代緩存數(shù)據(jù)與二代緩存數(shù)據(jù)的類型相同,一代緩存在較長時間沒有被讀取或更新時,將一代緩存數(shù)據(jù)轉(zhuǎn)移至二代緩存。緩存系統(tǒng)30查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù)得到的是頁面模板數(shù)據(jù),WAP服務(wù)器10對頁面模板數(shù)據(jù)經(jīng)過渲染處理(即更新頁面模板中的用戶信息等個性化數(shù)據(jù))后,生成最終WAP頁面。緩存系統(tǒng)30查詢一代緩存,若命中(即在一代緩存中查詢到緩存數(shù)據(jù)),修改鍵值對應(yīng)的最后訪問時間,返回該緩存數(shù)據(jù),若未命中(即在一代緩存中未查詢到緩存數(shù)據(jù)),則查詢二代緩存,若命中,修改鍵值對應(yīng)的最后訪問時間,返回該緩存數(shù)據(jù),若仍未命中,則返回空數(shù)據(jù)。數(shù)據(jù)存儲在一代緩存/ 二代緩存中時,使用鍵-值對格式,值中含此數(shù)據(jù)的最后訪問時間,修改鍵-值對應(yīng)的最后訪問時間,即是修改鍵-值對中的時間信息。緩存系統(tǒng)30通過自維護(hù)應(yīng)用程序來保持緩存有效性,采用定時方式運(yùn)行。自維護(hù)應(yīng)用程序啟動后,會依次清理一代緩存、二代緩存,清理內(nèi)存空間。如圖2所示,是本發(fā)明的WAP服務(wù)流程圖。結(jié)合圖I,該流程具體包括如下步驟步驟200,開始;步驟201,用戶訪問WAP服務(wù)器10 ;步驟202,WAP服務(wù)器10接收用戶HTTP請求,識別用戶終端型號(如用戶手機(jī)型號),適配頁面格式;步驟203 ;WAP服務(wù)器10調(diào)用緩存系統(tǒng)30,緩存系統(tǒng)30從一代緩存中查詢一代緩存數(shù)據(jù),判斷是否命中,命中后,則修改鍵值對應(yīng)的最后訪問時間,返回緩存數(shù)據(jù),若未命中,從二代緩存中查詢二代緩存數(shù)據(jù),判斷是否命中,命中后,則修改鍵值對應(yīng)的最后訪問時間,返回緩存數(shù)據(jù),若仍未命中,則生成緩存數(shù)據(jù),寫入緩存數(shù)據(jù),并返回空數(shù)據(jù);步驟204,WAP服務(wù)器10根據(jù)緩存系統(tǒng)30返回的查詢結(jié)果(該查詢結(jié)果為空數(shù)據(jù)除外),生成最終WAP頁面,返回給用戶瀏覽器,以向用戶展現(xiàn);
步驟205,結(jié)束。進(jìn)一步地,步驟202中,WAP頁面分為WML和XHTML,WML頁面技術(shù)成形較早,低端機(jī)型支持,XHTML目前使用廣泛,中高端及智能終端支持。用戶HTTP請求中含有User-Agent信息,如諾基亞N73的常見User-Agent信息如下“NokiaN73-l/2. 0628. O. O. 1S60/3. OProf i le/MIDP-2. OConf igurat ion/CLDC-1. I. ”WAP服務(wù)器10根據(jù)User-Agent中的關(guān)鍵字,判斷出用戶終端/設(shè)備型號,再根據(jù)用戶終端/設(shè)備型號,獲取支持的頁面類型,諾基亞N73支持的頁面類型為XHTML類型。進(jìn)一步地,步驟203中,WAP服務(wù)器10需要頁面模板數(shù)據(jù)時,首先查詢一代緩存,
一代緩存中存儲的是最常用的頁面模板數(shù)據(jù),所以大部分的頁面模板數(shù)據(jù)都可以在一代緩存中獲取。如果一代緩存中未查詢到,則查詢二代緩存,若在二代緩存中也未找到,再訪問數(shù)據(jù)庫系統(tǒng)20,獲取頁面模板數(shù)據(jù)。進(jìn)一步地,步驟203中,緩存系統(tǒng)30寫入緩存數(shù)據(jù)的作用在于下次再有同樣請求,直接從緩存中查詢數(shù)據(jù)。進(jìn)一步地,步驟204中,WAP服務(wù)器10當(dāng)返回的查詢結(jié)果為Velocity頁面模板數(shù)據(jù)時,依賴Velocity模板引擎生成最終WAP頁面。進(jìn)一步地,步驟204中,WAP服務(wù)器10根據(jù)用戶User-Agent,如果判定為使用WML頁面類型,則取出頁面模板數(shù)據(jù),經(jīng)過渲染后返回頁面。如果判定為使用XHTML頁面類型,則取出頁面模板數(shù)據(jù),經(jīng)過渲染后返回頁面。如圖3所示,是本發(fā)明的緩存系統(tǒng)自維護(hù)流程圖。結(jié)合圖1,該流程具體包括如下步驟步驟300,開始;步驟301,緩存系統(tǒng)30啟動緩存自維護(hù)流程;步驟302,從一代緩存中查詢一代緩存數(shù)據(jù);步驟303,判斷遍歷一代緩存數(shù)據(jù)是否完成,若完成,則進(jìn)入下一步驟304 ;若未完成,則進(jìn)一步判斷遍歷一代緩存數(shù)據(jù)是否超時,若超時,則將一代緩存數(shù)據(jù)移入二代緩存中,并繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成,若未超時,則繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成;步驟304,從二代緩存中查詢二代緩存數(shù)據(jù);步驟305,判斷遍歷二代緩存數(shù)據(jù)是否完成,若完成,則結(jié)束;若未完成,則進(jìn)一步判斷遍歷二代緩存數(shù)據(jù)是否超時,若超時,則將二代緩存數(shù)據(jù)移出二代緩存,并返回步驟304 ;若未超時,則返回步驟304 ;步驟306,結(jié)束。上述自維護(hù)流程通過配置系統(tǒng)定時任務(wù)調(diào)用。本發(fā)明提出的緩存系統(tǒng)已經(jīng)實(shí)際地發(fā)展出完整的應(yīng)用程序,并在商用的大型WAP站中,已經(jīng)過無數(shù)次的運(yùn)行考驗(yàn)。本發(fā)明能夠適配多種WAP頁面格式;緩存命中率高,查詢速度快;CPU、內(nèi)存使用穩(wěn)定,內(nèi)存檢測沒有泄露。
本發(fā)明實(shí)現(xiàn)了緩存數(shù)據(jù)的分代管理,還通過設(shè)置鍵值對應(yīng)的最后訪問時間提供了一種緩存數(shù)據(jù)鍵值生成方法。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變 形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),包括:WAP服務(wù)器、緩存系統(tǒng),其特征在于, 所述WAP服務(wù)器接收用戶HTTP請求,適配頁面格式,調(diào)用所述緩存系統(tǒng)獲取緩存結(jié)果,并根據(jù)所述緩存結(jié)果生成WAP頁面,以向用戶展示; 所述緩存系統(tǒng)依次查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù),返回緩存結(jié)果至所述WAP服務(wù)器。
2.根據(jù)權(quán)利要求I所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其特征在于,所述緩存系統(tǒng)當(dāng)查詢到一代緩存數(shù)據(jù)時,修改該一代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,當(dāng)未查詢到一代緩存數(shù)據(jù)時,則進(jìn)一步查詢二代緩存數(shù)據(jù),若查詢到二代緩存數(shù)據(jù),則修改該二代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,若未查詢到二代緩存數(shù)據(jù),則返回空數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其特征在于,所述緩存架構(gòu)系統(tǒng)還包括 數(shù)據(jù)庫系統(tǒng),連接所述WAP服務(wù)器,用于存儲數(shù)據(jù)信息以供所述WAP服務(wù)器讀取或記錄。
4.根據(jù)權(quán)利要求3所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其特征在于,所述WAP服務(wù)器當(dāng)所述緩存系統(tǒng)未查詢到二代緩存數(shù)據(jù)時,訪問所述數(shù)據(jù)庫系統(tǒng)獲取頁面模板數(shù)據(jù),并根據(jù)該頁面模板數(shù)據(jù)生成所述WAP頁面。
5.根據(jù)權(quán)利要求1、2、3或4所述的適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng),其特征在于,所述緩存系統(tǒng)還通過一自維護(hù)應(yīng)用程序依次清理一代緩存、二代緩存。
6.一種適用于WAP服務(wù)的緩存方法,其特征在于,包括 步驟一,WAP服務(wù)器接收用戶HTTP請求,適配頁面格式,調(diào)用所述緩存系統(tǒng); 步驟二,所述緩存系統(tǒng)依次查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù),并返回該緩存結(jié)構(gòu)至所述WAP服務(wù)器; 步驟三,所述WAP服務(wù)器根據(jù)所述緩存結(jié)果生成WAP頁面,以向用戶展示。
7.根據(jù)權(quán)利要求6所述的適用于WAP服務(wù)的緩存方法,其特征在于,所述步驟一中,還包括 所述WAP服務(wù)器通過識別用戶終端型號適配頁面格式。
8.根據(jù)權(quán)利要求6或7所述的適用于WAP服務(wù)的緩存方法,其特征在于,所述步驟二中,還包括 所述緩存系統(tǒng)當(dāng)查詢到一代緩存數(shù)據(jù)時,修改該一代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,當(dāng)未查詢到一代緩存數(shù)據(jù)時,則進(jìn)一步查詢二代緩存數(shù)據(jù),若查詢到二代緩存數(shù)據(jù),則修改該二代緩存數(shù)據(jù)的鍵值對格式中的最后訪問時間,返回緩存結(jié)果,若未查詢到二代緩存數(shù)據(jù),則返回空數(shù)據(jù)。
9.根據(jù)權(quán)利要求6或7所述的適用于WAP服務(wù)的緩存方法,其特征在于,所述步驟二中,還包括 所述緩存系統(tǒng)通過一自維護(hù)應(yīng)用程序依次清理一代緩存、二代緩存的步驟,該步驟包括 查詢一代緩存數(shù)據(jù);判斷遍歷一代緩存數(shù)據(jù)是否完成,若完成,讀取二代緩存數(shù)據(jù),進(jìn)入下一步,否則判斷遍歷一代緩存數(shù)據(jù)是否超時,若超時,則將一代緩存數(shù)據(jù)移入二代緩存,并繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成,若未超時,則繼續(xù)判斷遍歷一代緩存數(shù)據(jù)是否完成; 判斷遍歷二代緩存數(shù)據(jù)是否完成,若完成,則結(jié)束,否則判斷遍歷二代緩存數(shù)據(jù)是否超時,若超時,則將二代緩存數(shù)據(jù)移出二代緩存,繼續(xù)讀取二代緩存數(shù)據(jù),若未超時,則繼續(xù)讀取二代緩存數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的適用于WAP服務(wù)的緩存方法,其特征在于,所述步驟三中,還包括 當(dāng)所述緩存系統(tǒng)未查詢到二代緩存數(shù)據(jù)時,所述WAP服務(wù)器訪問一數(shù)據(jù)庫系統(tǒng)獲取頁面模板數(shù)據(jù),并根據(jù)該頁面模板數(shù)據(jù)生成所述WAP頁面。
全文摘要
本發(fā)明公開了一種適用于WAP服務(wù)的緩存架構(gòu)系統(tǒng)及其緩存方法,其中該系統(tǒng)包括WAP服務(wù)器、緩存系統(tǒng),所述WAP服務(wù)器接收用戶HTTP請求,適配頁面格式,調(diào)用所述緩存系統(tǒng)獲取緩存結(jié)果,并根據(jù)所述緩存結(jié)果生成WAP頁面,以向用戶展示;所述緩存系統(tǒng)依次查詢一代緩存數(shù)據(jù)、二代緩存數(shù)據(jù),返回緩存結(jié)果至所述WAP服務(wù)器。本發(fā)明能夠根據(jù)數(shù)據(jù)有效性設(shè)置失效時間,實(shí)現(xiàn)了緩存內(nèi)容的分代管理,能夠快速命中最常用數(shù)據(jù),提高了緩存命中率,節(jié)約緩存系統(tǒng)內(nèi)存。
文檔編號H04L29/08GK102868715SQ20111019064
公開日2013年1月9日 申請日期2011年7月8日 優(yōu)先權(quán)日2011年7月8日
發(fā)明者趙鵬山, 萬飛, 冀德 申請人:風(fēng)網(wǎng)科技(北京)有限公司