亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種下載數(shù)據(jù)的方法及裝置的制作方法

文檔序號(hào):7749121閱讀:134來源:國(guó)知局
專利名稱:一種下載數(shù)據(jù)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信和互聯(lián)網(wǎng)領(lǐng)域,特別是涉及下載數(shù)據(jù)的方法及裝置。
背景技術(shù)
HTTP 則是 Hyper Text Transportation Protocol (超文本傳輸協(xié)議)的縮寫, 它們是計(jì)算機(jī)之間交換數(shù)據(jù)的方式。HTTP是一個(gè)客戶端和服務(wù)器端請(qǐng)求和響應(yīng)的標(biāo)準(zhǔn) (TCP)。它是一種從Web服務(wù)器下載超文本到本地瀏覽器的一種傳輸協(xié)議??蛻舳耸墙K端用戶,服務(wù)器端是網(wǎng)站。通過使用web瀏覽器或者其它的工具,客戶端發(fā)起一個(gè)到服務(wù)器上指定端口的HTTP請(qǐng)求。應(yīng)答的服務(wù)器上存儲(chǔ)著一些資源,比如HTML (超文本標(biāo)記語言)文件和圖像。HTTP的主要工作是用來瀏覽網(wǎng)頁,不過也能用來下載。HTTP下載的優(yōu)點(diǎn)是網(wǎng)友可以打開瀏覽器自由選擇Web網(wǎng)頁上的圖片、Html文件、壓縮文件等元素進(jìn)行下載,用戶只需要使用瀏覽器軟件不需要其它下載軟件就能下載文件,通用性強(qiáng)。而它的缺點(diǎn)是下載速度慢、不支持?jǐn)帱c(diǎn)續(xù)傳,因此只適合下載體積較小的文件?,F(xiàn)在有多家企業(yè)開發(fā)的下載工具,采用多服務(wù)器超線程傳輸技術(shù)(Multi-server Hyper-threading Transportation, MHT),最大限度優(yōu)化算法,智能拆分下載文件,多點(diǎn)并行傳輸,可大幅度提高下載速度。但是目前如應(yīng)用軟件的在線安裝或在線更新時(shí)由應(yīng)用軟件發(fā)起的數(shù)據(jù)獲取,仍然采用基于HTTP協(xié)議下載,從指定的服務(wù)器獲取數(shù)據(jù)。這種方式下載速度較慢,海量服務(wù)負(fù)荷過大,嚴(yán)重影響服務(wù)質(zhì)量。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種下載數(shù)據(jù)的方法及裝置,用于提高下載效率。一種下載數(shù)據(jù)的方法,包括以下步驟從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí);調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù);將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。一種用于下載數(shù)據(jù)的裝置,包括應(yīng)用接口模塊,用于從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí);調(diào)用模塊,用于調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù);傳輸模塊,用于將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。本發(fā)明實(shí)施例在應(yīng)用軟件下載文件的過程中,啟動(dòng)專用下載工具,并通過專用下載工具下載應(yīng)用軟件需下載的文件,利用專用下載工具的下載優(yōu)勢(shì),相當(dāng)于提高應(yīng)用軟件的下載效率。


圖1為本發(fā)明實(shí)施例中下載數(shù)據(jù)的主要方法流程圖;圖2為本發(fā)明實(shí)施例中下載數(shù)據(jù)的詳細(xì)方法流程圖;圖3為本發(fā)明實(shí)施例中監(jiān)控應(yīng)用層時(shí)下載數(shù)據(jù)的方法流程圖;圖4為本發(fā)明實(shí)施例中監(jiān)控驅(qū)動(dòng)層時(shí)下載數(shù)據(jù)的方法流程圖;圖5為本發(fā)明實(shí)施例中裝置的主要結(jié)構(gòu)圖;圖6為本發(fā)明實(shí)施例中裝置的詳細(xì)結(jié)構(gòu)圖。
具體實(shí)施例方式本發(fā)明實(shí)施例在應(yīng)用軟件下載文件的過程中,啟動(dòng)專用下載工具,并通過專用下載工具下載應(yīng)用軟件需下載的文件,利用專用下載工具的下載優(yōu)勢(shì),相當(dāng)于提高應(yīng)用軟件的下載效率。本實(shí)施例中的應(yīng)用軟件為不能通過瀏覽器建立下載任務(wù),并帶有固定下載地址的軟件,包括具有在線下載或在線安裝等功能的進(jìn)行單一路徑下載的軟件,例如防火墻或殺毒軟件等。專用下載工具包括接口模塊和下載加速模塊。接口模塊用于接受調(diào)用,下載加速模塊用于對(duì)需要下載的數(shù)據(jù)進(jìn)行下載加速,其可通過多線程下載、多源下載(P2P(點(diǎn)到點(diǎn))、P2SP(點(diǎn)到服務(wù)和點(diǎn)))等方式實(shí)現(xiàn)。下載加速模塊可使用現(xiàn)有的下載工具的下載后臺(tái)技術(shù),例如資源索引數(shù)據(jù)庫,其中包括了下載數(shù)據(jù)資源的文件標(biāo)識(shí)與一個(gè)或多個(gè) URL (Uniform Resource Locator,統(tǒng)一資源定位)的對(duì)應(yīng)關(guān)系,當(dāng)接口模塊將被調(diào)用時(shí)獲得的需下載文件的標(biāo)識(shí)發(fā)送給下載加速模塊時(shí),下載加速模塊則根據(jù)該標(biāo)識(shí)從資源索引數(shù)據(jù)庫中查找該標(biāo)識(shí)對(duì)應(yīng)的多個(gè)URL,并從該多個(gè)URL同時(shí)下載數(shù)據(jù),以實(shí)現(xiàn)下載加速。參見圖1,本實(shí)施例中下載數(shù)據(jù)的主要方法流程如下步驟101 從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)。步驟102 調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù)。步驟103 將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。需下載文件的標(biāo)識(shí)包括統(tǒng)一資源定位(URL)、引用頁或數(shù)據(jù)文件指紋等。其中,數(shù)據(jù)文件指紋為用哈希(hash)算法對(duì)文件的全部或部分?jǐn)?shù)據(jù)進(jìn)行加密后得到的結(jié)果。但是網(wǎng)絡(luò)側(cè)該文件的標(biāo)識(shí)可能發(fā)生變化,例如存儲(chǔ)位置改變(即URL改變)或者文件更新(即數(shù)據(jù)文件指紋),從下載請(qǐng)求中獲得的需下載文件的標(biāo)識(shí)可能不準(zhǔn)確。所以為了提高下載的成功率和準(zhǔn)確性,獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),主要是獲得文件的頭部,從頭部獲得標(biāo)識(shí)。然后將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì),在比對(duì)結(jié)果一致時(shí)調(diào)用專用下載工具。通過下面的實(shí)施例詳細(xì)介紹下載過程。參見圖2,本實(shí)施例中下載數(shù)據(jù)的詳細(xì)方法流程如下步驟201 從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)。步驟202 獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí)。步驟203 將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì)。如果比對(duì)一致,則繼續(xù)步驟204,否則結(jié)束流程,由應(yīng)用軟件繼續(xù)下載文件。步驟204 調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射。其中,調(diào)用專用下載工具的同時(shí),將獲得的需下載文件的標(biāo)識(shí)發(fā)送給專用下載工具。步驟205 通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù)。步驟206 通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。本實(shí)施例中可以通過應(yīng)用層和驅(qū)動(dòng)層兩種途徑從應(yīng)用軟件處獲得下載請(qǐng)求,并將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。下面通過兩個(gè)典型實(shí)施例來介紹這兩種實(shí)現(xiàn)方式。參見圖3,本實(shí)施例中監(jiān)控應(yīng)用層時(shí)下載數(shù)據(jù)的方法流程如下步驟301 通過監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口(API)的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求。步驟302 從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)。在視窗(windows)操作系統(tǒng)中,利用IpWSPknd指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中IpWSPSend指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的應(yīng)用程序接口(API)。步驟303 從應(yīng)用層獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí)。在windows 操作系統(tǒng)中,利用 IpWSPRecv 或 lpWSPGetOverlappedResult 指向函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中 IpffSPRecv和lpWSPGetOverlappedResult指向函數(shù)的指針指向應(yīng)用軟件下載的文件。其中,IpWSPRecv指向函數(shù)用于直接截獲應(yīng)用軟件下載的數(shù)據(jù)。lpWSPGetOverlappedResult 指向函數(shù)用于設(shè)置一個(gè)類似盒子的容器(如堆棧等),應(yīng)用軟件下載的數(shù)據(jù)將填充該盒子, 從而獲得應(yīng)用軟件下載的數(shù)據(jù)。步驟304 將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì)。如果比對(duì)一致,則繼續(xù)步驟305,否則結(jié)束流程,由應(yīng)用軟件繼續(xù)下載文件。例如, 將從下載請(qǐng)求獲得的URL與從下載的部分文件中獲得的URL比對(duì),如果一致,繼續(xù)步驟305。 如果從下載請(qǐng)求獲得的是URL,從下載的部分文件中獲得的是數(shù)據(jù)文件指紋,則確定比對(duì)不一致。步驟305 調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射。步驟306 通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù)。步驟307:通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。在 windows操作系統(tǒng)中,用專用下載工具的下載端口替換應(yīng)用軟件的socket接口,以將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。下載結(jié)束或用戶停止下載時(shí),獲得應(yīng)用軟件的停止下載命令,并在執(zhí)行停止下載命令之前,關(guān)閉或暫停專用下載工具中的下載任務(wù),還可以清空相關(guān)任務(wù)記錄。參見圖4,本實(shí)施例中監(jiān)控驅(qū)動(dòng)層時(shí)下載數(shù)據(jù)的方法流程如下
步驟401 通過監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求。步驟402 從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)。在視窗windows操作系統(tǒng)中,利用MPknd或MPkndPacket指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中MPknd或MPkndPacket指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口。步驟403 從驅(qū)動(dòng)層獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí)。在視窗windows操作系統(tǒng)中,利用PtReceive或PtReceivePacket函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中PtReceive和 PtReceivePacket函數(shù)的指針指向應(yīng)用軟件下載的文件。PtReceive函數(shù)相當(dāng)于IpWSPRecv 指向函數(shù),功能基本相同,只是PtReceive函數(shù)用于在驅(qū)動(dòng)層截獲數(shù)據(jù)。PtReceivel^acket 函數(shù)相當(dāng)于lpWSPGetOverlappedResult指向函數(shù),功能基本相同,只是PtReceivePacket 函數(shù)用于在驅(qū)動(dòng)層獲得數(shù)據(jù)。步驟404 將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì)。如果比對(duì)一致,則繼續(xù)步驟405,否則結(jié)束流程,由應(yīng)用軟件繼續(xù)下載文件。例如, 將從下載請(qǐng)求獲得的URL與從下載的部分文件中獲得的URL比對(duì),如果一致,繼續(xù)步驟405。 如果從下載請(qǐng)求獲得的是URL,從下載的部分文件中獲得的是數(shù)據(jù)文件指紋,則確定比對(duì)不一致。步驟405 調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射。調(diào)用專用下載工具的同時(shí),通過DeviceloControl函數(shù)將需下載文件的標(biāo)識(shí)發(fā)送給專用下載工具。步驟406 通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù)。步驟407 通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。在視窗 windows操作系統(tǒng)中,通過寫文件WriteFile方式將數(shù)據(jù)傳遞給驅(qū)動(dòng)層,驅(qū)動(dòng)層獲取到數(shù)據(jù),將獲取到的數(shù)據(jù)作為NDIS原有應(yīng)發(fā)送的數(shù)據(jù)。下載結(jié)束或用戶停止下載時(shí),獲得應(yīng)用軟件的停止下載命令,并在執(zhí)行停止下載命令之前,關(guān)閉或暫停專用下載工具中的下載任務(wù),還可以清空相關(guān)任務(wù)記錄。專用下載工具通常是根據(jù)自帶的文件的標(biāo)識(shí)與文件存儲(chǔ)地址的對(duì)應(yīng)關(guān)系來獲得文件存儲(chǔ)地址,進(jìn)而下載文件。但是該對(duì)應(yīng)關(guān)系可能更新不及時(shí),使得專用下載工具下載的文件出現(xiàn)錯(cuò)誤。較佳的解決方式是,將專用下載工具下載的數(shù)據(jù)相關(guān)信息與應(yīng)用軟件下載的數(shù)據(jù)相關(guān)信息進(jìn)行校驗(yàn),若校驗(yàn)結(jié)果一致,則將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件,如果不一致,關(guān)閉專用下載工具中的下載任務(wù),繼續(xù)由應(yīng)用軟件下載。數(shù)據(jù)相關(guān)信息包括文件后綴名、文件大小或文件標(biāo)識(shí)等。當(dāng)數(shù)據(jù)相關(guān)信息為數(shù)據(jù)文件指紋時(shí),具體校驗(yàn)方法預(yù)先設(shè)置一個(gè)文件分片指紋數(shù)據(jù)庫,其包括了整體文件指紋、文件分片指紋的對(duì)應(yīng)關(guān)系,分片指紋是指對(duì)一個(gè)二進(jìn)制文件的每個(gè)數(shù)據(jù)片段分別用hash算法計(jì)算出指紋,例如一個(gè)100k的文件,可以對(duì)其0-10k、ll-20k. . . 91-100k計(jì)算得到10個(gè)文件分片指紋,或者該數(shù)據(jù)庫也可以僅記錄第一個(gè)文件分片指紋,也就是Ο-lOk,在校驗(yàn)時(shí),讓應(yīng)用程序自己下載第一個(gè)文件分片(例如http協(xié)議是按文件順序進(jìn)行下載),下載后截獲該分片數(shù)據(jù),計(jì)算指紋,將計(jì)算的分片指紋與數(shù)據(jù)庫中的進(jìn)行比較,再與加速模塊建立下載任務(wù)的指紋比較。通過以上描述了解了下載數(shù)據(jù)的實(shí)現(xiàn)過程,該過程主要由裝置實(shí)現(xiàn)。下面對(duì)該裝置的內(nèi)部結(jié)構(gòu)和功能進(jìn)行介紹。參見圖5,本實(shí)施例中用于下載數(shù)據(jù)的裝置包括應(yīng)用接口模塊501、調(diào)用模塊502 和傳輸模塊503。應(yīng)用接口模塊501用于從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)。需下載文件的標(biāo)識(shí)包括統(tǒng)一資源定位URL、引用頁或數(shù)據(jù)文件指紋。調(diào)用模塊502用于調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù)。傳輸模塊503用于將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。具體的,應(yīng)用接口模塊501通過監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求;或者,通過監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求。在視窗windows操作系統(tǒng)中,應(yīng)用接口模塊501利用 IpWSPknd指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中IpWSPknd指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API ;或者,利用MPknd或MPkndPacket指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中MPknd或MPkndPacket指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口。所述裝置還包括截取模塊504,參見圖6所示。截取模塊504用于獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí);將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì)。調(diào)用模塊502在比對(duì)結(jié)果一致時(shí)調(diào)用專用下載工具。具體的,在視窗windows操作系統(tǒng)中,截取模塊504利用 IpffSPRecv或lpWSPGetOverlappedResult指向函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中IpWSPRecv和lpWSPGetOverlappedResult 指向函數(shù)的指針指向應(yīng)用軟件下載的文件;或者,利用PtReceive或PtReceivePacket函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中 PtReceive和PtReceivePacket函數(shù)的指針指向應(yīng)用軟件下載的文件。調(diào)用模塊502調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射。傳輸模塊503通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。在視窗windows操作系統(tǒng)中,傳輸模塊503用專用下載工具的下載端口替換應(yīng)用軟件的socket接口,以將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件;或者,通過寫文件WriteFile 方式將數(shù)據(jù)傳遞給驅(qū)動(dòng)層,驅(qū)動(dòng)層獲取到數(shù)據(jù),將獲取到的數(shù)據(jù)作為NDIS原有應(yīng)發(fā)送的數(shù)據(jù)。應(yīng)用接口模塊501還用于獲得應(yīng)用軟件的停止下載命令。調(diào)用模塊502還用于在執(zhí)行停止下載命令之前,關(guān)閉或暫停專用下載工具中的下載任務(wù)。所述裝置還包括校驗(yàn)?zāi)K505,用于將專用下載工具下載的數(shù)據(jù)相關(guān)信息與應(yīng)用軟件下載的數(shù)據(jù)相關(guān)信息進(jìn)行校驗(yàn);若校驗(yàn)結(jié)果一致,則傳輸模塊將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。所述裝置可以是軟件實(shí)現(xiàn),則該裝置可通過動(dòng)態(tài)鏈接庫(Dynamic Link Library, DLL)、可執(zhí)行文件(ΕΧΕ)及驅(qū)動(dòng)程序等方式載入windows操作系統(tǒng)中。以windows操作系統(tǒng)為例,一種安裝所述裝置的方法如下1)通過服務(wù)提供者配置函數(shù)中的WSCEnumProtocols (服務(wù)提供者配置函數(shù)中用來枚舉系統(tǒng)中所有已安裝的服務(wù)提供者的函數(shù),它按照服務(wù)提供者的安裝順序相應(yīng)的列出他們)枚舉Winsock (即Windows Sockets的縮寫,是Windows下得到廣泛應(yīng)用的、開放的、 支持多種協(xié)議的網(wǎng)絡(luò)編程接口)目錄下的所有服務(wù)程序提供者;2)尋找第一個(gè)地址家族為AF INET,套接字類型為S0CK_STREAM,協(xié)議類型為 IPPR0T0_TCP 的“協(xié)議鏈”或 “Basic Service Provider (基礎(chǔ)服務(wù)提供者),,;3)調(diào)用WSCInstallftxwider (用于安裝服務(wù)提供者的函數(shù))安裝加速服務(wù)模塊分層協(xié)議;4)通過WSCEnumProtocol函數(shù)重新枚舉所有服務(wù)程序提供者,獲取加速服務(wù)模塊分層協(xié)議的目錄ID號(hào);5)通過WSCInstalProvider函數(shù)安裝加速服務(wù)模塊協(xié)議鏈,并將該協(xié)議鏈提前到協(xié)議鏈頂層(以維持鏈?zhǔn)浇Y(jié)構(gòu),是winSOck2協(xié)議所要求的);6)調(diào)用WSCWriteftOviderOrder (這是服務(wù)提供者配置函數(shù)中用于更新所有服務(wù)提供者的安裝順序的函數(shù))函數(shù)重新排序Winsock目錄。本發(fā)明實(shí)施例在應(yīng)用軟件下載文件的過程中,啟動(dòng)專用下載工具,并通過專用下載工具下載應(yīng)用軟件需下載的文件,利用專用下載工具的下載優(yōu)勢(shì),相當(dāng)于提高應(yīng)用軟件的下載效率。本發(fā)明實(shí)施例還提供了通過應(yīng)用層和驅(qū)動(dòng)層兩種方式實(shí)現(xiàn),實(shí)現(xiàn)方式靈活,便于應(yīng)用。針對(duì)第三方軟件廠商開發(fā)的需從遠(yuǎn)程主機(jī)獲取數(shù)據(jù)的軟件(諸如需要在線更新病毒庫的殺毒軟件、需要在線下載安裝數(shù)據(jù)包的在線軟件安裝包等),可采用本發(fā)明所提供的系統(tǒng)及方法進(jìn)行數(shù)據(jù)下載加速。傳統(tǒng)的下載工具只能針對(duì)下載鏈接建立的下載任務(wù)進(jìn)行加速,而對(duì)于一些在運(yùn)行于非下載工具進(jìn)程中的數(shù)據(jù)傳輸任務(wù),例如軟件更新進(jìn)程、軟件在線安裝進(jìn)程中的數(shù)據(jù)傳輸任務(wù),則只能從進(jìn)程所指定的地址獲取數(shù)據(jù),這通常是從單一服務(wù)器獲取,所以極大的限制了數(shù)據(jù)獲取速度。而采用本發(fā)明所提供的裝置及方法,可為諸如軟件在線安裝、更新升級(jí)等應(yīng)用進(jìn)行數(shù)據(jù)傳輸加速,在為用戶提供高速優(yōu)質(zhì)內(nèi)容服務(wù)的同時(shí),為第三方軟件和內(nèi)容服務(wù)提供商節(jié)省網(wǎng)絡(luò)資源開銷。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種下載數(shù)據(jù)的方法,其特征在于,包括以下步驟從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí); 調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù); 將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
2.如權(quán)利要求1所述的方法,其特征在于,從應(yīng)用軟件處獲得下載請(qǐng)求的步驟包括 通過監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求;或者通過監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求。
3.如權(quán)利要求2所述的方法,其特征在于,通過監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口API 的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)的步驟包括在視窗windows操作系統(tǒng)中,利用IpWSPknd指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中IpWSPknd指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API ;通過監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí)的步驟包括在視窗windows操作系統(tǒng)中,利用MPknd或MPkndPacket指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中MPknd或 MPkndPacket指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口。
4.如權(quán)利要求1所述的方法,其特征在于,調(diào)用專用下載工具之前,還包括步驟獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí);將從下載請(qǐng)求獲得的需下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì);調(diào)用專用下載工具的步驟包括在比對(duì)結(jié)果一致時(shí)調(diào)用專用下載工具。
5.如權(quán)利要求4所述的方法,其特征在于,獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí)的步驟包括在視窗windows操作系統(tǒng)中,利用IpWSPRecv或lpWSPGetOverlappedResult指向函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中 IpWSPRecv和lpWSPGetOverlappedResult指向函數(shù)的指針指向應(yīng)用軟件下載的文件;或者在視窗windows操作系統(tǒng)中,利用PtReceive或PtReceivePacket函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中PtReceive和 PtReceivePacket函數(shù)的指針指向應(yīng)用軟件下載的文件。
6.如權(quán)利要求1所述的方法,其特征在于,調(diào)用專用下載工具,并通過該專用下載工具根據(jù)需下載文件的標(biāo)識(shí)下載數(shù)據(jù)的步驟包括調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射;將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件的步驟包括通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
7.如權(quán)利要求6所述的方法,其特征在于,還包括步驟獲得應(yīng)用軟件的停止下載命令,并在執(zhí)行停止下載命令之前,關(guān)閉或暫停專用下載工具中的下載任務(wù)。
8.如權(quán)利要求1所述的方法,其特征在于,將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件的步驟包括在視窗windows操作系統(tǒng)中,用專用下載工具的下載端口替換應(yīng)用軟件的socket接口,以將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件;或者在視窗windows操作系統(tǒng)中,通過寫文件feiteFiIe方式將數(shù)據(jù)傳遞給驅(qū)動(dòng)層,驅(qū)動(dòng)層獲取到數(shù)據(jù),將獲取到的數(shù)據(jù)作為NDIS原有應(yīng)發(fā)送的數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征在于,將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件之前, 還包括步驟將專用下載工具下載的數(shù)據(jù)相關(guān)信息與應(yīng)用軟件下載的數(shù)據(jù)相關(guān)信息進(jìn)行校驗(yàn);若校驗(yàn)結(jié)果一致,則將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
10.如權(quán)利要求1所述的方法,其特征在于,需下載文件的標(biāo)識(shí)包括統(tǒng)一資源定位URL、 引用頁或數(shù)據(jù)文件指紋。
11.一種用于下載數(shù)據(jù)的裝置,其特征在于,包括應(yīng)用接口模塊,用于從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí);調(diào)用模塊,用于調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù);傳輸模塊,用于將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
12.如權(quán)利要求11所述的裝置,其特征在于,應(yīng)用接口模塊通過監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求;或者,通過監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求。
13.如權(quán)利要求12所述的裝置,其特征在于,在視窗windows操作系統(tǒng)中,應(yīng)用接口模塊利用IpWSPknd指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API的發(fā)送命令,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中IpWSPknd指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的應(yīng)用程序接口 API ;或者,利用MPknd或MPkndPacket指向函數(shù)監(jiān)控應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口,從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí),其中MPknd或MPkndPacket指向函數(shù)的指針指向應(yīng)用軟件調(diào)用的中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包調(diào)用接口。
14.如權(quán)利要求11所述的裝置,其特征在于,還包括截取模塊,用于獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí);將從下載請(qǐng)求獲得的需 下載文件的標(biāo)識(shí)與從下載的部分文件中獲得需下載文件的標(biāo)識(shí)比對(duì);調(diào)用模塊在比對(duì)結(jié)果一致時(shí)調(diào)用專用下載工具。
15.如權(quán)利要求14所述的裝置,其特征在于,在視窗windows操作系統(tǒng)中,截取模塊利用IpWSPRecv或lpWSPGetOverlappedResult指向函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中l(wèi)pWSPRecv和 lpWSPGetOverlappedResult指向函數(shù)的指針指向應(yīng)用軟件下載的文件;或者,利用 PtReceive或PtReceivePacket函數(shù),獲得應(yīng)用軟件下載的部分文件,并從下載的部分文件中獲得需下載文件的標(biāo)識(shí),其中PtReceive和PtReceivePacket函數(shù)的指針指向應(yīng)用軟件下載的文件。
16.如權(quán)利要求11所述的裝置,其特征在于,調(diào)用模塊調(diào)用專用下載工具,在專用下載工具中建立下載任務(wù),以及建立下載任務(wù)到應(yīng)用軟件的映射;傳輸模塊通過該映射將專用下載工具下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
17.如權(quán)利要求16所述的裝置,其特征在于,應(yīng)用接口模塊還用于獲得應(yīng)用軟件的停止下載命令;調(diào)用模塊還用于在執(zhí)行停止下載命令之前,關(guān)閉或暫停專用下載工具中的下載任務(wù)。
18.如權(quán)利要求11所述的裝置,其特征在于,在視窗windows操作系統(tǒng)中,傳輸模塊用專用下載工具的下載端口替換應(yīng)用軟件的socket接口,以將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件;或者,通過寫文件WriteFile方式將數(shù)據(jù)傳遞給驅(qū)動(dòng)層,驅(qū)動(dòng)層獲取到數(shù)據(jù),將獲取到的數(shù)據(jù)作為NDIS原有應(yīng)發(fā)送的數(shù)據(jù)。
19.如權(quán)利要求11所述的裝置,其特征在于,還包括校驗(yàn)?zāi)K,用于將專用下載工具下載的數(shù)據(jù)相關(guān)信息與應(yīng)用軟件下載的數(shù)據(jù)相關(guān)信息進(jìn)行校驗(yàn);若校驗(yàn)結(jié)果一致,則傳輸模塊將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。
20.如權(quán)利要求11所述的裝置,其特征在于,需下載文件的標(biāo)識(shí)包括統(tǒng)一資源定位 URL、引用頁或數(shù)據(jù)文件指紋。
全文摘要
本發(fā)明公開了一種下載數(shù)據(jù)的方法,用于提高下載效率。所述方法包括從應(yīng)用軟件處獲得下載請(qǐng)求,并從下載請(qǐng)求中獲得需下載文件的標(biāo)識(shí);調(diào)用專用下載工具,并通過該專用下載工具根據(jù)該需下載文件的標(biāo)識(shí)下載數(shù)據(jù);將下載的數(shù)據(jù)傳輸給所述應(yīng)用軟件。本發(fā)明還公開了用于實(shí)現(xiàn)所述方法的裝置。
文檔編號(hào)H04L29/08GK102355486SQ20111022971
公開日2012年2月15日 申請(qǐng)日期2011年8月11日 優(yōu)先權(quán)日2011年8月11日
發(fā)明者張 林, 歐陽杰, 陳華勝, 黃劍青 申請(qǐng)人:深圳市迅雷網(wǎng)絡(luò)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1