一種動態(tài)web內(nèi)容的請求處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機軟件技術(shù)領(lǐng)域,特別涉及一種動態(tài)web內(nèi)容的請求處理方法。
【背景技術(shù)】
[0002]現(xiàn)有的動態(tài)Web內(nèi)容生成方案包括如下步驟:(1)用戶通過用戶代理填寫數(shù)據(jù),并發(fā)出動態(tài)內(nèi)容請求指令;(2)用戶代理根據(jù)用戶指令創(chuàng)建請求消息,并將請求消息發(fā)送到Web Server ; (3) Web Server接收請求消息,根據(jù)請求路徑等按照應(yīng)用映射邏輯和相關(guān)協(xié)議,例如CG1、FastCGI, ISAPI等查找用于處理請求的應(yīng)用路徑。這些應(yīng)用是使用Java、C#、PHP等動態(tài)語言實現(xiàn)的;(4)Web Server從指定的路徑啟動應(yīng)用,根據(jù)Web Server與應(yīng)用之間的協(xié)議,例如CG1、FastCGI, ISAPI等將請求轉(zhuǎn)交給應(yīng)用,啟動應(yīng)用可能需要操作系統(tǒng)啟動和調(diào)度進(jìn)程,而轉(zhuǎn)交請求則可能需要進(jìn)程間的相互通信;(5)應(yīng)用根據(jù)請求路徑等按照路由映射邏輯找到用于處理請求的頁面或方法,并將請求轉(zhuǎn)交給該頁面或方法。頁面或方法是使用Java、C#、PHP等動態(tài)語言實現(xiàn)了如下一些操作的可執(zhí)行代碼;(6)頁面或方法執(zhí)行與數(shù)據(jù)存儲服務(wù)系統(tǒng)連接前的數(shù)據(jù)驗證等相關(guān)操作;數(shù)據(jù)存儲服務(wù)系統(tǒng)是數(shù)據(jù)庫系統(tǒng)、文件系統(tǒng)、通過Web Service等服務(wù)公開的數(shù)據(jù)接口或其他類型的數(shù)據(jù)服務(wù)系統(tǒng);(7)頁面或方法建立到數(shù)據(jù)存儲服務(wù)系統(tǒng)的連接,向數(shù)據(jù)存儲服務(wù)系統(tǒng)提交數(shù)據(jù)操作命令和相關(guān)參數(shù);(8)數(shù)據(jù)存儲服務(wù)系統(tǒng)執(zhí)行命令,并向頁面或方法返回執(zhí)行命令后的數(shù)據(jù)操作結(jié)果;(9)頁面或方法接收數(shù)據(jù)操作結(jié)果,關(guān)閉到數(shù)據(jù)存儲服務(wù)系統(tǒng)的連接;(10)頁面或方法執(zhí)行與數(shù)據(jù)操作結(jié)果相關(guān)的操作,并動態(tài)生成響應(yīng)內(nèi)容;(11)頁面或方法將生成的響應(yīng)內(nèi)容返回給應(yīng)用;(12)應(yīng)用將響應(yīng)內(nèi)容返回給Web Server ;( 13) Web Server將響應(yīng)內(nèi)容發(fā)送給用戶代理;(14)用戶代理向用戶呈現(xiàn)響應(yīng)內(nèi)容。
[0003]現(xiàn)有的動態(tài)Web內(nèi)容生成方案需要在Web Server上執(zhí)行由Java、C#、PHP等語言編寫而成的應(yīng)用,執(zhí)行這些代碼會占用Web Server大量的CPU和內(nèi)存等資源,使得WebServer不能專注于與客戶端之間的網(wǎng)絡(luò)處理,造成Web Server吞吐量低的缺點:(1)使用Java、C#、PHP等動態(tài)語言開發(fā)的應(yīng)用運行效率偏低。(2) Web Server需要增加一個應(yīng)用映射邏輯,查找、啟動應(yīng)用也會占用CPU和內(nèi)存等資源。尤其是當(dāng)應(yīng)用是一個獨立運行的操作系統(tǒng)進(jìn)程時,通常需要操作系統(tǒng)啟動、調(diào)度和終止進(jìn)程,并可能因為在Web Server和應(yīng)用之間進(jìn)行數(shù)據(jù)交換而需要進(jìn)程間通信。(3)在Web Server和應(yīng)用之間可能需要將數(shù)據(jù)在不同編碼格式之間進(jìn)行轉(zhuǎn)換,例如在UTF-8與UTF-16之間轉(zhuǎn)換數(shù)據(jù),這同樣會占用CPU和內(nèi)存等資源。
[0004]因此,計算機軟件技術(shù)領(lǐng)域急需一種無需調(diào)用代碼,運行速度快,占用內(nèi)存小,提高了 Web Server的運行效率和吞吐量,提高了網(wǎng)絡(luò)系統(tǒng)的整體速度的動態(tài)Web內(nèi)容的請求處理方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種動態(tài)web內(nèi)容的請求處理方法,技術(shù)方案如下: 一種動態(tài)Web內(nèi)容的請求處理方法,包括如下步驟:
步驟一,用戶通過用戶代理填寫數(shù)據(jù),并發(fā)出動態(tài)內(nèi)容請求指令;
步驟二,用戶代理根據(jù)步驟一中發(fā)出的用戶請求指令創(chuàng)建請求消息,并將請求消息發(fā)送到 Web Server ;
步驟三,Web Server接收步驟二中的請求消息,并將請求路徑轉(zhuǎn)換為一個功能路徑;步驟四,Web Server根據(jù)步驟三中的功能路徑從邏輯應(yīng)用管理單元查找對應(yīng)的功能,也就是查找數(shù)據(jù)存儲服務(wù)系統(tǒng)中過程、函數(shù)或方法的元數(shù)據(jù);
Web Server內(nèi)置一個邏輯應(yīng)用管理單元,該邏輯應(yīng)用管理單元管理的應(yīng)用不是由Java、C#、PHP語言實現(xiàn)的一個物理存在的可執(zhí)行程序,而是在邏輯上存在的相互隔離的不同應(yīng)用;
邏輯是指應(yīng)用不是由Java、C#、PHP語言實現(xiàn)的可執(zhí)行程序,因此在Web Server上并不物理的存在相應(yīng)的可執(zhí)行程序文件;
邏輯應(yīng)用管理單元管理著開發(fā)商、應(yīng)用、模塊、功能組件構(gòu)成的樹狀結(jié)構(gòu);
步驟五,Web Server根據(jù)步驟四的元數(shù)據(jù)中的連接信息,建立Web Server與數(shù)據(jù)存儲服務(wù)系統(tǒng)之間的連接;
步驟六,Web Server為步驟四的元數(shù)據(jù)中定義的每一個參數(shù)準(zhǔn)備參數(shù)值,參數(shù)值來自于步驟二中用戶代理發(fā)送的請求消息;
步驟七,Web Server通過步驟五中建立的Web Server與數(shù)據(jù)存儲服務(wù)系統(tǒng)之間的連接,發(fā)送調(diào)用命令和每一個參數(shù)的參數(shù)值;
步驟八,數(shù)據(jù)存儲服務(wù)系統(tǒng)接收到步驟七中發(fā)送的調(diào)用命令和參數(shù)值后,開始執(zhí)行目標(biāo)過程、函數(shù)或方法;
步驟九,數(shù)據(jù)存儲服務(wù)系統(tǒng)的過程、函數(shù)或方法對步驟七中發(fā)送的參數(shù)值進(jìn)行有效性、安全性驗證,執(zhí)行數(shù)據(jù)操作邏輯,產(chǎn)生數(shù)據(jù)操作結(jié)果,并將數(shù)據(jù)操作結(jié)果組織為用戶代理能夠直接識別的語言格式;
直接識別是指數(shù)據(jù)在發(fā)送給用戶代理前不需要從語言層面對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,但仍需要進(jìn)行數(shù)據(jù)編碼格式的轉(zhuǎn)換;
步驟十,數(shù)據(jù)存儲服務(wù)系統(tǒng)將步驟九中創(chuàng)建的能夠被用戶代理直接識別的數(shù)據(jù)通過Web Server與數(shù)據(jù)存儲服務(wù)系統(tǒng)之間的連接發(fā)送給Web Server ;
步驟十一,Web Server將步驟十中接收到的數(shù)據(jù)轉(zhuǎn)換為用戶代理要求的數(shù)據(jù)編碼格式,并發(fā)送給用戶代理;
步驟十二,用戶代理在用戶代理所在的終端使用腳本語言對接收到的數(shù)據(jù)進(jìn)行邏輯處理,動態(tài)生成Web內(nèi)容,并呈現(xiàn)給用戶。
[0006]優(yōu)選的,在上述一種動態(tài)web內(nèi)容的請求處理方法中,步驟四中邏輯應(yīng)用管理單元管理著開發(fā)商、應(yīng)用、模塊、功能組件構(gòu)成的樹狀結(jié)構(gòu),各組件之間的具體關(guān)系如下:
每一個應(yīng)用都由一個開發(fā)商代碼來標(biāo)識此應(yīng)用的開發(fā)商,開發(fā)商代碼在全局范圍內(nèi)是唯一的;
同一個開發(fā)商能夠開發(fā)一個、兩個或多個應(yīng)用,每一個應(yīng)用都有一個應(yīng)用標(biāo)識符,在同一個開發(fā)商范圍內(nèi)應(yīng)用標(biāo)識符是唯一的;
一個應(yīng)用包含一個、兩個或多個模塊,每一個模塊都有一個模塊標(biāo)識符,在同一個應(yīng)用范圍內(nèi)模塊標(biāo)識符是唯一的;
一個模塊包含一個、兩個或多個功能,每一個功能都有一個功能標(biāo)識符,在同一個模塊范圍內(nèi)功能標(biāo)識符是唯一的。
[0007]優(yōu)選的,在上述一種動態(tài)web內(nèi)容的請求處理方法中,步驟四中元數(shù)據(jù)包括:功能標(biāo)識符;Web Server與數(shù)據(jù)存儲服務(wù)系統(tǒng)之間的連接信息,例如:數(shù)據(jù)存儲服務(wù)系統(tǒng)的位置、身份驗證信息;數(shù)據(jù)存儲服務(wù)系統(tǒng)中目標(biāo)過程、函數(shù)或方法的標(biāo)識符;數(shù)據(jù)存儲服務(wù)系統(tǒng)中目標(biāo)過程、函數(shù)或方法的參數(shù)列表,以及每一個參數(shù)的標(biāo)識符、位置、數(shù)據(jù)類型、大小;目標(biāo)過程、函數(shù)或方法返回的數(shù)據(jù)的類型、大?。粩?shù)據(jù)存儲服務(wù)系統(tǒng)使用的數(shù)據(jù)編碼格式。
[0008]優(yōu)選的,在上述一種動態(tài)web內(nèi)容的請求處理方法中,步驟四中數(shù)據(jù)存儲服務(wù)系統(tǒng)中的過程、函數(shù)或方法包括:數(shù)據(jù)庫存儲過程、數(shù)據(jù)庫函數(shù)或Web Service方法。
[0009]優(yōu)選的,在上述一種動態(tài)web內(nèi)容的請求處理方法中,步驟九中用戶代理能夠直接識別的語言格式包括:html、css和javascript。
[0010]優(yōu)選的,在上述一種動態(tài)web內(nèi)容的請求處理方法中,步驟十二中的腳本語言為javascript ο
[0011]本發(fā)明的有益效果:
UWeb Server內(nèi)置一個邏輯應(yīng)用管理單元,管理著由開發(fā)商、應(yīng)用、模塊、功能組件構(gòu)成的一個樹狀結(jié)構(gòu)。Web Server通過該樹狀結(jié)構(gòu)實現(xiàn)請求路徑到功能路徑的轉(zhuǎn)換和映射,以及對功能的查找。應(yīng)用不是一個由可執(zhí)行代碼構(gòu)成的物理存在的可執(zhí)行程序,應(yīng)用不在Web Server上執(zhí)行任何代碼,對Web Server資源占用少,Web Server的運行效率和吞吐量尚O
[0012]2、如上所述的樹狀結(jié)構(gòu)中的功能組件是指數(shù)據(jù)存儲服務(wù)系統(tǒng)中過程、函數(shù)或方法的元數(shù)據(jù)。該元數(shù)據(jù)在Web Server與數(shù)據(jù)存儲服務(wù)系統(tǒng)之間建立了一種協(xié)議,該協(xié)議描述了 Web Server如何建立到數(shù)據(jù)存儲服務(wù)系統(tǒng)的連接,如何調(diào)用數(shù)據(jù)存儲服務(wù)系統(tǒng)中的過程、函數(shù)或方法,以及如何向數(shù)據(jù)存儲服務(wù)系統(tǒng)傳遞參數(shù)值。
[0013]3、Web Server不對來自用戶代理的請求數(shù)據(jù)執(zhí)行任何業(yè)務(wù)邏輯操作,同時也不對數(shù)據(jù)存儲服務(wù)系統(tǒng)的響應(yīng)數(shù)據(jù)執(zhí)行任何業(yè)務(wù)邏輯操作,對Web Server資源占用少,WebServer的運行效率和吞吐量高。
[0014]4、相對于現(xiàn)有技術(shù),本發(fā)明將現(xiàn)有技術(shù)中在Web Server上實際執(zhí)行代碼的物理應(yīng)用轉(zhuǎn)換為不會在Web Server上實際執(zhí)行代碼的邏輯應(yīng)用,避免了對物理應(yīng)用的啟動、調(diào)度和終止,避免了物理應(yīng)用代碼的執(zhí)行,避免了在Web Server和物理應(yīng)用之間進(jìn)行的數(shù)據(jù)通信和數(shù)據(jù)編碼轉(zhuǎn)換,從而降低了對Web Server上CPU和內(nèi)存等資源的消耗,提高了 WebServer的運行效率和吞吐量,提高了網(wǎng)絡(luò)系統(tǒng)的整體速度。
【附圖說明】
[0015]下面結(jié)合附圖和【具體實施方式】來詳細(xì)說明本發(fā)明:
圖1為一種動態(tài)Web內(nèi)容的請求處理方法的流程圖。
[0016]圖2為本發(fā)明邏輯應(yīng)用管理單元的樹狀結(jié)構(gòu)示意圖。
【具體實施方式】
[0017]為了使本發(fā)明技術(shù)實現(xiàn)的措施、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
[0018]圖1為一種動態(tài)Web內(nèi)容的請求處理方法的流程圖,一種動態(tài)Web內(nèi)容的請求處理方法,包括如下步驟:
步驟一,用戶通過用戶代理填寫數(shù)據(jù),并發(fā)出動態(tài)內(nèi)容請求指令;
步驟二,用戶代理根據(jù)步驟一中發(fā)出的用戶請求指令創(chuàng)建請求消息,并將請求消息發(fā)送到 Web Server ;
步驟三,Web Server接收步驟二中的請求消息,并將請求路徑轉(zhuǎn)換映射為一個功能路徑;
例如:請求路徑為“/login”時,轉(zhuǎn)換為功能路徑“/wain/sys/user/login”,那么所有來自用戶代理的請求路徑“/login”都將被認(rèn)為是對路徑為“/waln/sys/user/login”的功能的請求;
如果請求路徑已經(jīng)是一個完整、有效的功能路徑,則直接將請求路徑作為功能路徑;
步驟四,Web Server根據(jù)步驟三中得到的功能路徑從邏輯應(yīng)用管理單元中查找對應(yīng)的功能,也就是查找數(shù)據(jù)存儲服務(wù)系統(tǒng)中過程、函數(shù)或方法的元數(shù)據(jù);
Web Server內(nèi)置一個邏輯應(yīng)用管理單元,該邏輯應(yīng)用管理單元管理的應(yīng)用不是由Java、C#、PHP等語言實現(xiàn)的一個物理存在的可執(zhí)行程序,而是在邏輯上存在的相互隔離的不同應(yīng)用;
邏輯是指應(yīng)用不是由Java、C#、PHP等語言實現(xiàn)的可執(zhí)行程序,因