支持內(nèi)容中心網(wǎng)絡(luò)的Web服務(wù)器系統(tǒng)及處理方法
【專利摘要】本發(fā)明公開了支持內(nèi)容中心網(wǎng)絡(luò)的Web服務(wù)器系統(tǒng)及處理方法,Web服務(wù)器系統(tǒng)包括:CCN連接單元,用于接收CCN興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析和聚合CCN興趣包;CCN處理單元,用于CCN興趣包后臺(tái)處理線程的分配及管理,把CCN興趣包封裝成Servlet請(qǐng)求,將與Servlet請(qǐng)求相應(yīng)的Servlet響應(yīng)數(shù)據(jù)封裝成CCN數(shù)據(jù)包并回復(fù)給客戶端;CCN內(nèi)容管理單元,用于管理靜態(tài)文件和數(shù)據(jù)庫連接,可以將Web應(yīng)用程序中靜態(tài)文件寫入CCN文件系統(tǒng)。該Web服務(wù)器系統(tǒng)可以處理客戶端推送數(shù)據(jù)的CCN興趣包,可以實(shí)現(xiàn)在CCN網(wǎng)絡(luò)中數(shù)據(jù)從客戶端到Web服務(wù)器端的推送上傳。
【專利說明】支持內(nèi)容中心網(wǎng)絡(luò)的1^6服務(wù)器系統(tǒng)及處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,特別涉及一種支持內(nèi)容中心網(wǎng)絡(luò)的服務(wù)器系統(tǒng)及處理方法。
【背景技術(shù)】
[0002]近年來,基于扣?/〗?體系結(jié)構(gòu)的互聯(lián)網(wǎng)已經(jīng)成為社會(huì)的基礎(chǔ)網(wǎng)絡(luò)設(shè)施,用戶接入互聯(lián)網(wǎng)獲取各類的服務(wù),以滿足主機(jī)與主機(jī)之間的數(shù)據(jù)通信需求???/〗?網(wǎng)絡(luò)最典型的應(yīng)用場景是用戶在^6)3瀏覽器中指定統(tǒng)一資源定位器0680111X6',簡稱現(xiàn)0來訪問互聯(lián)網(wǎng)上的資源,互聯(lián)網(wǎng)會(huì)根據(jù)現(xiàn)[定位運(yùn)行偏3服務(wù)器的遠(yuǎn)端主機(jī),在應(yīng)用層評(píng)6)3瀏覽器和16)3服務(wù)器之間通常用超文本傳送協(xié)議稱!117?協(xié)議)進(jìn)行交互。而隨著云計(jì)算、物聯(lián)網(wǎng)、移動(dòng)通信技術(shù)的飛速發(fā)展,傳統(tǒng)的基于端的扣?/〗?互聯(lián)網(wǎng)體系結(jié)構(gòu)面臨可擴(kuò)展性、動(dòng)態(tài)性、以及安全性問題。
[0003]內(nèi)容中心網(wǎng)絡(luò)他!:恥1^,簡稱為是一種全新的網(wǎng)絡(luò)架構(gòu), 與傳統(tǒng)的扣?/〗?基于地址的網(wǎng)絡(luò)架構(gòu)完全不同,基于內(nèi)容名字進(jìn)行數(shù)據(jù)的共享和交互,而不需要關(guān)心通信雙方的物理地址和主機(jī)。無論從經(jīng)濟(jì)角度還是從技術(shù)角度去分析,?、?〗?網(wǎng)絡(luò)向的演進(jìn)需要一個(gè)過渡的過程,即在很長的一段時(shí)間內(nèi),兩種網(wǎng)絡(luò)架構(gòu)會(huì)同時(shí)存在,或者以疊加網(wǎng)的方式運(yùn)行在扣?/〗?網(wǎng)絡(luò)之上。
[0004]為了連接扣?/〗?與網(wǎng)絡(luò),現(xiàn)有技術(shù)中至少存在如下問題:
[0005]目前普遍采用部署協(xié)議網(wǎng)關(guān)的方式,分別在接入端和服務(wù)器端部署此類網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換,用戶發(fā)送請(qǐng)求到接收到數(shù)據(jù),需要進(jìn)行多達(dá)四次肌1?與X版之間的協(xié)議轉(zhuǎn)換,在網(wǎng)絡(luò)中無法支持各類服務(wù),導(dǎo)致工作效率低下。
【發(fā)明內(nèi)容】
[0006]為了解決網(wǎng)絡(luò)中各類16^服務(wù)的支持問題,一方面,
[0007]本發(fā)明提供了一種支持內(nèi)容中心網(wǎng)絡(luò)的評(píng)必服務(wù)器系統(tǒng),包括:
[0008]內(nèi)容中心網(wǎng)絡(luò)連接單元、00^處理單元和內(nèi)容管理單元;
[0009]所述連接單元用于接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述興趣包,所述興趣包為客戶端通過網(wǎng)絡(luò)發(fā)送至胃613服務(wù)器;
[0010]所述處理單元用于所述興趣包后臺(tái)處理線程的分配及管理,把所述興趣包封裝成361^161:請(qǐng)求,將與所述361^161:請(qǐng)求相應(yīng)的361^161:響應(yīng)數(shù)據(jù)封裝成數(shù)據(jù)包并回復(fù)給客戶端;
[0011]所述⑶內(nèi)容管理單元用于管理靜態(tài)文件和數(shù)據(jù)庫連接,將應(yīng)用程序中靜態(tài)文件寫入文件系統(tǒng)。
[0012]可選的,所述連接單元包括路由器、啟動(dòng)模塊、隊(duì)列管理模塊、請(qǐng)求解析模塊、類型判斷模塊和請(qǐng)求聚合模塊;
[0013]所述路由器用于接收所述興趣包,進(jìn)行轉(zhuǎn)發(fā);
[0014]所述啟動(dòng)模塊用于在服務(wù)器啟動(dòng)時(shí)讀取配合文件、創(chuàng)建和初始化網(wǎng)絡(luò)連接的客戶端對(duì)象;
[0015]所述隊(duì)列管理模塊用于接收所述路由器轉(zhuǎn)發(fā)的興趣包,并采用先入先出的管理策略對(duì)所述興趣包進(jìn)行管理;
[0016]所述請(qǐng)求解析模塊用于接收所述隊(duì)列管理模塊輸出的興趣包,解析出所述00^興趣包的內(nèi)容和類型信息;
[0017]所述類型判斷模塊用于根據(jù)所述類型信息判斷所述興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求;
[0018]所述請(qǐng)求聚合模塊用于根據(jù)所述⑶興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的興趣包聚合為一個(gè)請(qǐng)求。
[0019]可選的,所述連接單元還包括請(qǐng)求生成模塊、內(nèi)容更新模塊和靜態(tài)存儲(chǔ)模塊;
[0020]所述請(qǐng)求生成模塊用于根據(jù)興趣包的類型進(jìn)行處理并獲取與所述興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)所述數(shù)據(jù)包格式得到新的數(shù)據(jù)包;
[0021]所述內(nèi)容更新模塊用于根據(jù)所述新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新;
[0022]所述靜態(tài)存儲(chǔ)模塊用于接收并響應(yīng)所述拉模式的靜態(tài)文件請(qǐng)求。
[0023]可選的,所述處理單元包括:線程管理模塊、請(qǐng)求封裝模塊和緩存處理模塊;
[0024]所述線程管理模塊用于接收到所述興趣包時(shí),為所述興趣包分配處理線程,以及所述緩存處理模塊完成緩存處理之后回收線程;
[0025]所述請(qǐng)求封裝模塊用于對(duì)所述興趣包進(jìn)行封裝,得到361^1的請(qǐng)求;
[0026]所述緩存處理模塊用于根據(jù)所述36”1的請(qǐng)求查詢緩存的數(shù)據(jù)包,進(jìn)行初始化請(qǐng)求緩存以及初始化請(qǐng)求緩存,并返回?cái)?shù)據(jù)包,所述數(shù)據(jù)包中包括與所述36”16七請(qǐng)求相應(yīng)的361^161:響應(yīng)數(shù)據(jù)。
[0027]可選的,所述連接單元和所述處理單元之間通過請(qǐng)求適配模塊連接。
[0028]可選的,所述系統(tǒng)還包括:10111(3811: 361^161:容器,所述!'0111(^1: 361^161:容器與所述處理單元之間通過361^161:適配模塊連接,所述!'0111(^1: 361^161:容器還與所述00^內(nèi)容管理單元連接。
[0029]可選的,所述系統(tǒng)還包括連接單元和肌1?處理單元,所述肌1?連接單元和所述0了了?處理單元之間通過'了?請(qǐng)求適配模塊連接,所述'了?處理單元和所述10111(^1:361^161:容器之間還通過肌了? 361^161:適配模塊連接。
[0030]另一方面,
[0031]本發(fā)明還提供了一種支持內(nèi)容中心網(wǎng)絡(luò)的服務(wù)器的處理方法,包括:
[0032]接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述興趣包,所述興趣包為客戶端通過網(wǎng)絡(luò)發(fā)送至1613服務(wù)器;
[0033]為所述興趣包分派后臺(tái)處理線程把所述興趣包封裝成56口16七請(qǐng)求,將與所述361^161:請(qǐng)求相應(yīng)的361^161:響應(yīng)數(shù)據(jù)封裝成數(shù)據(jù)包并回復(fù)給客戶端;
[0034]回收所述后臺(tái)處理線程。
[0035]可選的,所述接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述興趣包的步驟包括:
[0036]接收所述興趣包,并將所述興趣包加入到隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,并逐一進(jìn)行轉(zhuǎn)發(fā);
[0037]采用先入先出的管理策略從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取興趣包并進(jìn)行解析,得到所述興趣包的內(nèi)容和類型信息;
[0038]根據(jù)所述興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的興趣包聚合為一個(gè)請(qǐng)求;
[0039]根據(jù)所述類型信息判斷所述興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求,包括:
[0040]如果為拉模式的動(dòng)態(tài)請(qǐng)求,則線程池為所述拉模式的動(dòng)態(tài)請(qǐng)求分配線程,從10111081: 361^161:容器調(diào)用 361^161:;
[0041]如果為推送模式的動(dòng)態(tài)請(qǐng)求,則線程池為所述拉模式的動(dòng)態(tài)請(qǐng)求分配線程,并生成興趣包;
[0042]如果為拉模式的靜態(tài)文件請(qǐng)求,則回復(fù)與所述拉模式的靜態(tài)文件請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù)包。
[0043]可選的,所述方法還包括:
[0044]根據(jù)興趣包的類型獲取與所述興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)所述數(shù)據(jù)包格式得到新的數(shù)據(jù)包;
[0045]根據(jù)所述新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新;
[0046]如果所述推送模式的動(dòng)態(tài)請(qǐng)求為數(shù)據(jù)庫更新,則對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新;
[0047]如果所述推送模式的動(dòng)態(tài)請(qǐng)求為靜態(tài)文件更新,則將所述靜態(tài)文件的內(nèi)容寫入到所述靜態(tài)存儲(chǔ)模塊中。
[0048]本發(fā)明提供的支持內(nèi)容中心網(wǎng)絡(luò)的服務(wù)器系統(tǒng)及處理方法,可以處理客戶端推送數(shù)據(jù)的興趣包,可以實(shí)現(xiàn)在網(wǎng)絡(luò)中數(shù)據(jù)從客戶端到服務(wù)器端的推送上傳。
【專利附圖】
【附圖說明】
[0049]圖1為本發(fā)明提供的一種支持內(nèi)容中心網(wǎng)絡(luò)的評(píng)必服務(wù)器系統(tǒng)的組成示意圖;
[0050]圖2為本發(fā)明提供的連接單元100的組成示意圖;
[0051]圖3為本發(fā)明提供的處理單元200的組成示意圖;
[0052]圖4為本發(fā)明提供的一種支持內(nèi)容中心網(wǎng)絡(luò)的服務(wù)器的處理方法的步驟流程圖;
[0053]圖5為本發(fā)明中步驟310的步驟流程圖;
[0054]圖6為本發(fā)明實(shí)施例二提供的支持⑶版協(xié)議的處理方法的時(shí)序圖;
[0055]圖7為本發(fā)明實(shí)施例三提供的連接單元工作的時(shí)序圖;
[0056]圖8為本發(fā)明實(shí)施例四提供的處理單元工作的時(shí)序圖。
【具體實(shí)施方式】
[0057]下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0058]00^網(wǎng)絡(luò)協(xié)議的原型系統(tǒng)為(^版(00^協(xié)議棧也稱為(^版),(^版包括路由器,該原型系統(tǒng)提供了開發(fā)應(yīng)用程序的接口。路由器具有網(wǎng)內(nèi)緩存的功能,00^路由器有三個(gè)關(guān)鍵的組件:數(shù)據(jù)緩存31:01~6,簡稱為0,請(qǐng)求待定表$611(111181111:61~681: 1處16,簡稱為?11),請(qǐng)求轉(zhuǎn)發(fā)表([01'冊1(11118 111?01~11181:1011 8386,簡稱為[18)。
[0059]本發(fā)明提供了一種支持內(nèi)容中心網(wǎng)絡(luò)的評(píng)必服務(wù)器系統(tǒng),組成示意圖如圖1所示,包括:
[0060]內(nèi)容中心網(wǎng)絡(luò)(11連接單元100、00^處理單元200和(11內(nèi)容管理單元300 ;
[0061]連接單元100用于接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合興趣包,其中興趣包為客戶端通過網(wǎng)絡(luò)發(fā)送至166服務(wù)器;
[0062]00^處理單元200用于興趣包后臺(tái)處理線程的分配及管理,把興趣包封裝成56口16七請(qǐng)求,將與56口16七請(qǐng)求相應(yīng)的56口16七響應(yīng)數(shù)據(jù)封裝成數(shù)據(jù)包并回復(fù)給客戶端;
[0063]00^內(nèi)容管理單元300用于管理靜態(tài)文件和數(shù)據(jù)庫連接,將166應(yīng)用程序中靜態(tài)文件寫入文件系統(tǒng)。
[0064]可選的,⑶連接單元100的組成示意圖如圖2所示,包括路由器101、啟動(dòng)模塊102、隊(duì)列管理模塊103、請(qǐng)求解析模塊104、類型判斷模塊105和請(qǐng)求聚合模塊106 ;
[0065]00^路由器101用于接收興趣包,進(jìn)行轉(zhuǎn)發(fā);
[0066]啟動(dòng)模塊102用于在服務(wù)器啟動(dòng)時(shí)讀取配合文件、創(chuàng)建和初始化網(wǎng)絡(luò)連接的客戶端對(duì)象;
[0067]隊(duì)列管理模塊103用于接收路由器轉(zhuǎn)發(fā)的興趣包,并采用先入先出的管理策略對(duì)興趣包進(jìn)行管理;
[0068]請(qǐng)求解析模塊104用于接收隊(duì)列管理模塊輸出的興趣包,解析出興趣包的內(nèi)容和類型信息;
[0069]類型判斷模塊105用于根據(jù)類型信息判斷興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求;
[0070]請(qǐng)求聚合模塊106用于根據(jù)興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的興趣包聚合為一個(gè)請(qǐng)求。
[0071]可選的,00^連接單元100還包括請(qǐng)求生成模塊107、內(nèi)容更新模塊108和靜態(tài)存儲(chǔ)模塊109。
[0072]請(qǐng)求生成模塊107用于根據(jù)興趣包的類型進(jìn)行處理獲取與興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)數(shù)據(jù)包格式得到新的數(shù)據(jù)包;
[0073]內(nèi)容更新模塊108用于根據(jù)新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新;
[0074]靜態(tài)存儲(chǔ)模塊109用于接收并響應(yīng)拉模式的靜態(tài)文件請(qǐng)求。
[0075]可選的,00^處理單元200的組成示意圖如圖3所示,包括:線程管理模塊201、請(qǐng)求封裝模塊202和緩存處理模塊203 ;
[0076]線程管理模塊201用于接收到興趣包時(shí),為興趣包分配處理線程,以及緩存處理模塊完成緩存處理之后回收線程;
[0077]請(qǐng)求封裝模塊202用于對(duì)興趣包進(jìn)行封裝,得到361^16丨請(qǐng)求;
[0078]緩存處理模塊203用于根據(jù)36”1的請(qǐng)求查詢緩存的數(shù)據(jù)包,進(jìn)行初始化請(qǐng)求緩存以及初始化請(qǐng)求緩存,并返回?cái)?shù)據(jù)包,其中數(shù)據(jù)包中包括與36”16七請(qǐng)求相應(yīng)的361^16七響應(yīng)數(shù)據(jù)。
[0079]可選的,⑶連接單元100和0⑶處理單元200之間通過請(qǐng)求適配模塊110連接。
[0080]可選的,系統(tǒng)還包括361^161:容器400,10111081: 361^161:容器 400 與處理單元100之間通過361^161:適配模塊111連接,10111(^1: 361^161:容器400還與內(nèi)容管理單元300連接。
[0081]可選的,系統(tǒng)還包括出11?連接單元100’和肌1?處理單元200’,肌1?連接單元100’和肌1?處理單元200’之間通過肌1?請(qǐng)求適配模塊連接110’,肌1?處理單元200’和10111(^1: 361^161:容器400之間還通過!117? 361^161:適配模塊111’連接。
[0082]基于上述胃必服務(wù)器系統(tǒng),本發(fā)明還提供了一種支持內(nèi)容中心網(wǎng)絡(luò)的服務(wù)器的處理方法,步驟流程圖如圖4所示,包括:
[0083]步驟310、接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述興趣包,所述興趣包為客戶端通過網(wǎng)絡(luò)發(fā)送至1613服務(wù)器;
[0084]步驟320、為所述興趣包分派后臺(tái)處理線程把所述興趣包封裝成361^16七請(qǐng)求,將與所述56口16七請(qǐng)求相應(yīng)的56口16七響應(yīng)數(shù)據(jù)封裝成數(shù)據(jù)包并回復(fù)給客戶端;
[0085]步驟330、回收后臺(tái)處理線程,以便下次接收到興趣包時(shí)為其分配后臺(tái)處理線程進(jìn)行處理。
[0086]可選的,步驟310接收興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合興趣包的步驟流程圖如圖5所示,包括:
[0087]步驟311、接收興趣包,并將興趣包加入到隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,并逐一進(jìn)行轉(zhuǎn)發(fā);
[0088]步驟312、采用先入先出的管理策略從隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取興趣包并進(jìn)行解析,得到興趣包的內(nèi)容和類型信息;
[0089]步驟313、判斷興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的興趣包聚合為一個(gè)請(qǐng)求;
[0090]步驟314、根據(jù)類型信息判斷興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求,包括:
[0091]如果為拉模式的動(dòng)態(tài)請(qǐng)求,則線程池為拉模式的動(dòng)態(tài)請(qǐng)求分配線程,從10111(?七361^161:容器調(diào)用 361^161:;
[0092]如果為推送模式的動(dòng)態(tài)請(qǐng)求,則線程池為拉模式的動(dòng)態(tài)請(qǐng)求分配線程,并生成興趣包;
[0093]如果為拉模式的靜態(tài)文件請(qǐng)求,則回復(fù)與拉模式的靜態(tài)文件請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù)包。
[0094]可選的,本發(fā)明提供的方法步驟320之后,步驟330之前還包括:
[0095]步驟340、根據(jù)興趣包的類型獲取與興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)數(shù)據(jù)包格式得到新的數(shù)據(jù)包;
[0096]步驟350、根據(jù)新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新;
[0097]如果推送模式的動(dòng)態(tài)請(qǐng)求為數(shù)據(jù)庫更新,則對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新;
[0098]如果推送模式的動(dòng)態(tài)請(qǐng)求為靜態(tài)文件更新,則將靜態(tài)文件的內(nèi)容寫入到靜態(tài)存儲(chǔ)模塊中。
[0099]另外,步驟320之前還可以包括:進(jìn)行初始化請(qǐng)求緩存以及初始化請(qǐng)求緩存。
[0100]實(shí)施例一
[0101]如圖1所示,本實(shí)施例提供一種同時(shí)支持(^版和肌1?協(xié)議的16^服務(wù)器,包括00^連接單元100、00^處理單元200、00^內(nèi)容管理單元300,肌1?協(xié)議連接處理單元?jiǎng)t完全采用了細(xì)10111081:的現(xiàn)有技術(shù)。
[0102]如圖2所示,⑶連接單元100用于接收來和解析來自于網(wǎng)絡(luò)的興趣包,包括路由器101、啟動(dòng)模塊102、隊(duì)列管理模塊103、請(qǐng)求解析模塊104、類型分析模塊105、請(qǐng)求聚合模塊106、請(qǐng)求生成模塊107、內(nèi)容更新模塊108和靜態(tài)存儲(chǔ)模塊109。
[0103]路由器101為現(xiàn)有的開源實(shí)現(xiàn),包含數(shù)據(jù)緩存⑶,請(qǐng)求待定表?II,請(qǐng)求轉(zhuǎn)發(fā)表?18,00^路由器101會(huì)將興趣包轉(zhuǎn)發(fā)給隊(duì)列管理模塊103。啟動(dòng)模塊102用于服務(wù)器啟動(dòng)時(shí)讀取配合文件、創(chuàng)建和初始化對(duì)象。隊(duì)列管理模塊103用于緩存請(qǐng)求,避免當(dāng)興趣包太多時(shí),服務(wù)器無法及時(shí)處理而出現(xiàn)丟包現(xiàn)象,隊(duì)列管理模塊采用先進(jìn)先出$150)的管理策略,隊(duì)列管理模塊將興趣包傳送給請(qǐng)求解析模塊104。請(qǐng)求解析模塊104用于興趣包的解析,從興趣包中解析內(nèi)容組件、包序號(hào)組件。類型判斷模塊105用于興趣包類型的判斷,為拉模式(¢1111 1110(16)還是推送模式(叩也1110(16)類型。請(qǐng)求聚合模塊106用于將同一內(nèi)容的興趣包聚合為一個(gè)請(qǐng)求發(fā)給(:⑶處理單元,聚合請(qǐng)求模塊106維護(hù)和管理請(qǐng)求哈希表,用于判斷聚合后的請(qǐng)求是否為重復(fù)請(qǐng)求。
[0104]請(qǐng)求生成模塊107用于生成推送模式的請(qǐng)求,發(fā)送給客戶端獲取內(nèi)容。內(nèi)容更新模塊108用于接收推送模式請(qǐng)求得到的數(shù)據(jù)包,調(diào)用處理單元將內(nèi)容進(jìn)行更新。靜態(tài)存儲(chǔ)模塊109用于接收和響應(yīng)靜態(tài)文件請(qǐng)求,00^內(nèi)容管理單元會(huì)將靜態(tài)文件寫入靜態(tài)存儲(chǔ)模塊109中。
[0105]00^連接單元100與處理單元200通過請(qǐng)求適配模塊110連接。
[0106]00^處理單元200用于處理連接單元100發(fā)送來的請(qǐng)求,00^處理單元包括線程管理模塊201、請(qǐng)求封裝模塊202和緩存處理模塊303。線程管理模塊113用于分配和回收處理線程。
[0107]請(qǐng)求封裝模塊202用于封裝請(qǐng)求為361^161:請(qǐng)求,并將請(qǐng)求傳遞給361^161:容器,完成請(qǐng)求的緩存。
[0108]緩存處理模塊303根據(jù)36”16丨請(qǐng)查詢緩存的數(shù)據(jù)包,進(jìn)行初始化請(qǐng)求緩存以及初始化請(qǐng)求緩存,并返回?cái)?shù)據(jù)包。同時(shí)緩存處理模塊303還用于獲取和保存361^14響應(yīng)。
[0109](^⑶處理單元^^^與了^^⑶!: 361^161:容器400通過361^161:適配模塊111連接。
[0110]00^內(nèi)容管理單元300用于對(duì)特定目錄下的靜態(tài)內(nèi)容進(jìn)行監(jiān)控,當(dāng)有靜態(tài)內(nèi)容有更新狀態(tài)時(shí),比如對(duì)文件的修改或者新文件的創(chuàng)建,內(nèi)容管理單元300會(huì)將靜態(tài)內(nèi)容寫入靜態(tài)存儲(chǔ)模塊110中,從而實(shí)現(xiàn)用戶訪問的加速。
[0111]實(shí)施例二
[0112]結(jié)合服務(wù)器,說明本實(shí)施例提供了一種支持X版協(xié)議的處理方法,為了更加清楚的說明處理方法,圖6中將用戶的請(qǐng)求分為三類并分別進(jìn)行了展示,這三類請(qǐng)求分別是拉模式的動(dòng)態(tài)16)3請(qǐng)求,推送模式的動(dòng)態(tài)冊13請(qǐng)求,以及靜態(tài)冊13請(qǐng)求。
[0113](1)拉模式的動(dòng)態(tài)請(qǐng)求處理方法包括:
[0114]步驟3201、客戶端發(fā)送興趣包至16^服務(wù)器的連接單元。
[0115]步驟3202、1613服務(wù)器的連接單元接收、解析、聚合興趣包,最后將請(qǐng)求發(fā)送給處理單元。
[0116]步驟3203、服務(wù)器的處理單元分配線程、封裝請(qǐng)求、初始化緩存并將請(qǐng)求發(fā)送給 10111(^1: 361^161:容器。
[0117]步驟3204、16?服務(wù)器的10111(^1: 361^161:容器解析361^161:,并執(zhí)行和調(diào)用相應(yīng)的361^16丨與內(nèi)容管理模塊進(jìn)行數(shù)據(jù)的交互。
[0118]3205、服務(wù)器的內(nèi)容管理模塊進(jìn)行后臺(tái)數(shù)據(jù)的處理,并將結(jié)果返回給
361^16 七。
[0119]步驟3206、1613服務(wù)器的處理模塊將數(shù)據(jù)封裝成數(shù)據(jù)包,最終由連接模塊返回給客戶端。
[0120](2)推送模式的動(dòng)態(tài)請(qǐng)求處理方法包括:
[0121]步驟3207、完成上述步驟3201及步驟3202后,16?服務(wù)器的0⑶處理單元從線程池分配處理線程,生成新的興趣包發(fā)送給客戶端,其命名格式規(guī)范如下:
[0122]用戶發(fā)送興趣包的名字規(guī)范服務(wù)器路徑//推送模式的標(biāo)識(shí)符//客戶端路由丨丨要推送的文件名;
[0123]服務(wù)器生成請(qǐng)求的名字規(guī)范客戶端路徑//客戶上傳的文件名。
[0124]例如,如果用戶希望將1111叫6? 文件從客戶端推送到網(wǎng)絡(luò)中以⑶!^:/861^61~命名的16)3服務(wù)器上,則用發(fā)送興趣包的名字為
1101:1^1081:10118/0116111:^81(16/11118^6- 8丨?,當(dāng)如!]服務(wù)器收到請(qǐng)求受,可以解析出該請(qǐng)求為推送模式動(dòng)態(tài)16)3請(qǐng)求類型,00^處理單元會(huì)生成IX似://(311611181(16/11115186.^1?的興趣包至客戶端,從而完成文件從客戶端到服務(wù)器的推送。
[0125]步驟3208、^服務(wù)器的連接單元接收請(qǐng)求數(shù)據(jù)包。
[0126]步驟3209、1613服務(wù)器的處理單元解析數(shù)據(jù)包,取出這些數(shù)據(jù)包的載荷重組成完整的文件。
[0127]步驟3210、如果上傳的是文件,則處理單元調(diào)用內(nèi)容管理模塊,將該文件保存在相應(yīng)的目錄下。
[0128]步驟3211、如果上傳的內(nèi)容需要數(shù)據(jù)庫更新,則處理單元觸發(fā)100(?七361^161:容器調(diào)用相應(yīng)的361^161:0
[0129]步驟3212、361^61~執(zhí)行數(shù)據(jù)庫更新操作。
[0130](3)拉模式靜態(tài)請(qǐng)求處理方法包括:
[0131]步驟3213、完成步驟3201后,0⑶連接單元解析靜態(tài)請(qǐng)求,在0⑶靜態(tài)存儲(chǔ)在查詢數(shù)據(jù)包,若查詢到匹配的數(shù)據(jù)包,則從靜態(tài)存儲(chǔ)中取出數(shù)據(jù)包。
[0132]步驟3214、00^靜態(tài)存儲(chǔ)向客戶端發(fā)送數(shù)據(jù)包。
[0133]實(shí)施例三
[0134]結(jié)合服務(wù)器,本實(shí)施例提供了一種支持X版接收與解析方法,在服務(wù)器的連接單元中實(shí)現(xiàn),如圖7所示,包括:
[0135]步驟3301、00^連接單元將興趣包放在緩存隊(duì)列中。
[0136]步驟3302、內(nèi)容解析模塊解析興趣包,包括興趣包的前綴名和類型信息。
[0137]步驟3303、類型判斷模塊判斷請(qǐng)求的類型,根據(jù)請(qǐng)求映射后臺(tái)的361^161:程序,如果映射成果,則按動(dòng)態(tài)166請(qǐng)求處理,如果映射失敗,則不會(huì)繼續(xù)處理。
[0138]步驟3304、請(qǐng)求聚合模塊實(shí)現(xiàn)針對(duì)同一個(gè)16?請(qǐng)求的多個(gè)興趣包的聚合。
[0139]步驟3305、若動(dòng)態(tài)16)3請(qǐng)求為拉模式的動(dòng)態(tài)請(qǐng)求,則請(qǐng)求聚合模塊調(diào)用請(qǐng)求適配模塊。
[0140]步驟3306、請(qǐng)求適配模塊連接處理單元、10111081: 361^161:容器并返回?cái)?shù)據(jù)包。
[0141]步驟3307、若動(dòng)態(tài)請(qǐng)求為推送模式的動(dòng)態(tài)請(qǐng)求,則請(qǐng)求聚合模塊調(diào)用請(qǐng)求生成模塊。
[0142]步驟3308、請(qǐng)求生成模塊調(diào)用請(qǐng)求適配模塊。
[0143]步驟3309、請(qǐng)求聚合模塊連接0⑶處理單元分配處理線程,并生成興趣包發(fā)送給客戶端。
[0144]步驟3310、00^連接單元將數(shù)據(jù)包放入緩存隊(duì)列中。
[0145]步驟3311、內(nèi)容解析模塊將數(shù)據(jù)包發(fā)送給請(qǐng)求生成模塊。
[0146]步驟3312、請(qǐng)求生成模塊重構(gòu)數(shù)據(jù)包,并生成完整的內(nèi)容,然后調(diào)用內(nèi)容更新豐旲塊。
[0147]步驟3313、若推送模式的動(dòng)態(tài)請(qǐng)求為數(shù)據(jù)庫更新、則內(nèi)容更新模塊通過請(qǐng)求適配模塊調(diào)用后臺(tái)數(shù)據(jù)庫。
[0148]步驟3314、若推送模式的動(dòng)態(tài)請(qǐng)求為靜態(tài)文件更新、則內(nèi)容更新模塊將文件存復(fù)制在服務(wù)器相應(yīng)的存儲(chǔ)路徑,同時(shí)將該內(nèi)容寫入靜態(tài)存儲(chǔ)中。
[0149]步驟3315、靜態(tài)存儲(chǔ)處理并回復(fù)靜態(tài)的興趣包。
[0150]實(shí)施例四
[0151]結(jié)合服務(wù)器,本實(shí)施例提供了一種支持X版協(xié)議請(qǐng)求處理方法,如圖8所示,包括:
[0152]步驟3401、00^連接單元將興趣包發(fā)送給請(qǐng)求適配模塊、請(qǐng)求聚合模塊調(diào)用線程管理模塊。
[0153]步驟3402、線程管理模塊分配處理線程。
[0154]步驟3403、處理線程調(diào)用緩存管理模塊。
[0155]步驟3404、緩存管理模塊在動(dòng)態(tài)緩存中根據(jù)興趣包查詢數(shù)據(jù)包,如果數(shù)據(jù)包存在,則返回該數(shù)據(jù)包;如果不存在,則初始化請(qǐng)求緩存,并初始化響應(yīng)緩存。
[0156]步驟3405、處理線程調(diào)用361^161:適配模塊。
[0157]步驟3406、361^161:適配模塊連接!'0111(^1: 361^161:容器,調(diào)用 361^161:,361^161:連接 ⑶內(nèi)容管理單元并回復(fù)數(shù)據(jù)。
[0158]步驟3407、響應(yīng)緩存將的適配模塊回復(fù)的數(shù)據(jù)編譯成數(shù)據(jù)包存入動(dòng)態(tài)緩存,同時(shí)想請(qǐng)求適配模塊回復(fù)該數(shù)據(jù)包。
[0159]步驟3408、當(dāng)?shù)奶幚硗暾麄€(gè)請(qǐng)求后,的適配模塊會(huì)向處理線程發(fā)送完成信號(hào)。
[0160]步驟3409、處理線程會(huì)根據(jù)請(qǐng)求繼續(xù)查詢動(dòng)態(tài)緩存,當(dāng)通知線程管理模塊收回該線程。
[0161]步驟3410、線程管理模塊收回該處理線程。
[0162]實(shí)施例五
[0163]結(jié)合服務(wù)器,本實(shí)施例提供了該服務(wù)器在扣?/〗?與⑶混合網(wǎng)絡(luò)上,或者網(wǎng)絡(luò)之上,或者基于扣?/〗?的疊加網(wǎng)絡(luò)之上的部署方法,該1613服務(wù)器在操作系統(tǒng)中具體部署的步驟為:
[0164]第一步:將服務(wù)器編譯后的程序包X⑶原型系統(tǒng)X版的⑶1 3^程序包,拷 /70111-^)81:11/0011:0111081:目錄下。
[0165]第二步:修改配置文件/一化/^0016并修改環(huán)境變量。
[0166]6X1)01-1: '八II嫩」!0腿=/00111:0111081:
[0167]6X1)01-1: 1010^1^012 = /00111:0111081:
[0168]6X1)01-1:
[0169]01^88?^!?。?=.: $^0012/11?: $(^1'釓I嫩」10腿/1 讓
[0170]6x1)01^=$0^11^0012/13111.
[0171]第三步〃配置文件中配置 361^161:映射關(guān)系,可以在16)3服務(wù)器的配
[0172]置文件〃/中修改!??!'了?及請(qǐng)求的最大處理線程數(shù),監(jiān)聽端口等參數(shù)。
[0173]第四步:將16)3 應(yīng)用程序部署在 〃/中,包括靜態(tài)文件、數(shù)據(jù)庫、86^16^等文件。
[0174]第五步:啟動(dòng)(11的原型系統(tǒng)IX版的靜態(tài)文件系統(tǒng)1?613081丨01~7的后臺(tái)運(yùn)行程序。
[0175]第六步:執(zhí)行16)3 服務(wù)器啟動(dòng)腳本 〃/1:/?也"。
[0176]第七步:執(zhí)行16)3 服務(wù)器關(guān)閉腳本 〃/
[0177]以上實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
【權(quán)利要求】
1.一種支持內(nèi)容中心網(wǎng)絡(luò)的Web服務(wù)器系統(tǒng),其特征在于,包括:內(nèi)容中心網(wǎng)絡(luò)CCN連接單元、CCN處理單元和CCN內(nèi)容管理單元; 所述CCN連接單元用于接收CCN興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述CCN興趣包,所述CCN興趣包為客戶端通過CCN網(wǎng)絡(luò)發(fā)送至Web服務(wù)器; 所述CCN處理單元用于所述CCN興趣包后臺(tái)處理線程的分配及管理,把所述CCN興趣包封裝成Servlet請(qǐng)求,將與所述Servlet請(qǐng)求相應(yīng)的Servlet響應(yīng)數(shù)據(jù)封裝成CCN數(shù)據(jù)包并回復(fù)給客戶端; 所述CCN內(nèi)容管理單元用于管理靜態(tài)文件和數(shù)據(jù)庫連接,將Web應(yīng)用程序中靜態(tài)文件寫入CCN文件系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的Web服務(wù)器系統(tǒng),其特征在于,所述CCN連接單元包括CCN路由器、啟動(dòng)模塊、隊(duì)列管理模塊、請(qǐng)求解析模塊、類型判斷模塊和請(qǐng)求聚合模塊; 所述CCN路由器用于接收所述CCN興趣包,進(jìn)行轉(zhuǎn)發(fā); 所述啟動(dòng)模塊用于在Web服務(wù)器啟動(dòng)時(shí)讀取配合文件、創(chuàng)建和初始化CCN網(wǎng)絡(luò)連接的客戶端對(duì)象; 所述隊(duì)列管理模塊用于接收所述CCN路由器轉(zhuǎn)發(fā)的CCN興趣包,并采用先入先出的管理策略對(duì)所述CCN興趣包進(jìn)行管理; 所述請(qǐng)求解析模塊用于接收所述隊(duì)列管理模塊輸出的CCN興趣包,解析出所述CCN興趣包的內(nèi)容和類型信息; 所述類型判斷模塊用于根據(jù)所述類型信息判斷所述興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求; 所述請(qǐng)求聚合模塊用于根據(jù)所述CCN興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的CCN興趣包聚合為一個(gè)CCN請(qǐng)求。
3.根據(jù)權(quán)利要求2所述的Web服務(wù)器系統(tǒng),其特征在于,所述CCN連接單元還包括請(qǐng)求生成模塊、內(nèi)容更新模塊和靜態(tài)存儲(chǔ)模塊; 所述請(qǐng)求生成模塊用于根據(jù)CCN興趣包的類型進(jìn)行處理并獲取與所述CCN興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)所述數(shù)據(jù)包格式得到新的數(shù)據(jù)包; 所述內(nèi)容更新模塊用于根據(jù)所述新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新; 所述靜態(tài)存儲(chǔ)模塊用于接收并響應(yīng)所述拉模式的靜態(tài)文件請(qǐng)求。
4.根據(jù)權(quán)利要求1所述的Web服務(wù)器系統(tǒng),其特征在于,所述CCN處理單元包括:線程管理模塊、請(qǐng)求封裝模塊和緩存處理模塊; 所述線程管理模塊用于接收到所述CCN興趣包時(shí),為所述CCN興趣包分配處理線程,以及所述緩存處理模塊完成緩存處理之后回收線程; 所述請(qǐng)求封裝模塊用于對(duì)所述CCN興趣包進(jìn)行封裝,得到Servlet請(qǐng)求; 所述緩存處理模塊用于根據(jù)所述Servlet請(qǐng)求查詢緩存的數(shù)據(jù)包,進(jìn)行初始化請(qǐng)求緩存以及初始化請(qǐng)求緩存,并返回?cái)?shù)據(jù)包,所述數(shù)據(jù)包中包括與所述Servlet請(qǐng)求相應(yīng)的Servlet響應(yīng)數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的Web服務(wù)器系統(tǒng),其特征在于,所述CCN連接單元和所述CCN處理單元之間通過CCN請(qǐng)求適配模塊連接。
6.根據(jù)權(quán)利要求1所述的Web服務(wù)器系統(tǒng),其特征在于,所述系統(tǒng)還包括=TomcatServlet容器,所述Tomcat Servlet容器與所述CCN處理單元之間通過CCN Servlet適配模塊連接,所述Tomcat Servlet容器還與所述CCN內(nèi)容管理單元連接。
7.根據(jù)權(quán)利要求6所述的Web服務(wù)器系統(tǒng),其特征在于,所述系統(tǒng)還包括:HTTP連接單元和HTTP處理單元,所述HTTP連接單元和所述HTTP處理單元之間通過HTTP請(qǐng)求適配模塊連接,所述HTTP處理單元和所述Tomcat Servlet容器之間還通過HTTP Servlet適配模塊連接。
8.一種支持內(nèi)容中心網(wǎng)絡(luò)的Web服務(wù)器的處理方法,其特征在于,包括: 接收CCN興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述CCN興趣包,所述CCN興趣包為客戶端通過CCN網(wǎng)絡(luò)發(fā)送至Web服務(wù)器; 為所述CCN興趣包分派后臺(tái)處理線程把所述CCN興趣包封裝成Servlet請(qǐng)求,將與所述Servlet請(qǐng)求相應(yīng)的Servlet響應(yīng)數(shù)據(jù)封裝成CCN數(shù)據(jù)包并回復(fù)給客戶端; 回收所述后臺(tái)處理線程。
9.根據(jù)權(quán)利要求8所述的處理方法,其特征在于,所述接收CCN興趣包并存儲(chǔ)在隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取、解析以及聚合所述CCN興趣包的步驟包括: 接收所述CCN興趣包,并將所述CCN興趣包加入到隊(duì)列數(shù)據(jù)結(jié)構(gòu)中,并逐一進(jìn)行轉(zhuǎn)發(fā);采用先入先出的管理策略從所述隊(duì)列數(shù)據(jù)結(jié)構(gòu)中讀取CCN興趣包并進(jìn)行解析,得到所述CCN興趣包的內(nèi)容和類型信息; 判斷所述CCN興趣包的內(nèi)容是否重復(fù),并將多個(gè)內(nèi)容相同的CCN興趣包聚合為一個(gè)CCN請(qǐng)求; 根據(jù)所述類型信息判斷所述CCN興趣包的類型為拉模式的動(dòng)態(tài)請(qǐng)求、推送模式的動(dòng)態(tài)請(qǐng)求或拉模式的靜態(tài)文件請(qǐng)求,包括: 如果為拉模式的動(dòng)態(tài)請(qǐng)求,則線程池為所述拉模式的動(dòng)態(tài)請(qǐng)求分配線程,從TomcatServlet 容器調(diào)用 Servlet ; 如果為推送模式的動(dòng)態(tài)請(qǐng)求,則線程池為所述拉模式的動(dòng)態(tài)請(qǐng)求分配線程,并生成興趣包; 如果為拉模式的靜態(tài)文件請(qǐng)求,則回復(fù)與所述拉模式的靜態(tài)文件請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù)包。
10.根據(jù)權(quán)利要求9所述的處理方法,其特征在于,所述方法還包括: 根據(jù)CCN興趣包的類型獲取與所述CCN興趣包相應(yīng)的數(shù)據(jù)包,重構(gòu)所述數(shù)據(jù)包格式得到新的數(shù)據(jù)包; 根據(jù)所述新的數(shù)據(jù)包進(jìn)行處理,對(duì)數(shù)據(jù)庫或靜態(tài)文件進(jìn)行更新; 如果所述推送模式的動(dòng)態(tài)請(qǐng)求為數(shù)據(jù)庫更新,則對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新; 如果所述推送模式的動(dòng)態(tài)請(qǐng)求為靜態(tài)文件更新,則將所述靜態(tài)文件的內(nèi)容寫入到所述靜態(tài)存儲(chǔ)模塊中。
【文檔編號(hào)】H04L29/08GK104468704SQ201410563488
【公開日】2015年3月25日 申請(qǐng)日期:2014年10月21日 優(yōu)先權(quán)日:2014年10月21日
【發(fā)明者】喬秀全, 南國順, 郭磊, 陳俊亮, 涂鈺楷 申請(qǐng)人:北京郵電大學(xué)