圖3所示,假設從移動終端I中存儲有主移動終端所請求的第一部分資源,從移動終端2中存儲有主移動終端所請求的第二部分資源,從移動終端3、4中沒有存儲主移動終端所請求的資源,同時第一部分資源與第二部分資源也僅僅只是主移動終端所請求的完整資源中的一部分,也即主移動終端只能從從移動終端1-4中獲得第一、二部分資源,剩余的第三部分資源則需要從Web服務器上獲取,最后再將獲取的第一、二、三部分資源進行拼接,從而得到完整的資源。
[0121]第四類:當所述查找結果為所有從移動終端520中不存在主移動終端510所請求的資源時,主移動終端510從Web服務器上獲取所請求的完整資源。
[0122]本類情況為本發(fā)明資源獲取方法中的極端情況,若所有從移動終端中都不存在主移動終端所請求的資源時,主移動終端則從Web服務器上獲取所請求的完整資源,具體獲取方式與現(xiàn)有技術相同,比如通過HTTP協(xié)議或FTP協(xié)議或P2P方式在瀏覽器的網(wǎng)頁上獲取所需完整資源。
[0123]本實施例是對主移動終端從各從移動終端傷獲取資源時所出現(xiàn)的各種情況的說明,除第四類極端情況外,在其他三類情形下,移動終端獲取資源的速度都要快于常規(guī)資源獲取方式所對應的資源傳輸速度。
[0124]進一步可選的,在本發(fā)明資源獲取系統(tǒng)一實施例中,如圖4所示應用場景,所述主移動終端510與若干所述從移動終端520分別與基站連接;所述主移動終端510以及所述從移動終端520通過所述基站與Web服務器進行數(shù)據(jù)交互;所述主移動終端510與若干所述從移動終端520之間通過所述基站進行資源獲取的數(shù)據(jù)交互,其中,不同地理位置區(qū)域對應設置有不同所述基站以及所述基站實時更新并記錄接入的所述主移動終端510和/或所述從移動終端520。
[0125]在圖4中,服務器具體以基站進行舉例說明。主移動終端與若干從移動終端均屬于同一個小區(qū)或者無線局域網(wǎng),并接收同一基站的服務(比如移動通信網(wǎng)絡,無線WiFi熱點網(wǎng)絡)進行數(shù)據(jù)交互,包括移動終端與Web服務器之間的數(shù)據(jù)交互以及各移動終端之間的數(shù)據(jù)交互。在本組網(wǎng)方式中,由于基站的位置是固定的,而移動終端(包括主移動終端與從移動終端)則會跟隨用戶的移動而變換其所屬小區(qū)或無線局域網(wǎng),因此移動終端與基站的關系是隨機的,也即在同一基站小區(qū)或無線WiFi熱點網(wǎng)絡內(nèi)的移動終端是實時變化更新的,因而該基站下的移動終端內(nèi)的資源也是實時變化更新的。
[0126]進一步可選的,在本發(fā)明資源獲取系統(tǒng)一實施例中,如圖4所示應用場景,所述主移動終端510還用于向所述基站發(fā)送資源獲取請求并通過所述基站轉發(fā)至若干所述從移動終端520,其中,所述資源至少包括所述從移動終端520從Web服務器上下載的資源;所述從移動終端520還用于根據(jù)所述資源獲取請求查找自身資源以及向所述基站反饋查找結果并通過所述基站轉發(fā)至所述主移動終端510;所述主移動終端510還用于根據(jù)所述查找結果,從相應所述從移動終端520和/或Web服務器上獲取相應資源。
[0127]本實施例中主移動終端510與若干從移動終端520之間通過基站進行資源獲取與上述實施例中主移動終端510與若干從移動終端520之間進行資源獲取的處理方式基本相同,因此不做過多贅述。
[0128]參照圖7,圖7為本發(fā)明資源獲取系統(tǒng)第二實施例的功能模塊示意圖。如圖5所示應用場景,本實施例中,所述資源獲取系統(tǒng)包括基站530;所述主移動終端510還用于向所述基站530發(fā)送資源獲取請求并通過所述基站530轉發(fā)至若干所述從移動終端520,其中,所述資源至少包括所述從移動終端520從Web服務器上下載的資源;所述從移動終端520還用于根據(jù)所述資源獲取請求查找自身資源,向所述基站530反饋查找結果;所述基站530,用于根據(jù)所述查找結果,從相應所述從移動終端520和/或Web服務器上獲取相應資源發(fā)送至所述主移動終端510以及當獲取的資源不是所述主移動終端510所請求的完整資源時,將獲取的資源拼接成完整資源后再發(fā)送至所述主移動終端510。
[0129]本實施例中主移動終端510與若干從移動終端520之間通過基站530進行資源獲取與上述實施例中主移動終端510與若干從移動終端520之間進行資源獲取的處理方式基本相同,因此不做過多贅述。
[0130]本實施例中,當主移動終端510向基站530發(fā)送資源獲取請求時,若基站530自身沒有該請求的資源,則基站530收集本小區(qū)內(nèi)各從移動終端520上的資源,并在完成資源拼接后將主移動終端510所請求的完整資源反饋至主移動終端510。本實施例中的網(wǎng)絡架構類似于內(nèi)容分發(fā)網(wǎng)絡CDN架構,但與CDN架構不同的是,本實施例中的網(wǎng)絡架構獲取的數(shù)據(jù)并非由邊緣服務器(比如Web服務器)來提供,而是由該基站530的所屬移動終端來提供。
[0131]本實施例中,盡管移動終端的數(shù)據(jù)存儲量以及傳輸速率均趕不上邊緣服務器,但移動終端的靈活性要大大優(yōu)于邊緣服務器(邊緣服務器往往是固定設置的),因此,同一基站530下不同的移動終端的接入接出能夠保證該基站530下對應資源的實時更新,而對于主移動終端510而言,若需要某一資源,尤其是熱點資源,可以先從本地基站530中查找相鄰從移動終端520的資源,若本地從移動終端520具有所請求的資源,則可直接從本地各從移動終端520中將資源匯總到本地基站530并完成資源的拼接處理后再從本地基站530中直接獲取完整資源,從而本實施例中資源獲取效率大大優(yōu)于接入互聯(lián)網(wǎng)(比如Web服務器)獲取資源的效率,并且由于主移動終端510與從移動終端520都處于同一個小區(qū)/無線局域網(wǎng)內(nèi),因此資源傳輸速率將大大提高。此外,數(shù)據(jù)傳輸方面也可以根據(jù)實際情況選擇多種傳輸方式,比如采取WIFI接入、藍牙傳輸?shù)确绞?,從而可以?jié)省流量成本。
[0132]進一步地,在本發(fā)明資源獲取系統(tǒng)一實施例中,當存在多個主移動終端510同時請求同一從移動終端520的同一資源時,通過信號量或互斥量機制防止資源死鎖或者從移動終端520通過復制多個主移動終端510所請求的同一資源并將復制的同一資源發(fā)送給所請求的多個主移動終端510的方式防止資源死鎖。
[0133]本實施例中所述的資源死鎖具體是指當前線程調用一資源,而下一個線程或多個線程又同時請求該資源,而當前線程釋放該資源的條件是等其他線程結束,而其他線程結束的條件是等當前線程釋放該資源,因而造成多個線程互相等待,也即產(chǎn)生了資源死鎖,從而導致資源無法請求或者還有可能引起程序崩潰,因此需要對資源死鎖進行預防。
[0134]針對本發(fā)明中資源獲取過程中可能存在多個主移動終端510同時請求同一從移動終端520的同一資源容易出現(xiàn)資源死鎖的問題,本實施例中,可通過在從移動終端520中加入PV信號量機制,以始終保持同一時間同一資源只能由一個線程調用。例如,當前排隊線程數(shù)為P,若排隊線程增加,則P = P+1,當前資源數(shù)為V,若當前資源釋放,則V=V+1;當V大于O時才允許資源被調用,否則禁止。因此,對于從移動終端520的單個資源而言,V=I,每當一個主移動終端510請求該資源時,則P+1、V-1,而當且僅當該資源已經(jīng)傳送給該主移動終端510時,該主終移動端請求完畢,則P-1、V+1,因而允許對該資源進行下一步的操作,也即可以允許該資源發(fā)送給下一個主移動終端510。因此,在PV信號量機制的基礎上,可排隊為多個主移動終端510分配同一從移動終端520上的同一資源。
[0135]此外,針對本發(fā)明中資源獲取過程中可能存在多個主移動終端510同時請求同一從移動終端520的同一資源容易出現(xiàn)資源死鎖的問題,本實施例中,可在從移動終端520內(nèi)存中開辟一個新的資源存儲區(qū)域,并將復制的被請求資源保存在該存儲區(qū)域內(nèi),從而當存在多個主移動終端510同時請求該被請求資源,或者當前從移動終端520在使用該被請求資源時,若存在多個主移動終端510都請求使用該資源,則從移動終端520讀取該存儲區(qū)域內(nèi)所復制的被請求資源,并通過無線方式將該被請求資源發(fā)送給相應的主移動終端510,從而不影響從移動終端520自身調用或其他主移動終端510調用。
[0136]參照圖8,圖8為本發(fā)明主移動終端一實施例的功能模塊示意圖。本實施例中,如圖3所示,所述主移動終端與若干從移動終端無線連接,比如通過藍牙或WiFi等方式進行連接。所述主移動終端包括:
[0137]資源請求發(fā)送模塊101,用于向若干所述從移動終端發(fā)送資源獲取請求,其中,所述資源至少包括所述從移動終端從Web服務器上下載的資源;
[0138]在主移動終端向若干從移動終端發(fā)送資源獲取請求之前,主移動終端與各從移動終端之間進行握手以便于建立通信連接。其中,主移動終端與從移動終端之間實現(xiàn)握手的方式可以采用TCP/IP的三步握手協(xié)議,或者也可以采取其他握手方式,但主移動終端只需獲取到從移動終端的MAC地址和IP地址以唯一確定該從移動終端,進而實現(xiàn)主移動終端與各從移動終端之間的數(shù)據(jù)交互。
[0139]需要進一步說明的是,本實施例中所述資源至少包括從移動終端從Web服務器上下載的資源,比如多媒體文件或者其他資源類型文件,現(xiàn)有技術中對于該類資源的下載通常都是將完整資源劃分為多個資源數(shù)據(jù)包進行傳輸,并在接收端完成資源數(shù)據(jù)包的組裝以形成完整資源。本發(fā)明中具體針對該類型資源進行說明,但并不限定上述資源,也可以是從移動終端上的其他數(shù)據(jù)。
[0140]資源請求發(fā)送模塊101所發(fā)送的資源獲取請求中至少包括從移動終端的地址、自身地址以及所請求的資源信息,比如資源ID名稱等,然后和其他相關數(shù)據(jù)組裝成特定格式的報文后,依次發(fā)送給建立握手連接的各從移動終端。
[0141]查找結果接收模塊102,用于接收所述從移動終端根據(jù)所述資源獲取請求查找自身資源后所反饋的查找結果;
[0142]本實施例中,從移動終端根據(jù)資源獲取請求中所對應的資源信息,查找自身資源,并向主移動終端反饋查找結果。對于從移動終端自身來說,查找結果包括:有全部資源、有部分資源、沒有資源,而對于主移動終端來說,查找結果包括:有一個從終端有全部資源、有一個從終端有部分資源、有多個從終端有全部資源、有多個從終端有部分資源、沒有一個從終端有資源,其中,有多個從終端有部分資源又包括所有部分資源加起來等于全部的完整資源、所有部分資源加起來不等于全部的完整資源。
[0143]需要說明的是,本實施例中對于從移動終端向主移動終端反饋的查找結果的表現(xiàn)形式不限,具體根據(jù)實際需要進行設置,例如可以是消息,也可以是從移動終端所存儲的相應資源數(shù)據(jù)等,為便于主移動終端能夠有選擇性地獲取資源數(shù)據(jù),因此優(yōu)選從移動終端發(fā)送通知消息告知主移動終端對應的查找結果。
[0144]資源獲取模塊103,用于根據(jù)所述查找結果,從相應所述從移動終端和/或Web服務器上獲取相應資源。
[0145]本實施例中,主移動終端根據(jù)查找結果的不同對應獲取資源的處理方式也不同,比如多個從移動終端上都具有完整的資源,則主移動終端可任意選擇從其中一個從移動終端中獲取該完整的資源即可;比如當前與主移動終端連接的所有從移動終端上都沒有主移動終端所請求的資源,則主移動終端將從Web服務器上獲取所需資源。
[0146]需要說明的是,從移動終端上所存儲的資源主要是通過P2P等現(xiàn)有資源獲取方式從Web服務器上獲取,當然也可以是采用本發(fā)明的資源獲取方式從其他從移動終端上獲取。本發(fā)明特別適用于熱點資源(也即下載用戶多且下載次數(shù)非常高的資源,比如熱播電視劇)的獲取。
[0147]例如,當A用戶周圍的B用戶、C用戶、D用戶、E用戶都通過移動終端從Web服務器上下載同樣的資源時,A用戶可通過向B用戶、C用戶、D用戶、E用戶分別發(fā)送資源獲取請求,從而間接獲得周圍用戶通過移動終端從Web服務器上下載的資源,這對于A用戶來說,由于在移動終端之間采用WiFi或藍牙方式等無線傳輸方式傳輸數(shù)據(jù),因而相對提高了資源傳輸速度,而對于Web服務器來說,由于請求資源的用戶數(shù)減少了,因而對應也減少了資源的重復發(fā)送量,從而相對提高了資源傳輸速度,因此,整體上提升了資源的傳輸速度。
[0148]本實施例中,由于主移動終端可以實現(xiàn)從其他移動終端上獲取資源,因此可以實現(xiàn)資源傳輸速度的顯著提升,同時也無需限定特定的傳輸環(huán)境要求,比如移動信號、Web服務器性能、移動終端使用場景(地理位置、時間)等,因而移動終端獲取資源的方式也更為靈活,從而提升用戶使用移動終端獲取資源的使用體驗。
[0149]進一步可選的,基于上述實施例,在本發(fā)明主移動終端另一實施例中,上述主移動終端對從移動終端所反饋的查找結果的處理方式具體包括四類情形:
[0150]第一類:當所述查找結果為至少存在一個從移動終端存儲有主移動終端所請求的完整資源時,主移動終端從一個存儲有主移動終端所請求的完整資源的從移動終端中獲取該完整資源;
[0151 ]第二類:當所述查找結果為至少存在一組從移動終端存儲有主移動終端所請求的完整資源時,主移動終端從一組存儲有主移動終端所請求的完整資源的多個從移動終端中分別獲取相應部分資源并將獲取的多個部分資源進行拼接以得到所請求的完整資源;
[0152]第三類:當所述查找結果為所有從移動終端中僅存儲有主移動終端所請求的部分資源時,主移動終端從相應從移動終端中獲取該部分資源以及從Web服務器上獲取剩余部分資源并將獲取的從移動終端的部分資源與Web服務器的剩余部分資源進行拼接以得到所請求的完整資源;
[0153]第四類:當所述查找結果為所有從移動終端中不存在主移動終端所請求的資源時,主移動終端從Web服務器上獲取所請求的完整資源。
[0154]本實施例是對主移動終端從各從移動終端傷獲取資源時所出現(xiàn)的各種情況的說明,除第四類極端情況外,在其他三類情形下,移動終端獲取資源的速度都要快于常規(guī)資源獲取方式所對應的資源傳輸速度。
[0155]進一步可選的,在本發(fā)明主移動終端一實施例中,如圖4所示應用場景,所述主移動終端與若干所述從移動終端分別與基站連接;所述主移動終端以及所述從移動終端通過所述基站與Web服務器進行數(shù)據(jù)交互;所述主移動終端與若干所述從移動終端之間通過所述基站進行資源獲取的數(shù)據(jù)交互,其中,不同地理位置區(qū)域對應設置有不同所述基站以及所述基站實時更新并記錄接入的所述主移動終端和/或所述從移動終端。
[0156]在圖4中,服務器具體以基站進行舉例說明。主移動終端與若干從移動終端均屬于同一個小區(qū)或者無線局域網(wǎng),并接收同一基站的服務(比如移動通信網(wǎng)絡,無線WiFi熱點網(wǎng)絡)進行數(shù)據(jù)交互,包括移動終端與Web服務器之間的數(shù)據(jù)交互以及各移動終端之間的數(shù)據(jù)交互。在本組網(wǎng)方式中,由于基站的位置是固定的,而移動終端(包括主移動終端與從移動終端)則會跟隨用戶的移動而變換其所屬小區(qū)或無線局域網(wǎng),因此移動終端與基站的關系是隨機的,也即在同一基站小區(qū)或無線WiFi熱點網(wǎng)絡內(nèi)的移動終端是實時變化更新的,因而該基站下的移動終端內(nèi)的資源也是實時變化更新的。
[0157]進一步可選的,如圖4所示應用場景,所述主移動終端還用于向所述基站發(fā)送資源獲取請求并通過所述基站轉發(fā)至若干所述從移動終端,其中,所述資源至少包括所述從移動終端從Web服務器上下載的資源;所述從移動終端還用于根據(jù)所述資源獲取請求查找自身資源以及向所述基站反饋查找結果并通過所述基站轉發(fā)至所述主移動終端;所述主移動終端還用于根據(jù)所述查找結果,從相應所述從移動終端和/或Web服務器上獲取相應資源。
[0158]如圖5所示應用場景,所述資源獲取系統(tǒng)包括基站;所述主移動終端還用于向所述基站發(fā)送資源獲取請求并通過所述基站轉發(fā)至若干所述從移動終端,其中,所述資源至少包括所述從移動終端從Web服務器上下載的資源;所述從移動終端還用于根據(jù)所述資源獲取請求查找自身資源,向所述基站反饋查找結果;所述基站,用于根據(jù)所述查找結果,從相應所述從移動終端和/或Web服務器上獲