亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用P2P下載工具實(shí)現(xiàn)離線下載服務(wù)

        2012-06-01 06:58:46佳都新太科技股份有限公司鄧任遠(yuǎn)
        電子世界 2012年21期
        關(guān)鍵詞:服務(wù)端離線引擎

        佳都新太科技股份有限公司 鄧任遠(yuǎn)

        利用P2P下載工具實(shí)現(xiàn)離線下載服務(wù)

        佳都新太科技股份有限公司 鄧任遠(yuǎn)

        當(dāng)用戶使用普通下載工具下載大的資源文件或者冷門資源時(shí),常常要等待一天甚至更長(zhǎng)時(shí)間才能完成,下載時(shí)需要長(zhǎng)時(shí)間地占用用戶的電腦資源和網(wǎng)絡(luò)資源,用戶不能關(guān)閉下載工具和個(gè)人機(jī)器。而離線下載是利用服務(wù)器“代”用戶進(jìn)行下載,待服務(wù)端下載完成后,用戶再用下載工具將資源從服務(wù)器取到自己本機(jī),具備無(wú)需掛機(jī)等待、高速的特點(diǎn)。本文所述的是利用成熟的P2P下載工具BitComet、eMule進(jìn)行二次開(kāi)發(fā),對(duì)用戶提供離線下載服務(wù)的方法,該方法同時(shí)支持HTTP、BT、ED2K、MAGNET多種下載方式。而且在服務(wù)端可以分布運(yùn)行多個(gè)P2P下載工具,以滿足客戶端的大量用戶下載請(qǐng)求,下載任務(wù)在各個(gè)下載引擎上的分配由服務(wù)端統(tǒng)一調(diào)度管理。

        離線下載;p2p;BT;ED2K;下載任務(wù)管理;下載引擎

        1.引言

        在傳統(tǒng)下載方式中,一般是把文件由服務(wù)器端傳送到客戶端,例如FTP,HTTP等等。由于是從一臺(tái)服務(wù)器下載,服務(wù)器所提供的帶寬是一定的,因而下載人越多速度越慢。但是這樣就出現(xiàn)了一個(gè)問(wèn)題,隨著用戶的增多,對(duì)帶寬的要求也隨之增多,用戶過(guò)多就會(huì)造成瓶頸,而且搞不好還會(huì)把服務(wù)器掛掉,所以很多的服務(wù)器會(huì)都有用戶人數(shù)的限制,這樣即使你使用的是寬帶網(wǎng),通常也很難達(dá)到運(yùn)營(yíng)商許諾的最高下載速度,這里面固然有網(wǎng)絡(luò)的原因,但與服務(wù)器的限制也不無(wú)關(guān)系。

        隨著P2P技術(shù)的出現(xiàn),用戶可以充分利用網(wǎng)絡(luò)帶寬,人可以直接連接到其他用戶的計(jì)算機(jī)、交換文件,而不是像過(guò)去那樣連接到服務(wù)器去瀏覽與下載,改變互聯(lián)網(wǎng)現(xiàn)在的以大網(wǎng)站為中心的狀態(tài)、重返”非中心化”,并把權(quán)力交還給用戶。目前常用的P2P工具有支持BitTorrent協(xié)議的比特彗星BitComet,支持ED2K協(xié)議的電騾eMule。

        但用戶使用P2P工具下載電影、游戲大型資源,或者冷門資源時(shí),用戶就得下很久,有時(shí)需要花費(fèi)幾天的時(shí)間,期間用戶必須長(zhǎng)期掛機(jī)以保證下載任務(wù)的不中斷,給用戶的設(shè)備使用帶來(lái)了很多不便和限制。

        我們?cè)诖艘劳谐墒斓墓ぞ吆图夹g(shù),實(shí)現(xiàn)了一種離線下載的服務(wù)方案。將比特彗星BitComet和電騾eMule運(yùn)行在服務(wù)端,用戶通過(guò)web頁(yè)面向服務(wù)端提交下載請(qǐng)求,服務(wù)端接受情況后,會(huì)根據(jù)下載請(qǐng)求的類型,分布將請(qǐng)求加載到這些P2P工具的中,生成下載任務(wù),由這些工具在服務(wù)端利用高速的帶寬進(jìn)行下載,或者由服務(wù)器掛機(jī)“代”用戶下載冷門資源。而用戶的設(shè)備在成果提交完下載任務(wù)請(qǐng)求后,就可斷開(kāi)網(wǎng)絡(luò)或者關(guān)機(jī)。用戶可以隨時(shí)訪問(wèn)離線下載的服務(wù)頁(yè)面,查詢自己要求資源的下載進(jìn)度,當(dāng)看到下載完成后,就可以一次性地取回下載文件,完成下載過(guò)程。

        圖1

        我們提供的離線下載服務(wù),是幫助用戶提供了一個(gè)下載代理,用戶只需提交下載請(qǐng)求,由我們的下載代理保持在線,幫助用戶完成下載任務(wù)。而這些代理的實(shí)現(xiàn),我們使用的是比特彗星、電騾這樣的成熟穩(wěn)定工具,避免了完全從P2P底層協(xié)議進(jìn)行開(kāi)發(fā),同時(shí)可以更好地利用網(wǎng)絡(luò)中的已有資源點(diǎn)。

        2.技術(shù)方案原理及實(shí)現(xiàn)

        離線下載原理如下:

        (1)用戶通過(guò)Web頁(yè)面提交一個(gè)下載請(qǐng)求。

        圖2

        圖3

        (2)服務(wù)端的下載任務(wù)管理器接收到請(qǐng)求后,首先查詢提交的下載鏈接是否被下載過(guò)。如果已下載過(guò),直接把已下載的資源文件復(fù)制到服務(wù)器上用戶的個(gè)人儲(chǔ)存空間;如果沒(méi)有,就將用戶的下載請(qǐng)求轉(zhuǎn)發(fā)到一個(gè)下載引擎模塊。

        (3)每個(gè)下載引擎模塊管理著一個(gè)BitComet和eMule下載工具,下載引擎判斷下載任務(wù)類型,如果是BT下載,則通過(guò)BitComet的http管理接口,將任務(wù)添加到BitComet的下載任務(wù)中,并開(kāi)始下載;如果是ED2K下載,則通過(guò)eMule的http管理接口,將任務(wù)添加到eMule的下載任務(wù)中,并開(kāi)始下載。

        (4)BitComet和eMule下載工具執(zhí)行下載任務(wù),并由下載引擎模塊通過(guò)他們的http管理接口查詢下載進(jìn)度。

        (5)下載完成后,用戶在Web頁(yè)面上可以查詢到下載進(jìn)度已為100%,用戶可以通過(guò)工具從本人的存儲(chǔ)空間一次性取回自己的文件。

        系統(tǒng)采用典型的分層架構(gòu),為了信息隱匿的需要,要求每一層只能調(diào)用其下一層的接口。每層都根據(jù)業(yè)務(wù)需求提供最低限度的接口,保證層次之間的依賴僅僅停留在接口級(jí)別。系統(tǒng)結(jié)構(gòu)如圖1。

        離線下載系統(tǒng)包括:用戶離線下載Portal頁(yè)面、下載任務(wù)管理模塊、下載引擎模塊、文件管理模塊。

        2.1 離線下載Portal頁(yè)面

        對(duì)用戶以WEB頁(yè)面的方式提供離線下載功能使用。用戶離線下載Portal頁(yè)面通過(guò)調(diào)用下載任務(wù)管理模塊的下載管理接口提供給用戶添加、刪除、暫停、啟動(dòng)下載任務(wù)及強(qiáng)制重新下載的功能。其中,強(qiáng)制重新下載的使用場(chǎng)景為,有可能系統(tǒng)下載歷史中的某一文件特征碼對(duì)應(yīng)的文件已經(jīng)不合實(shí)際,用戶根據(jù)系統(tǒng)下載歷史所獲取的文件并非用戶所需要的文件,則用戶可使用強(qiáng)制重新下載功能,讓系統(tǒng)刪除該文件特征碼對(duì)應(yīng)的下載文件并重新下載。

        用戶離線下載Portal網(wǎng)站可通過(guò)查詢數(shù)據(jù)庫(kù)獲取用戶的已完成下載任務(wù)及下載歷史。Protal網(wǎng)站需要分為正在下載任務(wù)列表及已完成下載列表兩個(gè)界面,正在下載任務(wù)列表中的任務(wù)清單及狀態(tài)是通過(guò)下載任務(wù)管理模塊的查詢接口中返回;而已完成下載列表的數(shù)據(jù)則通過(guò)查詢數(shù)據(jù)庫(kù)表獲取。

        2.2 下載任務(wù)管理模

        下載任務(wù)管理模塊通過(guò)讀取數(shù)據(jù)庫(kù)中的配置信息,以獲取各下載引擎模塊的信息。

        下載任務(wù)管理模塊以HTTP+JSON方式提供給用戶離線下載Portal頁(yè)面調(diào)用,用于提供網(wǎng)站查詢用戶的下載任務(wù)列表、添加用戶下載任務(wù)、刪除用戶下載任務(wù)、暫停用戶下載任務(wù)、啟動(dòng)用戶下載任務(wù)、強(qiáng)制重新下載。其中強(qiáng)制重新下載時(shí),系統(tǒng)刪除該文件特征碼對(duì)應(yīng)的下載文件并重新下載。

        下載任務(wù)管理模塊通過(guò)定時(shí)調(diào)用各下載引擎的查詢下載任務(wù)接口,以獲取最新的下載任務(wù)狀態(tài),并更新系統(tǒng)任務(wù)列表。對(duì)于下載完成的任務(wù),需要將下載文件移動(dòng)到系統(tǒng)備份空間,并復(fù)制到相應(yīng)用戶的個(gè)人存儲(chǔ)空間上。下載完成后,還需要通知下載引擎刪除該完成的任務(wù)。

        2.3 下載引擎模塊

        下載引擎模塊代理第三方下載工具(BitComet及eMule)的下載控制操作,屏蔽各種下載工具的差異。根據(jù)配置信息,初始化本機(jī)上的第三方下載工具接口。

        下載引擎模塊以HTTP+JSON方式提供文件下載接口給下載任務(wù)管理模塊調(diào)用,用于提供下載任務(wù)管理模塊獲取下載引擎節(jié)點(diǎn)上的下載任務(wù)列表、添加下載任務(wù)、刪除下載任務(wù)、暫停下載任務(wù)、啟動(dòng)下載任務(wù)。

        下載引擎模塊需要增加消息隊(duì)列以保證發(fā)向下載工具的操作是單線程操作,以確保操作順序。

        下載引擎模塊對(duì)BitComet工具進(jìn)行遠(yuǎn)程暫停、刪除、啟動(dòng)操作之前,需要先做一次獲取BitComet下載列表的操作,并根據(jù)特征碼找出BitComet的taskid,再進(jìn)行暫停、刪除、啟動(dòng)操作。

        2.4 文件管理模塊

        離線下載的文件往往是較大的文件,如果通過(guò)網(wǎng)絡(luò)連接來(lái)進(jìn)行頻繁的復(fù)制、移動(dòng)操作將影響網(wǎng)絡(luò)帶寬及操作時(shí)間過(guò)長(zhǎng)。

        文件管理模塊則在文件服務(wù)器上的一個(gè)應(yīng)用模塊,用于接受下載任務(wù)管理模塊發(fā)出的下載文件復(fù)制、移動(dòng)、刪除操作,并最終于文件服務(wù)器上,通過(guò)外調(diào)操作系統(tǒng)命令進(jìn)行文件的復(fù)制、移動(dòng)及刪除。經(jīng)過(guò)測(cè)試,直接使用外調(diào)操作系統(tǒng)命令進(jìn)行大文件的復(fù)制速度是最快的,比使用NIO或管道等方式都快。

        參考代碼如下:

        3.關(guān)鍵用例

        離線下載系統(tǒng)中添加下載任務(wù)和刪除下載任務(wù)的活動(dòng)圖分別如圖2和圖3。

        4.離線下載的應(yīng)用

        基于該種設(shè)計(jì)方案的離線下載系統(tǒng),已經(jīng)在北京聯(lián)通寬帶業(yè)務(wù)中心上線試運(yùn)行。該系統(tǒng)充分利用了北京聯(lián)通寬帶業(yè)務(wù)中心的網(wǎng)絡(luò)帶寬優(yōu)勢(shì),通過(guò)在多臺(tái)服務(wù)上部署多個(gè)下載引擎,每個(gè)引擎各管理一套BitComet和eMule的方法,以滿足公網(wǎng)上大用戶量的下載任務(wù)請(qǐng)求。實(shí)用中表明,對(duì)于一些冷門資源,文件大小雖然只有600M,但完成下載所需的時(shí)間卻是57小時(shí)34分鐘,下載完成后取回到用戶本地只需要10多分鐘。通過(guò)離線下載系統(tǒng)大大提高了用戶的下載效率。

        5.結(jié)語(yǔ)

        本文所設(shè)計(jì)的離線下載方案,避免了完全從P2P底層協(xié)議開(kāi)發(fā)或者掌握龐大的P2P開(kāi)源代碼工程,利用成熟的P2P下載工具,通過(guò)分析這些工具的外部管理接口,而達(dá)到向工具中加載下載任務(wù),啟動(dòng)、暫停等控制下載任務(wù),提供一種快速實(shí)現(xiàn)的離線下載服務(wù)。并且依靠成熟工具的穩(wěn)定性來(lái)保障了服務(wù)的穩(wěn)定性。通過(guò)離線下載服務(wù),提高了用戶下載的效率,釋放了本地設(shè)備的使用,充分利用了服務(wù)端的帶寬資源和設(shè)備資源。隨著系統(tǒng)商業(yè)度的提供,將會(huì)為服務(wù)提供商帶來(lái)良好的經(jīng)濟(jì)效益。

        [1]茹林.P2P網(wǎng)絡(luò)中多線程下載的研究[Z].大連海事大學(xué),2009.

        [2]林泓,何巍.利用JXTA平臺(tái)實(shí)現(xiàn)P2P服務(wù)的研究[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2005(02).

        猜你喜歡
        服務(wù)端離線引擎
        異步電機(jī)離線參數(shù)辨識(shí)方法
        呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
        淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
        云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
        離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
        中成藥(2018年2期)2018-05-09 07:20:09
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        在Windows Server 2008上創(chuàng)建應(yīng)用
        無(wú)形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
        精品人妻VA出轨中文字幕| 成 人片 黄 色 大 片| 最新精品国偷自产在线| 亚洲精品你懂的在线观看| 久久久久久久久高潮无码 | 精品乱子伦一区二区三区 | av毛片亚洲高清一区二区| 欧美性高清另类videosex| 无遮挡又黄又刺激又爽的视频| 国产美女一级做a爱视频| 国产精品日本中文在线| 乱码窝窝久久国产无人精品| 久久国产精品-国产精品| 成人xx免费无码| 亚洲中文字幕乱码免费看| 欧美成人精品第一区| 一区二区三区国产亚洲网站| 日韩久久久久中文字幕人妻| 日韩亚洲一区二区三区在线 | 女女同性av一区二区三区免费看| 漂亮人妻被强了中文字幕| 免费无码一区二区三区蜜桃| 国产精品亚洲欧美天海翼| 日韩精品中文字幕免费人妻| 国产一区二区视频免费在| 久久久久久亚洲精品中文字幕| 妺妺窝人体色www在线直播| 偷拍一区二区三区黄片| 精品日韩亚洲av无码| 欧美熟妇精品一区二区三区| 无码AⅤ最新av无码专区| 国产一区二区精品人妖系列在线 | 少妇下面好紧好多水真爽播放| 一本大道东京热无码中字 | 99精品国产兔费观看久久| 人妻少妇被猛烈进入中文| 国产成人精品一区二区三区| 婷婷开心深爱五月天播播| 水蜜桃视频在线观看免费18| 中文字幕女同系列在线看一| 日本免费一区二区三区|