本發(fā)明涉及一種基于路由設(shè)備的APP下載緩存的方法。
背景技術(shù):
目前開發(fā)的移動(dòng)通信路由系統(tǒng),僅提供上行網(wǎng)絡(luò)通道,沒(méi)有針對(duì)智能手機(jī)APP的下載提供緩存的功能;
而受到國(guó)內(nèi)移動(dòng)通信網(wǎng)絡(luò)資費(fèi)的限制,完全通過(guò)網(wǎng)絡(luò)下載APP,將消耗用戶大量的網(wǎng)絡(luò)成本開支;
另外受限電信運(yùn)營(yíng)商基站建設(shè)和規(guī)劃的影響,上行網(wǎng)絡(luò)速度較不穩(wěn)定,APP文件少則2、30兆,多則上百兆,下載經(jīng)常不穩(wěn)定的狀況;
有鑒于此,本發(fā)明提出一種基于路由設(shè)備的APP下載緩存的方法,本案由此產(chǎn)生。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的一個(gè)目的在于提供一種基于路由設(shè)備的APP下載緩存的方法,利用路由器的網(wǎng)絡(luò)轉(zhuǎn)發(fā)和路由功能,對(duì)請(qǐng)求目標(biāo)地址進(jìn)行本地解析重定向至緩存文件,從而達(dá)到節(jié)約外網(wǎng)上行流量,加快響應(yīng)速度的效果,提高了APP下載的速度。
為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:
一種基于路由設(shè)備的APP下載緩存的方法,包括以下步驟:
步驟1、在路由設(shè)備上部署網(wǎng)絡(luò)緩存服務(wù),部署內(nèi)容包括配置緩存規(guī)則和緩存文件系統(tǒng)索引規(guī)則,該緩存規(guī)則包括URL請(qǐng)求匹配規(guī)則、緩存文件系統(tǒng)、緩存大小與時(shí)間,該緩存文件系統(tǒng)索引規(guī)則包括URL請(qǐng)求與緩存文件系統(tǒng)中文件路徑的轉(zhuǎn)換映射規(guī)則,通過(guò)緩存規(guī)則和緩存文件系統(tǒng)索引規(guī)則確保后續(xù)URL請(qǐng)求能夠命中緩存的A PP安裝文件;
步驟2、在路由設(shè)備上部署處理腳本文件,處理腳本文件用于識(shí)別并修改動(dòng)態(tài)的URL請(qǐng)求,并將URL請(qǐng)求中動(dòng)態(tài)產(chǎn)生的參數(shù)去除,確保網(wǎng)絡(luò)緩存服務(wù)的URL請(qǐng)求匹配規(guī)則能夠命中緩存的APP安裝文件;
步驟3、在路由設(shè)備上部署網(wǎng)絡(luò)代理服務(wù),部署內(nèi)容為配置網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則,該網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則包括來(lái)源IP段、URL請(qǐng)求匹配規(guī)則、目標(biāo)IP段、處理腳本文件路徑,通過(guò)該網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則確保路由設(shè)備能夠攔截響應(yīng)URL請(qǐng)求,并執(zhí)行重定向至網(wǎng)絡(luò)緩存服務(wù),并確保后續(xù)URL請(qǐng)求能夠命中緩存的APP安裝文件;
步驟4、智能終端通過(guò)無(wú)線WiFi接入路由設(shè)備后,通過(guò)網(wǎng)絡(luò)瀏覽器向路由設(shè)備發(fā)出下載APP的URL請(qǐng)求,路由設(shè)備的處理腳本對(duì)該URL請(qǐng)求進(jìn)行識(shí)別,將符合緩存規(guī)則和網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則的URL請(qǐng)求轉(zhuǎn)發(fā)至網(wǎng)絡(luò)緩存服務(wù);如不符合緩存規(guī)則或網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則的URL請(qǐng)求,給予該URL請(qǐng)求放行并直接訪問(wèn)外部服務(wù)器地址;所述的URL請(qǐng)求包含了服務(wù)器外部服務(wù)器地址或者域名以及APP文件路徑信息;
步驟5、網(wǎng)絡(luò)緩存服務(wù)根據(jù)該URL請(qǐng)求,從緩存文件系統(tǒng)索引中查找對(duì)應(yīng)的已緩存的APP安裝文件,并向智能終端回傳所述APP安裝文件;如果未查找到已緩存的APP安裝文件,則根據(jù)該URL請(qǐng)求訪問(wèn)該URL對(duì)應(yīng)的外部服務(wù)器,并從該外部服務(wù)器下載APP安裝文件至緩存文件系統(tǒng),并根據(jù)緩存文件系統(tǒng)索引規(guī)則進(jìn)行緩存,在APP安裝文件緩存完成后繼續(xù)向智能終端回傳所緩存的APP安裝文件;所述的根據(jù)緩存文件系統(tǒng)索引規(guī)則進(jìn)行緩存,就是將URL作為對(duì)應(yīng)APP安裝文件的緩存文件系統(tǒng)的索引,使得網(wǎng)絡(luò)緩存服務(wù)根據(jù)該URL請(qǐng)求就能與緩存文件系統(tǒng)索引匹配后,查找到已緩存的APP安裝文件;
步驟6、智能終端通過(guò)無(wú)線WiFi網(wǎng)絡(luò)接收到路由設(shè)備響應(yīng)的APP安裝文件,提醒用戶安裝該APP。
所述路由設(shè)備從外部服務(wù)器下載APP安裝文件至緩存文件系統(tǒng)后的存儲(chǔ)方式具體是:APP安裝文件下載至路由設(shè)備后形成緩沖文件,緩沖文件按照文件名、文件類型和文件下載時(shí)間信息進(jìn)行加密并等大小拆分后形成數(shù)據(jù)塊文件,再用索引文件標(biāo)識(shí)各數(shù)據(jù)塊文件所在的位置,獲取文件時(shí),要根據(jù)索引重新拼接重組而成。
采用上述方案后,本發(fā)明的有益效果是:節(jié)約移動(dòng)路由設(shè)備在移動(dòng)通信運(yùn)營(yíng)商所需的上行流量成本,加速APP的下載,還具有以下特點(diǎn):
一、緩存資源命中后,無(wú)需向上游服務(wù)器發(fā)出請(qǐng)求,即可在本地局域網(wǎng)內(nèi)實(shí)現(xiàn)APP下載,速度僅受限于路由設(shè)備的WIFI速率,理論上遠(yuǎn)高于從上游服務(wù)器的下載速度
二、移動(dòng)通信運(yùn)營(yíng)商成本體現(xiàn)在對(duì)數(shù)據(jù)通道中通過(guò)的流量的統(tǒng)計(jì),緩存的使用,可以規(guī)避或者減少進(jìn)入該通道的數(shù)據(jù)流量,從而節(jié)約了流量成本 請(qǐng)指正。
以下結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
附圖說(shuō)明
圖1所述是本發(fā)明一種基于路由設(shè)備的APP下載緩存的方法的流程簡(jiǎn)圖。
具體實(shí)施方式
如圖1所示,本發(fā)明揭示的一種基于路由設(shè)備的APP下載緩存的方法,其包括:
步驟1、在路由設(shè)備上部署網(wǎng)絡(luò)緩存(Cache)服務(wù),部署內(nèi)容包括配置緩存規(guī)則和緩存文件系統(tǒng)索引規(guī)則,該緩存規(guī)則包括URL請(qǐng)求匹配規(guī)則、緩存文件系統(tǒng)、緩存大小與時(shí)間,該緩存文件系統(tǒng)索引規(guī)則包括URL請(qǐng)求與緩存文件系統(tǒng)中文件路徑的轉(zhuǎn)換映射規(guī)則,通過(guò)緩存規(guī)則和緩存文件系統(tǒng)索引規(guī)則確保后續(xù)URL請(qǐng)求能夠命中緩存的APP安裝文件;
步驟2、在路由設(shè)備上部署處理腳本文件,處理腳本文件用于識(shí)別并修改動(dòng)態(tài)的URL請(qǐng)求,并將URL請(qǐng)求中動(dòng)態(tài)產(chǎn)生的參數(shù)去除,確保網(wǎng)絡(luò)緩存服務(wù)的URL請(qǐng)求匹配規(guī)則能夠命中緩存的APP安裝文件;例如:URL請(qǐng)求為:http://www.99zjb.com/xmhb.apk?accessKey=123,其中參數(shù)“?accessKey=123”是根據(jù)請(qǐng)求設(shè)備及時(shí)機(jī)動(dòng)態(tài)產(chǎn)生,去掉后可避免緩存規(guī)則中的URL請(qǐng)求匹配規(guī)則失效;
步驟3、在路由設(shè)備上部署網(wǎng)絡(luò)代理(Proxy)服務(wù),部署內(nèi)容為配置網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則,該網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則包括來(lái)源IP段、URL請(qǐng)求匹配規(guī)則、目標(biāo)IP段、處理腳本文件路徑,通過(guò)該網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則確保路由設(shè)備能夠攔截響應(yīng)URL請(qǐng)求,并執(zhí)行重定向至網(wǎng)絡(luò)緩存服務(wù),并確保后續(xù)URL請(qǐng)求能夠命中緩存的APP安裝文件;
步驟4、智能終端通過(guò)無(wú)線WiFi接入路由設(shè)備后,通過(guò)網(wǎng)絡(luò)瀏覽器向路由設(shè)備發(fā)出下載APP的URL請(qǐng)求,路由設(shè)備的處理腳本對(duì)該URL請(qǐng)求進(jìn)行識(shí)別,將符合緩存規(guī)則和網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則的URL請(qǐng)求轉(zhuǎn)發(fā)至網(wǎng)絡(luò)緩存服務(wù);如不符合緩存規(guī)則或網(wǎng)絡(luò)代理轉(zhuǎn)發(fā)規(guī)則的URL請(qǐng)求,給予該URL請(qǐng)求放行并直接訪問(wèn)外部服務(wù)器地址;所述的URL請(qǐng)求包含了服務(wù)器外部服務(wù)器地址或者域名以及APP文件路徑信息;
步驟5、網(wǎng)絡(luò)緩存服務(wù)根據(jù)該URL請(qǐng)求,從緩存文件系統(tǒng)索引中查找對(duì)應(yīng)的已緩存的APP安裝文件,并向智能終端回傳所述APP安裝文件;如果未查找到已緩存的APP安裝文件,則根據(jù)該URL請(qǐng)求訪問(wèn)該URL對(duì)應(yīng)的外部服務(wù)器,并從該外部服務(wù)器下載APP安裝文件至緩存文件系統(tǒng),并根據(jù)緩存文件系統(tǒng)索引規(guī)則進(jìn)行緩存,在APP安裝文件緩存完成后繼續(xù)向智能終端回傳所緩存的APP安裝文件;所述的根據(jù)緩存文件系統(tǒng)索引規(guī)則進(jìn)行緩存,就是將URL作為對(duì)應(yīng)APP安裝文件的緩存文件系統(tǒng)的索引,使得網(wǎng)絡(luò)緩存服務(wù)根據(jù)該URL請(qǐng)求就能與緩存文件系統(tǒng)索引匹配后,查找到已緩存的APP安裝文件;
步驟6、智能終端通過(guò)無(wú)線WiFi網(wǎng)絡(luò)接收到路由設(shè)備響應(yīng)的APP安裝文件,提醒用戶安裝該APP。
路由設(shè)備從外部服務(wù)器下載APP安裝文件至緩存文件系統(tǒng)后的存儲(chǔ)方式具體是:APP安裝文件下載至路由設(shè)備后形成緩沖文件,緩沖文件按照文件名、文件類型和文件下載時(shí)間信息進(jìn)行加密并等大小拆分后形成數(shù)據(jù)塊文件,再用索引文件標(biāo)識(shí)各數(shù)據(jù)塊文件所在的位置,獲取文件時(shí),要根據(jù)索引重新拼接重組而成。采用該存儲(chǔ)方式的好處是:(1)加密防篡改;(2)可以實(shí)現(xiàn)分布式緩存,提高緩存請(qǐng)求的速度;(3)避免單文件過(guò)大引發(fā)其他問(wèn)題。網(wǎng)絡(luò)緩存服務(wù)技術(shù)采用類似SQUID的開源技術(shù)實(shí)現(xiàn)。
本發(fā)明采用緩存服務(wù)程序,結(jié)合路由代理服務(wù)以及路由Portal認(rèn)證服務(wù),提供了一套APP下載緩存的系統(tǒng)。Portal認(rèn)證是一種互聯(lián)網(wǎng)接入認(rèn)證方式,廣泛運(yùn)用于商業(yè)路由器廣告系統(tǒng)中,向接入設(shè)備提供一種身份識(shí)別服務(wù);本發(fā)明所說(shuō)的APP是應(yīng)用程序(Application)的簡(jiǎn)稱,特指當(dāng)前智能手機(jī)上可以運(yùn)行的一種文件形式,如安卓手機(jī)上可以安裝運(yùn)行的apk文件,蘋果手機(jī)上可以安裝運(yùn)行的ipa文件等;本發(fā)明所說(shuō)的URL是指統(tǒng)一資源定位符, 是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址。
緩存規(guī)則配置示例:
refresh_pattern -i \.ipa(.*)$ 1440 90% 2880 ignore-reload
refresh_pattern -i \.apk$ 1440 90% 2880 ignore-reload
網(wǎng)絡(luò)代理服務(wù)配置示例:
config zone
option name lan
list network 'lan'
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wan'
list network 'wan6'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
config forwarding
option src lan
option dest wan
腳本文件(Shell)示例:
#!/bin/sh
while true
do
read info
a1="${info#*iosapps.itunes.apple.com}"
a2="iosapps.itunes.apple.com""${a1%?accessKey*}""\n"
echo $a2>&1
Done。
以上僅為本發(fā)明的具體實(shí)施例,并非對(duì)本發(fā)明的保護(hù)范圍的限定。凡依本案的設(shè)計(jì)思路所做的等同變化,均落入本案的保護(hù)范圍。