錢(qián)麗丹
[提要] 隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)娛樂(lè)形式日益豐富,在線觀影作為一種重要的娛樂(lè)方式受到人們的普遍喜愛(ài)。電影資源網(wǎng)站在完善的技術(shù)平臺(tái)支持下,實(shí)時(shí)提供電影及電視劇資料庫(kù),并在尊重版權(quán)的前提下,讓互聯(lián)網(wǎng)用戶在線流暢地發(fā)布、瀏覽和分享電影作品。本文首先介紹系統(tǒng)使用的關(guān)鍵技術(shù),在此基礎(chǔ)上設(shè)計(jì)一個(gè)基于BitTorrent的電影資源網(wǎng)站,包括網(wǎng)站需求、系統(tǒng)開(kāi)發(fā)環(huán)境、數(shù)據(jù)庫(kù)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)。
關(guān)鍵詞:網(wǎng)絡(luò)娛樂(lè);電影資源網(wǎng)站;BitTorrent;網(wǎng)站需求;數(shù)據(jù)庫(kù)設(shè)計(jì)
中圖分類號(hào):F27 文獻(xiàn)標(biāo)識(shí)碼:A
收錄日期:2018年2月1日
近年來(lái),隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)娛樂(lè)形式日益豐富,包括在線小說(shuō)、電影、電視、游戲等豐富了人們的精神生活,而在線觀影作為一種重要的娛樂(lè)方式受到人們的普遍喜愛(ài)。電影資源網(wǎng)站在完善的技術(shù)平臺(tái)支持下,提供電影及電視劇資料庫(kù),包括資訊、預(yù)告片、海報(bào)、寫(xiě)真和熱門(mén)影評(píng),同時(shí)電影網(wǎng)站在尊重版權(quán)的前提下,讓互聯(lián)網(wǎng)用戶在線流暢發(fā)布、瀏覽和分享電影作品。本文將在介紹ThinkPHP技術(shù)和BitTorrent技術(shù)的基礎(chǔ)上,針對(duì)電影、電視劇愛(ài)好者,設(shè)計(jì)并開(kāi)發(fā)基于BitTorrent的電影資源網(wǎng)站。
(一)PHP開(kāi)發(fā)技術(shù)。PHP是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java的特點(diǎn),入門(mén)門(mén)檻較低,易于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。系統(tǒng)開(kāi)發(fā)采用了最新的PHP7開(kāi)發(fā)技術(shù)。與以往的版本相比,PHP7具有一些新的特點(diǎn),并試圖打破版本之間向下兼容的定律,包括一切都當(dāng)作一個(gè)對(duì)象、一致的命名方法和類、一切是Unicode、擺脫eval()、支持操作符重載等。
(二)ThinkPHP框架。ThinkPHP是一個(gè)免費(fèi)開(kāi)源的、快速、簡(jiǎn)單的面向?qū)ο蟮妮p量級(jí)PHP開(kāi)發(fā)框架,是為了敏捷WEB應(yīng)用開(kāi)發(fā)和簡(jiǎn)化企業(yè)應(yīng)用開(kāi)發(fā)而誕生的。ThinkPHP從誕生以來(lái)一直秉承簡(jiǎn)潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)的代碼的同時(shí),也注重易用性。ThinkPHP是基于PHP技術(shù)開(kāi)發(fā)的,可以使用多種數(shù)據(jù)庫(kù)、緩存存儲(chǔ)器,并且可以在多種平臺(tái)上運(yùn)行。
(三)BitTorrent傳輸協(xié)議。BitTorrent是一種內(nèi)容分發(fā)協(xié)議,它采用高效的軟件分發(fā)系統(tǒng)和點(diǎn)對(duì)點(diǎn)技術(shù)共享大體積文件(如一部電影或電視節(jié)目),并使每個(gè)用戶像網(wǎng)絡(luò)重新分配結(jié)點(diǎn)那樣提供上傳服務(wù)。一般的下載服務(wù)器為每一個(gè)發(fā)出下載請(qǐng)求的用戶提供下載服務(wù),而B(niǎo)itTorrent的工作方式與之不同。分配器或文件的持有者將文件發(fā)送給其中一名用戶,再由這名用戶轉(zhuǎn)發(fā)給其他用戶,用戶之間相互轉(zhuǎn)發(fā)自己所擁有的文件部分,直到每個(gè)用戶的下載都全部完成。這種方法可以使下載服務(wù)器同時(shí)處理多個(gè)大體積文件的下載請(qǐng)求,而無(wú)須占用大量帶寬。
BitTorrent協(xié)議基于P2P傳輸方式。P2P是peer-to-peer的縮寫(xiě),“Peer”在英語(yǔ)里有“對(duì)等者、伙伴、對(duì)端”的意義。因此,從字面上,P2P可以理解為對(duì)等計(jì)算或?qū)Φ染W(wǎng)絡(luò)。簡(jiǎn)單地說(shuō),P2P直接將人們聯(lián)系起來(lái),讓人們通過(guò)互聯(lián)網(wǎng)直接交互,使得網(wǎng)絡(luò)上的溝通變得容易、更直接共享和交互,真正地消除中間商。P2P就是人可以直接連接到其他用戶的計(jì)算機(jī)、交換文件,而不是像過(guò)去那樣連接到服務(wù)器去瀏覽與下載。P2P另一個(gè)重要特點(diǎn)是改變互聯(lián)網(wǎng)現(xiàn)在的以大網(wǎng)站為中心的狀態(tài)、重返“非中心化”,并把權(quán)力交還給用戶。
(一)網(wǎng)站需求。電影資源網(wǎng)站分為前臺(tái)和后臺(tái)兩部分,前臺(tái)是提供給觀影人和游客進(jìn)行訪問(wèn)查看的,有簡(jiǎn)潔漂亮的UI,前臺(tái)功能主要分為資源信息檢索、資源信息展示和資源下載。用戶可以很直觀地了解到各類資源信息。系統(tǒng)為用戶提供設(shè)置高亮顯示標(biāo)題、置頂資源等個(gè)性化服務(wù)。后臺(tái)主要實(shí)現(xiàn)對(duì)前臺(tái)數(shù)據(jù)的把控,前臺(tái)所有顯示的有效信息,均為后臺(tái)的管理員添加或者友站的管理員完成的。而對(duì)于普通用戶而言,后臺(tái)是無(wú)法訪問(wèn)的。后臺(tái)基于ThinkPHP技術(shù)和BitTorrent技術(shù)開(kāi)發(fā),后臺(tái)集成了強(qiáng)大的站長(zhǎng)發(fā)布功能,包括:(1)資源管理:在各網(wǎng)站里最主要的東西就是資源,在這里可以管理資源;(2)站群發(fā)布:這是一個(gè)較為新穎的功能,資源可以同步發(fā)布到友站上;(3)節(jié)點(diǎn)資源查看:可以看到該資源的分布情況,有多少節(jié)點(diǎn)也在廣播這個(gè)資源,有多少節(jié)點(diǎn)也在傳輸這個(gè)資源,還有多少節(jié)點(diǎn)以及完成了傳輸,有了這個(gè)列表,可以參考、監(jiān)視傳輸情況。
(二)系統(tǒng)開(kāi)發(fā)環(huán)境。系統(tǒng)開(kāi)發(fā)環(huán)境采用WampServer集成包。WampServer是一款由法國(guó)人開(kāi)發(fā)的Apache Web服務(wù)器、PHP解釋器以及MySQL數(shù)據(jù)庫(kù)的整合軟件包。免去了開(kāi)發(fā)人員將時(shí)間花費(fèi)在繁瑣的配置環(huán)境過(guò)程,從而騰出更多精力去做開(kāi)發(fā)。在windows下WampServer擁有簡(jiǎn)單的圖形和菜單安裝和配置環(huán)境。PHP擴(kuò)展、Apache模塊,開(kāi)啟/關(guān)閉鼠標(biāo)點(diǎn)點(diǎn)就搞定,再也不用親自去修改配置文件,WAMP會(huì)幫助用戶完成相關(guān)設(shè)置。WAMP完全免費(fèi),可以在其官方網(wǎng)站下載到最新的版本。系統(tǒng)開(kāi)發(fā)中使用的版本是WampServer3,其中包括:Apache 2.4.23、PHP 7.0.10、MySQL 5.7.14。
系統(tǒng)前臺(tái)開(kāi)發(fā)采用了WebStorm開(kāi)發(fā)工具,后臺(tái)開(kāi)發(fā)采用PhpStorm。WebStorm是JetBrains公司旗下一款JavaScript開(kāi)發(fā)工具。目前已經(jīng)被廣大中國(guó)JS開(kāi)發(fā)者譽(yù)為“Web前端開(kāi)發(fā)神器”、“最強(qiáng)大的HTML5編輯器”、“最智能的JavaScript IDE”等。與IntelliJ IDEA同源,繼承了IntelliJ IDEA強(qiáng)大的JS部分的功能。PhpStorm是一個(gè)輕量級(jí)且便捷的PHP IDE,其旨在提高用戶效率,可深刻理解用戶的編碼,提供智能代碼補(bǔ)全,快速導(dǎo)航以及即時(shí)錯(cuò)誤檢查。
(三)數(shù)據(jù)庫(kù)設(shè)計(jì)。根據(jù)網(wǎng)站需要,所需要的主要數(shù)據(jù)包括電影資源分類表(imba_genre)、資源表(imba_torrent)和用戶表(imba_user)等。以下僅列舉imba_torrent資源表的表結(jié)構(gòu)。imba_torrent資源表存放重要的電影資源信息,包括資源名稱、資源大小、資源簡(jiǎn)介等,其表結(jié)構(gòu)如表1所示。
(四)系統(tǒng)的實(shí)現(xiàn)。電影資源網(wǎng)站前臺(tái)采用較簡(jiǎn)潔漂亮的UI,方便用戶查找并獲取感興趣的資源。后臺(tái)主要提供資源管理、站群發(fā)布、節(jié)點(diǎn)查看等功能。所有前臺(tái)數(shù)據(jù)的呈現(xiàn)都通過(guò)后臺(tái)進(jìn)行操作。本網(wǎng)站實(shí)現(xiàn)的所有后臺(tái)功能均無(wú)UI,均為API模式,返回的數(shù)據(jù)格式為JSON數(shù)據(jù)格式,所有操作由站長(zhǎng)來(lái)輔助完成。
電影資源網(wǎng)站是影視資源愛(ài)好者的交流平臺(tái),它不僅能夠及時(shí)地抓取熱門(mén)電影資源起到影片宣傳的作用,還能利用有效上傳帶寬給資源傳輸加速,提高資源傳輸效率。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,相信電影資源分享交流的需求將更加旺盛,電影資源網(wǎng)站的應(yīng)用將更加廣泛。
主要參考文獻(xiàn):
[1]夏磊.ThinkPHP實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2017.4.
[2]360百科.比特流[EB/OL].https://baike.so.com/doc/6017821-6230812.html,2014.6.
[3]360百科.P2P對(duì)等網(wǎng)絡(luò)[EB/OL].https://baike.so.com/doc/3388717-3567242.html,2016.11.
[4]百度百科.WampServer[EB/OL].https://baike.baidu.com/item/WampServer,2017.7.