虛擬化頁面實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種網(wǎng)站頁面處理方法,尤其涉及一種虛擬化頁面實現(xiàn)方法。
【背景技術(shù)】
[0002]實現(xiàn)虛擬化原因與背景:
a)每個web站點項目文件過多,項目過大需要多個開發(fā)人員進行維護,浪費人力成本。
[0003]b)業(yè)務(wù)功能的不斷變更,需求頻繁的上線,功能上線不及時。
[0004]c)過多的上傳引起服務(wù)器的不穩(wěn)定。
[0005]d)新頁面的快速上線。
[0006]e)提高對站點頁面的管理、監(jiān)控、統(tǒng)計。
[0007]關(guān)于虛擬化:虛擬化是一個廣義的術(shù)語,在計算機方面通常是指計算元件在虛擬的基礎(chǔ)上而不是真實的基礎(chǔ)上運行,虛擬化技術(shù)可以擴大硬件的容量,簡化軟件的重新配置過程。
[0008]對于一個web站點來說,虛擬化就是一個虛擬頁面,瀏覽器端的頁面通過一個系統(tǒng)配置后呈現(xiàn)給用戶的,不在從服務(wù)器中請求物理文件(aspx),而是根據(jù)請求信息動態(tài)為用戶搭載頁面。
[0009]關(guān)于nVelocity模板引擎,nVelocity是一個基于.NET的模板引擎(templateengine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由.NET代碼定義的對象。
[0010]關(guān)于Memcached分布式緩存,Memcached是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。
[0011]關(guān)于S0A,其為面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture, S0A),是一個組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應(yīng)該獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以使用一種統(tǒng)一和通用的方式進行交互。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問題,提供一種虛擬化頁面實現(xiàn)方法。
[0013]本發(fā)明的目的通過以下技術(shù)方案來實現(xiàn):
虛擬化頁面實現(xiàn)方法,其包括以下步驟:步驟①,為每個虛擬化頁面定義一個唯一標(biāo)識Unique Key。步驟②,客戶端發(fā)送請求,從Memcached中獲取數(shù)據(jù)。步驟③,通過程序代碼來判斷步驟②中的數(shù)據(jù),如果不為空,則直接輸出數(shù)據(jù),若為空,進入步驟④。步驟④,SOA發(fā)送請求,根據(jù)唯一標(biāo)識從數(shù)據(jù)庫中獲取頁面的模板獲取數(shù)據(jù)。步驟⑤,對數(shù)據(jù)進行合并處理,根據(jù)頁面設(shè)定條件判斷是否需要存儲Memcached中,返回合并后的數(shù)據(jù)。步驟⑥,虛擬化站點(既接收數(shù)據(jù)的類型為String)接收到解析合并的數(shù)據(jù),輸出至客戶端(既用戶瀏覽器發(fā)送請求的電腦)。
[0014]上述的虛擬化頁面實現(xiàn)方法,其中:所述的步驟②中,客戶端發(fā)送請求,該請求通過代理服務(wù)器轉(zhuǎn)發(fā)到虛擬化站點下的.ashx文件,(通過.Net代碼Request.QueryString[])獲取url中的參數(shù),動態(tài)生成緩存key,根據(jù)緩存key從Memcached中獲取數(shù)據(jù),所述的數(shù)據(jù)為整個頁面的html內(nèi)容。
[0015]進一步地,上述的虛擬化頁面實現(xiàn)方法,其中:所述的參數(shù)包括必傳參數(shù)與非必傳參數(shù),所述的必傳參數(shù)包括,頁面唯一標(biāo)識、所屬項目頻道,所述的非必傳參數(shù)包括,每個頁面的參數(shù),例如酒店頁面酒店ID、景區(qū)頁面景區(qū)ID、城市頁面城市ID。
[0016]更進一步地,上述的虛擬化頁面實現(xiàn)方法,其中:所述的步驟④中,S0A發(fā)送請求到接口站,根據(jù)唯一標(biāo)識,從數(shù)據(jù)庫中獲取頁面的模板,將模板進行拆分成單個模塊,采用單個模塊調(diào)用解析組件從數(shù)據(jù)源中獲取數(shù)據(jù),所述的模板內(nèi)容為,頁面整體html框與html內(nèi)容,所述的解析組件是用于頁面模板和模塊合并處理的程序類庫。
[0017]更進一步地,上述的虛擬化頁面實現(xiàn)方法,其中:所述的數(shù)據(jù)源包括數(shù)據(jù)庫、接口、Memcached中的一種或是多種,所述的數(shù)據(jù)庫內(nèi)容至少包括酒店包含酒店相關(guān)資源庫、景區(qū)相關(guān)資源庫、機票相關(guān)庫,各項目資源數(shù)據(jù)庫中的一種或是多種,所述的接口至少包括各項目S0A接口、http接口的一種或是多種。
[0018]再進一步地,上述的虛擬化頁面實現(xiàn)方法,其中:所述的步驟⑤中,根據(jù)頁面設(shè)定條件創(chuàng)建頁面數(shù)據(jù),所述的頁面數(shù)據(jù)包含緩存時間字段、單位分鐘,對頁面數(shù)據(jù)進行合并處理后,根據(jù)唯一標(biāo)識,查詢此緩存時間是否大于0,如果值大于0,則表示此數(shù)據(jù)需要存儲到Memcached中,否則不存儲。
[0019]本發(fā)明技術(shù)方案的優(yōu)點主要體現(xiàn)在:通過為每個虛擬化頁面定義一個唯一標(biāo)識,借由程序代碼來判斷數(shù)據(jù),進行合并處理,令虛擬化站點將需要的數(shù)據(jù)傳輸給客戶端。這樣,從最大程度上實現(xiàn)了自動化運行,降低項目維護的人力成本。同時,能夠滿足虛擬化頁面的功能變更,實現(xiàn)新頁面快速上線。并且,依托于負(fù)載均衡服務(wù)器與各類代理服務(wù)器的相互配合,完成后的數(shù)據(jù)能夠準(zhǔn)確而快速傳輸,減少服務(wù)器上傳,提高系統(tǒng)穩(wěn)定性。由此,能夠有效滿足虛擬化頁面的統(tǒng)一管理。
【附圖說明】
[0020]圖1是虛擬化頁面實現(xiàn)示意圖。
[0021 ] 圖2是虛擬化架示意圖。
【具體實施方式】
[0022]如圖1、圖2所示的虛擬化頁面實現(xiàn)方法,其與眾不同之處在于包括以下步驟:首先,為每個虛擬化頁面定義一個唯一標(biāo)識Unique Key。之后,客戶端發(fā)送請求,從Memcached中獲取數(shù)據(jù)。在此期間,客戶端發(fā)送請求,該請求通過代理服務(wù)器轉(zhuǎn)發(fā)到虛擬化站點下的.ashx文件,通過.Net代碼Request.QueryString口,獲取url中的參數(shù),動態(tài)生成緩存key,根據(jù)緩存key從Memcached中獲取數(shù)據(jù),數(shù)據(jù)為整個頁面的html內(nèi)容。同時,參數(shù)包括必傳參數(shù)與非必傳參數(shù),具體來看,必傳參數(shù)包括,頁面唯一標(biāo)識、所屬項目頻道。與之對應(yīng)的是,采用的非必傳參數(shù)包括,每個頁面的參數(shù),