數據遞送優化的制作方法
【專利摘要】各種實施例提供優化在裝置、一群組互連裝置之間遞送數據的方式的系統、裝置及方法。在一個實施例中,可對希望用于多個裝置的數據集進行分段且可將所述數據集的不同部分提供到每一裝置。所述所希望的裝置可接著共享其數據集部分以在每一裝置上重新創建完整數據集。在另一實施例中,各自存儲完整數據集的多個裝置可能需要將所述完整數據集上傳到單個裝置。所述多個裝置可在彼此當中指配對于所述完整數據集的片段的上傳職責,且所述多個裝置可各自將其經指配的片段上傳到所述單個裝置。所述單個裝置可接著組合所述片段以重新創建所述完整數據集。
【專利說明】數據遞送優化
【技術領域】
[0001]本發明一般來說涉及計算機裝置之間的數據傳送且更明確地說,涉及用于優化數據到移動裝置的遞送的方法及系統。
【背景技術】
[0002]現今的忙碌信息工作者可具有均能夠用數據進行工作的多個移動裝置。作為實例,旅行者可具有兩個移動裝置,例如智能電話及膝上型計算機。智能電話及膝上型計算機可能均能夠操縱相同數據(例如,電子郵件)及為旅行者呈現相同數據(例如,電子郵件)。雖然智能電話及膝上型計算機可能能夠執行相同任務,但在各種情況下,用戶可能更喜歡用一個裝置(與另一裝置相比較)來工作。舉例來說,旅行者可能發現偶爾地在智能電話上檢查電子郵件為有用的,但可能感覺在膝上型計算機上進行繁雜工作或閱讀更富有成效,這是歸因于膝上型計算機的一般較大屏幕及較大鍵盤。
[0003]許多旅行者面臨的常見問題涉及當在所有旅行者的移動裝置可能不具有連接性的位置處工作時,使多個移動裝置數據集與中央數據庫服務器同步。作為實例,旅行者可在上飛機之前使其膝上型計算機及智能電話與電子郵件交換服務器同步,以使得膝上型計算機及智能電話關于發送的及接收的電子郵件均為最新的。旅行者可繼續在飛機上在膝上型計算機上寫電子郵件及答復電子郵件。如果旅行者在其膝上型計算機上寫了若干電子郵件(膝上型計算機在飛行中時可能與網絡連接隔離),那么可將那些起草的電子郵件保持在隊列中以用于在網絡連接變得可用時將其發射到電子郵件交換服務器。旅行者的膝上型計算機及智能電話接著在電子郵件方面將不同步,這是因為膝上型計算機含有智能電話不會含有的起草的電子郵件。在著陸時,旅行者的智能電話可連接到蜂窩式數據網絡且從電子郵件交換服務器下載最新的電子郵件。旅行者可使用其智能電話在飛機上寫電子郵件及答復電子郵件,且蜂窩式數據網絡連接可使得智能電話及服務器能夠在電子郵件方面保持經更新。然而,膝上型計算機在傳入的電子郵件及傳出的電子郵件兩者方面將均保持不同步,直到其建立網絡連接為止。旅行者現在可能面臨數據同步問題,這是因為膝上型計算機、智能電話及電子郵件交換服務器皆可含有不同的電子郵件數據集。此數據同步問題可致使旅行者受挫且阻礙了旅行者的成效性。
【發明內容】
[0004]各種實施例的系統、方法及裝置優化了在移動計算裝置之間遞送數據的方式。各種實施例充分利用現代計算裝置的互連性來優化一群組互連裝置之間的數據集的遞送。在一個實施例中,可由電子郵件服務器來對具有多個計算裝置的用戶所希望的數據集進行分段,且可將所述數據集的不同部分發射到所述用戶的計算裝置中的每一者。所述兩個或兩個以上移動計算裝置可接著彼此共享其數據集部分以在每一計算裝置上重新創建所述完整數據集。在另一實施例中,各自存儲完整數據集的多個計算裝置可通過將對于所述完整數據集的不同片段的上傳職責指配給每一裝置而將所述完整數據集上傳到單個計算裝置(例如,電子郵件服務器)。所述多個計算裝置中的每一者可將其經指配的片段上傳到所述單個計算裝置。所述單個計算裝置可接著組合所述片段以重新創建所述完整數據集。
【專利附圖】
【附圖說明】
[0005]并入本文且構成本說明書的部分的【專利附圖】
【附圖說明】本發明的示范性實施例,且連同上文給出的一般描述及下文給出的詳細描述一起用以闡釋本發明的特征。
[0006]圖1為適合于供各種實施例使用的網絡的通信系統框圖。
[0007]圖2為說明用于優化數據遞送的第一實施例方法的過程流程圖。
[0008]圖3為實例數據集特性的示意圖。
[0009]圖4為實例用戶偏好設置的數據結構圖。
[0010]圖5為實例數據片段映射元素的數據結構圖。
[0011]圖6為說明用于優化數據遞送的第二實施例方法的另一過程流程圖。
[0012]圖7為實例包標頭信息的數據結構圖。
[0013]圖8為說明用于優化數據遞送的第三實施例方法的另一過程流程圖。
[0014]圖9為說明用于優化數據遞送的第四實施例方法的另一過程流程圖。
[0015]圖10為說明用于優化數據遞送的第五實施例方法的另一過程流程圖。
[0016]圖11為說明用于優化數據遞送的第六實施例方法的另一過程流程圖。
[0017]圖12為說明用于優化數據遞送的第七實施例方法的另一過程流程圖。
[0018]圖13A及13B為說明用于管理計算裝置之間的交互以優化數據遞送的實施例方法的過程流程圖。
[0019]圖14為說明用于優化數據遞送的第八實施例方法的另一過程流程圖。
[0020]圖15為說明用于使數據片段的發射同步的實施例方法的過程流程圖。
[0021]圖16為說明用于使數據片段的接收同步的實施例方法的過程流程圖。
[0022]圖17為說明用于使數據集同步的第一實施例方法的過程流程圖。
[0023]圖18為說明用于使數據集同步的第二實施例方法的另一過程流程圖。
[0024]圖19為說明用于在計算裝置當中指配及發射等待同步的數據的實施例方法的過程流程圖。
[0025]圖20為說明用于指配上傳職責的第一實施例方法的過程流程圖。
[0026]圖21為說明用于指配上傳職責的第二實施例方法的另一過程流程圖。
[0027]圖22為說明用于指配上傳職責的第三實施例方法的另一過程流程圖。
[0028]圖23為說明用于指配上傳職責的第四實施例方法的另一過程流程圖。
[0029]圖24為說明用于指配上傳職責的第五實施例方法的另一過程流程圖。
[0030]圖25為說明用于指導計算裝置當中的等待同步的數據的發射的實施例方法的過程流程圖。
[0031]圖26為說明用于在計算裝置當中指配及發射等待同步的數據的另一實施例方法的另一過程流程圖。
[0032]圖27為說明用于優化電子郵件遞送的實施例方法的過程流程圖。
[0033]圖28A及28B為說明用于管理計算裝置之間的交互以優化數據遞送的另一實施例方法的額外過程流程圖。[0034]圖29為適合于供各種實施例使用的實例移動計算裝置的組件圖。
[0035]圖30為適合于供各種實施例使用的實例服務器的組件圖。
[0036]圖31為適合于供各種實施例使用的另一實例移動計算裝置的組件圖。
【具體實施方式】
[0037]將參看附圖詳細描述各種實施例。只要可能,將在整個圖式中使用相同的參考數字來指相同或相似的部分。對特定實例及實施方案進行的參考是出于說明性目的,且不希望限制本發明或權利要求書的范圍。
[0038]詞“示范性”在本文中用以意味“用作實例、例子或說明”。本文中描述為“示范性”的任何實施方案未必應解釋為較其它實施方案優選或有利。
[0039]如本文中所使用,術語“移動裝置”及“移動計算裝置”是指以下各者中的任一者或全部:蜂窩電話、平板計算機、個人數據助理(PDA)、掌上型計算機、筆記型計算機、膝上型計算機、個人計算機、無線電子郵件接收器及蜂窩電話接收器(例如,黑莓(Blackberry) ?及奔邁(Treo) ?裝置)、具備多媒體互聯網功能的蜂窩電話(例如,黑莓風暴(B IackberryStorm) ? )、具備多媒體功能的智能電話(例如,安卓(Android) ?及蘋果iPhone ? ),及包含可編程處理器、存儲器、通信收發器及顯示器的類似電子裝置。
[0040]本文中使用用兩個移動計算裝置工作的旅行者的實例描述各種實施例,所述兩個移動計算裝置使數據與中央數據庫服務器(即,電子郵件服務器)同步。此實例可用于描述實施例計算裝置、系統及方法的各種組件及功能性。然而,除非特別地加以敘述,否則實施例及權利要求書的范圍不限于此配置及應用。在其它可能的應用方面描述實施例將為不必要的且重復的。因此,術語“旅行者”在本文中用以一般指可對其應用實施例的任何計算裝置用戶,且除非特別地加以敘述,否則不希望限制權利要求書的范圍。
[0041]類似地,術語“電子郵件”在本文中用以一般指可對其應用實施例的任何及全部數據,包含多種字、電子數據表及多媒體文件,且除非特別地加以敘述,否則不希望限制權利要求書的范圍。
[0042]本文中使用術語“服務器”描述各種實施例。術語“服務器”用以指能夠充當服務器(例如,主交換服務器、郵件服務器、文檔服務器或任何其它類型的服務器)的任何計算裝置。服務器可為專用計算裝置或運行可致使計算裝置作為服務器操作的應用程序的計算裝置。服務器應用程序可為完整功能服務器應用程序,或經配置以在移動計算裝置上的動態數據庫當中提供同步服務的輕量級或輔助服務器應用程序。輕量級服務器或輔助服務器可為服務器型功能性的消瘦版本,服務器型功能性可實施于移動計算裝置上,借此使得移動計算裝置能夠僅在提供本文中所描述的功能性所必要的程度上充當互聯網服務器(例如,企業電子郵件服務器)。
[0043]概述來說,各種實施例的系統、方法及裝置優化了在計算裝置之間遞送數據的方式。各種實施例充分利用現代計算裝置的互連性來優化一群組互連計算裝置之間的數據集的遞送。在一個實施例中,可對希望用于多個移動計算裝置的數據集進行分段且可將數據集的不同部分提供到每一移動計算裝置。所希望的移動計算裝置可接著共享其數據集部分以在每一移動計算裝置上重新創建完整數據集。在另一實施例中,各自存儲完整數據集的多個移動計算裝置可能需要將完整數據集上傳到單個計算裝置。多個移動計算裝置可在彼此當中指配對于完整數據集的片段的上傳職責,且多個移動計算裝置可各自將其經指配的片段上傳到單個計算裝置。所述單個計算裝置可接著組合所述片段以重新創建所述完整數據集。
[0044]在另一實施例中,用戶的兩個或兩個以上移動計算裝置可經配置以辨識移動計算裝置中的一者何時與另一者在特定數據集方面不同步。如果檢測到此情形,那么移動計算裝置可完成更新或同步以使得兩個移動計算裝置反映共同數據集。在另一實施例中,移動計算裝置可向其它移動計算裝置驗證其自身以使得僅在用戶授權的兩個移動計算裝置之間完成同步。在另一實施例中,移動計算裝置可經配置以接收在一個移動計算裝置中產生的時間數據,所述移動計算裝置正等待與另一計算裝置(例如,服務器)同步。在另一實施例中,移動計算裝置可經配置以在應用程序之間轉譯數據以匹配實施于每一移動計算裝置上的應用程序格式。在另一實施例中,可完成交替或負載均衡數據遞送以優化數據遞送的總速度或成本。在另一實施例中,實施于移動計算裝置中的一或多者上的有條件的數據遞送能力可化解同時從多方或多方電子郵件線程發生的數據遞送沖突。
[0045]圖1說明適合于供各種實施例使用的網絡系統100。網絡系統100可包含三個裝置:服務器102及兩個移動計算裝置(智能電話104及膝上型計算機106)。雖然各種實施例關于服務器102、智能電話104及膝上型計算機106特別有用,但實施例不限于這些裝置且可實施于任何裝置中而無對方法的任何改變。另外,雖然各種實施例是關于三個裝置之間的交互加以論述,但實施例不限于三個裝置,且方法可實施于由無限數目個裝置組成的網絡系統中。
[0046]服務器102可為主交換服務器、郵件服務器、文檔服務器,或任何其它類型的中央數據庫服務器。服務器102與智能電話104可經由通信通路108彼此交換數據。膝上型計算機106與服務器102可經由通信通路110彼此交換數據。膝上型計算機106與智能電話104可經由通信通路112彼此通信。通信通路108、110及112可用以在裝置之間發射數據。通信通路108、110及112可為此項技術中已知的任何連接類型。
[0047]作為實例,用以連接到服務器102的通信通路108及110可為無線連接,例如智能電話104及/或膝上型計算機106及W1-Fi接入點118之間的無線W1-Fi連接。W1-Fi接入點118可連接到互聯網114。服務器102可連接到互聯網114,且以此方式,可經由W1-Fi接入點118從智能電話104及/或膝上型計算機106發射數據/將數據發射到智能電話104及/或膝上型計算機106,及通過此項技術中所熟知的方法經由互聯網114將數據發射到服務器102/從服務器102發射數據。作為額外實例,通信通路108及110可使用蜂窩式網絡來建立。智能電話104及/或膝上型計算機106可以無線方式將數據發射到可連接到互聯網114的蜂窩式網絡小區塔或基站116。服務器102可連接到互聯網114,且以此方式,可經由無線蜂窩塔或基站116從智能電話104及/或膝上型計算機106發射數據/將數據發射到智能電話104及/或膝上型計算機106,及通過此項技術中所熟知的方法經由互聯網114將數據發射到服務器102/從服務器102發射數據。作為另一實例,膝上型計算機106與服務器102之間的通信通路110可為有線局域網連接,例如以太網連接126。
[0048]作為實例,智能電話104與膝上型計算機106之間的通信通路112可為無線數據鏈路,例如藍牙連接120。作為額外實例,智能電話104與膝上型計算機106之間的通信通路112可為經由W1-Fi接入點122的無線W1-Fi數據鏈路。以此方式,可通過此項技術中所熟知的方法經由W1-Fi接入點122從智能電話104及/或膝上型計算機106發射數據/將數據發射到智能電話104及/或膝上型計算機106。作為額外實例,通信通路112還可為膝上型計算機106與智能電話104之間的有線連接,例如,連接于裝置之間的USB電纜124。
[0049]通信通路108、110及112可為任何有線連接,例如USB連接、火線連接或局域網連接(例如,以太網),以及任何無線通信鏈路,例如藍牙、W1-F1、紫蜂、蜂窩式、CDMA, TDMA,GSM、PCS、G-3、G-4、LTE或任何其它類型的有線或無線連接。雖然各種方面特別可供各種實施例使用,但通信通路108、110及112不限于這些通信技術且通信通路108、110及112可使用此項技術中所已知的任何通信技術來建立而不改變實施例方法的實施方案。
[0050]圖2說明用于優化三個或三個以上計算裝置當中的數據遞送的實施例方法200。作為實例,方法200可實施于服務器102與兩個或兩個以上移動計算裝置(例如,智能電話104及膝上型計算機106)之間。雖然關于服務器102、智能電話104及膝上型計算機106進行論述,但方法200可實施于具有充當其它裝置的數據服務器的能力的任何裝置中。在框202處,服務器102可識別待傳達到移動計算裝置的數據集。數據集可包含任何群組的數據,例如內容對象、電子郵件、電子郵件行、文字、文字塊、網頁、網頁的部分、壓縮文件、電子數據表、文檔、文檔的部分、文件及/或文件的部分。在框204處,服務器102可確定數據集的特性。數據集特性可包含下文進一步論述的各種特性。在框206處,服務器102可將數據集分離成數個片段。片段可包含數據集內的數據的任何分組,因此可基于在框204中確定的數據集特性執行框206處的數據集的分離,或可根據預定參數(例如,設置的片段大小)來分離數據集。在框208處,服務器102可將標識(“ID”)指配給每一片段。此片段ID可為由服務器102產生的獨特數字、名稱或標識元素。另外,片段ID可含有或提供關于片段的信息,例如,關于片段內容、片段的創建時間、服務器102或片段大小的信息。在框210處,服務器102可將片段ID寫入到每一片段中。可將片段ID寫入到表示整個片段的數據中,或可將片段ID寫入到包括個別片段的每一數據元素中。
[0051]在框212處,服務器102可確定從數據集創建的片段的總數目。在框214中,服務器102可確定可用的移動計算裝置。可用的移動計算裝置可為(例如)可連接到服務器102的智能電話104及膝上型計算機106。或者,可用的移動計算裝置可為向服務器102注冊但可能當前未連接到服務器102的移動計算裝置。在確定框216處,服務器可確定移動計算裝置是否具備同步功能。具有同步功能的移動計算裝置可為能夠與另一移動計算裝置同步/交換信息的移動計算裝置。舉例來說,具有同步功能的智能電話104可能能夠使其數據集與具有同步功能的膝上型計算機106的數據集同步。如果可用的移動計算裝置并不具備同步功能(即,確定框216 =“否”),那么在框218中,服務器102可獨立地更新移動計算裝置的整個數據集。
[0052]如果可用的移動計算裝置具備同步功能(即,確定框216 = “是”),那么在框220中,服務器102可確定移動計算裝置的地理位置。服務器102可通過以下方式確定移動計算裝置的地理位置:通過由移動計算裝置提供到服務器102的全球定位系統(GPS)信息,通過參考關于移動計算裝置可能經由其向服務器102傳達的連接(即,移動計算裝置可能使用哪些小區網絡節點)的信息,通過識別每一移動計算裝置的位置的移動計算裝置用戶輸入,或其它方法。在確定框222處,服務器可確定移動計算裝置是否并置。作為實例,可通過比較移動計算裝置GPS信息、蜂窩式網絡信息或用戶輸入來確定并置。作為實例,服務器102可基于GPS信息確定兩個移動計算裝置隔開大于距離閾值設置的距離。距離閾值設置可為定義并置的裝置之間的最大距離。如果移動計算裝置并非并置的(即,確定框222 =“否”),那么在框218處,服務器102可獨立地更新移動計算裝置的整個數據集。
[0053]如果移動計算裝置為并置的(即,確定框222 = “是”),那么在框224處,服務器102可確定移動計算裝置連接帶寬。或者,服務器102可基于移動計算裝置可能正使用以與服務器102通信的連接的類型確定每一移動計算裝置的估計的移動計算裝置連接帶寬。在框226處,服務器102可確定用戶偏好設置。用戶偏好設置可與連接或裝置有關以用于更新。下文論述用戶偏好設置。
[0054]在框228處,服務器102可將數據片段指配給每一移動計算裝置。數據片段到每一移動計算裝置的指配可基于下文論述的各種考慮事項來進行。在框230處,服務器可產生數據片段映射,所述數據片段映射識別每一數據片段及每一片段可能被指配給的移動計算裝置或如下文所論述的其它元素。在框232處,服務器102可將數據片段指配信息寫入到每一數據片段中。可將數據片段指配信息寫入到表示整個片段的數據中,或可將數據片段指配信息寫入到包括個別片段的每一數據元素中。在框234處,服務器102可將數據片段發射到其被指配的移動計算裝置。以此方式,每一移動計算裝置可接收不同數據片段。作為實例,膝上型計算機106可接收數據片段的第一部分且智能電話104可接收數據片段的第二部分,以使得第一部分與第二部分的組合將產生整個數據集。在框236處,服務器102可將數據片段映射發射到每一移動計算裝置。以此方式,每一移動計算裝置可接收整個數據片段映射的副本。數據片段映射可允許個別移動計算裝置確定內容或原始數據集,即使每一移動計算裝置可能未從服務器接收原始數據集的所有片段也如此。
[0055]在框238處,服務器102可存儲所發射的數據片段的副本且在框240處,服務器102可存儲數據片段映射的副本。以此方式,服務器102可能能夠支持未來的單個裝置會話或經指配的數據片段的重新發射(假如裝置連接失敗的話)。
[0056]圖3為說明可能的數據集特性302的示意圖。數據集特性302可包含數據集的所計算的總大小304。可以字節為單位或以表示數據集的總大小304的任何其它單位來計算總大小304。數據集特性306還可包含對象數目206、對象類型308、對象優先級310及個別對象大小312。
[0057]圖4為說明可存儲在服務器102的存儲器中的用戶偏好設置402的可能的元素的數據結構圖。用戶偏好設置402可包含待更新的裝置的列表404、裝置更新的次序406、連接偏好408、速度偏好410、裝置的數據極限412或數據偏好414。作為實例,待更新的裝置的列表404可識別用戶的選定數目個移動計算裝置,從而使得用戶能夠控制更新哪些裝置。作為實例,裝置更新的次序406可指導服務器102按特定次序或優先級序列更新選定裝置。作為實例,連接偏好408可指導服務器102使用W1-Fi連接而不是CDMA連接。或者,連接偏好408可指導服務器102使用一群組可用連接當中的最不昂貴連接。作為實例,速度偏好410可指導服務器102使用可用的最快連接。作為實例,裝置的數據極限412可設置從服務器102發射到裝置的最大數據量。作為實例,數據偏好414可指導服務器102將特定數據類型(例如,電子郵件)指配給特定移動裝置(例如,智能電話104)。
[0058]圖5為說明可能的數據片段映射元素502的數據結構圖。數據片段映射元素502可包含片段總數目504、片段ID506、數據集特性508、片段裝置指配510、片段大小512、片段創建時間戳514,及服務器驗證密鑰516。數據片段映射元素502可由服務器102或移動裝置個別地或組合地使用以輔助重新創建數據集,識別數據集,或在服務器102與移動裝置中的任一者之間通信。具體來說,片段創建時間戳514可允許移動裝置確保其具有最新片段。服務器驗證密鑰516可充當移動裝置的信任/核對工具(當相互通信時)及充當安全特征。服務器驗證密鑰516可由服務器102提供以作為向其它移動計算裝置驗證片段及/或移動計算裝置的方式。服務器驗證密鑰516可為從服務器102提供的加密密鑰。從第二移動計算裝置接收服務器驗證密鑰516的移動計算裝置可能能夠使用服務器驗證密鑰516確認第二移動計算裝置上的信息實際上起源于服務器102。
[0059]圖6說明用于優化數據遞送的實施例方法600,除了在框602處,服務器102可創建每一片段的包以外,方法600類似于上文參看圖2所描述的方法200。在框604處,服務器102可將標頭信息寫入到每一包中。標頭信息可包含各種類型的信息,如下文將進一步加以論述。在框214處,服務器102可確定可用的移動計算裝置。在框606處,服務器102可以類似于上文所論述的在框228中指配數據片段的方式的方式將包指配給每一移動計算裝置。在框230處,服務器102可產生數據片段映射。在框608處,服務器102可將包發射到其被指配的移動計算裝置。在框236處,服務器102可將數據片段映射發射到移動計算裝置。
[0060]圖7為說明可能的包標頭信息702的數據結構圖。包標頭信息702可包含片段ID704、主數據集ID706、服務器ID708、片段創建時間戳710、重新組合指令712及包創建時間戳714。主數據集ID706可為由服務器102創建以識別總數據集(片段是從總數據集創建)的獨特標識。服務器ID708可為與創建包的服務器102相關聯的獨特標識。重新組合指令712可為控制希望拆開包的次序或包中所含有的片段在總數據集中的放置的指令。包創建時間戳714可為創建包的時間的指示。
[0061]圖8說明用于優化數據遞送的實施例方法800,方法800可結合上文參看圖2所描述的方法200使用。如上文在框224中所論述,服務器102可確定每一移動計算裝置的移動計算裝置連接帶寬。在框802處,服務器102可確定所有移動計算裝置的總的可用帶寬。作為實例,服務器102可將個別移動計算裝置連接帶寬加總以確定所有移動計算裝置的總的可用帶寬。在框804處,服務器102可以與每一移動計算裝置的連接帶寬(呈總的可用帶寬的百分比形式)成比例的方式將數據片段指配給每一移動計算裝置。作為實例,具有表示兩個移動計算裝置之間的總的可用帶寬的70%的到服務器的連接的移動計算裝置可被指配70%的數據片段,而具有表示總的可用帶寬的30%的到服務器的連接的移動計算裝置可被指配30%的數據片段。服務器102可接著按照上文所描述的方法200或600將數據片段發射到相應移動計算裝置。
[0062]圖9說明用于優化數據遞送的實施例方法900,方法900可結合上文參看圖2所描述的方法200使用。如上文在框224中所論述,服務器102可確定移動計算裝置連接帶寬。在框902處,服務器102可確定將導致最短的所估計下載時間的數據片段指配。在框904處,服務器102可基于所確定的最短下載時間將數據片段指配給每一移動計算裝置。服務器102可接著按照上文所描述的方法200或600將數據片段發射到相應移動計算裝置。
[0063]圖10說明用于優化數據遞送的實施例方法1000,方法1000可結合上文參看圖2所描述的方法200使用。在框1002處,服務器102可確定移動計算裝置連接類型。作為實例,服務器102與智能電話104之間的連接可為3G連接,且服務器102與膝上型計算機106之間的連接可為W1-Fi連接。在框1004處,服務器102可確定與每一移動計算裝置連接相關聯的成本。作為實例,可對服務器102提供關于以下情形的信息:3G連接導致向用戶索要關于經由連接發射的數據的費用且并不索要關于經由W1-Fi連接發射的數據的費用。在框1006處,服務器102可確定將導致最低的總下載成本的數據片段指配。在框1008處,月艮務器102可基于所確定的最低的總下載成本將數據片段指配給每一移動計算裝置。以此方式,實施方法1000的服務器102可以成本節省模式操作。服務器102可接著按照上文所描述的方法200或600將數據片段發射到相應移動計算裝置。
[0064]圖11說明用于優化數據遞送的實施例方法1100,除了數據片段可尋址移動計算裝置連接帶寬中的改變以外,方法1100類似于上文參看圖2及8所描述的方法200及800。如上文所論述,在框234處,服務器102可將數據片段發射到被指配的移動計算裝置。在確定框1102處,服務器102可確定任何移動計算裝置連接中是否發生帶寬改變。如果發生帶寬改變(即,確定框1102 =“是”),那么在框224處,服務器102可再次確定移動計算裝置連接帶寬。在框802處,服務器102可再次確定總的可用帶寬。在框804處,服務器102可再次以與每一移動計算裝置的連接帶寬(呈總的可用帶寬的百分比形式)成比例的方式將數據片段指配給每一移動計算裝置,且在框234處,服務器102可將數據片段發射到其現在可能新近被指配的移動計算裝置。以此方式,服務器102可在數據片段發射期間隨著帶寬改變而連續地調整數據片段的指配。
[0065]如果任何移動計算裝置中的帶寬不會改變(即,確定框1102 =“否”),那么在框1104處,服務器102可產生數據片段映射。以此方式,在最后確定數據片段指配之前,可能不會產生數據片段映射。在框236處,服務器102可將數據片段映射發射到移動裝置。
[0066]圖12說明用于優化數據遞送的實施例方法1200,除了數據分段可補償移動計算裝置連接的損失以外,方法1200類似于上文參看圖11所描述的方法1100。如上文所論述,在框234處,服務器102可將數據片段發射到被指配的移動計算裝置。在確定框1202處,服務器可確定移動計算裝置連接是否丟失。如果移動計算裝置連接丟失(即,確定框1202=“是”),那么在框1204處,服務器102可將完全下載查詢發射到剩余移動計算裝置。作為實例,完全下載查詢可為對在移動計算裝置上運行的應用程序的指示以促使用戶批準或不批準整個數據集的完全下載。如果移動計算裝置連接未丟失(即,確定框1202 =“否”),那么在框1104處,服務器102可產生數據片段映射且在框235處,服務器102可將數據片段映射發射到移動計算裝置。服務器102可接著按照上文所描述的方法200或600將數據片段發射到相應移動計算裝置。
[0067]在確定框1206處,服務器102可確定是否接收到完全下載指示。作為實例,完全下載指示可為從在移動計算裝置上運行的應用程序接收的消息,其指示用戶請求進行對整個數據集的完全下載。如果接收到完全下載指示(即,確定框1206 =“是”),那么在框1208處,服務器可將整個數據集發射到剩余的連接的移動計算裝置。如果未接收到完全下載指示(即,確定框1206 = “否”),那么在框1104處,服務器102可產生數據片段映射且在框235處,服務器102可將數據片段映射發射到移動計算裝置。服務器102可接著按照上文所描述的方法200或600將數據片段發射到相應移動計算裝置。
[0068]圖13A及13B說明用于管理服務器102、智能電話104及膝上型計算機106之間的交互以優化數據遞送的另一實施例方法1300。在框202、206、208及210處,服務器102可執行上文參看圖2所描述的方法200的操作。在框1302及框1304處,服務器102及智能電話104可建立數據通信連接。連接可為適合于發射數據的任何連接,例如,先前關于圖1所論述的那些連接。在框1306及框1308處,服務器102及膝上型計算機106可建立數據通信連接。連接可為適合于發射數據的任何連接,例如,先前關于圖1所論述的那些連接。在框214、228、230及232處,服務器102可執行上文參看圖2所描述的方法200的操作。
[0069]在框1310處,服務器102可將經指配的數據片段發射到智能電話104。在框1312處,智能電話104可接收其被指配的數據片段。在框1314處,服務器102可發射指配給膝上型計算機106的經指配的數據片段。在框1316處,膝上型計算機106可接收其被指配的數據片段。在框1318處,服務器102可將數據片段映射發射到智能電話104。在框1320處,智能電話104可接收數據片段映射。在框1322處,服務器102可將數據片段映射發射到膝上型計算機106。在框1324處,膝上型計算機106可接收數據片段映射。
[0070]在框1326及框1328處,智能電話104及膝上型計算機106可彼此建立數據通信連接。連接可為適合于發射數據的任何連接,例如,先前關于圖1所論述的那些連接。在框1330處,智能電話104可確定將何種數據片段發射到膝上型計算機106。所述確定可至少部分地基于由智能電話104接收的數據片段映射中的信息。在框1332處,膝上型計算機106可選擇欲發射到智能電話104的數據片段。所述選擇可至少部分地基于由膝上型計算機106接收的數據片段映射中的信息。在框1334處,智能電話104可將選定數據片段發射到膝上型計算機106且在框1336處,膝上型計算機106可接收數據片段。在框1338處,膝上型計算機106可將選定數據片段發射到智能電話104,且在框1340處,智能電話104可接收數據片段。以此方式,可在智能電話104與膝上型計算機106兩者中組合駐留于服務器102上的完整數據集。
[0071]圖14說明用于優化數據遞送的實施例方法1400,方法1400可結合上文參看圖2所描述的方法200使用。在框1402處,服務器102可確定服務器102已與之建立連接的移動計算裝置類型。作為實例,服務器102可確定移動計算裝置為兩種不同類型的裝置,SP,智能電話104與膝上型計算機106。在框1404處,服務器102可基于移動計算裝置類型確定欲發送的每一數據片段的量。以此方式,服務器可基于裝置的類型確定欲發送到每一移動計算裝置的數據的一部分。作為實例,智能電話104可能僅能夠接收及顯示電子郵件消息的前三行。當服務器102確定已連接智能電話104時,服務器102可確定應僅將有限量的數據片段(即,電子郵件消息的前三行)發送到智能電話104。在框228中,服務器102可再次將數據片段指配給每一移動裝置。在框1406中,服務器102可基于所確定的裝置能力發射適當量的指配給移動計算裝置的數據片段中的每一者。以此方式,可僅將數據片段的一部分(即,所確定量)發射到移動計算裝置。
[0072]圖15說明用于使從第一計算裝置到第二計算裝置的數據片段的發射同步的實施例方法1500。作為實例,方法1500可實施于兩個移動計算裝置(例如,智能電話104及膝上型計算機106)之間。雖然關于兩個移動計算裝置(例如,智能電話104及膝上型計算機106)加以論述,但方法1500可實施于任何數目個計算裝置、移動裝置或其它裝置當中。在框1502中,第一移動計算裝置(例如,智能電話104)可檢測到另一移動計算裝置(例如,膝上型計算機106)的可用數據通信鏈路。第一移動計算裝置可通過先前所建立的連接(例如,藍牙連接)檢測到第二移動計算裝置的數據鏈路的可用性。在確定框1504處,第一移動計算裝置可確定其是否具有第二移動計算裝置的數據片段。作為實例,可通過以下操作來進行框1504處的確定:比較膝上型計算機106的裝置ID與駐留于智能電話104的存儲器中的數據片段映射,所述數據片段映射可指示是否應將數據片段提供給膝上型計算機106。如果第一移動計算裝置不具有第二移動計算裝置的數據片段(即,確定框1504 =“否”),那么第一移動計算裝置可返回到框1502以等待檢測另一移動計算裝置。
[0073]如果存在第二移動計算裝置的數據片段(即,確定框1504 = “是”),那么可選實施例中,在框1506處,第一移動計算裝置可確定到第二移動計算裝置的可用的移動裝置數據通信鏈路連接。移動計算裝置可具有建立一個以上數據通信鏈路的能力,且可在第一移動計算裝置與第二移動計算裝置之間建立一個以上數據通信鏈路。作為實例,智能電話104可確定存在與膝上型計算機106的W1-Fi連接及藍牙連接兩者。在框1508處,在此可選實施例中,第一移動計算裝置可選擇在第一移動計算裝置與第二移動計算裝置之間建立的可用移動裝置數據通信鏈路連接。作為實例,在框1508處,智能電話104可選擇藍牙連接。可以任何方式進行對通信數據鏈路連接的選擇,且可基于類似于上文關于圖8、9及10所論述的考慮事項的考慮事項(例如,成本或速度)進行所述選擇。
[0074]在框1510處,第一移動計算裝置可將數據等待消息發射到第二移動計算裝置。數據等待消息可向第二裝置警告第一裝置具有第二裝置所希望的數據片段。另外,數據等待消息可包含第二移動計算裝置所希望的數據片段列表、關于數據片段的信息(例如,數據片段的大小、創建日期或內容類型),或與第二移動計算裝置所希望的數據片段有關的任何其它信息。在框1512處,第一移動計算裝置可接收來自第二移動計算裝置的驗證請求。驗證請求可為來自第二移動計算裝置的響應于數據等待消息的請求。驗證請求可為對于可供第二移動裝置使用以驗證第一移動計算裝置的確實性或驗證駐留于第一移動計算裝置上的數據的確實性的信息的請求。作為實例,驗證請求可請求第一移動計算裝置提供數據片段所源自的服務器的識別碼。第二移動計算裝置可使用服務器的識別碼來驗證片段源于經授權服務器,且因此驗證請求可防止未經授權方提供或接收數據。
[0075]在框1514處,第一移動計算裝置可響應于接收到驗證請求而將數據片段映射發射到第二移動計算裝置。數據片段映射可含有待供第二移動計算裝置使用以驗證第一移動計算裝置的確實性或驗證駐留于第一移動計算裝置上的數據的確實性的信息。作為實例,數據片段映射可含有服務器ID以識別數據片段所源自的服務器。第二移動計算裝置可使用服務器ID來驗證第一移動計算裝置(例如,通過比較服務器ID與所存儲的經授權服務器ID列表)。在確定框1516處,第一移動計算裝置可確定是否接收到數據片段發射請求。如果未接收到數據發射請求(即,確定框1516 =“否”),那么第一移動計算裝置可返回到框1502以等待檢測另一移動計算裝置。如果接收到數據發射請求(即,確定框1516 =“是”),那么在框1518處,第一移動計算裝置可將數據片段發射到第二移動計算裝置。
[0076]圖16說明用于使在第二計算裝置處的來自第一計算裝置的數據片段的接收同步的實施例方法1600。作為實例,方法1600可由第二移動計算裝置實施,第二移動計算裝置結合實施方法1500的第一移動計算裝置操作。作為實例,方法1600可實施于兩個移動計算裝置(例如,第一移動計算裝置(智能電話104)及第二移動計算裝置(膝上型計算機106))之間。雖然關于兩個移動計算裝置(膝上型計算機106及智能電話104)加以論述,但方法1600可實施于任何數目個計算裝置、移動裝置或其它裝置當中。在框1602處,第二移動計算裝置(例如,膝上型計算機106)可從第一移動計算裝置(例如,智能電話104)接收數據等待消息。如上文所論述,數據等待消息可為向第二裝置警告第一裝置具有第二移動計算裝置所希望的數據片段的消息。另外,數據等待消息可包含第二移動計算裝置所希望的數據片段列表、關于數據片段的信息(例如,數據片段的大小、創建日期或內容類型),或與第二移動計算裝置所希望的數據片段有關的任何其它信息。
[0077]在框1604處,第二移動計算裝置可向第一移動計算裝置發射驗證請求。可響應于第二移動計算裝置接收到數據等待消息而從第二移動計算裝置發送驗證請求。如上文所論述,驗證請求可為對于可供第二移動裝置使用以驗證第一移動計算裝置的確實性或驗證駐留于第一移動計算裝置上的數據的確實性的信息的請求。作為實例,驗證請求可為從膝上型計算機106發送到智能電話104的請求智能電話104提供服務器ID的消息。在框1608處,第二移動計算裝置可從第一移動計算裝置接收可含有服務器ID的數據片段映射。
[0078]在確定框1610處,第二移動計算裝置可(例如)通過比較數據片段映射中的服務器ID與存儲在存儲器中的服務器ID而確定服務器ID是否有效。可使用其它方法來驗證服務器ID,包含使用計算機技術中所熟知的加密散列技術。如果服務器ID未得到驗證(即,確定框1610 =“否”),那么在框1620處,方法可結束。以此方式,第二移動計算裝置可能不會接收到無效及/或不信任數據。如果服務器ID有效(即,確定框1610 =“是”),那么在框1612處,第二移動計算裝置可比較數據片段映射與駐留于第二移動計算裝置上的當前數據集以確定第一移動計算裝置上的任何數據片段是否含有未駐留于第二移動計算裝置上的數據。作為實例,膝上型計算機106可比較數據片段創建時間戳以確定膝上型計算機106上的數據集是否比通過數據片段映射定義的數據集新。
[0079]在確定框1614處,第二移動計算裝置可確定是否需要數據片段。此確定可使用在框1612中執行的數據片段與當前數據集的比較的結果來進行,以確定第一移動計算裝置上的任何數據片段是否含有未駐留于第二移動計算裝置上的數據。所需數據片段可包含未駐留于第二移動計算裝置上的數據或比駐留于第二移動計算裝置上的數據新的數據。如果不需要數據片段(即,確定框1614 =“否”),那么在框1620處,方法1600可結束。作為實例,可能不需要過時的數據片段。如果需要數據片段(即,確定框1614 =“是”),那么在框1616處,第二移動計算裝置可向第一移動計算裝置發射請求發射數據片段的數據片段發射請求。在框1618處,第二移動計算裝置可從第一移動計算裝置接收數據片段。在框1620處,方法1600可結束。
[0080]圖17說明用于使數據集在第一計算裝置與第二計算裝置之間同步的實施例方法1700。作為實例,方法1700可實施于兩個移動計算裝置(例如,智能電話104及膝上型計算機106)之間。雖然關于兩個移動計算裝置(智能電話104及膝上型計算機106)加以論述,但方法1700可實施于任何數目個計算裝置、移動裝置或其它裝置當中。在框1702處,第一移動計算裝置(例如,膝上型計算機106)可將等待服務器同步的數據標記為暫時的。等待服務器同步的數據可為從第一移動計算裝置與服務器之間發生最后的數據同步時起以某種方式變更的數據。可以任何方式將等待服務器同步的數據標記為暫時的,包含通過寫入到文件標頭中的信息、添加到數據或索引或指針文件的標簽,或通過改變數據ID。在框1704處,第一移動計算裝置可將數據列表發射到第二移動計算裝置(例如,智能電話104)。數據列表可為駐留于第一移動計算裝置上的數據的列表,例如索引。數據列表可包含在框1702中經標記為暫時的數據的標識。作為實例,膝上型計算機106可經由在膝上型計算機106與智能電話104之間建立的通信數據鏈路連接將數據列表發射到智能電話104。
[0081]在框1706處,第一移動計算裝置可接收來自第二移動計算裝置的數據集請求。數據集請求可識別第二移動計算裝置可能請求的數據列表上的數據的全部或一部分。另外,數據集請求可包含關于用于第二移動計算裝置所需的數據的應用格式的信息。在框1708處,第一移動計算裝置可基于在框1706處接收的數據列表識別第二移動計算裝置所需的數據集。數據集的標識可包含識別第二移動計算裝置所需的應用格式。在框1710處,第一移動計算裝置可在應用格式之間轉譯數據集。作為實例,存儲在膝上型計算機106上的數據可呈僅適合于用于膝上型計算機106上的應用格式。為了使用數據,智能電話104可能需要將數據轉譯成適合于用于智能電話104上的應用格式。因此,膝上型計算機106可將數據集從用于膝上型計算機106的應用格式轉譯成用于智能電話104的應用格式。在框1712處,第一移動計算裝置可將現在經轉譯的數據集發射到第二移動計算裝置。作為實例,膝上型計算機106可經由在膝上型計算機106與智能電話104之間建立的通信數據鏈路連接將經轉譯的數據集發射到智能電話104。
[0082]圖18說明用于使數據集在第一計算裝置與第二計算裝置之間同步的實施例方法1800。作為實例,方法1800可由第二移動計算裝置實施,第二移動計算裝置結合實施方法1700的第一移動計算裝置操作。作為實例,方法1800可實施于兩個移動計算裝置(例如,第一移動計算裝置(膝上型計算機106)及第二移動計算裝置(智能電話104))之間。雖然關于兩個移動計算裝置(膝上型計算機106及智能電話104)加以論述,但方法1800可實施于任何數目個計算裝置、移動裝置或其它裝置當中。在框1802處,第二移動計算裝置(例如,智能電話104)可從第一移動計算裝置(例如,膝上型計算機106)接收數據列表。如上文所論述,數據列表可為駐留于第一移動計算裝置上的數據的列表且可包含經標記為暫時的數據的標識。
[0083]在框1804處,第二移動計算裝置可比較數據列表與駐留于第二移動計算裝置上的數據。在確定框1806處,第二移動計算裝置可確定其是否需要數據列表上的數據。此確定可使用在框1804中執行的數據列表與駐留于第二移動計算裝置上的數據的比較的結果來進行。所需數據可包含未駐留于第二移動計算裝置上的數據、比駐留于第二移動計算裝置上的數據新的數據,或被標記為暫時的數據。如果不需要數據列表上的數據(即,確定框1806 =“否”),那么在框1808處,方法1800可結束。
[0084]如果需要數據列表上的數據(即,確定框1806 = “是”),那么在框1810處,第二移動計算裝置可向第一移動計算裝置發射數據集請求。如上文所論述,數據集請求可識別第二移動計算裝置可能需要的數據列表上的數據的全部或一部分且可包含關于用于第二移動計算裝置所需的數據的應用格式的信息。在框1812處,第二移動計算裝置可從第一移動計算裝置接收數據集。數據集可包含第二移動計算裝置所請求的轉譯成適合于用于第二移動計算裝置上的應用格式的數據。在框1814處,第二移動計算裝置可用所接收的數據集更新駐留于第二移動計算裝置上的數據。在框1808處,方法1800可結束。
[0085]圖19說明用于在計算裝置當中指配及發射等待同步的數據的實施例方法1900。作為實例,方法1900可實施于第一移動計算裝置(例如,膝上型計算機106)、第二移動計算裝置(例如,智能電話104)與服務器102之間。雖然關于膝上型計算機106、智能電話104及服務器102加以論述,但方法1900可實施于無限數目個裝置當中。在框1902處,第一移動計算裝置(例如,膝上型計算機106)可與第二移動計算裝置(例如,智能電話104)建立通信數據鏈路連接。通信數據鏈路連接可為任何類型的連接,如上文參看圖1所論述。在框1904處,第一移動計算裝置可使數據集在第一移動計算裝置與第二移動計算裝置之間同步。數據集的同步可通過任何方法來完成,例如,通過實施上文參看圖15、16、17及18所論述的方法中的任一者。數據集在第一移動計算裝置與第二移動計算裝置之間的同步可導致相同數據集駐留于第一移動計算裝置與第二移動計算裝置兩者上。
[0086]在框1906處,第一移動計算裝置可確定現在同步的數據集中的任何數據是否正等待服務器同步。等待服務器同步的數據可為從第一移動計算裝置與服務器102之間的最后的數據同步時起以某種方式變更的數據。第一移動計算裝置可通過以下方式確定數據正等待服務器同步:通過讀取文件標頭信息,辨識與數據相關聯的標簽,參考數據片段映射,或通過接收指示數據正等待服務器同步的用戶輸入。
[0087]在框1908處,第一移動計算裝置可將等待服務器同步的數據分離成數個片段。片段可包含等待服務器同步的數據的任何分組,且數據的分離可基于數據特性而執行,或等待服務器同步的數據可根據預定參數(例如,設置的片段大小)來分離。在框1910處,第一移動計算裝置可將標識(“ID”)指配給每一等待片段。此等待片段ID可為由第一移動計算裝置產生的獨特數字、名稱或標識元素。另外,等待片段ID可含有或提供關于片段的信息,例如,關于片段內容、片段的創建時間、第一移動計算裝置、第二移動計算裝置及希望的服務器或片段大小的信息。在框1912處,第一移動計算裝置可將等待片段ID寫入到每一等待片段中。可將等待片段ID寫入到表示整個片段的數據中,或可將等待片段ID寫入到包括個別等待片段的每一數據元素中。
[0088]在框1914處,第一移動計算裝置可指配對于每一等待片段的上傳職責。上傳職責可為針對特定移動計算裝置的關于將特定等待片段發射到服務器的指配。作為實例,膝上型計算機106可將二分之一的等待片段指配給智能電話104以進行上傳,且可將另外二分之一的等待片段指配給其自身以進行上傳。下文進一步論述指配考慮事項。在框1916處,第一移動計算裝置可使等待片段及等待片段ID與第二移動計算裝置同步。等待片段及等待片段ID的同步可導致第一移動計算裝置及第二移動計算裝置具有具類似等待片段及類似等待片段ID的類似數據集。作為實例,等待片段及等待片段ID的同步可通過由第一移動計算裝置將等待片段及等待片段ID發射到第二移動計算裝置來完成。第一移動計算裝置可將所有等待片段及等待片段ID發射到第二移動計算裝置,或替代地可僅發射指配給第二移動計算裝置的等待片段及等待片段ID的部分。在替代實例中,第一移動計算裝置可將用于第二移動計算裝置的指令發射到第二移動計算裝置以用于在創建相同等待片段及等待片段ID中使用。指令可包含例如以下各者等信息:包含于每一等待片段中的數據、用于等待服務器同步的數據的開始點及標準等待片段大小、等待片段ID編號方案,或使得第二移動計算裝置能夠重新創建等待數據片段及等待片段ID的其它信息。
[0089]在框1918處,第一移動計算裝置可將對于每一等待片段的上傳職責發射到第二移動計算裝置。在框1920處,第一移動計算裝置可終止其與第二移動計算裝置的通信數據鏈路連接。在框1922處,第一移動計算裝置可與服務器102建立通信數據鏈路連接。連接可為任何類型的連接,如上文參看圖1所論述。在框1924處,第一移動計算裝置可將其被指配的等待片段發射到服務器102。在確定框1926處,第一移動計算裝置可確定是否從服務器102接收到完全上傳請求。完全上傳請求可為從服務器102接收的指示服務器102請求完全上傳等待同步的所有數據的消息。作為實例,可由服務器102響應于關于第二移動計算裝置(例如,智能電話104)丟失、損壞或被破壞的指示而發送完全上傳請求。如果未接收到完全上傳請求(即,確定框1926 =“否”),那么在框1930處,第一移動裝置可終止其與服務器102的通信數據鏈路連接。如果接收到完全上傳請求(即,確定框1926 =“是”),那么在框1926處,第一移動計算裝置可將所有剩余等待片段發射到服務器102。作為實例,第一移動裝置可發射指配給第二移動裝置的等待片段。以此方式,可由第一移動計算裝置來更新服務器102的所有等待片段,且可將正等待服務器同步的所有數據提供給服務器102而不管第二移動裝置的損失、損壞或破壞。在框1930處,第一移動裝置可終止其與服務器102的通信數據鏈路連接。
[0090]圖20說明用于指配上傳職責的實施例方法2000,方法2000可結合上文所描述的方法1900使用。在框2002中,第一移動計算裝置可確定第一移動計算裝置及第二移動計算裝置兩者的到服務器102的數據通信鏈路連接中的所估計可用帶寬。作為實例,膝上型計算機106可確定其到服務器102的連接的所估計連接帶寬及智能電話104與服務器102之間的連接的所估計連接帶寬。所估計連接帶寬的確定可通過從每一移動計算裝置接收的關于其與服務器102的通信數據鏈路連接的信息或裝置的所存儲的帶寬估計及/或連接類型來進行。在框2004處,第一移動計算裝置可通過組合兩個移動計算裝置的所估計帶寬來確定使用第一移動計算裝置及第二移動計算裝置可用的到服務器102的所估計的總的可用帶寬。在框2006處,第一移動計算裝置可以與移動計算裝置的與服務器102的所估計連接帶寬(呈到服務器102的總的所估計的總的可用帶寬的百分比形式)成比例的方式將對于每一等待片段的上傳職責指配給移動計算裝置。作為實例,第一移動計算裝置可具有表示70%的總的可用帶寬的到服務器102的通信數據鏈路連接且第一移動計算裝置可被指配70%的數據片段以供發射,而第二移動計算裝置可具有表示30%的總的可用帶寬的到服務器102的通信數據鏈路連接且第二移動計算裝置可被指配30%的數據片段以供發射。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0091]圖21說明用于指配上傳職責的實施例方法2100,方法2100可結合上文所描述的方法1900使用。如上文所論述,在框2002中,第一移動計算裝置可確定第一移動計算裝置及第二移動計算裝置兩者的到服務器102的數據通信鏈路連接中的所估計可用帶寬。在框2104處,第一移動計算裝置可確定將導致最短的所估計上傳時間的數據上傳職責。在框2106處,第一移動計算裝置可基于所確定的最短下載時間將對于每一片段的上傳職責指配給移動計算裝置。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0092]圖22說明用于指配上傳職責的實施例方法2200,方法2200可結合上文所描述的方法1900使用。在框2202處,第一移動計算裝置可確定移動計算裝置到服務器102的通信數據鏈路連接類型。作為實例,服務器102與智能電話104之間的通信數據鏈路連接可為3G連接,且服務器102與膝上型計算機106之間的通信數據鏈路連接可為W1-Fi連接。在框2204處,第一移動計算裝置可確定與每一移動裝置到服務器102通信數據鏈路連接相關聯的數據發射成本。作為實例,可對膝上型計算機106提供關于以下情形的信息:3G連接導致向用戶索要關于經由連接發射的數據的費用且并不索要關于經由W1-Fi連接發射的數據的費用。在框2206處,第一移動計算裝置可確定將導致最低的總上傳成本的數據上傳職責。在框2208處,第一移動計算裝置可基于所確定的最低的總上傳成本將對于每一等待片段的上傳職責指配給移動計算裝置。以此方式,實施方法2200的第一移動計算裝置可以成本節省模式操作。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0093]圖23說明用于指配上傳職責的實施例方法2300,方法2300可結合上文所描述的方法1900使用。在框2302處,第一移動計算裝置可確定待發射到服務器102的等待片段的總數目。在框2304處,第一移動計算裝置可將對于總數目的某一分數(例如,二分之一)的等待片段的上傳職責指配給第一移動計算裝置(例如,膝上型計算機106),且將對于總數目的其它分數的等待片段的上傳職責指配給第二移動計算裝置(例如,智能電話104)。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0094]圖24說明用于指配上傳職責的實施例方法2400,方法2400可結合上文所描述的方法1900使用。在框2402處,第一移動計算裝置可識別等待片段為偶數片段還是奇數片段。作為實例,膝上型計算機106可將偶數或奇數識別字符串寫入到每一片段的數據標頭中。在框2404處,第一移動計算裝置可將對于偶數等待片段的上傳職責指配給第一移動裝置(例如,膝上型計算機106),且將對于奇數等待片段的上傳職責指配給第二移動裝置(例如,智能電話104)。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0095]圖25說明用于指導計算裝置當中的等待同步的數據的發射的實施例方法2500,方法2500可結合上文所描述的方法1900使用。在框2502中,服務器102可指導第一移動計算裝置(例如,膝上型計算機106)上傳第一移動計算裝置未被指配對于其的上傳職責的等待片段的一部分。作為實例,指示可能被指配待上傳的數據片段的第二移動裝置(例如,智能電話104)丟失的用戶輸入可觸發服務器102指導第一移動計算裝置(例如,膝上型計算機106)上傳最初被指配給現在丟失的智能電話104的等待片段的部分。來自服務器102的對第一移動計算裝置的指導可呈發送到第一移動計算裝置的完全上傳請求的形式。以此方式,移動計算裝置的損失或破壞可能不會導致等待服務器同步的數據片段的損失。第一移動計算裝置及第二移動計算裝置可接著按照如上文所描述的方法1900完成數據到服務器102的上傳。
[0096]圖26說明用于在計算裝置當中指配及發射等待同步的數據的實施例方法2600,方法2600類似于方法1900,其中添加上傳狀態確定。在框2602處,第一移動計算裝置可向服務器102請求第二移動計算裝置的上傳狀態。在框2604處,第一移動計算裝置可從服務器102接收第二移動計算裝置的上傳狀態。作為實例,膝上型計算機106可從服務器102接收指示智能電話104未上傳的消息。在確定框2606處,第一移動計算裝置可使用在框2604中接收的信息確定第二移動計算裝置是否上傳。如果第二移動計算裝置未上傳(即,確定框2606 = “否”),那么第一移動計算裝置可在框1928中將所有剩余等待片段發射到服務器102。如果第二移動計算裝置已上傳(即,確定框2606 =“是”),那么在框1930處,第一移動計算裝置可終止其與服務器102的通信數據鏈路連接。
[0097]圖27說明用于優化電子郵件的遞送的實施例方法2700。實施例方法2700可實施于第一移動計算裝置(例如,膝上型計算機106)上,第一移動計算裝置可使數據集與第二移動計算裝置(例如,智能電話104)同步,且可將數據集的經指配部分提供給服務器102。雖然關于三個裝置加以論述,但方法2700可實施于三個以上裝置當中。在框2702處,第一移動計算裝置可與第二移動計算裝置建立通信數據鏈路連接。通信數據鏈路連接可為任何類型的連接,如上文參看圖1所論述。在框2704處,第一移動計算裝置可使電子郵件集在第一移動計算裝置與第二移動計算裝置之間同步。可通過任何方法來使電子郵件集同步,例如,上文參看圖15、16、17及18所論述的方法。在框2706處,第一移動計算裝置可確定等待與服務器102同步的電子郵件。
[0098]在框2708處,第一移動計算裝置可指配對于每一等待片段的上傳職責。上傳職責可為針對特定移動計算裝置的關于將特定等待電子郵件發射到服務器102的指配。以此方式,可將每一等待電子郵件指配給不同移動計算裝置以進行上傳。作為實例,膝上型計算機106可將二分之一的電子郵件指配給智能電話104以進行上傳,且可將另外二分之一的電子郵件指配給其自身以進行上傳。在框2710處,第一移動計算裝置可將對于每一等待電子郵件的上傳職責發射到第二移動計算裝置。在框2712處,第一移動計算裝置可與服務器102建立通信數據鏈路連接。通信數據鏈路連接可為任何類型的連接,如上文參看圖1所論述。
[0099]在框2714處,第一移動計算裝置可請求服務器102對第一移動計算裝置提供電子郵件線程狀態。電子郵件線程狀態可為關于電子郵件線程中的最近的電子郵件的接收時間或駐留于服務器102上的電子郵件線程中的所有電子郵件的列表的指示。在框2716處,第一移動計算裝置可從服務器102接收提供電子郵件線程狀態的消息。以此方式,可更新第一移動計算裝置的每一電子郵件線程的當前狀態。在確定框2718處,第一移動計算裝置可使用在框2716中接收的電子郵件線程狀態中的信息確定更近的電子郵件是否處于線程中。作為實例,膝上型計算機106可能在一時間周期內與服務器102斷開連接。在斷開連接的周期期間,膝上型計算機106的用戶可響應于在膝上型計算機106與服務器102斷開連接之前所接收的電子郵件而起草電子郵件。雖然膝上型計算機106斷開連接,但其它接收者可交換電子郵件,因此電子郵件線程可具有比存儲在膝上型計算機106上的電子郵件更近的電子郵件。如果第一移動計算裝置確定線程中存在更近的電子郵件(即,確定框2718=“是”),那么在框2720中,第一移動計算裝置可請求用戶批準以發射其被指配的等待電子郵件。作為實例,可經由彈出窗或由第一移動計算裝置顯示的其它類型的用戶提示來請求用戶批準。如果第一移動計算裝置確定線程中不存在更近的電子郵件(即,確定框2718=“否”),那么在框2722中,第一移動計算裝置可將其被指配的等待電子郵件發射到服務器 102。
[0100]在確定框2724處,第一移動計算裝置可確定用戶是否批準將其被指配的等待電子郵件發射到服務器。可將用戶批準作為用戶輸入來接收,例如按鈕推送或顯示選擇指示。如果接收到用戶批準(即,確定框2724 = “是”),那么在框2722處,第一移動計算裝置可將其被指配的等待電子郵件發射到服務器102。如果未接收到用戶批準(即,確定框2724=“否”),那么在框2726處,第一移動計算裝置可保持其被指配的等待電子郵件。以此方式,可保持與線程中的電子郵件的進程相比較來說過時的電子郵件且用戶可避免由于響應于過時的電子郵件而致使電子郵件線程中的混淆。
[0101]圖28A及28B說明用于管理服務器102、智能電話104及膝上型計算機106之間的交互以優化數據遞送的另一實施例方法2800。在框1902、1904、1906、1908、1910、1912、1914、1916、1918、1920、1922、1924及1930處,膝上型計算機106可執行上文參看圖19所描述的方法1900的操作。在框2802及1902處,智能電話104及膝上型計算機106可建立通信數據鏈路連接。通信數據鏈路連接可為適合于發射數據的任何連接,例如,先前關于圖1先前所論述的那些連接。在框2804及1904處,智能電話104及膝上型計算機106可使數據集在其自身之間同步,如在方法1900中所完成。在框2806及1916處,智能電話104及膝上型計算機106可使等待片段及等待片段ID同步,如在方法1900中所完成。
[0102]在框2808處,智能電話104可從膝上型計算機106接收對于每一等待片段的上傳職責。在此發射中,智能電話104可接收關于其自己的上傳職責及膝上型計算機106的上傳職責兩者的指示。在框2810及1920處,智能電話104及膝上型計算機106可終止其彼此的通信數據鏈路連接。
[0103]在框1922及2812處,膝上型計算機106及服務器102可建立通信數據鏈路連接。通信數據鏈路連接可為適合于發射數據的任何連接,例如,先前關于圖1先前所論述的那些連接。在框2814及2186處,智能電話104及服務器102可建立通信數據鏈路連接。通信數據鏈路連接可為適合于發射數據的任何連接,例如,先前關于圖1先前所論述的那些連接。在框1924處,膝上型計算機106可將其被指配的等待片段發射到服務器102。在框2818處,服務器102可接收指配給膝上型計算機106的所發射的等待片段。在框2820處,智能電話104可將其被指配的等待片段發射到服務器102。在框2822處,服務器102可接收指配給智能電話104的所發射的等待片段。以此方式,可在服務器102中組合等待片段的全集且完全同步的數據集可駐留于服務器102、膝上型計算機106及智能電話104上。在框1930及2824處,膝上型計算機106及服務器102可終止其彼此的通信數據鏈路連接。在框2826及2828處,智能電話104及服務器102可終止其彼此的通信數據鏈路連接。
[0104]各種實施例可實施于多種移動裝置中的任一者中,移動裝置的實例說明于圖29中。舉例來說,移動裝置2900可包含耦合到內部存儲器2904及2910的處理器2902。內部存儲器2904及2910可為易失性或非易失性存儲器,且還可為安全及/或加密存儲器,或不安全及/或未加密存儲器,或其任何組合。處理器2902還可耦合到觸摸屏顯示器2906,例如,電阻性感側觸摸屏、電容性感側觸摸屏、紅外線感測觸摸屏,或其類似者。另外,移動裝置2900的顯示器不需要具有觸摸屏能力。另外,計算裝置2900可具有用于發送及接收電磁輻射的一或多個天線2908,天線2908可連接到無線數據鏈路及/或耦合到處理器2902的蜂窩式電話收發器2916。移動裝置2900還可包含用于接收用戶輸入的物理按鈕2912a及2912b。移動裝置2900還可包含用于接通及斷開移動裝置2900的電力按鈕2918。
[0105]各種實施例還可實施于多種可購得的服務器裝置中的任一者上,例如,圖30中所說明的服務器3000。此服務器3000通常包含耦合到易失性存儲器3002及例如磁盤驅動器3003等大容量非易失性存儲器的處理器3001。服務器3000還可包含耦合到處理器3001的軟盤驅動器、壓縮光碟(⑶)或DVD光盤驅動器3004。服務器3000還可包含耦合到處理器3001的網絡接入端口 3006以用于與網絡3007(例如,耦合到其它廣播系統計算機及服務器的局域網)建立網絡接口連接。
[0106]上文所描述的各種實施例還可實施于多種個人計算裝置內,例如,如圖31中所說明的膝上型計算機3110。許多膝上型計算機包含用作計算機的定點裝置的觸摸墊觸摸表面3117,且因此可接收類似于在裝備有觸摸屏顯示器的及上文所描述的移動計算裝置上實施的那些示意動作的拖曳、滾動及輕彈示意動作。膝上型計算機3110通常將包含稱合到易失性存儲器3112及例如快閃存儲器的磁盤驅動器3113等大容量非易失性存儲器的處理器3111。計算機3110還可包含耦合到處理器3111的軟盤驅動器3114及壓縮光盤(⑶)驅動器3115。計算機裝置3110還可包含耦合到處理器3111的若干個連接器端口,以用于建立數據連接或接收外部存儲器裝置,例如,USB或火線(FireWire)⑧連接器套接口或用于將處理器3111耦合到網絡的其它網絡連接電路。在筆記型計算機配置中,計算機外殼包含全部耦合到處理器3111的觸摸墊3117、鍵盤3118及顯示器3119。計算裝置的其它配置可包含如所熟知的耦合到處理器(例如,經由USB輸入)的計算機鼠標或軌跡球,其還可結合各種實施例使用。
[0107]處理器2902、3001及3111可為任何可編程微處理器、微型計算機或可通過軟件指令(應用程序)配置以執行多種功能的一或多個多重處理器芯片,所述功能包含上文所描述的各種實施例的功能。在一些裝置中,可提供多個處理器,例如,專用于無線通信功能的一個處理器及專用于運行其它應用程序的一個處理器。通常,可在存取軟件應用程序及將軟件應用程序載入到處理器2902、3001及3111中之前將軟件應用程序存儲在內部存儲器2904、2910、3002、3003、3112及3113中。處理器2902,3001及3111可包含足夠存儲應用程序軟件指令的內部存儲器。在許多裝置中,內部存儲器可為易失性或非易失性存儲器(例如,快閃存儲器)或易失性與非易失性存儲器兩者的混合物。為了實現此描述的目的,對存儲器的一般參考是指可由處理器2902、3001及3111存取的存儲器,包含內部存儲器或插入到裝置中的可卸除式存儲器,及在處理器2902、3001及3111自身內的存儲器。
[0108]前述方法描述及過程流程圖僅作為說明性實例而提供,且不希望需要或暗示必須以所呈現的次序執行各種實施例的步驟。如所屬領域的技術人員將了解,前述實施例中的步驟次序可以任何次序來執行。例如“此后”、“接著”、“接下來”等詞不希望限制步驟的次序;這些詞僅用以導引讀者理解方法的描述。另外,例如使用冠詞“一”或“所述”以單數形式進行的對于所主張元素的任何參考不應被解釋為將元素限于單數形式。
[0109]結合本文中所揭示的實施例而描述的各種說明性邏輯塊、模塊、電路及算法步驟可實施為電子硬件、計算機軟件或兩者的組合。為清楚說明硬件與軟件的此互換性,上文已大致關于其功能性而描述了各種說明性組件、塊、模塊、電路及步驟。所述功能性是實施為硬件還是軟件取決于特定應用及施加于整個系統的設計約束。所屬領域的技術人員可針對每一特定應用以不同方式來實施所描述的功能性,但此類實施方案決策不應被解釋為會導致脫離本發明的范圍。
[0110]用以實施結合本文中所揭示的方面描述的各種說明性邏輯、邏輯塊、模塊及電路的硬件可通過以下各者來實施或執行:通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件,或其經設計以執行本文中所描述的功能的任何組合。通用處理器可以是微處理器,但在替代方案中,處理器可以是任何常規處理器、控制器、微控制器或狀態機。處理器還可實施為計算裝置的組合,例如,DSP與微處理器的組合、多個微處理器的組合、一或多個微處理器與DSP核心的聯合,或任何其它此配置。或者,一些步驟或方法可由特定用于給定功能的電路來執行。
[0111]在一或多個示范性方面中,可以硬件、軟件、固件或其任何組合來實施所描述的功能。如果實施于軟件中,那么可將功能作為一或多個指令或代碼存儲在計算機可讀媒體上或經由計算機可讀媒體予以發射。本文中所揭示的方法或算法的步驟可體現于處理器可執行軟件模塊中,處理器可執行軟件模塊可駐留于有形的非暫時性計算機可讀存儲媒體上。有形的非暫時性計算機可讀存儲媒體可為可通過計算機存取的任何可用媒體。作為實例而非限制,此類非暫時性計算機可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置,或可用以存儲呈指令或數據結構形式的所要程序代碼且可通過計算機存取的任何其它媒體。如本文中所使用,磁盤及光盤包含壓縮光盤(CD)、激光光盤、光學光盤、數字影音光盤(DVD)、軟磁盤及藍光光盤,其中磁盤通常磁性地復制數據,而光盤使用激光光學地復制數據。上文的組合也應包含在非暫時性計算機可讀媒體的范圍內。另外,方法或算法的操作可作為代碼及/或指令的一個或任何組合或集合駐留于可并入到計算機程序產品中的有形的非暫時性機器可讀媒體及/或計算機可讀媒體上。
[0112]提供對所揭示實施例的先前描述,以使得所屬領域的任何技術人員能夠制作或使用本發明。所屬領域的技術人員將容易顯而易見對這些實施例的各種修改,且在不脫離本發明的精神或范圍的情況下,本文所定義的一般原理可應用于其它實施例。因此,本發明不希望限于本文中所展示的實施例,而應符合與隨附權利要求書以及本文中所揭示的原理及新穎特征一致的最寬范圍。
【權利要求】
1.一種用于優化裝置當中的數據遞送的方法,其包括: 在第一計算裝置中識別供從所述第一計算裝置發射到連接到所述第一計算裝置的多個計算裝置的數據集; 將所述數據集分離成數個數據片段; 將所述數據片段的一部分指配給所述多個計算裝置中的每一計算裝置; 將所述計算裝置的所述數據片段的經指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者; 將第二計算裝置連接到第三計算裝置,其中所述第二計算裝置及所述第三計算裝置各自為所述多個計算裝置中的一者;以及 在所述第二計算裝置與所述第三計算裝置之間交換其所述數據片段的相應經指配部分。
2.根據權利要求1所述的方法,其進一步包括: 將標識ID指配給每一數據片段; 產生數據片段映射;以及 將所述數據片段映射發 射到所述多個計算裝置中的每一計算裝置, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
3.根據權利要求1所述的方法,其進一步包括: 確定數據集特性, 其中將所述數據集分離成數個數據片段包括至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段。
4.根據權利要求1所述的方法,其進一步包括: 確定所述第一計算裝置與所述多個計算裝置之間的每一連接的連接帶寬;以及基于所述第一計算裝置與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置。
5.根據權利要求1所述的方法,其進一步包括: 確定所述第一計算裝置與所述多個計算裝置之間的每一連接的連接帶寬;以及 確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置。
6.根據權利要求1所述的方法,其進一步包括: 確定所述第一計算裝置與所述多個計算裝置之間的每一連接的連接類型; 確定與每一連接類型相關聯的成本;以及 確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置。
7.根據權利要求1所述的方法,其進一步包括:確定所述多個計算裝置中的一者與所述第一計算裝置之間的連接何時丟失;以及將指配給與之丟失了所述連接的所述計算裝置的所述數據集從所述第一計算裝置發射到所述多個計算裝置中仍連接到所述第一計算裝置的一或多者。
8.根據權利要求1所述的方法,其進一步包括: 確定所述多個計算裝置中的每一者的裝置類型;以及 基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量, 其中將所述計算裝置的所述數據片段的經指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者包括發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段。
9.根據權利要求1所述的方法,其進一步包括確定用戶偏好設置,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者是至少部分基于所述所確定的用戶偏好設置。
10.根據權利要求1所述的方法,其進一步包括: 確定所述多個計算 裝置中的每一者的地理位置;以及 確定所述多個計算裝置是否并置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括僅將數據片段指配給并置裝置。
11.根據權利要求1所述的方法,其中所述多個計算裝置為移動裝置且所述第一計算裝置為中央數據庫服務器。
12.根據權利要求1所述的方法,其中所述數據集由電子郵件組成。
13.根據權利要求1所述的方法,其進一步包括: 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的初始連接帶寬; 基于所述第一計算裝置與所述多個計算裝置中的每一者之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置; 監視所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的所述連接帶寬; 確定所述第一裝置計算與所述多個計算裝置中的所述每一者之間的每一連接的任何連接帶寬是否發生改變;以及 在所述第一計算裝置與所述多個計算裝置中的任何一或多者之間的連接帶寬發生改變的情況下; 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的經更新連接帶寬; 基于所述第一計算裝置與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬; 以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者;以及 將所述計算裝置的所述數據片段的經重新指配的部分從所述第一計算裝置發射到所述多個計算裝置中的每一者。
14.根據權利要求1所述的方法,其中在所述第二計算裝置與所述第三計算裝置之間交換其所述數據片段的相應經指配部分進一步包括: 將數據等待消息從所述第二計算裝置發射到所述第三計算裝置;以及 將數據片段映射從所述第二計算裝置發射到所述第三計算裝置。
15.根據權利要求14所述的方法,其中在所述第二計算裝置與所述第三計算裝置之間交換其所述數據片段的相應經指配部分進一步包括: 在所述第三計算裝置處接收所述數據片段映射; 基于所述數據片段映射與駐留于所述第三計算裝置上的數據集的比較確定所述第三計算裝置是否需要 任何數據片段;以及 在確定所述第三計算裝置需要數據片段時,從所述第三計算裝置向所述第二計算裝置發射數據片段請求且將被請求的數據片段從所述第二計算裝置發射到所述第三計算裝置。
16.根據權利要求15所述的方法,其中在所述第二計算裝置與所述第三計算裝置之間交換其所述數據片段的相應經指配部分進一步包括在將被請求的數據片段從一個計算裝置發射到另一個計算裝置之前,將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式。
17.一種用于將數據從第一計算裝置上傳到服務器的方法,其包括: 在所述第一計算裝置與第二計算裝置之間建立連接; 將待上傳到所述服務器的數據集分離成數個數據片段; 將對于所述數據片段的第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置; 將對于每一片段的所述上傳職責從所述第一計算裝置發射到所述第二計算裝置;經由第一數據通信鏈路將所述數據片段的所述第一部分從所述第一計算裝置發射到所述服務器;以及 經由第二通信鏈路將所述數據片段的所述第二部分從所述第二計算裝置發射到所述服務器。
18.根據權利要求17所述的方法,其中將對于所述數據片段的所述第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置包括將對于總數目的二分之一的數據片段的上傳職責指配給所述第一計算裝置且將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算>j-U ρ?α裝直。
19.根據權利要求18所述的方法,其中所述數據集為電子郵件數據集,所述方法進一步包括: 確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中;以及在更近的電子郵件存在于所述電子郵件線程中的情況下,在將指配給所述第一計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準。
20.一種用于優化數據遞送的系統,其包括:第一計算裝置;以及 多個計算裝置,其連接到所述第一計算裝置,所述多個計算裝置包括連接到第三計算裝置的至少一第二計算裝置, 其中所述第一計算裝置經配置而具有處理器可執行指令以執行包括以下各者的操作: 識別供從所述第一計算裝置發射到連接到所述第一計算裝置的所述多個計算裝置的數據集; 將所述數據集分離成數個數據片段; 將所述數據片段的一部分指配給所述多個計算裝置中的每一者;以及將所述計算裝置的所述數據片段的經指配部分發射到所述多個計算裝置中的每一者,其中所述多個計算裝置經配置而具有處理器可執行指令以執行包括在彼此之間交換其所述數據片段的相應經指配部分的操作。
21.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 將標識ID指配給每一數據片段; 產生數據片段映射;以及 將所述數據片段映射發射到所述多個計算裝置中的每一計算裝置, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
22.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定數據集特性, 其中將所述數據集分離成數個數據片段包括至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段。
23.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及 基于所述第一計算裝置與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置。
24.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及 確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置。
25.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接類型; 確定與每一連接類型相關聯的成本;以及 確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置。
26.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述多個計算裝置中的一者與所述第一計算裝置之間的連接何時丟失;以及 將指配給與之丟失了所述連接的所述計算裝置的所述數據集從所述第一計算裝置發射到所述多個計算裝置中仍連接到所述第一計算裝置的一或多者。
27.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的裝置類型;以及 基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量, 其中將所述計算裝置的所述數據片段的經指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者包括發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段。
28.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定用戶偏好設置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者是至少部分基于所述所確定的用戶偏好設置。
29.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的地理位置;以及 確定所述多個計算裝置是否并置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括僅將數據片段指配給并置裝置。
30.根據權利要求20所述的系統,其中所述多個計算裝置為移動裝置且所述第一計算裝置為中央數據庫服務器。
31.根據權利要求20所述的系統,其中所述數據集由電子郵件組成。
32.根據權利要求20所述的系統,其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的初始連接帶寬;基于所述第一計算裝置與所述多個計算裝置之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置; 監視所述第一計算裝置與所述多個計算裝置之間的每一連接的所述連接帶寬; 確定所述第一計算裝置與所述多個計算裝置中的任何一或多者之間的每一連接的連接帶寬是否發生改變;以及 在所述第一計算裝置與所述多個計算裝置之間的每一連接的任何連接帶寬發生改變的情況下; 確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的經更新連接帶寬; 基于所述第一計算裝置與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬; 以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者;以及 將所述計算裝置的所述數據片段的經重新指配的部分從所述第一計算裝置發射到所述多個計算裝置中的每一者。
33.根據權利要求20 所述的系統,其中所述多個計算裝置中的每一者經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 將數據等待消息發射到所述多個計算裝置中的每一其它計算裝置;以及 將數據片段映射發射到所述多個計算裝置中的所述每一其它計算裝置。
34.根據權利要求33所述的系統,其中所述多個計算裝置中的所述每一者經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 從所述多個計算裝置中的相應其它計算裝置接收所述數據片段映射; 對于每一所接收的數據片段映射,基于所述數據片段映射與駐留于所述計算裝置上的數據的比較確定是否需要任何數據片段; 在確定需要數據片段時,向所述多個計算裝置中提供所述數據片段映射的所述相應其它計算裝置發射數據片段請求, 接收來自所述多個計算裝置中的另一者的數據片段請求;以及響應于所述所接收數據片段請求而將被請求的數據片段發射到所述多個計算裝置中的所述另一者。
35.根據權利要求34所述的系統,其中所述多個計算裝置中的每一者經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 在將被請求的數據片段發射到所述多個計算裝置中的另一者之前,將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式。
36.一種用于上傳數據的系統,其包括: 第一計算裝置; 第二計算裝置;以及 服務器,其中所述第一計算裝置經配置而具有處理器可執行指令以執行包括以下各者的操作: 在所述第一計算裝置與所述第二計算裝置之間建立連接; 將待上傳到所述服務器的數據集分離成數個數據片段; 將對于所述數據片段的第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置; 將對于每一片段的所述上傳職責發射到所述第二計算裝置;以及 經由第一數據通信鏈路將所述數據片段的所述第一部分發射到所述服務器, 其中所述第二計算裝置經配置而具有處理器可執行指令以執行包括以下各者的操作: 從所述第一計算裝置接收對于每一片段的所述上傳職責;以及 經由第二通信鏈路將所述數據片段的所述第二部分發射到所述服務器。
37.根據權利要求36所述的系統,其中將對于所述數據片段的所述第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置包括 將對于總數目的二分之一的數據片段的上傳職責指配給所述第一計算裝置且將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算>j-U ρ?α裝直。
38.根據權利要求36所述的系統,其中所述數據集為電子郵件數據集,且其中所述第一計算裝置經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中;以及在更近的電子郵件存在于所述電子郵件線程中的情況下,在將指配給所述第一計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準。
39.一種用于優化數據遞送的系統,其包括: 用于在第一計算裝置中識別供從所述第一計算裝置發射到連接到所述第一計算裝置的多個計算裝置的數據集的裝置; 用于將所述數據集分離成數個數據片段的裝置; 用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置; 用于將所述計算裝置的所述數據片段的經指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者的裝置; 用于在所述計算裝置中的每一者之間交換其所述數據片段的相應經指配部分的裝置。
40.根據權利要求39所述的系統,其進一步包括: 用于將標識ID指配給每一數據片段的裝置; 用于產生數據片段映射的裝置;以及 用于將所述數據片段映射發射到所述多個計算裝置中的每一計算裝置的裝置, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
41.根據權利要求39所述的系統,其進一步包括: 用于確定數據集特性的裝置, 其中用于將所述數據集分離成數個數據片段的裝置包括用于至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段的裝置。
42.根據權利要求39所述的系統,其進一步包括: 用于確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接帶寬的裝置;以及 用于所述基于所述第一計算裝置與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置的裝置。
43.根據權利要求39所述的系統,其進一步包括: 用于確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接帶寬的裝置;以及 用于確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置的裝置。
44.根據權利要求39所述的系統,其進一步包括: 用于確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的連接類型的裝置; 用于確定與每一連接類型相關聯的成本的裝置;以及 用于確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置的裝置。
45.根據權利要求39所述的系統,其進一步包括: 用于確定所述多個計算裝置中的一者與所述第一計算裝置之間的連接何時丟失的裝置;以及 用于將指配給與之丟失了所述連接的所述計算裝置的數據集從所述第一計算裝置發射到所述多個計算裝置中仍連接到所述第一計算裝置的一或多者的裝置。
46.根據權利要求39所述的方法,其進一步包括: 用于確定所述多個計算裝置中的每一者的裝置類型的裝置;以及 用于基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量的裝置, 其中用于將所述計算裝置的所述數據片段的經指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者的裝置包括用于發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段的裝置。
47.根據權利要求39所述的系統,其進一步包括用于確定用戶偏好設置的裝置,其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于至少部分地基于所述所確定的用戶偏好設置將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置。
48.根據權利要求39所述的系統,其進一步包括:用于確定所述多個計算裝置中的每一者的地理位置的裝置;以及 用于確定所述多個計算裝置是否并置的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于僅將數據片段指配給并置裝置的裝置。
49.根據權利要求39所述的系統,其中所述多個計算裝置為移動裝置且所述第一計算裝置為中央數據庫服務器。
50.根據權利要求39所述的系統,其中所述數據集包括電子郵件。
51.根據權利要求39所述的系統,其進一步包括: 用于確定所述第一計 算裝置與所述多個計算裝置中的每一者之間的每一連接的初始連接帶寬的裝置; 用于基于所述第一計算裝置與所述多個計算裝置之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬的裝置,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置; 用于監視所述第一計算裝置與所述多個計算裝置之間的每一連接的所述連接帶寬的裝置; 用于確定所述第一計算裝置與所述多個計算裝置中的任何一或多者之間的每一連接的連接帶寬是否發生改變的裝置;以及 在所述第一計算裝置與所述多個計算裝置之間的每一連接的任何連接帶寬發生改變的情況下; 用于確定所述第一計算裝置與所述多個計算裝置中的每一者之間的每一連接的經更新連接帶寬的裝置; 用于基于所述第一計算裝置與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬的裝置; 用于以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者的裝置;以及 用于將所述計算裝置的所述數據片段的經重新指配部分從所述第一計算裝置發射到所述多個計算裝置中的每一者的裝置。
52.根據權利要求39所述的系統,其中用于在所述多個計算裝置中的每一者之間交換其所述數據片段的相應經指配部分的裝置進一步包括: 用于從所述多個計算裝置中的每一其它計算裝置發射數據等待消息的裝置;以及用于將數據片段映射從所述第二計算裝置發射到所述多個計算裝置中的所述每一其它計算裝置的裝置。
53.根據權利要求52所述的系統,其中用于在所述多個計算裝置中的每一者之間交換其所述數據片段的相應經指配部分的裝置進一步包括: 用于在所述多個計算裝置中的每一者中接收來自所述多個計算裝置中的相應其它計算裝置的所述數據片段映射的裝置; 用于在所述多個計算裝置中的每一者中基于所述數據片段映射與駐留于所述計算裝置上的數據的比較確定是否需要任何數據片段的裝置;用于在確定需要數據片段時向所述多個計算裝置中提供所述數據片段映射的所述相應其它計算裝置發射數據片段請求的裝置;以及 用于響應于接收到數據片段請求而將被請求的數據片段發射到請求計算裝置的裝置。
54.根據權利要求53所述的系統,用于在所述多個計算裝置中的每一者之間交換其所述數據片段的相應經指配部分的裝置進一步包括用于在將被請求的數據片段發射到所述多個計算裝置中的另一者之前將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式的裝置。
55.一種用于將數據從第一計算裝置上傳到服務器的系統,其包括: 用于在所述第一計算裝置與第二計算裝置之間建立連接的裝置; 用于將待上傳到所述服務器的數據集分離成數個數據片段的裝置; 用于將對于所述數據片段的第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置的裝置; 用于將對于每一片段的所述上傳職責從所述第一計算裝置發射到所述第二計算裝置的裝置; 用于經由第一數據通信鏈路將所述數據片段的所述第一部分從所述第一計算裝置發射到所述服務器的裝置;以及 用于經由第二通信鏈路將所述數據片段的所述第二部分從所述第二計算裝置發射到所述服務器的裝置。
56.根據權利要求55所述的系統,其中用于將對于所述數據片段的所述第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置的裝置包括用于將對于總數目的二分之一的數據片段的上傳職責指配給所述第一計算裝置的裝置及用于將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算裝置的裝置。
57.根據權利要求55所述的系統,其中所述數據集為電子郵件數據集,所述系統進一步包括: 用于確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中的裝置;以及 用于在更近的電子郵件存在于所述電子郵件線程中的情況下在將指配給所述第一計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準的裝置。
58.—種服務器,其包括: 存儲器;以及 處理器,其耦合到所述存儲器,其中所述處理器經配置而具有處理器可執行指令以執行包括以下各者的操作: 在所述服務器中識別供從所述服務器發射到多個計算裝置的數據集; 將所述數據集分離成數個數據片段; 將所述數據片段的一部分指配給所述多個計算裝置中的每一者; 將標識ID指配給每一數據片段; 產生數據片段映射; 將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到所述多個計算裝置中的每一者;以及 將所述數據片段映射發射到所述多個計算裝置中的每一者, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
59.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定數據集特性, 其中將所述數據集分離成數個數據片段包括至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段。
60.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及基于所述裝置計算與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置。
61.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及 確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置。
62.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接類型; 確定與每一連接類型相關聯的成本;以及 確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置。
63.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的一者之間的數據連接何時丟失;以及將指配給與之丟失了所述連接的所述計算裝置的所述數據集從所述服務器發射到所述多個計算裝置中仍連接到所述服務器的一或多者。
64.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的裝置類型;以及 基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量,其中將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到每一計算裝置包括發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段。
65.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定用戶偏好設置,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者是至少部分基于所述所確定的用戶偏好設置。
66.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的地理位置;以及 確定所述多個計算裝置是否并置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括僅將數據片段指配給并置裝置。
67.根據權利要求58所述的服務器,其中所述數據集包括電子郵件。
68.根據權利要求58所述的服務器,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作:確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的初始連接帶寬;基于所述服務器與所述多個計算裝置之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置; 監視所述服務器與所述多個計算裝置之間的每一連接的所述連接帶寬; 確定所述服務器與所述多個計算裝置中的任一者之間的每一連接的連接帶寬是否發生改變;以及 在所述服務器與所述多個計算裝置之間的每一連接的任何連接帶寬發生改變的情況下; 確定所述服務器與所述多個計算裝置之間的每一連接的經更新連接帶寬; 基于所述服務器與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬; 以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者;以及 將所述計算裝置的所述數據片段的經重新指配部分從所述服務器發射到所述多個計算裝置中的每一者。
69.一種用于優化數據遞送的服務器,其包括: 用于在所述服務器中識別供從所述服務器發射到多個計算裝置的數據集的裝置; 用于將所述數據集分離成數個數據片段的裝置; 用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置; 用于將標識ID指配給每一數據片段的裝置; 用于產生數據片段映射的裝置; 用于將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到所述多個計算裝置中的每一者的裝置;以及 用于將所述數據片段映射發射到所述多個計算裝置中的每一者的裝置, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
70.根據權利要求69所述的服務器,其進一步包括: 用于確定數據集特性的裝置, 其中用于將所述數據集分離成數個數據片段的裝置包括用于至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段的裝置。
71.根據權利要求69所述的服務器,其進一步包括: 用于確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬的裝置;以及 用于基于所述服務器與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬的裝置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置。
72.根據權利要求69所述的服務器,其進一步包括: 用于確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬的裝置;以及 用于確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置的裝置。
73.根據權利要求69所述的服務器,其進一步包括: 用于確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接類型的裝置; 用于確定與每一連接類型相關聯的成本的裝置;以及 用于確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配的裝置,其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置的裝置。
74.根據權利要求69所述的服務器,其進一步包括: 用于確定所述服務器與所述多個計算裝置中的一者之間的數據連接何時丟失的裝置;以及 用于將指配給與之丟失了所述連接的所述計算裝置的所述數據集從所述服務器發射到所述多個計算裝置中仍連接到所述服務器的一或多者的裝置。
75.根據權利要求69所述的服務器,其進一步包括: 用于確定所述多個計算裝置中的每一者的裝置類型的裝置;以及用于基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量的裝置, 其中用于將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到每一計算裝置的裝置包括用于發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段的裝置。
76.根據權利要求69所述的服務器,其進一步包括用于確定用戶偏好設置的裝置,其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置是至少部分基于所述所確定的用戶偏好設置。
77.根據權利要求69所述的服務器,其進一步包括: 用于確定所述多個計算裝置中的每一者的地理位置的裝置;以及 用于確定所述多個計算裝置是否并置的裝置, 其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于僅將數據片段指配給并置裝置的裝置。
78.根據權利要求69所述的服務器,其中所述數據集包括電子郵件。
79.根據權利要求69所述的服務器,其進一步包括: 用于確定所述服務器與所述多個計算裝置之間的每一連接的初始連接帶寬的裝置;用于基于所述服務器與所述多個計算裝置之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬的裝置,其中用于將所述數據片段的一部分指配給所述多個計算裝置中的每一者的裝置包括用于最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置的裝置; 用于監視所述服務器與所述多個計算裝置之間的每一連接的所述連接帶寬的裝置;用于確定所述服務器與所述多個計算裝置中的任一者之間的每一連接的連接帶寬是否發生改變的裝置; 用于在所述服務器與所述多個計算裝置之間的每一連接的任何連接帶寬發生改變的情況下確定所述服務器與所述多個計算裝置之間的每一連接的經更新連接帶寬的裝置;用于基于所述服務器與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬的裝置; 用于以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者的裝置;以及 用于將所述計算裝置的所述數據片段的經重新指配部分從所述服務器發射到所述多個計算裝置中的每一者的裝置。
80.一種非暫時性處理器可讀媒體,其上存儲有處理器可執行指令,所述處理器可執行指令經配置以致使服務器處理器執行包括以下各者的操作: 在服務器中識別供從所述服務器發射到多個計算裝置的數據集; 將所述數據集分離成數個數據片段; 將所述數據片段的一部分指配給所述多個計算裝置中的每一者; 將標識ID指配給每一數據片段; 產生數據片段映射; 將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到所述多個計算裝置中的每一者;以及 將所述數據片段映射發射到所述多個計算裝置中的每一者, 其中所述數據片段映射包括每一數據片段的ID及數據片段指配信息。
81.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定數據集特性, 其中將所述數據集分離成數個數據片段包括至少部分基于所述所確定數據集特性將所述數據集分離成數個數據片段。
82.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及 基于所述裝置計算與所述多個計算裝置之間的所有所述連接帶寬的總和確定總的可用帶寬, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括以與每一計算裝置的呈所述所確定的總的可用帶寬的百分比形式的連接帶寬成比例的方式將數據片段指配給每一計算裝置。
83.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接帶寬;以及 確定所述多個計算裝置當中的將導致最短的所估計下載時間的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最短的所估計下載時間將數據片段指配給每一計算裝置。
84.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的連接類型; 確定與每一連接類型相關聯的成本;以及 確定所述多個計算裝置當中的將導致最低的總下載成本的數據片段指配, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括基于所述所確定的最低的總下載成本將數據片段指配給每一計算裝置。
85.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述服務器與所述多個計算裝置中的一者之間的數據連接何時丟失;以及 將指配給與之丟失了所述連接的所述計算裝置的所述數據集從所述服務器發射到所述多個計算裝置中仍連接到所述服務器的一或多者。
86.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的裝置類型;以及 基于所述裝置的所確定的裝置類型確定欲發送到所述多個計算裝置中的每一者的每一數據片段的量, 其中將所述計算裝置的所述數據片段的經指配部分從所述服務器發射到每一計算裝置包括發射針對所述計算裝置欲發送的所述所確定的量的每一數據片段。
87.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定用戶偏好設置,其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者是至少部分基于所述所確定的用戶偏好設置。
88.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作: 確定所述多個計算裝置中的每一者的地理位置;以及 確定所述多個計算裝置是否并置, 其中將所述數據片段的一部分指配給所述多個計算裝置中的每一者包括僅將數據片段指配給并置裝置。
89.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述數據集包括電子郵件。
90.根據權利要求80所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使服務器處理器執行進一步包括以下各者的操作:確定所述服務器與所述多個計算裝置中的每一者之間的每一連接的初始連接帶寬;基于所述服務器與所述多個計算裝置之間的所有所述初始連接帶寬的總和確定總的初始可用帶寬,其中將所 述數據片段的一部分指配給所述多個計算裝置中的每一者包括最初以與每一計算裝置的呈所述總的初始可用帶寬的百分比形式的初始連接帶寬成比例的方式將數據片段指配給每一計算裝置; 監視所述服務器與所述多個計算裝置之間的每一連接的所述連接帶寬; 確定所述服務器與所述多個計算裝置中的任一者之間的每一連接的連接帶寬是否發生改變;以及 在所述服務器與所述多個計算裝置之間的每一連接的任何連接帶寬發生改變的情況下; 確定所述服務器與所述多個計算裝置之間的每一連接的經更新連接帶寬; 基于所述服務器與所述多個計算裝置中的每一者之間的所有所述經更新連接帶寬的總和確定總的經更新可用帶寬; 以與每一計算裝置的呈所述總的經更新可用帶寬的百分比形式的經更新連接帶寬成比例的方式將數據片段重新指配給所述多個計算裝置中的每一者;以及 將所述計算裝置的所述數據片段的經重新指配部分從所述服務器發射到所述多個計算裝置中的每一者。
91.一種計算裝置,其包括: 存儲器;以及 處理器,其耦合到所述存儲器,其中所述處理器經配置而具有處理器可執行指令以執行包括以下各者的操作: 將數據等待消息發射到第二計算裝置; 將數據片段映射發射到所述第二計算裝置; 接收來自所述第二計算裝置的數據片段請求;以及 將被請求的數據片段發射到所述第二計算裝置。
92.根據權利要求91所述的計算裝置,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 在將被請求的數據片段發射到所述第二計算裝置之前,將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式。
93.根據權利要求91所述的計算裝置,其中所述數據片段包括電子郵件。
94.根據權利要求91所述的計算裝置,其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 接收數據片段映射; 基于所述數據片段映射與駐留于所述計算裝置上的數據的比較確定是否需要任何數據片段; 向第二計算裝置發射數據片段請求,所述數據片段請求識別任何所需的數據片段;以及 從所述第二計算裝置接收所述所需的數據片段。
95.一種計算裝置,其包括: 存儲器;以及 處理器,其耦合到所 述存儲器,所述處理器經配置而具有處理器可執行指令以執行包括以下各者的操作: 在所述計算裝置與第二計算裝置之間建立數據通信鏈路; 將待上傳到服務器的數據集分離成數個數據片段; 將對于所述數據片段的第一部分的上傳職責指配給所述計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置; 將對于每一片段的所述上傳職責發射到所述第二計算裝置;以及經由第一數據通信鏈路將所述數據片段的所述第一部分發射到所述服務器,所述第一數據通信鏈路不同于供所述第二計算裝置使用的數據通信鏈路。
96.根據權利要求95所述的計算裝置,其中將對于所述數據片段的所述第一部分的上傳職責指配給所述計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置包括將對于總數目的二分之一的數據片段的上傳職責指配給所述計算裝置且將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算裝置。
97.根據權利要求95所述的計算裝置,其中所述數據集為電子郵件數據集,且其中所述處理器經配置而具有處理器可執行指令以執行進一步包括以下各者的操作: 向所述服務器請求電子郵件線程狀態; 從所述服務器接收所述電子郵件線程狀態; 至少部分基于所述所接收的電子郵件線程狀態確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中;以及 在更近的電子郵件存在于所述電子郵件線程中的情況下,在將指配給所述計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準。
98.一種計算裝置,其包括: 用于將數據等待消息發射到第二計算裝置的裝置; 用于將數據片段映射發射到所述第二計算裝置的裝置; 用于接收來自所述第二計算的數據片段請求的裝置;以及用于將被請求的數據片段發射到所述第二計算裝置的裝置。
99.根據權利要求98所述的計算裝置,其進一步包括: 用于在將被請求的數據片段發射到所述第二計算裝置之前,將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式的裝置。
100.根據權利要求98所述的計算裝置,其中所述數據片段由電子郵件組成。
101.根據權利要求98所述的計算裝置,其進一步包括: 用于從所述第二計算裝置接收數據片段映射的裝置; 用于基于所述數據片段映射與駐留于所述計算裝置上的數據的比較確定是否需要任何數據片段的裝置;以及 用于向所述第二計算裝置發射數據片段請求的裝置,所述數據片段請求識別任何所需的數據片段;以及 用于接收所述所需數據片段的裝置。
102.一種用于將數據上傳到服務器的計算裝置,其包括: 用于在所述計算裝置與第二計算裝置之間建立數據通信鏈路的裝置; 用于將待上傳到所述服務器的數據集分離成數個數據片段的裝置; 用于將對于所述數據片段的第一部分的上傳職責指配給所述計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置的裝置; 用于將對于每一片段的所述上傳職責發射到所述第二計算裝置的裝置;以及用于經由第一數據通信鏈路將所述數據片段的所述第一部分發射到所述服務器的裝置,所述第一數據通信鏈路不同于供所述第二計算裝置使用的數據通信鏈路。
103.根據權利要求102所述的計算裝置,其中用于將對于所述數據片段的所述第一部分的上傳職責指配給所述計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置的裝置包括用于將對于總數目的二分之一的數據片段的上傳職責指配給所述計算裝置且將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算裝置的裝置。
104.根據權利要求102所述的計算裝置,其中所述數據集為電子郵件數據集,所述計算裝置進一步包括: 用于向所述服務器請求電子郵件線程狀態的裝置; 用于從所述服務器接收所述電子郵件線程狀態的裝置; 用于至少部分基于所述所接收的電子郵件線程狀態確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中的裝置;以及 用于在更近的電子郵件存在于所述電子郵件線程中的情況下在將指配給所述計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準的裝置。
105.—種非暫時性處理器可讀媒體,其上存儲有處理器可執行指令,所述處理器可執行指令經配置以致使第一計算裝置處理器執行包括以下各者的操作: 將數據等待消息從所述第一計算裝置發射到第二計算裝置; 將數據片段映射從所述第一計算裝置發射到所述第二計算裝置; 在所述第一計算裝置處接收來自所述第二計算裝置的數據片段請求;以及 將被請求的數據片段從所述第一計算裝置發射到所述第二計算裝置。
106.根據權利要求105所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使第一計算裝置處理器執行進一步包括以下各者的操作: 在將被請求的數據片段從所述第一計算裝置發射到所述第二計算裝置之前,將所述被請求的數據片段中的數據從第一應用格式轉譯成第二應用格式。
107.根據權利要求105所述的非暫時性處理器可讀媒體,其中所述數據片段由電子郵件組成。
108.根據權利要求105所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使第一計算裝置處理器執行進一步包括以下各者的操作: 接收數據片段映射; 基于所述數據片段映射與駐留于所述第一計算裝置上的數據集的比較確定是否需要任何數據片段; 從所述第一計算裝置向第二計算裝置發射數據片段請求,所述數據片段請求識別任何所需的數據片段;以及 接收所述所需的數據片段。
109.—種非暫時性處理器可讀媒體,其上存儲有處理器可執行指令,所述處理器可執行指令經配置以致使第一計算裝置處理器執行包括以下各者的操作: 在所述第一計算裝置與第二計算裝置之間建立連接; 將待上傳到服務器的數據集分離成數個數據片段; 將對于所述數據片段的第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的第二部分的上傳職責指配給所述第二計算裝置; 將對于每一片段的所述上傳職責從所述第一計算裝置發射到所述第二計算裝置;以及 經由第一數據通信鏈路將所述數據片段的所述第一部分從所述第一計算裝置發射到所述服務器。
110.根據權利要求109所述的非暫時性處理器可讀媒體,其中所述所存儲處理器可執行指令經配置以致使第一計算裝置處理器執行操作,以使得將對于所述數據片段的所述第一部分的上傳職責指配給所述第一計算裝置且將對于所述數據片段的所述第二部分的上傳職責指配給所述第二計算裝置包括將對于總數目的二分之一的數據片段的上傳職責指配給所述第一計算裝置且將對于所述總數目的另外二分之一的數據片段的上傳職責指配給所述第二計算裝置。
111.根據權利要求109所述的非暫時性處理器可讀媒體,其中所述數據集為電子郵件數據集,且其中所述所存儲處理器可執行指令經配置以致使第一計算裝置處理器執行進一步包括以下各者的操作: 向所述服務器請求電子郵件線程狀態; 從所述服務器接收所述電子郵件線程狀態; 至少部分基于所述所接收的電子郵件線程狀態確定更近的電子郵件是否存在于存儲在所述服務器上的電子郵件線程中;以及 在更近的電子郵件存在于所述電子郵件線程中的情況下,在將指配給所述第一計算裝置的所述數據片段的所述部分發射到所述服務器之前請求用戶批準。
【文檔編號】H04L12/58GK104012047SQ201280065098
【公開日】2014年8月27日 申請日期:2012年12月31日 優先權日:2012年1月1日
【發明者】肖恩·S·羅杰斯 申請人:高通股份有限公司