本地支持的基于云端的存儲的制作方法
【專利摘要】很多云計算系統(tǒng)提供的一種受歡迎的服務是基于云端的存儲。為了增強這個服務,可通過使用本地存儲設備來擴展基于云端的存儲。本地存儲設備(諸如支持網(wǎng)絡的外部硬盤驅(qū)動器)可經(jīng)由用戶的互聯(lián)網(wǎng)連接而可供使用。本地存儲設備于是可被用于透明地存儲用戶的內(nèi)容。即,用戶仍然可將其設備備份到云端,但是在一些情況下,內(nèi)容不是駐留在基于云端的存儲中,而是其可駐留在本地存儲設備上而用戶不需要附加的動作。當用戶請求內(nèi)容時,內(nèi)容可從本地存儲設備檢索并被返回給進行請求的客戶端設備,而客戶端設備不知道內(nèi)容被存儲在哪里。
【專利說明】本地支持的基于云端的存儲
[0001]相關申請的交叉引用
[0002]本專利申請要求提交于2012年5月16日的標題為“LOCALLY BACKED CLOUD-BASEDSTORAGE”的美國專利申請序列號13/473,539的優(yōu)先權,該美國專利申請據(jù)此以引用方式全文并入本文。
【背景技術】
[0003]1.
【技術領域】
[0004]本公開涉及云計算,更具體地涉及擴展基于云端的存儲。
[0005]2.簡介
[0006]很多云計算系統(tǒng)提供的一種受歡迎的服務是基于云端的存儲。在很多情況下,組織機構(gòu)以及個人使用基于云端的存儲解決方案,因為它們提供了便利的數(shù)據(jù)備份選項。例如,很多基于云端的存儲解決方案對于用戶只要求最少的管理。即,用戶連接到該服務,而云計算系統(tǒng)處理文件管理。事實上,在一些情況下,用戶需要進行的唯一交互是安裝云系統(tǒng)所提供的軟件。另外,用戶選擇基于云端的存儲解決方案,因為它們提供了從任何地方對重要數(shù)據(jù)的容易的訪問。例如,用戶可將文件從其家里的臺式計算機傳送到基于云端的存儲裝置,然后以后在工作時或在旅行時,用戶可從另一計算設備訪問該文件。
[0007]但是,基于云端的存儲的便利性常常伴隨有一定價格。例如,為每個用戶分配的存儲空間量可以是基于價格的(例如為2GB存儲空間支付一定月費)、基于使用的(例如,每月在基于云端的存儲裝置和用戶的設備之間可傳送諸如IGB數(shù)據(jù))、或者甚至受到最大限量的限制(例如封頂10GB)。另外,與本地存儲的數(shù)據(jù)相比,對存儲在基于云端的存儲裝置中的數(shù)據(jù)進行訪問具有更高的延遲,即使該數(shù)據(jù)被存儲在用戶本地網(wǎng)絡上的支持網(wǎng)絡的硬盤驅(qū)動器上也是如此。
【發(fā)明內(nèi)容】
[0008]本公開的附加特征和優(yōu)點將在隨后的描述中進行闡述,并且部分地將從該描述顯而易見,或者可以通過實踐本文所公開的原理而獲知。本公開的特征和優(yōu)點可借助于所附權利要求中特別指出的器械和組合來實現(xiàn)并獲得。本公開的這些和其他特征將通過以下描述和所附權利要求變得更加充分地明顯,或者可以通過本文所闡述的原理的實踐而獲知。
[0009]本申請所公開的技術通過集成外部網(wǎng)絡存儲設備(諸如個人網(wǎng)絡存儲設備)來增強基于云端的存儲。外部網(wǎng)絡存儲設備可以是經(jīng)由本地網(wǎng)絡連接到云計算系統(tǒng)的任何支持網(wǎng)絡的存儲設備,而不是作為云計算系統(tǒng)一部分的存儲設備。即,獨立于云計算系統(tǒng)的外部網(wǎng)絡存儲設備。一種用于增強基于云端的存儲的方法包括在云存儲系統(tǒng)接收來自第一客戶端設備的存儲請求。存儲請求可指定要存儲在與用戶賬戶相關聯(lián)的基于云端的存儲中的數(shù)據(jù)項。響應于存儲請求,該方法可獲取用戶賬戶詳情,用戶賬戶詳情可包括與用戶賬戶相關聯(lián)的被授權的外部網(wǎng)絡存儲設備標識符和數(shù)據(jù)存儲位置。
[0010]該方法可使數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備標識符所標識的該外部網(wǎng)絡存儲設備上。在一些配置中,該方法響應于滿足預定義的標準而使數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上。例如,預定義的標準可包括確定在基于云端的存儲設備上的空間不足、將數(shù)據(jù)項存儲在外部網(wǎng)絡存儲設備上更高效、存儲在云存儲裝置中將超過為用戶賬戶授權的空間、和/或存儲請求將外部網(wǎng)絡存儲設備指定為存儲位置。當將數(shù)據(jù)項存儲在外部網(wǎng)絡存儲設備上時,該方法可更新用戶賬戶詳情以將外部網(wǎng)絡存儲設備反映為用于該數(shù)據(jù)項的存儲位置。
[0011]在一些實施例中,一種方法可包括在云存儲系統(tǒng)處接收來自客戶端設備的檢索請求。檢索請求可指定數(shù)據(jù)項。響應于檢索請求,該方法可獲取用戶賬戶詳情。用戶賬戶詳情可指定數(shù)據(jù)項的存儲位置。響應于從用戶賬戶詳情識別該數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上,該方法可從該外部網(wǎng)絡存儲設備檢索該數(shù)據(jù)項。在檢索該數(shù)據(jù)項之后,該方法可將該數(shù)據(jù)項發(fā)送到客戶端設備。
【專利附圖】
【附圖說明】
[0012]為了描述可獲得本公開的上述和其他優(yōu)點及特征的方式,將通過參考附圖中示出的具體實施例來呈現(xiàn)以上簡述的原理的更為具體的描述。理解這些附圖僅示出了本公開的示例性實施例,并且因此不被視為是對本公開范圍的限制,將通過使用附圖以另外的特異性和細節(jié)來描述和解釋本文的原理,其中:
[0013]圖1示出了云計算系統(tǒng)中的設備的一種示例性配置;
[0014]圖2示出了一種示例性的云計算資源系統(tǒng);
[0015]圖3示出了利用增強型的基于云端的存儲來存儲數(shù)據(jù)項的一個示例性請求;
[0016]圖4示出了利用增強型的基于云端的存儲來檢索數(shù)據(jù)項的一個示例性請求;
[0017]圖5示出了具有應用程序資源文件的一種示例性應用程序;
[0018]圖6示出了具有應用程序資源文件和應用程序資源文件占位符的一種示例性應用程序;
[0019]圖7示出了具有資源文件和資源文件占位符的一種示例性操作系統(tǒng);
[0020]圖8示出了使用應用程序資源文件的應用程序的一種示例性執(zhí)行;
[0021]圖9示出了一種示例性的數(shù)據(jù)項集合;
[0022]圖10示出了一種示例性的集合形成交換;
[0023]圖11示出了將數(shù)據(jù)項分配到集合的一種示例性分配;
[0024]圖12示出了用于利用增強型的基于云端的存儲來存儲數(shù)據(jù)項的一種示例性方法實施例;
[0025]圖13示出了用于利用增強型的基于云端的存儲來檢索數(shù)據(jù)項的一種示例性方法實施例;
[0026]圖14示出了用于與應用程序資源文件占位符一起安裝應用程序的一種示例性方法實施例;
[0027]圖15示出了用于獲取應用程序資源文件的一種示例性方法實施例;
[0028]圖16示出了用于數(shù)據(jù)項共享和協(xié)作的一種示例性方法實施例;
[0029]圖17示出了用于使用戶訂閱集合的一種示例性方法實施例;
[0030]圖18示出了用于將數(shù)據(jù)項分配到集合的一種示例性方法實施例;
[0031]圖19示出了用于修改分配到集合的數(shù)據(jù)項的一種示例性方法實施例;以及
[0032]圖20示出了一種示例性的系統(tǒng)實施例。
【具體實施方式】
[0033]下面詳細論述本公開的各個實施例。雖然論述了具體實施例,但應當理解這僅僅為了說明目的而進行。相關領域的技術人員將認識到,在不脫離本公開的實質(zhì)和范圍的情況下可以使用其他組件和配置。本公開解決了現(xiàn)有技術中對于在基于云端的計算環(huán)境中共享和存儲數(shù)據(jù)的改進方法的需求。
[0034]1.云計算環(huán)塏概沭
[0035]云計算是一種類型的基于互聯(lián)網(wǎng)的計算,其中多種資源由一實體作為宿主和/或進行控制,并且經(jīng)由互聯(lián)網(wǎng)被該實體提供以供被授權用戶使用。圖1示出了一種示例性的云計算系統(tǒng)配置100,其中多種電子設備可經(jīng)由網(wǎng)絡進行通信以便交換內(nèi)容和其他數(shù)據(jù)。系統(tǒng)可被配置用于在有利于電子設備相互通信的多種網(wǎng)絡配置上使用。例如,圖1中系統(tǒng)100的每個部件可在網(wǎng)絡中以局域方式或分布式方式被實現(xiàn)。
[0036]系統(tǒng)100可被配置為包括云計算資源120。云資源可包括多種硬件和/或軟件資源,諸如云服務器122、云數(shù)據(jù)庫124、基于云端的存儲裝置126、云網(wǎng)絡128、云應用程序、云平臺、和/或任何其他基于云端的資源。在一些情況下,云資源是分布式的。例如,基于云端的存儲裝置126可包括多個存儲設備。在一些情況下,云資源可被分布在多個云計算系統(tǒng)上和/或各個支持網(wǎng)絡的計算設備上。例如,云計算資源120可與服務器KM1UCM2、…、104n(統(tǒng)稱為“104”)、數(shù)據(jù)庫106、和/或任何其他支持網(wǎng)絡的計算設備通信,以提供云資源。
[0037]此外,在一些情況下,云資源可以是冗余的。例如,如果云計算資源120被配置為提供數(shù)據(jù)備份服務,則數(shù)據(jù)的多個副本可被存儲使得即使在存儲資源離線、繁忙、或以其它方式不可用于處理請求的情況下數(shù)據(jù)仍然可供用戶使用。在另一示例中,如果云計算資源120被配置為提供應用程序,則所述應用程序可從不同云服務器提供,使得所述應用程序可從所述不同云服務器中任何云服務器來服務。可以應用算法,使得選擇最近的服務器或具有最低當前負荷的服務器來處理給定請求。
[0038]在系統(tǒng)100中,用戶通過以直接和/或間接通信連接到網(wǎng)絡的用戶終端102ρ1022、…、102n(統(tǒng)稱為“102”)與云計算資源120交互。云計算資源120可支持來自多種不同電子設備的連接,不同電子設備諸如是服務器;臺式計算機;移動計算機;手持式通信設備,例如移動電話、智能電話、平板電腦;機頂盒;支持網(wǎng)絡的硬盤驅(qū)動器;和/或其他支持網(wǎng)絡的計算設備。此外,云計算資源120可同時接受來自多個電子設備的連接和與多個電子設備交互。與這多個電子設備的交互可劃分優(yōu)先順序或者同時進行。
[0039]云計算資源120可通過多種部署模型來提供云資源,諸如公用、私有、社群、混合、和/或任何其他云部署模型。在一些情況下,云計算資源120可支持多個部署模型。例如,云計算資源120可通過公用部署模型提供一組資源,通過私有部署模型提供另一組資源。
[0040]在一些配置中,用戶終端102可從互聯(lián)網(wǎng)連接可用的任何位置訪問云計算資源120。然而,在其他情形下,云計算資源120可被配置為限制對某些資源的訪問,使得資源只能從某些位置訪問。例如,如果云計算資源120被配置為利用私有部署模型提供資源,則云計算資源120可限制對該資源的訪問,諸如通過要求用戶終端102從防火墻后面訪問該資源。
[0041]云計算資源120可通過多種服務模型提供云資源到用戶終端102,服務模型諸如是軟件即服務(SaaS)、平臺即服務(PaaS)、基礎設施即服務(IaaS)、和/或任何其他云服務模型。在一些情形下,云計算資源120可為用戶終端102提供多個服務模型。例如,云計算資源120可為用戶終端102提供SaaS和IaaS 二者。在一些情形下,云計算資源120可為不同用戶終端102提供不同服務模型。例如,云計算資源120可為用戶終端102i提供SaaS,為用戶終端1022提供PaaS。
[0042]在一些情況下,云計算資源120可維護賬戶數(shù)據(jù)庫。賬戶數(shù)據(jù)庫可存儲注冊用戶的簡檔信息。簡檔信息可包括資源訪問權限,諸如允許用戶使用的軟件、最大存儲空間等。簡檔信息還可包括使用信息,諸如已消耗計算資源、數(shù)據(jù)存儲位置、安全設置、個人配置設置等等。在一些情況下,賬戶數(shù)據(jù)庫可駐留在相對于云計算資源120遠程的數(shù)據(jù)庫或服務器上,諸如服務器104或數(shù)據(jù)庫106。
[0043]云計算資源120可提供要求用戶交互的多種功能性。相應地,可提供用戶接口(UI)以用于與云計算資源120通信和/或執(zhí)行與云資源相關聯(lián)的任務??山?jīng)由與云計算資源120通信的最終用戶終端102來訪問UI。UI可被配置為根據(jù)云計算資源120和/或用戶終端102的存儲和處理能力而工作于多種客戶端模式中,包括胖客戶端模式、瘦客戶端模式、或混合客戶端模式。因此,Π在一些實施例中可被實現(xiàn)為工作于用戶終端的獨立應用程序。在其他實施例中,可使用基于web瀏覽器的入口來提供Π。在各種實施例中也可使用任何其他訪問云計算資源120的配置。
[0044]2.云計算資源系統(tǒng)
[0045]已經(jīng)公開了一種示例性的云計算環(huán)境,本公開現(xiàn)在轉(zhuǎn)到圖2,圖2示出了一種示例性的云計算資源(CCR)系統(tǒng)200,諸如圖1中的云計算資源120。CCR系統(tǒng)200可包括多個特征來增強用戶從多種不同客戶端設備類型存儲、共享、和訪問數(shù)據(jù)的能力。這些特征可包括增強型的基于云端的存儲、基于云端的資源、和分組數(shù)據(jù)項共享和協(xié)作。例如,CCR系統(tǒng)200可提供通過使用外部網(wǎng)絡存儲設備(諸如支持個人網(wǎng)絡的外部硬盤驅(qū)動器)擴展的基于云端的存儲。在另一示例中,CCR系統(tǒng)200可提供用于應用程序資源文件(諸如不經(jīng)常使用的模板文件)的基于云端的存儲。在再一不例中,CCR系統(tǒng)200可有利于在訂閱集合的一組用戶之間的數(shù)據(jù)共享。下面將更詳細地討論這些特征、以及可用于提供這些特征的架構(gòu)和資源。
[0046]2.1 架■構(gòu)
[0047]如圖2中所示,CCR系統(tǒng)200的架構(gòu)可包含多個部件。這些部件可包括用于存儲與系統(tǒng)的操作相關的數(shù)據(jù)的一個或多個數(shù)據(jù)庫,例如賬戶數(shù)據(jù)庫240、集合數(shù)據(jù)庫242、和應用程序資源數(shù)據(jù)庫246 ;—個或多個存儲設備,例如基于云端的存儲裝置244 ;以及用于與這些數(shù)據(jù)庫、存儲設備交互和/或控制系統(tǒng)所提供的特征的一個或多個模塊和/或引擎,例如通信接口 210、賬戶管理模塊212、用戶接口模塊214、數(shù)據(jù)項共享引擎220、和云存儲引擎230。下面更詳細地討論圖2中的每個部件;但是本領域技術人員應當理解,圖2中所示的架構(gòu)配置僅僅是一種可能配置,具有更多或更少部件的其他配置也是可能的。
[0048]CCR系統(tǒng)200是可與多個不同客戶端設備通信的基于網(wǎng)絡的系統(tǒng)。為了有利于通信,CCR系統(tǒng)200可包括通信接口 210。通信接口 210可被配置為接收來自客戶端設備的通信(諸如請求、數(shù)據(jù)等)以及將該通信傳遞到CCR系統(tǒng)200中的適當模塊和/或引擎以進行處理。通信接口 210還可被配置為發(fā)送通信到客戶端設備。此外,通信接口 210可被配置為與任何計算設備通信,包括其他云計算系統(tǒng)。
[0049]CCR系統(tǒng)200所提供的特征中的一些可要求用戶交互,諸如對存儲在基于云端的存儲裝置中的特定文件的請求、邀請新用戶訂閱數(shù)據(jù)文件集合、和/或?qū)⑿挛募砑拥郊?。相應地,可提供用戶接?UI)用于與用戶接口模塊214通信以執(zhí)行這樣的任務。用戶接口模塊214的Π可經(jīng)由與CCR系統(tǒng)200通信的客戶端設備202來訪問。Π和用戶接口模塊214可工作于多種客戶端模式中,包括胖客戶端模式、瘦客戶端模式、或混合客戶端模式,這取決于CCR系統(tǒng)200和/或客戶端設備202的存儲和處理能力。因此,用于用戶接口模塊的Π在一些實施例中可被實現(xiàn)為工作于客戶端設備上的獨立應用程序。在其他實施例中,可使用基于web瀏覽器的入口來提供用于用戶接口模塊214的UI。在各種實施例中也可使用遠程地或本地地訪問CCR系統(tǒng)200的任何其他配置。另外,UI可為有利于用戶交互的任何類型的UI,諸如圖形用戶界面、音頻用戶接口、和/或任何其他類型的UI。
[0050]在一些情況下,CCR系統(tǒng)200可基于每個用戶提供特征,諸如基于云端的存儲,或者特征可能要求用戶認證。為了支持這些特征,CCR系統(tǒng)200可包括賬戶數(shù)據(jù)庫240和賬戶管理模塊212。存儲在賬戶數(shù)據(jù)庫中的信息可根據(jù)特征而變化。例如,如果賬戶數(shù)據(jù)庫240用于存儲與增強型的基于云端的存儲相關的信息,則賬戶信息可包括用戶信息、授權的最大存儲空間、已使用的存儲空間、被授權客戶端設備的標識符、被授權的外部網(wǎng)絡存儲設備的標識符、文件存儲位置等等?;蛘?,如果賬戶數(shù)據(jù)庫240用于存儲關于數(shù)據(jù)文件集合的信息,則賬戶信息可包括用戶信息、訂閱的集合、被授權客戶端設備的標識符等等。在一些配置中,可在整個CCR系統(tǒng)200上使用單個賬戶數(shù)據(jù)庫來為所有這些特征存儲賬戶信息。但是,CCR系統(tǒng)200可被配置為為不同特征維護不同賬戶數(shù)據(jù)庫,諸如一個賬戶數(shù)據(jù)庫用于基于云端的存儲,另一賬戶數(shù)據(jù)庫用于數(shù)據(jù)文件集合。
[0051]賬戶管理模塊212可被配置為更新和/或獲取用戶賬戶數(shù)據(jù)庫240中的用戶賬戶詳情。例如,當接收到存儲文件的請求時,賬戶管理模塊212可獲取用戶的賬戶詳情,CCR系統(tǒng)200然后可使用用戶的賬戶詳情來確定用戶是否已經(jīng)授權外部網(wǎng)絡存儲設備作為存儲位置。在另一示例中,響應于用戶接受訂閱集合的邀請,賬戶管理模塊212可更新用戶的賬戶詳情以包括該集合。賬戶管理模塊212可被配置為與CCR系統(tǒng)200中任意數(shù)量的其他模塊和/或引擎交互。
[0052]將在下文中更詳細地討論的CCR系統(tǒng)200的特征之一是CCR系統(tǒng)200可被用于有利于用戶組之間的數(shù)據(jù)項共享和協(xié)作。共享和協(xié)作可通過創(chuàng)建集合來實現(xiàn)。一組用戶可訂閱一集合。在已經(jīng)形成集合之后,一個或多個訂閱用戶可分配數(shù)據(jù)項到該集合,并且每個被分配的數(shù)據(jù)項的副本可被發(fā)布給每個訂閱用戶。與集合相關的信息可被存儲在集合數(shù)據(jù)庫242中。所存儲的信息可包括集合標識符、訂閱用戶標識符、分配的數(shù)據(jù)項、維護修改記錄的一個或多個日志文件等等。
[0053]CCR系統(tǒng)200可包括數(shù)據(jù)項共享引擎220,用于管理與集合相關聯(lián)的共享和協(xié)作活動。例如,數(shù)據(jù)項共享引擎220可接收對分配給集合的數(shù)據(jù)項的修改、更新集合數(shù)據(jù)庫242中的集合信息、以及將該修改發(fā)布到訂閱該集合的其他用戶。為了完成管理與集合相關聯(lián)的共享和協(xié)作活動的任務,數(shù)據(jù)項共享引擎220可包括一個或多個模塊,諸如集合管理模塊222和版本控制模塊224。數(shù)據(jù)項共享引擎220還可被配置為與CCR系統(tǒng)200中任意數(shù)量的其他模塊和/或引擎交互。
[0054]將在下文中更詳細地討論的CCR系統(tǒng)200的另一特征是CCR系統(tǒng)200可提供增強型的基于云端的存儲。為了有利于增強型的基于云端的存儲,CCR系統(tǒng)200可包括云存儲引擎230。例如,云存儲引擎230可接收存儲數(shù)據(jù)項的請求。響應于這個存儲請求,云存儲引擎230可獲取與該請求相關聯(lián)的用戶賬戶詳情,將該數(shù)據(jù)項存儲在基于云端的存儲244中和/或被授權的外部網(wǎng)絡存儲設備上,以及更新關于存儲位置的賬戶詳情。同樣,云存儲引擎230可接收檢索數(shù)據(jù)項的請求。響應于該檢索請求,云存儲引擎230可獲取與該請求相關聯(lián)的用戶賬戶詳情以識別存儲位置,以及從該存儲位置獲取該數(shù)據(jù)項。另外,云存儲引擎230可用于管理應用程序資源文件(諸如模板文件)的存儲和檢索。云存儲引擎230可包括一個或多個模塊(諸如數(shù)據(jù)管理模塊232)、和一個或多個數(shù)據(jù)庫(諸如應用程序資源數(shù)據(jù)庫246),以提供基于云端的應用程序資源功能性。云存儲引擎230還可被配置為與CCR系統(tǒng)200中任意數(shù)量的其他模塊和/或引擎交互。
[0055]2.2 特征
[0056]如前所述,CCR系統(tǒng)200可包括多個特征來增強用戶從多種不同客戶端設備類型存儲、共享、和訪問數(shù)據(jù)的能力。這些特征可包括增強型的基于云端的存儲、基于云端的資源、和分組數(shù)據(jù)共享。
[0057]2.2.1增強型的基于云端的存儲
[0058]CCR系統(tǒng)200可被配置為提供基于云端的存儲。在一些配置中,云存儲引擎230可管理基于云端的存儲特征。云存儲引擎可接收來自客戶端設備的存儲請求和檢索請求。在一些情況下,存儲和檢索請求經(jīng)由通信接口 210和/或用戶接口模塊214被傳遞到云存儲引擎230。
[0059]為了從客戶端設備將數(shù)據(jù)項存儲在基于云端的存儲裝置(諸如基于云端的存儲裝置244)中,用戶可與CCR系統(tǒng)200建立賬戶。云存儲引擎230可獲取賬戶詳情,諸如從賬戶管理模塊212獲取。在一些情況下,云存儲引擎230可為用戶賬戶分配最大存儲容量。例如,云存儲引擎230可為所有用戶分配一致的存儲容量,例如4GB。在另一示例中,云存儲引擎230可基于預定義的標準為不同用戶分配不同存儲容量,例如基于用戶隸屬關系分配容量、基于訂閱費分配容量等等。最大存儲容量可被記錄在用戶的賬戶詳情中,諸如通過將該信息傳遞到賬戶管理模塊212來記錄。但是,在一些情況下,云存儲引擎230可允許無限存儲容量。
[0060]除了存儲容量之外,云存儲引擎230還可被配置為維護用戶當前存儲使用的記錄。例如,如果用戶已經(jīng)存儲了總大小為500MB的五個文件,則云存儲引擎230可通過將這樣的信息記錄在用戶的賬戶詳情中來維護該信息。在一些情況下,不管是否為用戶分配最大存儲容量,使用信息都可被維護。
[0061]云存儲引擎230還可被配置為使得用戶可在單個用戶賬戶上授權多個客戶端設備,從而允許用戶從多個客戶端設備訪問存儲在基于云端的存儲裝置中的數(shù)據(jù)項。例如,用戶可授權家里的臺式計算機和便攜式計算機。用戶于是可從臺式計算機存儲數(shù)據(jù)項到基于云端的存儲,然后利用便攜式計算機檢索數(shù)據(jù)項。被授權的客戶端設備可被記錄在用戶的賬戶詳情中,諸如通過記錄客戶端設備的唯一標識符來進行記錄。另外,在一些情況下,一客戶端設備可與多個用戶賬戶相關聯(lián)。
[0062]迄今所介紹的基于云端的存儲細節(jié)更確切地說是傳統(tǒng)的基于云端的存儲特征。但是,云存儲引擎230可通過集成在用戶賬戶上授權的外部網(wǎng)絡存儲設備來提供增強基于云端的存儲。本文所使用的外部網(wǎng)絡存儲設備可以是用戶擁有的和/或經(jīng)由用戶的本地網(wǎng)絡連接到CCR系統(tǒng)200的任何支持網(wǎng)絡的存儲設備,諸如外部硬盤驅(qū)動器,例如個人網(wǎng)絡存儲設備202i。即,獨立于任何云計算系統(tǒng)的支持網(wǎng)絡的存儲設備。例如,外部網(wǎng)絡存儲設備可以是用戶已經(jīng)連接到其家里的本地網(wǎng)絡的外部硬盤驅(qū)動器?;蛘?,外部網(wǎng)絡存儲設備可以是連接到組織機構(gòu)的本地網(wǎng)絡的支持網(wǎng)絡的存儲設備。即,外部網(wǎng)絡存儲設備可以是駐留在本地網(wǎng)絡上的任何支持網(wǎng)絡的存儲設備,而不是作為CCR系統(tǒng)200或某個其它云計算系統(tǒng)的一部分。
[0063]用戶可在CCR系統(tǒng)200中的其用戶賬戶上授權一個或多個外部網(wǎng)絡存儲設備。在一些情況下,一個外部網(wǎng)絡存儲設備可在多個用戶賬戶上被授權。例如,一個家庭可能包括三個人和單個外部網(wǎng)絡存儲設備,每個人都有用戶賬戶。這個家庭中的每個用戶可在其賬戶上授權該外部網(wǎng)絡存儲設備。
[0064]一旦外部網(wǎng)絡存儲設備在用戶賬戶中被授權,云存儲引擎230就可使用該外部網(wǎng)絡存儲設備來擴展基于云端的存儲。即,不是將數(shù)據(jù)項存儲在基于云端的存儲裝置244中,云存儲引擎230可將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上。但是,如果用戶請求存儲數(shù)據(jù)項,并且用戶還沒有在其賬戶上授權外部網(wǎng)絡存儲設備,則云存儲引擎230可恢復到傳統(tǒng)的基于云端的存儲。
[0065]當多個外部網(wǎng)絡存儲設備在用戶賬戶中被授權時,云存儲引擎230可選擇這些外部網(wǎng)絡存儲設備之一作為用于數(shù)據(jù)項的存儲位置。這個選擇可基于多種標準,諸如隨機、可用空間量、與云存儲引擎230相距的距離、數(shù)據(jù)項類型、用戶偏好、外部網(wǎng)絡存儲設備的可靠性等等。
[0066]云存儲引擎230可被配置為包括可管理存儲在基于云端的存儲裝置中的數(shù)據(jù)項的數(shù)據(jù)管理模塊232。例如,數(shù)據(jù)管理模塊232可作為增強型的文件系統(tǒng)工作。數(shù)據(jù)管理模塊232可被配置為確定數(shù)據(jù)項是應該被存儲在基于云端的存儲裝置244中還是被授權的外部網(wǎng)絡存儲設備上。將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上的決定可以是基于滿足預定義的標準。所使用的標準可隨著系統(tǒng)配置而變化。在一些情況下,當確定在基于云端的存儲中沒有為用戶分配足夠空間時,數(shù)據(jù)管理模塊232可選擇將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上。例如,云存儲引擎230可被配置為為用戶賬戶分配比批準的最大容量少的空間。在數(shù)據(jù)管理模塊232確定所分配的空間不足,并且用戶還沒有超過用戶的被批準最大存儲容量時,不是在基于云端的存儲裝置244中分配更多空間,數(shù)據(jù)管理模塊232而是可將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上。在一些情況下,當確定用戶已經(jīng)超過了用戶的被批準的最大存儲容量時,數(shù)據(jù)管理模塊232可選擇將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上。例如,不是拒絕用戶的存儲請求或要求用戶提高其在基于云端的存儲裝置244中的存儲容量,數(shù)據(jù)管理模塊232可將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上?;蛘?,在一些情況下,數(shù)據(jù)管理模塊232可被配置為當數(shù)據(jù)管理模塊232確定存儲在被授權的外部網(wǎng)絡存儲設備上可能更高效時選擇將數(shù)據(jù)項存儲在該外部網(wǎng)絡存儲設備上。例如,如果外部網(wǎng)絡存儲設備比基于云端的存儲裝置244更近,則將數(shù)據(jù)項存儲在外部網(wǎng)絡存儲設備上可減少延遲并提高性能。另外,在一些情況下,數(shù)據(jù)管理模塊232可被配置為基于用戶偏好來選擇將數(shù)據(jù)項存儲在被授權的外部網(wǎng)絡存儲設備上。例如,用戶可指定特定數(shù)據(jù)項或特定類型的數(shù)據(jù)項應該被存儲在外部網(wǎng)絡存儲設備上。
[0067]數(shù)據(jù)管理模塊232還可被配置為在基于云端的存儲裝置244中維護數(shù)據(jù)項的多個副本。該冗余可被執(zhí)行以降低被請求的數(shù)據(jù)項不可用的可能性。例如,數(shù)據(jù)管理模塊232可被配置為每當數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上時就在基于云端的存儲裝置244中存儲該數(shù)據(jù)項的副本。在一些情況下,冗余選項可基于用戶偏好。例如,用戶可指定用戶指示云存儲引擎230存儲在外部網(wǎng)絡存儲設備上的數(shù)據(jù)項不應該也被存儲在基于云端的存儲裝置244中,但是可被存儲在另一被授權的外部網(wǎng)絡存儲設備上。
[0068]在一些情況下,數(shù)據(jù)管理模塊232可被配置為分割數(shù)據(jù)項并且將這些片斷存儲在一個或多個基于云端的存儲位置中,包括存儲在外部網(wǎng)絡存儲設備上。例如,數(shù)據(jù)項可被分割為兩個片段,一個片斷被存儲在基于云端的存儲裝置244中,而另一個片斷被存儲在外部網(wǎng)絡存儲設備上。另外,在一些配置中,數(shù)據(jù)管理模塊232可將數(shù)據(jù)項分割為多個片斷,并且冗余地存儲這些片斷。
[0069]圖3示出了一個示例性的場景300,其中在CCR系統(tǒng)200處接收利用增強型的基于云端的存儲裝置存儲數(shù)據(jù)項的請求。在場景300中,用戶302具有各種客戶端設備304、306、和308。用戶已經(jīng)在用戶的賬戶上授權了客戶端設備304和306用于將數(shù)據(jù)項發(fā)送到基于云端的存儲裝置和從基于云端的存儲裝置檢索數(shù)據(jù)項。另外,用戶已經(jīng)將外部網(wǎng)絡存儲設備308授權作為用于用戶的數(shù)據(jù)項的被授權的存儲位置。當用戶從客戶端設備304進行存儲請求時,云存儲引擎230接收該請求和數(shù)據(jù)項。當確定數(shù)據(jù)項應該被存儲在外部網(wǎng)絡存儲設備308上時,云存儲引擎230可將數(shù)據(jù)項發(fā)送到外部網(wǎng)絡存儲設備308并更新用戶的賬戶詳情以反映存儲位置選擇。云存儲引擎230可以以對用戶透明的方式確定數(shù)據(jù)項應該被存儲在外部網(wǎng)絡存儲設備308上。即,云存儲引擎230可在沒有來自用戶的輸入的情況下選擇將數(shù)據(jù)項存儲在外部網(wǎng)絡存儲設備308上。
[0070]圖4示出了一個示例性場景400,其中用戶302請求檢索先前存儲在基于云端的存儲裝置中的數(shù)據(jù)項。在場景400中,用戶進行檢索數(shù)據(jù)項的請求??蓮南惹氨挥糜诖鎯?shù)據(jù)項的同一客戶端設備和/或從另一設備進行檢索該數(shù)據(jù)項的請求。在場景400中,檢索請求是從客戶端設備306進行的,客戶端設備306是與先前用于存儲該數(shù)據(jù)項的設備不同的另一設備。響應于接收到該請求,云存儲引擎230獲取用戶賬戶信息以確定數(shù)據(jù)項的位置。當確定數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上時,云存儲引擎230可從外部網(wǎng)絡存儲設備308獲取該數(shù)據(jù)項并且將該數(shù)據(jù)項發(fā)送到客戶端設備306。因為存儲位置信息由CCR系統(tǒng)200維護,所以云存儲引擎230可獲取存儲在外部網(wǎng)絡存儲設備上的數(shù)據(jù)項,而不需要來自用戶的附加輸入。因此,數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上這一事實對于用戶可以是透明的。
[0071]2.2.2某于云端的咨源
[0072]CCR系統(tǒng)200還可被配置為為客戶端設備提供基于云端的應用程序資源和/或有利于從其他存儲位置檢索應用程序資源。在很多情況下,運行于客戶端設備上的應用程序可包括要求使用位于可執(zhí)行的主應用程序外部的資產(chǎn)或資源的功能性。應用程序資源可包括應用程序為了提供該應用程序的功能性的某個方面而要求的任何資源,例如模板文件、庫文件、數(shù)據(jù)文件、另一應用程序、守護程序等。例如,文字處理程序可包括提供核心功能性的可執(zhí)行的主應用程序。為了提供專門的功能性,諸如用戶可重復使用的專門設計的文檔格式設置,文字處理程序可包括模板。當用戶選擇使用預定義的文檔格式時,相應的模板被從外部資源文件加載。在這個示例中,每個模板是一個應用程序資源。在另一示例中,音樂應用程序可包括不同樂器的集合。每個樂器可以是一個應用程序資源。用于樂器的功能性可被包含在應用程序資源文件中,該應用程序資源文件當用戶選擇音樂應用程序時被這個特定應用程序加載。在再一示例中,應用程序可以是包括內(nèi)核的操作系統(tǒng),內(nèi)核提供最基礎的功能性并且允許其他應用程序與設備的硬件交互。為了提供更高等級的功能性,操作系統(tǒng)可包括其他應用程序和守護程序形式的其他資源,這些資源中很多資源都以被需要為基礎來執(zhí)行。這些更高等級的應用程序和守護程序中每一者都是用于操作系統(tǒng)的應用程序資源。從內(nèi)核的角度,更高等級的功能性是通過應用程序資源文件來提供的。
[0073]圖5不出了具有應用程序資源文件的一個應用程序的一個不例性場景500。在場景500中,應用程序502包括三個應用程序資源文件504、506、和508。當應用程序502運行時,這些應用程序資源文件被加載。在場景500中,資源文件504和506已經(jīng)被加載,但是資源文件508還沒有被加載。
[0074]與應用程序一起被包括的全套應用程序資源文件可被設計為涵蓋寬的應用程序使用范圍,并且大多數(shù)用戶可能只使用這些應用程序資源的一個子集。例如,文字處理應用程序常常包括數(shù)量眾多的針對一系列使用情形(包括個人和商業(yè)使用)的模板。為了個人使用而安裝文字處理應用程序的用戶使用商業(yè)相關的模板的可能性比使用被設計用于個人使用情形的模板的可能性要低。另外,在一些情況下,用戶可能從不使用單個模板,或者可能只使用個人創(chuàng)建的模板。從不使用的模板占據(jù)了用戶設備上可被用于存儲用戶實際使用的數(shù)據(jù)的空間。因此,為了減少應用程序的存儲占用空間,應用程序可只與應用程序資源文件的最小集一起或者甚至根本沒有應用程序資源文件地被安裝在客戶端設備上。
[0075]與應用程序一起安裝的這組應用程序資源文件可隨著配置而不同,可由應用程序開發(fā)者確定,和/或可由用戶確定。例如,應用程序開發(fā)者可維護應用程序使用歷史信息。基于使用歷史信息,開發(fā)者可確定特定的應用程序資源文件子集最經(jīng)常使用,并且與應用程序一起只包括那些資源文件。又如,應用程序安裝可被配置為允許用戶指定要安裝的應用程序資源文件子集,諸如被分類用于特定使用情形或特定類型的資產(chǎn)(例如家用或商用)的資源文件。在另一示例中,客戶端設備可被配置為自動地基于預定義的標準只安裝一個子集的應用程序,預定義的標準諸如是資源文件大小或用于所有被安裝的應用程序資源文件的最大總大小。
[0076]代替應用程序資源文件,應用程序可包括應用程序資源文件占位符。應用程序資源文件占位符可提供實際應用程序資源文件被安裝的表象,但相反其實際上是模仿看起來與實際資源文件相同的空文件。即,應用程序資源文件占位符可具有相同的名稱、類型等。其甚至可顯示與實際資源文件的大小匹配的文件大小,這可以是一種安全措施以防止意外地刪除占位符文件。占位符可不同于實際資源文件的地方是占位符不包含數(shù)據(jù),并且一專用位可被置位以指示該文件是占位符。
[0077]為了有利于檢索應用程序資源文件,安裝在客戶端設備上的操作系統(tǒng)可包括特殊的資源文件獲取過程或守護程序。當應用程序資源文件被應用程序請求時,資源文件獲取過程可接收該請求,然后通過所述專用位檢測被安裝的資源文件是真實的資源文件還是占位符。如果該過程檢測到占位符文件,則故障被觸發(fā),并且從云端獲取實際的資源文件。一旦實際的資源文件被取得,其就可被安裝以替代資源文件占位符。因為單獨的過程負責將資源文件提供給進行請求的應用程序,所以不管是實際的資源文件還是占位符被安裝都可以是對于該應用程序是透明的。這個等級的透明性還意味著不要求特殊的應用程序準備。即,應用程序本身不需要包括特殊的功能性用于獲取資源文件和/或應用程序開發(fā)者不需要識別和用資源文件占位符替代程序的片斷。占位符文件的安裝可在任何時候進行,包括在資源文件已經(jīng)被安裝之后進行。
[0078]圖6示出了具有應用程序資源文件和應用程序資源文件占位符的一種應用程序的一示例性場景600。在場景600中,圖5中的應用程序502仍然包括由三個應用程序資源文件提供的功能性,但是現(xiàn)在應用程序502只與這些應用程序資源文件中的兩個:資源文件504和508 —起被安裝。代替應用程序資源文件506,應用程序包括應用程序資源文件占位符510。當應用程序502執(zhí)行時,應用程序資源文件被加載。當碰到應用程序資源文件占位符510時,客戶端設備獲取實際的應用程序資源文件。
[0079]圖7示出了與資源文件和資源文件占位符一起安裝在客戶端設備704上的一操作系統(tǒng)702的另一示例性場景700。操作系統(tǒng)702可安裝在客戶端設備704上具有包括內(nèi)核和資源文件檢索守護程序的最小功能性。最小組的附加功能性也可被安裝在客戶端設備704上。例如,常用的應用程序(諸如web瀏覽器和媒體播放器)可被安裝,但是不常使用的應用程序(諸如日歷應用程序、電子郵件客戶端、通訊錄應用程序等)可作為資源文件占位符被安裝。
[0080]如果在應用程序在客戶端設備上執(zhí)行期間觸發(fā)了故障,則客戶端設備可與CCR系統(tǒng)200通信以獲取應用程序資源文件。CCR系統(tǒng)200可被配置為使得云存儲引擎230可管理基于云端的應用程序資源特征。在一些情況下,通信接口 214可接收請求并將請求傳遞到云存儲引擎230以進行處理。
[0081]在一些情況下,CCR系統(tǒng)200可被配置為維護一組應用程序資源文件。例如,CCR系統(tǒng)200可將這組應用程序資源文件存儲在基于云端的存儲裝置244中。應用程序資源文件的范圍可根據(jù)CCR系統(tǒng)200和/或應用程序的配置而變化。例如,CCR系統(tǒng)200為應用程序維護的這組應用程序資源文件可包括該應用程序使用的資源文件的完整集合。或者,CCR系統(tǒng)200所維護的這組應用程序資源文件可只包括當初始應用程序安裝時不包括的那些應用程序資源文件。即,從CCR系統(tǒng)200可獲得的應用程序資源文件可不包括在所述最小組應用程序資源文件中的應用程序資源文件。
[0082]云存儲引擎230可被配置為包括可管理存儲在基于云端的存儲裝置中的應用程序資源文件的數(shù)據(jù)管理模塊232。在一些情況下,當接收到對應用程序資源文件的請求時,數(shù)據(jù)管理模塊232可從基于云端的存儲裝置244檢索該應用程序資源文件,并且將該應用程序資源文件發(fā)送到進行請求的客戶端設備。或者,當接收到對應用程序資源文件的請求時,數(shù)據(jù)管理模塊232可被配置為從CCR系統(tǒng)200之外的存儲位置檢索該應用程序資源文件,諸如從另一云計算系統(tǒng)和/或另一客戶端設備檢索。在一些情況下,CCR系統(tǒng)200可包括應用程序資源數(shù)據(jù)庫246,應用程序資源數(shù)據(jù)庫246包括關于CCR系統(tǒng)200已知的應用程序資源的信息,諸如資源文件的存儲位置。在這種情況下,當接收到對應用程序資源文件的請求時,數(shù)據(jù)管理模塊232可訪問應用程序資源文件數(shù)據(jù)庫246以獲取任何應用程序資源文件細節(jié)。如果應用程序資源文件細節(jié)指定存儲位置,則數(shù)據(jù)管理模塊232可從所指定的存儲位置獲取應用程序資源文件。
[0083]在一些情況下,云存儲引擎230可被配置為限制對這些應用程序資源文件中一些或全部的訪問。例如,應用程序資源文件可只供注冊用戶使用。通過將訪問限制到注冊用戶,云存儲引擎230可被用于防止不具有應用程序的被授權副本的用戶訪問應用程序資源文件。又如,應用程序資源可只供某個訂閱等級的用戶使用,例如家庭版、專業(yè)版等等。為了實現(xiàn)對應用程序資源文件的受限訪問,云存儲引擎230可獲取用戶賬戶詳情,諸如從賬戶管理模塊212獲取,以確定進行請求的用戶是否有資格接收所請求的應用程序資源。
[0084]在一些配置中,所安裝的應用程序資源可自動地在客戶端設備上被應用程序資源文件占位符替代。在一些情況下,這個替代可以對于應用程序透明的方式來執(zhí)行。應用程序資源文件被移除的條件可隨著客戶端設備和/或應用程序的配置而變化。在一些情況下,應用程序資源文件可基于以下因素來被選擇:對附加空間的需求、對于與特定應用程序相關聯(lián)的應用程序資源文件達到了最大空間分配、和/或使用模式指示應用程序資源文件不再被需要。確定何時應該移除應用程序資源文件的其它方法也是可能的。另外,被選擇移除的特定應用程序資源文件可隨著客戶端設備和/或應用程序的配置而變化。在一些情況下,所述特定應用程序資源文件可基于如下因素來選擇:隨機選擇、大小、使用歷史、用戶偏好、和/或應用程序開發(fā)者偏好。選擇特定應用程序資源文件進行移除的其它方法也是可能的。此外,應用程序資源文件可在任何時候被替代。即,不管應用程序是否正在執(zhí)行,應用程序資源文件都可被替代。
[0085]圖8示出了一種示例性場景800,其中利用應用程序資源文件812、814、和816的應用程序810正在客戶端設備802上執(zhí)行。應用程序810與應用程序資源文件812和816被安裝在客戶端設備802上。代替應用程序資源文件814,應用程序資源文件占位符818被安裝在客戶端設備802上。在執(zhí)行期間,應用程序810需要應用程序資源文件814,這觸發(fā)故障。響應于該故障,客戶端設備802與CCR系統(tǒng)200通信以請求應用程序資源文件814。云存儲引擎230經(jīng)由數(shù)據(jù)管理模塊232從基于云端的存儲裝置、或某個其它存儲位置檢索應用程序資源文件814,并且將應用程序資源文件814發(fā)送到客戶端設備802。應用程序資源文件814然后被安裝在客戶端設備802上。
[0086]2.2.3數(shù)據(jù)集合管理
[0087]CCR系統(tǒng)200還可被配置為有利于用戶組之間的數(shù)據(jù)項共享和協(xié)作。數(shù)據(jù)項共享和協(xié)作特征圍繞集合的概念,集合可將一組用戶與一個或多個數(shù)據(jù)項聯(lián)合。圖9提供了集合概念的一個示例性圖示。首先,集合900包括各自訂閱該集合、并且可經(jīng)由一個或多個被授權的客戶端設備(諸如客戶端設備902、904、和906)與該集合共享數(shù)據(jù)項的一組用戶。集合900還包括已經(jīng)被分配給集合900的一個或多個數(shù)據(jù)項,諸如數(shù)據(jù)項910、912、和914。雖然集合概念被圖示為訪問中央數(shù)據(jù)項池的一組設備,但是這僅僅是為了示出集合的不同方面之間的關系的目的。在具體實施中,每個被授權的客戶端設備可維護分配給集合的每個數(shù)據(jù)項的本地副本。另外,用戶可訂閱多個集合。
[0088]在一些配置中,數(shù)據(jù)項共享引擎220可管理共享和協(xié)作特征的各個方面,諸如集合形成、集合維持、和/或集合終止。數(shù)據(jù)項共享引擎220可與賬戶管理模塊212和/或集合數(shù)據(jù)庫242交互。集合數(shù)據(jù)庫242可存儲關于集合的信息,諸如集合標識符、訂閱用戶標識符、分配的數(shù)據(jù)項、維護數(shù)據(jù)項修改記錄的一個或多個日志文件等等。另外,在一些配置中,數(shù)據(jù)項共享引擎220可通過通信接口 210和/或用戶接口模塊214與客戶端設備通信。
[0089]在一些配置中,客戶端設備可運行客戶端側(cè)集合應用程序,客戶端側(cè)集合應用程序提供用于數(shù)據(jù)項共享和協(xié)作特征的客戶端側(cè)功能性。用戶可與客戶端側(cè)集合應用程序交互的特征和方式可隨著客戶端設備、集合應用程序、CCR系統(tǒng)200、和/或網(wǎng)絡連接的配置而變化。
[0090]數(shù)據(jù)項共享和協(xié)作的一個方面是集合形成。集合被形成的方式可隨客戶端設備、CCR系統(tǒng)200、和/或網(wǎng)絡連接的配置而變化。但是,集合形成可包括兩個方面:授權和認證。授權方面可涉及邀請一個或多個用戶訂閱集合,而認證方面可涉及確認用戶確實被授權訂閱該集合。
[0091]在一種集合形成方法中,用戶可通過邀請一個或多個用戶訂閱集合來發(fā)起集合形成。在一些情況下,客戶端設備可被配置為使得用戶可在桌面上右擊來激活菜單,在該菜單中可用菜單項之一為“形成集合”或其某種變體。或者,客戶端設備可被配置為使得用戶可點擊圖標或選擇菜單選項。客戶端設備還可被配置具有包括用于創(chuàng)建一個或多個集合的用戶界面的應用程序。集合應用程序可要求用戶進行認證,諸如通過提供用戶名和密碼進行認證。
[0092]用戶可通過指定每個用戶的用戶標識符(諸如用戶名、電子郵件地址、和/或其他唯一用戶標識符)來邀請一個或多個用戶。該邀請可用作為集合形成的授權步驟。為了完成集合形成,被邀請的用戶可進行認證,從而使該用戶訂閱該集合。
[0093]在這個集合形成場景中,用戶在完成了訂閱過程之后可添加文件到集合。例如,發(fā)起集合形成的用戶可在邀請一個或多個用戶訂閱之后,并且在一些情況下在所有被邀請的用戶已經(jīng)接受邀請之前,添加文件到集合。但是,被邀請用戶在該用戶已經(jīng)完成了訂閱過程之前不能添加文件到集合或接收作為集合一部分的文件,因為該用戶還不是集合的一部分。
[0094]或者,用戶可通過選擇一個或多個數(shù)據(jù)項進行共享來發(fā)起集合形成。在一些情況下,客戶端設備可被配置為使得用戶可在數(shù)據(jù)項或數(shù)據(jù)項組上右擊來激活其中一個可用選項是共享的菜單??蛻舳嗽O備還可被配置為運行包括用于選擇一個或多個數(shù)據(jù)項進行共享的用戶界面的客戶端側(cè)應用程序。或者,共享特征可被構(gòu)建到應用程序中。例如,文字處理應用程序可包括用于共享的菜單項。另外,在一些配置中,用戶可選擇包含一個或多個數(shù)據(jù)項的文件夾來共享該文件夾內(nèi)的每個數(shù)據(jù)項。
[0095]在選擇共享數(shù)據(jù)項之后,用戶可指定一個或多個用戶來與其共享該數(shù)據(jù)項。選擇一個或多個用戶的行為可觸發(fā)邀請過程。用戶可通過指定每個用戶的用戶標識符(諸如用戶名、電子郵件地址、和/或任何其他唯一用戶標識符)來邀請一個或多個用戶。該邀請可用作集合形成的授權步驟。為了完成集合形成,被邀請用戶可進行認證,從而使該用戶訂閱集合。即使集合形成是通過選擇特定文件進行共享而發(fā)起的,被邀請用戶在該用戶已經(jīng)完成訂閱過程之前也不能接收數(shù)據(jù)項。
[0096]在一些情況下,CCR系統(tǒng)200在集合形成中可充當中間人。例如,客戶端設備可發(fā)送集合形成信息到數(shù)據(jù)項共享引擎220。當接收到集合形成信息時,數(shù)據(jù)項共享引擎220可發(fā)送邀請到被邀請用戶并處理認證過程。例如,圖10示出了由CCR系統(tǒng)200促成的一種示例性集合信息交換1000。形成過程開始于用戶1,其中用戶I邀請用戶2訂閱集合。邀請信息被發(fā)送到CCR系統(tǒng)200。CCR系統(tǒng)200然后可發(fā)送該邀請到用戶2。在某一時刻,用戶2可遵循該邀請,這要求用戶2向CCR系統(tǒng)200進行認證。當認證過程完成時,CCR系統(tǒng)200可選地可發(fā)送通知給用戶I以告知用戶2已經(jīng)完成了訂閱過程并且現(xiàn)在訂閱該集合。在一些情況下,來自用戶I的邀請請求可包括數(shù)據(jù)項。在這種情況下,當認證過程完成時,CCR系統(tǒng)200可發(fā)送該數(shù)據(jù)項到用戶2。
[0097]當客戶端設備活躍于局域網(wǎng)(LAN)上時,集合形成過程也可以對等配置來執(zhí)行。例如,集合形成過程可使用設備發(fā)現(xiàn)軟件,諸如Apple Inc.(Cupertino, CA)所發(fā)布的Bonjour應用程序來發(fā)現(xiàn)LAN上的其他客戶端設備。訂閱集合的邀請然后可直接從一個客戶端設備發(fā)送到另一客戶端設備。在純對等配置中,認證過程可在客戶端設備上執(zhí)行?;蛘撸闲纬蛇^程可以是對等和CCR系統(tǒng)200促成的組合。
[0098]用戶接收通知的方式可隨著客戶端設備、CCR系統(tǒng)200、和/或網(wǎng)絡連接的配置而變化。用戶可經(jīng)由電子郵件、即時消息、SMS、客戶端側(cè)應用程序中的通知、客戶端設備上的彈出窗口等來接收邀請。例如,如果用戶向CCR系統(tǒng)200發(fā)送指定用戶標識符的邀請信息,則CCR系統(tǒng)200可維護用戶賬戶信息的數(shù)據(jù)庫。用戶賬戶信息中的項目可包括用戶聯(lián)系方法,諸如電子郵件地址、或電話號碼。CCR系統(tǒng)200于是可使用該信息來發(fā)送邀請到被邀請用戶。又如,如果用戶將邀請直接發(fā)送到LAN上的另一客戶端設備,則被邀請用戶可經(jīng)由被邀請用戶的客戶端設備上的彈出窗口接收該邀請。
[0099]在一些情況下,可通過集合共享的數(shù)據(jù)項的類型可以是受限的。例如,集合可用于共享文字處理文檔,但是不共享特定文件類型的媒體項,諸如電影。該限制可以是適用于整個系統(tǒng)的和/或是以每個集合為基礎的。例如,數(shù)據(jù)項共享引擎220可被配置為允許通過任何集合共享任何數(shù)據(jù)項類型,但是特定集合可被形成具有阻止共享具有AAC文件類型的數(shù)據(jù)項的策略。又如,數(shù)據(jù)項共享引擎220可被配置為阻止共享具有MP3文件類型的數(shù)據(jù)項,并且然后特定集合可被形成具有附加地還阻止共享具有AAC文件類型的數(shù)據(jù)項的策略。因此,所得到的集合將具有阻止共享具有MP3或AAC文件類型的數(shù)據(jù)項的策略。
[0100]在一些配置中,集合可包括一個或多個管理員。例如,形成集合的用戶可自動地被指派為管理員。管理員可指定與集合相關聯(lián)的策略,諸如訂閱策略、數(shù)據(jù)項添加/刪除策略、數(shù)據(jù)項修改策略。例如,管理員可建立只有管理員能邀請新用戶訂閱集合的策略。又如,管理員可建立只有管理員能添加數(shù)據(jù)項和/或從集合刪除數(shù)據(jù)項的策略。在另一示例中,管理員可建立關于哪些用戶具有對每個數(shù)據(jù)項的修改權限的策略。在再一示例中,管理員可建立指定可被分配到集合的數(shù)據(jù)項類型的策略。另外的策略也是可能的。
[0101]數(shù)據(jù)項也可獨立于集合形成過程地被分配給集合。在一些情況下,客戶端設備可被配置為使得用戶可在數(shù)據(jù)項或數(shù)據(jù)項組上右擊來激活其中一個可用選項是共享的菜單??蛻舳嗽O備還可被配置為運行包括用于選擇一個或多個數(shù)據(jù)項進行共享的用戶界面的客戶端側(cè)應用程序。或者,共享特征可被構(gòu)建到應用程序內(nèi)。例如,文字處理應用程序可包括用于共享的菜單項。另外,在一些配置中,用戶可選擇文件夾來共享該文件夾內(nèi)的每個數(shù)據(jù)項。在選擇共享之后,用戶可指定用戶訂閱的一個或多個集合。
[0102]在一些情況下,CCR系統(tǒng)200可在共享數(shù)據(jù)項中充當中間人。例如,一旦用戶選擇數(shù)據(jù)項進行共享并且將該數(shù)據(jù)項分配給集合,客戶端設備就可將該數(shù)據(jù)項與關于被分配的集合的信息一起傳送到數(shù)據(jù)項共享引擎220。數(shù)據(jù)項共享引擎220內(nèi)的集合管理模塊222可更新集合數(shù)據(jù)庫242以反映新分配的數(shù)據(jù)項。另外,在一些情況下,集合管理模塊222可識別訂閱該集合的其他用戶并將該數(shù)據(jù)項的副本發(fā)布到與訂閱用戶相關聯(lián)的所有被授權設備?;蛘撸瞎芾砟K222可從訂閱集合的客戶端設備接收對新數(shù)據(jù)項的請求。S卩,數(shù)據(jù)項共享引擎220可被配置在推送和/或拉取配置中-當接收到新數(shù)據(jù)項時,數(shù)據(jù)項共享引擎220可將該數(shù)據(jù)項推送到訂閱客戶端設備和/或數(shù)據(jù)項共享引擎220可從客戶端設備接收對新分配的數(shù)據(jù)項的請求。數(shù)據(jù)項共享過程當客戶端設備活躍于LAN中時也可以對等配置被執(zhí)行,或者數(shù)據(jù)項共享過程也可以使用對等和CCR系統(tǒng)200促成的組合的混合配置被執(zhí)行。
[0103]圖11示出了一種示例性場景1100,其中數(shù)據(jù)項1110被分配給集合,并且數(shù)據(jù)項Il1的發(fā)布是由CCR系統(tǒng)200來促成的。數(shù)據(jù)項1110在客戶端設備1102上被分配給集合。一旦數(shù)據(jù)項1110被分配,客戶端設備1102就發(fā)送數(shù)據(jù)項1110的副本到數(shù)據(jù)項共享引擎220。集合管理模塊222更新集合數(shù)據(jù)庫242。另外,集合管理模塊識別兩個另外的訂閱客戶端設備1104和1106,并且將數(shù)據(jù)項的副本(數(shù)據(jù)項1112和1114)發(fā)布到客戶端設備1104和1106每一者。當接收到數(shù)據(jù)項副本時,操作每個客戶端設備的用戶可將數(shù)據(jù)項本地地存儲在用戶挑選的存儲位置中。即,用戶不需要將數(shù)據(jù)項存儲在專門的文件夾中,而是可將數(shù)據(jù)項存儲在對于用戶有意義的位置中。
[0104]在一些情況下,訂閱集合的用戶中只有一個子集的用戶可被授權向集合添加數(shù)據(jù)項。此類限制可通過多種技術來實施。在一些情況下,為了實施此類限制,客戶端設備可被配置為不分配數(shù)據(jù)項?;蛘?,數(shù)據(jù)項共享引擎220可被配置為不接受從未授權用戶分配的數(shù)據(jù)項。另外的實施數(shù)據(jù)項分配限制策略的方法也是可能的。另外,在一些情況下,集合管理員可在數(shù)據(jù)項被正式分配到集合之前對每個數(shù)據(jù)項或由指定用戶分配的每個數(shù)據(jù)項進行批準。
[0105]除了使用集合來共享數(shù)據(jù)項之外,訂閱集合的用戶還可在分配到集合的數(shù)據(jù)項上進行協(xié)作。即,當用戶對分配到集合的數(shù)據(jù)項的本地副本進行修改時,該修改可自動地被發(fā)布給訂閱該集合的每個其他用戶。在一些情況下,客戶端設備可實時地發(fā)送修改。例如,修改可當修改被做出時被發(fā)送。但是,客戶端設備也可被配置為以周期性間隔發(fā)送修改集合,和/或當從用戶接收指令時發(fā)送修改集合。例如,可每5分鐘或當數(shù)據(jù)項被保存時發(fā)送修改集合。又如,修改集合可在用戶選擇一選項(諸如發(fā)送修改)時被發(fā)送。另外,客戶端設備可被配置為收集客戶端設備離線期間的修改,然后一旦客戶端設備連接到網(wǎng)絡就發(fā)送所收集的所有修改。
[0106]客戶端設備上和/或數(shù)據(jù)項共享引擎220中的版本控制特征可幫助協(xié)作特征。例如,客戶端設備可被配置為使得每次用戶修改分配到集合的數(shù)據(jù)項時,客戶端設備就發(fā)送整個數(shù)據(jù)項到數(shù)據(jù)項共享引擎220,在那里,版本控制模塊224將改變合并到存儲在集合數(shù)據(jù)庫242中的當前版本中。為了將這些改變發(fā)布到訂閱該集合的其他客戶端設備,數(shù)據(jù)項共享引擎可請求訂閱客戶端設備上數(shù)據(jù)項的當前版本,合并修改,并且將更新后的數(shù)據(jù)項返回到客戶端設備。此類技術導致顯著的額外開銷,并且有可能擾亂其他訂閱設備上的用戶。因此,一種替代形式是將客戶端設備配置為包括客戶端側(cè)版本控制應用程序和將數(shù)據(jù)項共享引擎220配置為具有版本控制特征(諸如版本控制模塊224)。當用戶修改數(shù)據(jù)項時,客戶端設備可使用版本控制軟件來識別改變并且只將修改發(fā)送到數(shù)據(jù)項共享引擎220。版本控制模塊224可記錄所接收的修改并且將它們發(fā)布到其他訂閱客戶端設備。一旦在其他客戶端設備處被接收到,版本控制軟件就可將所接收到的修改與任何本地改變合并。修改發(fā)布和/或版本控制特征也可當客戶端設備活躍于LAN上時以對等配置來執(zhí)行,或者修改發(fā)布和/或版本控制特征也可以使用對等和CCR系統(tǒng)200促成的組合的混合配置來執(zhí)行。
[0107]每個數(shù)據(jù)項修改可被合并到數(shù)據(jù)項中,使得客戶端設備可存儲分配到集合的數(shù)據(jù)項的單個副本。在一些情況下,數(shù)據(jù)項修改可以能與數(shù)據(jù)項的未修改部分或先前修改部分區(qū)分開。例如,客戶端設備可顯示作為文本文檔(諸如文字處理文檔)的數(shù)據(jù)項,其中數(shù)據(jù)項修改可使用紅線標示來進行區(qū)分??赡苡杏糜诿枥L新修改和先前存在的數(shù)據(jù)項內(nèi)容之間區(qū)別的多種技術,諸如突出顯示、紅線標示、字體改變、附加注釋或注解等。此外,在一些情況下,用戶名或其他標識符可被附加到修改和/或可與修改一起被顯示。
[0108]在一些情況下,多個用戶可同時修改一數(shù)據(jù)項。在這種情況下,數(shù)據(jù)項共享引擎220和/或版本控制軟件可包括沖突解決策略,使得客戶端設備只維護集合中每個數(shù)據(jù)項的單個副本。S卩,當沖突發(fā)生時,沖突不導致在客戶端設備上創(chuàng)建數(shù)據(jù)項的另一副本??蛻舳嗽O備可維護數(shù)據(jù)項的單個副本,其中沖突的修改二者都存在于數(shù)據(jù)項的本地副本中。例如,沖突的修改二者可都被合并到數(shù)據(jù)項的本地副本中,并且用戶可手動地解決該沖突,諸如通過選擇修改的全部或部分來解決。在一些情況下,可解決沖突的用戶可以是集合的管理員?;蛘?,可使用基于投票的過程。例如,訂閱集合的每個用戶可選擇沖突的修改之一,具有最多投票數(shù)量的修改可以是使用的修改?;蛘?,管理員可當進行選擇時使用該投票。在一些情況下,可為數(shù)據(jù)項或集合分配解決策略。例如,該策略可指定自動地選擇與更高排名等級的用戶相關聯(lián)的沖突。一旦沖突已經(jīng)被解決,數(shù)據(jù)項共享引擎220就可發(fā)布這個解決。
[0109]可使用各種技術來在數(shù)據(jù)項中展示沖突的修改。例如,沖突的修改可相互并排地被展示,但被不同地突出顯示,諸如通過字體或顏色。又如,沖突的修該可順序地被展示。在一些情況下,順序展示的修改可被排序,諸如基于分配給與修改相關聯(lián)的用戶的排名等級來排序。在另一示例中,沖突的修改可在原始內(nèi)容旁的頁邊空白處展示。在再一示例中,沖突的修改可在內(nèi)容上的彈出框或窗口中被展示。
[0110]在一些情況下,只有一個子集的用戶可修改分配給集合的數(shù)據(jù)項。此類限制可通過多種技術來實施。在一些情況下,為了實施此類限制,數(shù)據(jù)項可被存儲在客戶端設備上具有只讀訪問。或者,客戶端設備可被配置為不發(fā)送由未被授權修改數(shù)據(jù)項的用戶進行的任何修改。數(shù)據(jù)項共享引擎220也可被配置為不記錄或發(fā)布所接收的任何未授權的修改。在另一配置中,客戶端設備可拒絕接收由未授權用戶進行的修改。另外的實施對分配給集合的數(shù)據(jù)項的修改限制的方法也是可能的。
[0111]數(shù)據(jù)項共享也可被配置為使得可在任何時候邀請新用戶訂閱集合。在一些情況下,只有集合的管理員能邀請新用戶訂閱集合。或者,管理員可查看以及批準或否決由訂閱集合的非管理用戶提交的邀請。一旦新用戶訂閱了集合,這個新用戶就可接收當前分配給集合的所有數(shù)據(jù)項及修改。
[0112]在一些配置中,可從集合中移除先前分配給集合的數(shù)據(jù)項。從集合移除數(shù)據(jù)項的結(jié)果可根據(jù)配置而變化。例如,在一些情況下,訂閱集合的所有用戶可維護該數(shù)據(jù)項的本地副本,但是修改將不再被傳播,并且新的訂閱用戶不會接收被移除的數(shù)據(jù)項?;蛘撸斜镜馗北究杀粍h除,但是在一些配置中,分配該數(shù)據(jù)項的用戶可維護該數(shù)據(jù)項。另外,在一些情況下,數(shù)據(jù)項共享引擎220可維護該數(shù)據(jù)項的紀錄。在一些情況下,只有集合的管理員和/或分配該數(shù)據(jù)項的用戶能從集合中移除該數(shù)據(jù)項。
[0113]類似于數(shù)據(jù)項,在一些配置中,用戶可從集合退訂。從集合退訂的結(jié)果可根據(jù)配置而變化。例如,在一些情況下,可從該用戶的客戶端設備移除不是由該用戶分配的分配給集合的數(shù)據(jù)項的所有本地副本?;蛘?,該用戶可保留本地副本,但是修改將不再被傳播到該集合。另外,在一些情況下,管理員可從集合中移除用戶和/或改變用戶的與集合相關聯(lián)的權限。例如,如果用戶通過分配不期望的內(nèi)容而正在濫用集合的話,或者如果集合與工作環(huán)境中一項目相關聯(lián)而用戶不再工作于該項目的話。
[0114]另外,在一些配置中,可刪除集合。例如,如果集合與一項目相關聯(lián),而該項目被取消或被完成了,則該集合可能不再被需要。刪除集合的結(jié)果可根據(jù)配置而變化。在一些配置中,分配給該集合的數(shù)據(jù)項的所有本地副本可被刪除。在一些情況下,管理員和/或分配數(shù)據(jù)項的用戶可維護數(shù)據(jù)項?;蛘撸杏脩艨删S護分配給該集合的數(shù)據(jù)項的本地副本。另夕卜,在一些情況下,數(shù)據(jù)項共享引擎220可維護集合的記錄。
[0115]如先前所提及的,分配給集合的數(shù)據(jù)項的本地副本可被存儲在客戶端設備上的任何地方。因此,在一些配置中,共享的數(shù)據(jù)項可具有將其在客戶端設備上與非共享數(shù)據(jù)項區(qū)分開的區(qū)別特征。例如,共享數(shù)據(jù)項可被突出顯示、以另一顏色被顯示、被顯示為具有另一不透明等級等等。另外,區(qū)別特征可與數(shù)據(jù)項被分配到的集合協(xié)調(diào)。例如,分配給集合I的數(shù)據(jù)項可被顯示為紅色,而分配給集合2的數(shù)據(jù)項可被顯示為藍色。在一些情況下,文件描述符細節(jié)可指定數(shù)據(jù)項是否被共享和/或數(shù)據(jù)項被分配到的集合。
[0116]2.2.4隱私和安全
[0117]如上所述,在一些配置中,云計算資源系統(tǒng)可被用于存儲用戶數(shù)據(jù)。本公開考慮到在一些情況下,這個被采集的數(shù)據(jù)可能包括個人和/或敏感數(shù)據(jù)。本公開還考慮到,負責此類數(shù)據(jù)的收集、分析、公開、傳送、存儲、或其他使用的實體應該實施并堅持使用一般被認為滿足或超過業(yè)界或政府對于維護個人信息數(shù)據(jù)私隱和安全的要求的隱私策略和實踐。例如,來自用戶的個人數(shù)據(jù)應該被收集用于實體的合法和合理的使用,并且不應在那些合法使用之外被共享或出售。另外,這種收集應當僅在用戶的知情同意之后進行。另外,此類實體應該采取任何需要的步驟來保衛(wèi)和保護對此類個人數(shù)據(jù)的訪問并且確保能夠訪問個人數(shù)據(jù)的其他人遵守它們的隱私和安全策略和程序。另外,這種實體可使其本身經(jīng)受第三方評估以證明其對廣泛接受的隱私策略和實踐的堅持。
[0118]盡管有前述這些措施,本公開還設想了其中用戶選擇性地阻斷對個人數(shù)據(jù)的使用或訪問的實施例。即,本公開設想可提供硬件和/或軟件元件來阻止或阻斷對此類個人數(shù)據(jù)的訪問。例如,本技術可被配置為允許用戶選擇被存儲在基于云端的存儲裝置中的數(shù)據(jù)。又如,本技術還可被配置為允許用戶指定可與其他用戶共享的存儲在基于云端的存儲裝置中的數(shù)據(jù)。
[0119]因此,雖然本公開廣泛地涵蓋使用個人數(shù)據(jù)來實施一個或多個各種所公開的實施例,但是本公開還設想這各種實施例也可在不需要訪問此類個人數(shù)據(jù)的情況下被實施。即,本技術的各種實施例不會由于缺乏所有或部分此類個人數(shù)據(jù)而成為不可操作。例如,非個人數(shù)據(jù)可被存儲在基于云端的存儲裝置中。
[0120]3.使用
[0121]CCR系統(tǒng)200有利于各種基于云端的特征,包括增強型的基于云端的存儲、基于云端的資源、和數(shù)據(jù)項共享和協(xié)作。圖12是示出一種用于利用增強型的基于云端的存儲裝置來存儲數(shù)據(jù)項的示例性方法1200的流程圖。出于清楚的原因,結(jié)合一示例性云計算資源系統(tǒng)(諸如圖2中所示的)來討論該方法。雖然圖12中示出了具體步驟,但是在其他實施例中,方法可具有比所示出的更多或更少的步驟。數(shù)據(jù)項存儲方法可當云計算資源系統(tǒng)接收到來自客戶端設備的存儲數(shù)據(jù)項的請求(1202)時開始。響應于接收到存儲請求,云計算資源系統(tǒng)可獲取用戶賬戶詳情(1204)。
[0122]利用用戶賬戶詳情和關于數(shù)據(jù)項的信息,云計算資源系統(tǒng)可確定其是否可將該數(shù)據(jù)項存儲在基于云端的存儲裝置中(1206)。云計算資源系統(tǒng)可基于預定義的標準來進行這個確定。例如,在一些情況下,云計算資源系統(tǒng)可被配置為分配比用戶賬戶詳情中所指定的被批準的最大容量少的空間。或者,云計算資源系統(tǒng)可確定用戶已經(jīng)超過了在用戶賬戶詳情中所指定的用戶的被批準的最大存儲容量。因此,云計算系統(tǒng)可基于空間分配和/或授權來進行這個確定。在一些情況下,云計算資源系統(tǒng)可確定將數(shù)據(jù)項存儲在基于云端的存儲裝置中比存儲在外部網(wǎng)絡存儲設備上效率低。例如,將數(shù)據(jù)項存儲在基于云端的存儲裝置中與外部網(wǎng)絡存儲設備相比可能增大延遲并且降低性能。另外,云計算資源系統(tǒng)可基于用戶偏好來進行這個確定。例如,用戶可指定特定數(shù)據(jù)項或特定類型的數(shù)據(jù)項應該被存儲在外部網(wǎng)絡存儲設備上。另外的預定義標準也是可能的。
[0123]當云計算資源系統(tǒng)確定數(shù)據(jù)項不能被存儲在基于云端的存儲裝置中時,云計算資源系統(tǒng)可檢查賬戶詳情以確定是否有被授權的外部網(wǎng)絡存儲設備(1208)。如果至少一個外部網(wǎng)絡存儲設備在用戶賬戶詳情中被授權,則云計算資源系統(tǒng)可使數(shù)據(jù)項被存儲在被授權的外部網(wǎng)絡存儲設備上(1214)。在一些情況下,用戶賬戶詳情可指定不止一個被授權的外部網(wǎng)絡存儲設備。在這種情況下,云計算資源系統(tǒng)可從這些可用的外部網(wǎng)絡存儲設備中選擇一個外部網(wǎng)絡存儲設備。在一些情況下,這個選擇可基于預定義的選擇標準,諸如隨機、可用空間量、與云計算資源系統(tǒng)相距的距離、數(shù)據(jù)項類型、用戶偏好、外部網(wǎng)絡存儲設備的可靠性等。另外,云計算存儲設備可更新用戶賬戶詳情以反映存儲位置(1216)。
[0124]如果用戶賬戶詳情沒有指定被授權的外部網(wǎng)絡存儲設備,則云計算系統(tǒng)可被配置為評估云計算設備為何不能將數(shù)據(jù)項存儲在基于云端的存儲裝置中(1210)?;谠u估結(jié)果,云計算資源系統(tǒng)可采取補救措施(1212)。例如,如果云計算資源系統(tǒng)確定數(shù)據(jù)項沒有被存儲在基于云端的存儲裝置中是因為云計算資源系統(tǒng)分配比用戶賬戶詳情中所授權的更少的空間,則云計算資源系統(tǒng)可分配更多空間,并且然后利用云計算資源來存儲數(shù)據(jù)項。又如,如果云計算資源系統(tǒng)確定數(shù)據(jù)項沒有被存儲在基于云端的存儲裝置中是應該用戶超過了在用戶賬戶詳情中被授權的空間量,則云計算資源系統(tǒng)可通知用戶。在另一示例中,如果云計算資源系統(tǒng)確定數(shù)據(jù)項沒有被存儲在基于云端的存儲裝置中是因為確定了將數(shù)據(jù)項存儲在外部網(wǎng)絡存儲設備上更高效,則云計算資源系統(tǒng)可將數(shù)據(jù)項存儲在基于云端的存儲裝置中。在再一示例中,如果云計算資源系統(tǒng)確定用戶請求數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上,則云計算資源系統(tǒng)可通知用戶沒有被授權的外部網(wǎng)絡存儲設備和/或請求允許將數(shù)據(jù)項存儲在基于云端的存儲裝置中。另外的補救措施也是可能的。在完成步驟1212或1216之后,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1200。
[0125]圖13是示出一種用于利用增強型的基于云端的存儲來檢索數(shù)據(jù)項的示例性方法1300的流程圖。出于清楚的原因,這個方法結(jié)合一種示例性云計算資源系統(tǒng)(諸如圖2中所示的)來進行討論。雖然圖13中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個數(shù)據(jù)項檢索方法可當云計算資源系統(tǒng)接收到來自客戶端設備的檢索數(shù)據(jù)項的請求(1302)時開始。響應于接收到檢索請求,云計算資源系統(tǒng)可獲取用戶賬戶詳情(1304)。
[0126]利用用戶賬戶詳情和關于數(shù)據(jù)項的信息,云計算資源系統(tǒng)可辨識數(shù)據(jù)項是否被存儲在基于云端的存儲裝置中(1306)。如果云計算資源系統(tǒng)確定數(shù)據(jù)項不是被存儲在基于云端的存儲裝置中,則云計算資源系統(tǒng)可辨識數(shù)據(jù)項是否被存儲在外部網(wǎng)絡存儲設備上(1308)。如果云計算資源系統(tǒng)不能識別被請求數(shù)據(jù)項的存儲位置,則云計算資源系統(tǒng)可發(fā)送失敗消息到進行請求的客戶端設備(1310)。在一些情況下,如果數(shù)據(jù)項從未被存儲在基于云端的存儲裝置中,則可能發(fā)生失敗?;蛘撸绻麛?shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上,但是該設備不再能被云計算資源系統(tǒng)訪問(例如用戶將該外部網(wǎng)絡存儲設備從網(wǎng)絡斷開),則可能發(fā)生失敗。另外的失敗情形也是可能的。
[0127]如果云計算資源系統(tǒng)能夠識別被請求數(shù)據(jù)項的存儲位置,則云計算資源系統(tǒng)可從該存儲位置檢索該數(shù)據(jù)項(1312)并將該數(shù)據(jù)項發(fā)送到進行請求的客戶端設備(1314)。在完成了步驟1310或1314之后,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1300。
[0128]圖14是示出用于與應用程序資源文件占位符一起安裝應用程序的一種示例性方法1400的流程圖。為了清楚的原因,該方法結(jié)合包含被配置用于文件檢索的操作系統(tǒng)、并且被連接到云計算資源系統(tǒng)(諸如圖2中所示)的一種示例性客戶端設備來討論。雖然圖14中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這種應用程序安裝方法可開始于運行在客戶端設備上的操作系統(tǒng)接收到對于安裝包括能運行的主應用程序和一個或多個應用程序資源文件的應用程序的請求(1402)時。響應于該請求,操作系統(tǒng)確定這一個或多個應用程序資源文件是否應該被安裝(1404)。在一些情況下,關于是否安裝應用程序資源文件的確定可基于預定義的標準,諸如應用程序資源文件大小、為應用程序安裝的應用程序資源文件的最大總大小、目標應用程序用途、或應用程序使用歷史。如果操作系統(tǒng)確定應用程序資源文件應該被安裝,則操作系統(tǒng)安裝它(1408)。但是,如果操作系統(tǒng)確定應用程序資源文件不應該被安裝,則操作系統(tǒng)安裝應用程序資源文件占位符(1406)。在一些情況下,應用程序資源文件占位符可具有實際應用程序資源文件的表象,但實際上是一個空文件。
[0129]在安裝了應用程序資源文件或應用程序資源文件占位符之后,操作系統(tǒng)確定是否還有更多應用程序資源文件要安裝(1410)。如果有,則操作系統(tǒng)重復該過程。在完成了步驟1410之后,客戶端設備上的操作系統(tǒng)可恢復先前處理,這可包括重復方法1400。
[0130]圖15是示出一種用于獲取應用程序資源文件的示例性方法1500的流程圖。出于清楚的原因,這個方法結(jié)合一種包含被配置用于文件檢索的操作系統(tǒng)并且被連接到云計算資源系統(tǒng)(諸如圖2中所示)的客戶端設備來討論。雖然圖15中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個應用程序資源文件檢索方法可開始于運行在客戶端設備上的操作系統(tǒng)從也運行于客戶端設備上的應用程序接收到對于應用程序資源文件的請求(1502)時。響應于該請求,操作系統(tǒng)確定存儲在客戶端設備上的應用程序資源文件是實際的應用程序資源文件還是應用程序資源文件占位符(1504)。在一些情況下,應用程序資源文件占位符可具有實際應用程序資源文件的表象,但實際上是一個空文件。在一些配置中,當文件上的專用位被置位時,操作系統(tǒng)可確定應用程序資源文件是占位符。用于區(qū)分實際應用程序資源文件和占位符的其他技術也是可能的。
[0131]如果操作系統(tǒng)確定被請求的應用程序資源文件對應于應用程序資源文件占位符,則操作系統(tǒng)可觸發(fā)故障。被觸發(fā)的故障可使客戶端設備向云計算資源系統(tǒng)請求應用程序資源文件(1506)。當接收到應用程序資源文件時,操作系統(tǒng)可用所接收的應用程序資源文件替代占位符(1508)。最后,操作系統(tǒng)可將應用程序資源文件發(fā)送給進行請求的應用程序(1510)。在完成了步驟1510之后,客戶端設備上的操作系統(tǒng)可恢復先前的處理,這可包括重復方法1500。
[0132]圖16是示出一種用于數(shù)據(jù)項共享和協(xié)作的示例性方法1600的流程圖。出于清楚的原因,這個方法結(jié)合一種示例性云計算資源系統(tǒng)(諸如圖2中所示)來討論。但是,這個方法也可部分地或完全地在客戶端設備上執(zhí)行。雖然圖16中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個數(shù)據(jù)項共享和協(xié)作方法可開始于云計算資源系統(tǒng)接收到來自客戶端設備的形成數(shù)據(jù)項分組或集合的請求(1602)時。形成集合的請求可包括一組用戶標識符。另外,在一些情況下,該請求可包括要分配給該集合的一個或多個數(shù)據(jù)項。除了與集合形成請求一起接收的這組用戶標識符之外,云計算資源系統(tǒng)可單獨地接收邀請用戶訂閱集合的請求。
[0133]響應于接收到形成集合的請求、或者單獨的邀請用戶訂閱集合的請求,云計算資源系統(tǒng)可將訂閱該集合的邀請發(fā)送給與包括在該請求中的用戶標識符相關聯(lián)的每個用戶(1604)。在后來的某個時刻,云計算資源系統(tǒng)可從被邀請用戶接收對訂閱邀請的響應?;谠擁憫朴嬎阗Y源系統(tǒng)可使該用戶訂閱該集合(1606)。在一些情況下,云計算資源系統(tǒng)可要求用戶在完成訂閱過程之前向系統(tǒng)進行認證。在使用戶訂閱之后,CCR系統(tǒng)可查核數(shù)據(jù)項是否已經(jīng)被分配給集合(1608)。如果是,則云計算資源系統(tǒng)可發(fā)送每個被分配數(shù)據(jù)項的副本到與訂閱用戶相關聯(lián)的客戶端設備(1614)。在一些情況下,用戶可具有在用戶賬戶中被授權的多個客戶端設備。在這種情況下,云計算資源系統(tǒng)可發(fā)送副本到每個被授權的客戶端設備。
[0134]在一些情況下,形成集合的請求可包括一個或多個數(shù)據(jù)項?;蛘撸朴嬎阗Y源系統(tǒng)可接收將數(shù)據(jù)項分配給集合的單獨請求。響應于接收到數(shù)據(jù)項,云計算資源系統(tǒng)可將該數(shù)據(jù)項分配給集合(1610)。在分配數(shù)據(jù)項之后,云計算資源系統(tǒng)可確定除了將該數(shù)據(jù)項分配給該集合的用戶之外是否還有任何其他用戶訂閱該集合(1612)。如果有,則云計算資源系統(tǒng)可發(fā)送該數(shù)據(jù)項的副本到與訂閱用戶相關聯(lián)的客戶端設備(1614)。在一些情況下,用戶可具有在用戶賬戶中被授權的多個客戶端設備。在這種情況下,云計算資源系統(tǒng)可發(fā)送副本到每個被授權的客戶端設備。在一些情況下,云計算資源系統(tǒng)可同時使用戶訂閱集合(1606)并分配數(shù)據(jù)項給該集合(1610)。
[0135]在后來某個時刻,云計算資源系統(tǒng)可接收對分配給集合的數(shù)據(jù)項的修改(1616)。在一些情況下,所述修改可以是一系列修改。另外,云計算資源系統(tǒng)可從多個用戶接收對一個數(shù)據(jù)項的修改。響應于接收到修改,云計算資源系統(tǒng)可將修改發(fā)布到訂閱該集合的每個用戶(1618)。在完成了步驟1618之后,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1600。
[0136]圖17是示出一種用于使用戶訂閱集合的示例性方法1700的流程圖。出于清楚的原因,該方法結(jié)合一種示例性云計算資源系統(tǒng)(諸如圖2中所示)來進行討論。但是,這個方法也可部分地或完全地在客戶端設備上執(zhí)行。雖然圖17中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個用戶訂閱方法可開始于云計算資源系統(tǒng)接收到邀請用戶訂閱集合的請求(1702)時。該請求可包括用戶標識符。在一些情況下,云計算資源系統(tǒng)可接收作為形成集合的請求的一部分的這個邀請用戶訂閱該集合的請求?;蛘撸朴嬎阗Y源系統(tǒng)可接收邀請用戶的單獨請求。在一些情況下,云計算資源系統(tǒng)可從集合的管理員和/或具有邀請用戶訂閱該集合的權限的另一用戶接收邀請用戶的請求。
[0137]響應于接收到邀請用戶訂閱集合的請求,云計算資源系統(tǒng)可將訂閱該集合的邀請發(fā)送到與該用戶標識符相關聯(lián)的用戶(1704)。云計算資源系統(tǒng)可被配置為利用多種不同技術來發(fā)送這個邀請。例如,云計算資源系統(tǒng)可經(jīng)由電子郵件、即時消息、SMS、客戶端側(cè)應用程序中的通知、客戶端設備上的彈出窗口等等來發(fā)送這個邀請。
[0138]在隨后的某個時刻,云計算資源系統(tǒng)可從被邀請用戶接收響應(1706)。如果云計算資源系統(tǒng)確定該響應是肯定響應(1708),則云計算資源系統(tǒng)可認證進行響應的用戶(1710)。云計算資源系統(tǒng)可使用任何認證過程。例如,云計算資源系統(tǒng)可通過請求用戶登錄到訂閱邀請被發(fā)送到的用戶賬戶來對用戶進行認證。用于對用戶進行認證的另選技術也是可能的。
[0139]在一些配置中,用戶可用否定響應對訂閱邀請進行響應。即,用戶可發(fā)送用戶不希望訂閱該集合的明確響應,而不是僅僅不理睬該邀請。在一些情況下,云計算資源系統(tǒng)可不理睬明確的否定響應?;蛘?,云計算資源系統(tǒng)可采取動作,諸如通知請求邀請的用戶和/或更新與該集合相關聯(lián)的任何記錄。
[0140]云計算資源系統(tǒng)可確定用戶認證是否成功(1712)并相應地進行響應。如果認證確實成功了,則云計算資源系統(tǒng)可完成用戶對該集合的訂閱(1714)。完成用戶訂閱可包括將用戶的標識符添加到該集合的紀錄中。在一些情況下,當完成了訂閱時,云計算資源系統(tǒng)可發(fā)送通知給請求邀請的用戶和/或集合的管理員。如果認證失敗,則云計算資源系統(tǒng)可拒絕用戶訂閱該集合(1716)。在一些配置中,當認證失敗時,用戶可嘗試再次完成認證過程。另外,在一些情況下,云計算資源系統(tǒng)可對認證嘗試失敗的數(shù)量進行限制。此外,在一些情況下,當訂閱嘗試失敗時,云計算資源系統(tǒng)可發(fā)送通知給請求邀請的用戶和/或集合的管理員。在完成了步驟1714或1716之后,或當步驟1708處的響應為否定響應時,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1700。
[0141]圖18是一種用于分配數(shù)據(jù)項給集合的示例性方法1800的流程圖。出于清楚的原因,這個方法結(jié)合一種示例性云計算資源系統(tǒng)(諸如圖2中所示)來討論。但是,這個方法也可部分地或完全地在客戶端設備上執(zhí)行。雖然圖18中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個數(shù)據(jù)項分配方法可開始于云計算資源系統(tǒng)接收到將數(shù)據(jù)項分配給集合的請求(1802)時。在一些情況下,云計算資源系統(tǒng)可接收作為形成集合的請求的一部分的這個將數(shù)據(jù)項分配給集合的請求?;蛘撸朴嬎阗Y源系統(tǒng)可接收將數(shù)據(jù)項分配給集合的單獨請求。
[0142]響應于接收到將數(shù)據(jù)項分配給集合的請求,云計算資源系統(tǒng)可查核進行請求的用戶是否被授權分配數(shù)據(jù)項給集合(1804)。在一些情況下,集合可具有策略使得訂閱該集合的用戶中只有一個子組的用戶被授權分配數(shù)據(jù)給該集合。例如,集合可具有僅管理員能分配數(shù)據(jù)項給該集合的策略。
[0143]如果云計算資源系統(tǒng)確定用戶被允許分配數(shù)據(jù)項給該集合,則云計算資源系統(tǒng)可查核該數(shù)據(jù)項是否是被允許被分配給該集合的類型(1806)。在一些情況下,集合可具有禁止某些數(shù)據(jù)項類型被分配給該集合的策略。例如,集合可具有僅文字處理文檔可被分配給該集合的策略。
[0144]如果云計算資源系統(tǒng)確定數(shù)據(jù)項是被允許被分配給該集合的類型,則云計算資源系統(tǒng)可將該數(shù)據(jù)項分配給該集合(1808)。將數(shù)據(jù)項分配給集合可包括將該數(shù)據(jù)項添加到該集合的紀錄中。在一些情況下,當分配數(shù)據(jù)項時,云計算資源系統(tǒng)可發(fā)送通知給請求分配的用戶和/或該集合的管理員。
[0145]當將數(shù)據(jù)項分配給集合時,云計算資源系統(tǒng)可將該數(shù)據(jù)項的副本發(fā)布到與訂閱該集合的每個用戶相關聯(lián)的客戶端設備(1810)。在一些情況下,用戶可具有在用戶賬戶中被授權的多個客戶端設備。在這種情況下,云計算資源系統(tǒng)可發(fā)送副本到每個被授權的客戶端設備。在一些配置中,云計算資源系統(tǒng)可將關于新數(shù)據(jù)項已經(jīng)被分配給集合的通知發(fā)布給訂閱該集合的每個用戶,來代替發(fā)送這個數(shù)據(jù)項和/或作為發(fā)送這個數(shù)據(jù)項的補充。云計算資源系統(tǒng)可被配置為利用多種不同技術來發(fā)送這個通知。例如,云計算資源系統(tǒng)可經(jīng)由電子郵件、即時消息、SMS、客戶端側(cè)應用程序中的通知、客戶端設備上的彈出窗口等來發(fā)送這個通知。
[0146]如果云計算資源系統(tǒng)確定用戶沒有被授權分配數(shù)據(jù)項給這個集合和/或數(shù)據(jù)項類型在這個集合中不被允許,則云計算資源系統(tǒng)可對于該集合阻止該數(shù)據(jù)項(1812)。在一些配置中,當分配失敗時,云計算資源系統(tǒng)可發(fā)送通知給請求分配的用戶和/或該集合的管理員。在一些情況下,這個通知可指出分配為何失敗。在完成了步驟1810或1812之后,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1800。
[0147]圖19是示出一種用于修改分配給集合的數(shù)據(jù)項的示例性方法1900的流程圖。出于清楚的原因,這個方法結(jié)合一種示例性云計算資源系統(tǒng)(諸如圖2中所示)來進行討論。但是,這個方法也可部分地或完全地在客戶端設備上執(zhí)行。雖然圖19中示出了具體步驟,但在其他實施例中,方法可具有比所示出的更多或更少的步驟。這個數(shù)據(jù)項修改方法可開始于云計算資源系統(tǒng)接收到對分配給集合的數(shù)據(jù)項的修改(1902)時。在一些情況下,修改可以是整個數(shù)據(jù)項?;蛘?,修改可以是數(shù)據(jù)項的指示兩個版本之間差別的片斷。另外,在一些情況下,修改可以是一系列修改。
[0148]響應于接收到對數(shù)據(jù)項的修改,云計算資源系統(tǒng)可查核發(fā)送修改的用戶是否被授權修改該數(shù)據(jù)項(1904)。在一些情況下,集合可具有策略使得訂閱該集合的用戶中只有一個子組的用戶被授權修改數(shù)據(jù)項?;蛘?,該策略可在數(shù)據(jù)項級被發(fā)送。即,每個數(shù)據(jù)項可具有相關聯(lián)的許可設置,其指示哪些用戶被允許進行修改。
[0149]如果云計算資源系統(tǒng)確定用戶被允許修改該數(shù)據(jù)項,則云計算資源系統(tǒng)可更新該數(shù)據(jù)項(1906)。在一些情況下,云計算資源系統(tǒng)可維護該數(shù)據(jù)項的副本。當修改被接收到時,云計算資源系統(tǒng)可將該修改合并到該數(shù)據(jù)項的副本中。另外,云計算資源系統(tǒng)可維護修改的記錄。在接收到修改時,云計算資源系統(tǒng)可將該修改發(fā)布到與訂閱該集合的每個用戶相關聯(lián)的客戶端設備(1908)。
[0150]如果云計算資源系統(tǒng)確定用戶不被允許修改該數(shù)據(jù)項,則云計算資源系統(tǒng)可阻止該修改(1910)。在一些配置中,當修改失敗時,云計算資源系統(tǒng)可發(fā)送通知給試圖共享修改的用戶和/或該集合的管理員。在一些情況下,該通知可指出修改為何失敗。在完成了步驟1908或1910之后,云計算資源系統(tǒng)可恢復先前的處理,這可包括重復方法1900。
[0151]4.示例件系統(tǒng)
[0152]參照圖20,一種示例性系統(tǒng)2000包括通用計算設備2000,所述通用計算設備2000包括處理單元(CPU或處理器)2020以及將各種系統(tǒng)組件耦合到處理器2020的系統(tǒng)總線2010,這些系統(tǒng)組件包括諸如只讀存儲器(ROM) 2040和隨機存取存儲器(RAM) 2050的系統(tǒng)存儲器2030。系統(tǒng)2000可包括直接與處理器2020連接、靠近處理器2020、或集成作為處理器2020 —部分的高速緩存2022。系統(tǒng)2000從存儲器2030和/或存儲設備2060向高速緩存復制數(shù)據(jù),以由處理器2020快速訪問。通過這種方式,高速緩存提供避免處理器2020在等待數(shù)據(jù)時延遲的性能提升。這些和其他模塊可控制或被配置為控制處理器2020以執(zhí)行各種動作。其他系統(tǒng)存儲器2030可以也可供使用。存儲器2030可包括具有不同性能特性的多個不同類型的存儲器??梢韵氲剑竟_可以在具有不止一個處理器2020的計算設備2000上或者在被聯(lián)網(wǎng)在一起以提供更大處理能力的計算設備的群組或群集上操作。處理器2020可包括被配置成控制處理器2020的任何通用處理器和硬件模塊或軟件模塊(諸如存儲在存儲設備2060中的模塊12062、模塊22064、和模塊32066)以及在軟件指令被并入到實際處理器設計中的情況下的專用處理器。處理器2020基本上可以是完全自含式計算系統(tǒng),包含多個核或處理器、總線、存儲器控制器、高速緩存等。多核處理器可以是對稱的或非對稱的。
[0153]系統(tǒng)總線2010可以是幾種類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍設備總線、以及使用多種總線架構(gòu)中任一種的局域總線。存儲在ROM 2040等中的基本輸入/輸出(B1S)可提供有助于在諸如啟動期間在計算設備2000內(nèi)的元件之間傳輸信息的基本例程。計算設備2000還包括存儲設備2060,諸如硬盤驅(qū)動器、磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器等。存儲設備2060可包括用于控制處理器2020的軟件模塊2062、2064、2066。可以設想其他硬件或軟件模塊。存儲設備2060由驅(qū)動接口連接到系統(tǒng)總線2010。驅(qū)動器和相關聯(lián)的計算機可讀存儲介質(zhì)為計算設備2000提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲。在一個方面,執(zhí)行特定功能的硬件模塊包括存儲在非暫態(tài)計算機可讀介質(zhì)中的軟件組件,其結(jié)合諸如處理器2020、總線2010、顯示器2070等的必要的硬件組件來執(zhí)行功能。基本組件是本領域的技術人員已知的,并且根據(jù)設備類型(諸如,設備2000是小型的手持計算設備、臺式計算機、還是計算機服務器)來設想適當?shù)淖冃汀?br>
[0154]雖然本文所描述的示例性實施例采用了硬盤2060,但本領域的技術人員應當理解,在示例性操作環(huán)境中也可以使用可存儲能由計算機訪問的數(shù)據(jù)的其他類型的計算機可讀介質(zhì),諸如磁卡帶、閃存卡、數(shù)字通用光盤、磁盒、隨機存取存儲器(RAM) 2050、只讀存儲器(ROM) 2040、包含比特流的線纜或無線信號等。非暫態(tài)計算機可讀存儲介質(zhì)明確地排除諸如能量、載波信號、電磁波和信號本身的介質(zhì)。
[0155]為了使用戶能夠與計算設備2000進行交互,輸入設備2090代表任意數(shù)量的輸入機構(gòu),諸如用于語音的麥克風、用于手勢或圖形輸入的觸摸屏、鍵盤、鼠標、運動輸入、語音等。輸出設備2070也可以是本領域的技術人員已知的多個輸出機構(gòu)中的一個或多個。在一些情況下,多模系統(tǒng)允許用戶提供多種類型的輸入來與計算設備2000通信。通信接口2080通常支配和管理用戶輸入和系統(tǒng)輸出。由于對在任何特定硬件布置上的操作無限制,因此,本文的基本特征可以容易地在開發(fā)出改進的硬件或固件布置之后替換為這些硬件或固件布置。
[0156]為了清楚地說明,示例性系統(tǒng)實施例被呈現(xiàn)為包括各個功能塊,這些功能塊包括標記為“處理器”或處理器2020的功能塊。這些塊代表的功能可以通過使用共享的或?qū)S玫挠布?包括但不限于能夠執(zhí)行軟件的硬件和諸如處理器2020的硬件,其按照目的進行構(gòu)建以作為運行在通用處理器上的軟件的等同物操作)來提供。例如,圖20中呈現(xiàn)的一個或多個處理器的功能可以由單個共享的處理器或多個處理器提供。(術語“處理器”的使用不應當解釋為唯一地指代能夠執(zhí)行軟件的硬件。)示例性實施例可包括微處理器和/或數(shù)字信號處理器(DSP)硬件、用于存儲執(zhí)行下文論述的操作的軟件的只讀存儲器(ROM) 2040、以及用于存儲結(jié)果的隨機存取存儲器(RAM) 2050。也可以提供超大規(guī)模集成(VLSI)硬件實施例以及結(jié)合通用DSP電路的定制VLSI電路。
[0157]各實施例的邏輯操作被實現(xiàn)為:(I)運行于通用計算機內(nèi)的可編程電路上的一系列計算機實施的步驟、操作或過程,(2)運行于專用可編程電路上的一系列計算機實施的步驟、操作或過程;和/或(3)可編程電路內(nèi)互連的機器模塊或程序引擎。圖20中示出的系統(tǒng)2000可以實施所述方法的全部或一部分,可以是所述系統(tǒng)的一部分,和/或可以根據(jù)所述非暫態(tài)計算機可讀存儲介質(zhì)中的指令進行操作。此類邏輯操作可以實現(xiàn)為被配置成控制處理器2020以根據(jù)模塊的編程執(zhí)行特定功能的模塊。例如,圖20示出了三個模塊Modl2062、Mod2 2064和Mod3 2066,它們是被配置成控制處理器2020的模塊。這些模塊可以被存儲在存儲設備2060上,并且當運行時被加載到RAM 2050或存儲器2030中,或者可以如本領域中所知的那樣被存儲在其他計算機可讀存儲器位置中。
[0158]本公開的范圍內(nèi)的實施例也可包括有形和/或非暫態(tài)計算機可讀存儲介質(zhì),其用于承載或具有存儲在其上的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)。此類非暫態(tài)計算機可讀存儲介質(zhì)可以是可由通用或?qū)S糜嬎銠C訪問的任何可用介質(zhì),包括上文論述的任何專用處理器的功能設計。以舉例而非限制的方式,此類非暫態(tài)計算機可讀介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁性存儲設備,或任何其他介質(zhì),其可用來承載或存儲呈計算機可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)或處理器芯片設計形式的所需程序代碼裝置。當信息經(jīng)由網(wǎng)絡或另一通信連接(硬連線的、無線的,或它們的組合)傳送或提供至計算機時,計算機適當?shù)貙⒃撨B接視為計算機可讀介質(zhì)。因此,任何這種連接被適當?shù)胤Q為計算機可讀介質(zhì)。上述的組合也應該包括在計算機可讀介質(zhì)的范圍內(nèi)。
[0159]計算機可執(zhí)行指令包括例如使得通用計算機、專用計算機或?qū)S锰幚碓O備執(zhí)行某些功能或一組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令也包括由計算機在獨立或網(wǎng)絡環(huán)境中執(zhí)行的程序模塊。通常,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)、對象和專用處理器等的設計中固有的功能,程序模塊執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。計算機可執(zhí)行指令、相關聯(lián)的數(shù)據(jù)結(jié)構(gòu)和程序模塊代表用于執(zhí)行本文所公開的方法的步驟的程序代碼裝置的實例。此類可執(zhí)行指令或相關聯(lián)的數(shù)據(jù)結(jié)構(gòu)的特定序列代表用于實現(xiàn)在此類步驟中描述的功能的對應動作的實例。
[0160]本領域的技術人員將會理解,本公開的其他實施例可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡計算環(huán)境中實踐,包括個人計算機、手持設備、多處理器系統(tǒng)、基于微處理器的或可編程的消費電子產(chǎn)品、網(wǎng)絡PC、微型計算機、大型計算機等。實施例也可在分布式計算環(huán)境中實踐,其中任務由通過通信網(wǎng)絡(或者由硬連線鏈路、無線鏈路,或者由它們的組合)連接的本地和遠程處理設備來執(zhí)行。在分布式計算環(huán)境中,程序模塊可位于本地存儲器存儲設備和遠程存儲器存儲設備兩者中。
[0161]上文描述的各實施例僅僅以例示方式提供,而不應解釋為限制本公開的范圍。本領域的技術人員將容易認識到,在不遵從本文舉例說明和描述的示例性實施例和應用且不脫離本公開的實質(zhì)和范圍的情況下,可以對本文所描述的原理做出各種修改和變更。
【權利要求】
1.一種計算機實現(xiàn)的方法,包括: 在云存儲系統(tǒng)處接收來自第一客戶端設備的與用戶賬戶相關聯(lián)地存儲數(shù)據(jù)項的存儲請求; 經(jīng)由處理器獲取用戶賬戶詳情,所述用戶賬戶詳情包括被授權的外部網(wǎng)絡存儲設備標識符和與所述用戶賬戶相關聯(lián)的數(shù)據(jù)的存儲位置,其中所述外部網(wǎng)絡存儲設備標識符與獨立于云存儲系統(tǒng)的外部網(wǎng)絡存儲設備對應; 使所述數(shù)據(jù)項被存儲在由所述外部網(wǎng)絡存儲設備標識符所標識的所述外部網(wǎng)絡存儲設備上;以及 更新所述用戶賬戶詳情以將所述外部網(wǎng)絡存儲設備反映為用于所述數(shù)據(jù)項的存儲位置。
2.根據(jù)權利要求1所述的方法,其中響應于確定在云存儲中沒有足夠的空間存儲所述數(shù)據(jù)項而使所述數(shù)據(jù)項被存儲在所述外部網(wǎng)絡存儲設備上。
3.根據(jù)權利要求1所述的方法,其中所述外部網(wǎng)絡存儲設備連接到局域網(wǎng)。
4.根據(jù)權利要求1所述的方法,還包括: 接收來自第二客戶端設備的對所述數(shù)據(jù)項的檢索請求; 獲取所述用戶賬戶詳情; 響應于從所述用戶賬戶詳情識別所述數(shù)據(jù)項被存儲在所述外部網(wǎng)絡存儲設備上,從所述外部網(wǎng)絡存儲設備檢索所述數(shù)據(jù)項;以及將所述數(shù)據(jù)項發(fā)送到所述第二客戶端設備。
5.根據(jù)權利要求4所述的方法,其中所述第一客戶端設備和所述第二客戶端設備是在所述用戶賬戶上被授權的不同客戶端設備。
6.根據(jù)權利要求1所述的方法,其中所述外部網(wǎng)絡存儲設備在多個用戶賬戶中被授權。
7.根據(jù)權利要求2所述的方法,其中空間不足是由于在所述云存儲中分配的空間小于為所述用戶賬戶批準的空間。
8.一種系統(tǒng),包括: 服務器; 所述服務器維護包括多個用戶賬戶的數(shù)據(jù)庫; 云存儲設備,所述云存儲設備具有被分配用于為所述多個用戶賬戶中的每個用戶賬戶存儲數(shù)據(jù)項的空間; 第一模塊,所述第一模塊被配置為控制所述服務器以接收來自第一客戶端設備的存儲與用戶賬戶相關聯(lián)的數(shù)據(jù)項的存儲請求; 第二模塊,所述第二模塊被配置為控制所述服務器以取回用戶賬戶詳情,所述用戶賬戶詳情包括第一被授權的外部網(wǎng)絡存儲設備標識符和與所述用戶賬戶相關聯(lián)的數(shù)據(jù)的存儲位置; 第三模塊,所述第三模塊被配置為控制所述服務器以使所述數(shù)據(jù)項被存儲在由第一個人網(wǎng)絡存儲設備所識別的外部網(wǎng)絡存儲設備上,其中所述外部網(wǎng)絡存儲設備與云計算系統(tǒng)分離;以及 第四模塊,所述第四模塊被配置為控制所述服務器以更新所述用戶賬戶詳情來將所述外部網(wǎng)絡存儲設備反映為用于所述數(shù)據(jù)項的存儲位置。
9.根據(jù)權利要求8所述的系統(tǒng),還包括: 第五模塊,所述第五模塊被配置為控制所述服務器以接收來自第二客戶端設備的對所述數(shù)據(jù)項的檢索請求; 第六模塊,所述第六模塊被配置為控制所述服務器以取回所述用戶賬戶詳情; 第七模塊,所述第七模塊被配置為控制所述服務器以響應于從所述用戶賬戶詳情識別所述數(shù)據(jù)項被存儲在所述外部網(wǎng)絡存儲設備上而從所述外部網(wǎng)絡存儲設備檢索所述數(shù)據(jù)項;以及 第八模塊,所述第八模塊被配置為控制所述服務器以將所述數(shù)據(jù)項發(fā)送到所述第二客戶端設備。
10.根據(jù)權利要求8所述的系統(tǒng),其中響應于確定在云存儲上沒有足夠的空間分配給所述用戶賬戶以存儲所述數(shù)據(jù)項而使所述數(shù)據(jù)項被存儲在所述外部網(wǎng)絡存儲設備上,空間不足是由于在所述云存儲中為所述用戶賬戶所分配的空間小于在所述用戶賬戶中被授權的空間。
11.根據(jù)權利要求8所述的系統(tǒng),其中所述用戶賬戶包括第二被授權的外部網(wǎng)絡存儲設備標識符。
12.根據(jù)權利要求11所述的系統(tǒng),還包括: 第五模塊,所述第五模塊被配置為控制所述服務器以在使所述數(shù)據(jù)項被存儲在外部網(wǎng)絡存儲設備上之前從所述第一外部網(wǎng)絡存儲設備標識符和所述第二外部網(wǎng)絡存儲設備標識符中選擇外部網(wǎng)絡存儲設備標識符。
13.一種存儲指令的非暫態(tài)計算機可讀存儲介質(zhì),所述指令當由計算設備執(zhí)行時,使得所述計算設備執(zhí)行包括如下的步驟: 接收來自第一客戶端設備的與用戶賬戶相關聯(lián)地把數(shù)據(jù)項存儲在云存儲中的存儲請求; 獲取用戶賬戶詳情,所述用戶賬戶詳情包括被授權的個人網(wǎng)絡存儲設備標識符和與所述用戶賬戶相關聯(lián)的數(shù)據(jù)的存儲位置; 使所述數(shù)據(jù)項被存儲在由所述個人網(wǎng)絡存儲設備標識符所標識的個人網(wǎng)絡存儲設備上,其中所述個人網(wǎng)絡存儲設備在云計算系統(tǒng)外部;以及 更新所述用戶賬戶詳情以將所述個人網(wǎng)絡存儲設備反映為用于所述數(shù)據(jù)項的存儲位置。
14.根據(jù)權利要求13所述的非暫態(tài)計算機可讀存儲介質(zhì),還包括: 接收來自第二客戶端設備的對所述數(shù)據(jù)項的檢索請求; 獲取所述用戶賬戶詳情; 響應于從所述用戶賬戶詳情識別所述數(shù)據(jù)項被存儲在所述個人網(wǎng)絡存儲設備上,從所述個人網(wǎng)絡存儲設備檢索所述數(shù)據(jù)項;以及將所述數(shù)據(jù)項發(fā)送到所述第二客戶端設備。
15.根據(jù)權利要求13所述的非暫態(tài)計算機可讀存儲介質(zhì),其中響應于滿足預定義的標準而使所述數(shù)據(jù)項被存儲在所述個人網(wǎng)絡存儲設備上。
16.根據(jù)權利要求15所述的非暫態(tài)計算機可讀存儲介質(zhì),其中滿足預定義的標準還包括確定將所述數(shù)據(jù)項存儲在所述個人網(wǎng)絡存儲設備上更高效。
17.根據(jù)權利要求15所述的非暫態(tài)計算機可讀存儲介質(zhì),其中滿足預定義的標準還包括確定在所述云存儲中沒有足夠的空間用于所述數(shù)據(jù)項。
18.根據(jù)權利要求17所述的非暫態(tài)計算機可讀存儲介質(zhì),其中空間不足是由于在所述云存儲中分配的空間小于為所述用戶賬戶授權的空間。
19.根據(jù)權利要求17所述的非暫態(tài)計算機可讀存儲介質(zhì),其中空間不足是由于確定在云存儲中的存儲將超過云存儲中的為所述用戶賬戶授權的空間。
20.根據(jù)權利要求15所述的非暫態(tài)計算機可讀存儲介質(zhì),其中滿足預定義的標準還包括確定所述存儲請求將所述個人網(wǎng)絡存儲設備指定為所述存儲位置。
【文檔編號】G06F9/50GK104380261SQ201380032454
【公開日】2015年2月25日 申請日期:2013年5月6日 優(yōu)先權日:2012年5月16日
【發(fā)明者】Y·阿魯耶, D·B·吉安保羅 申請人:蘋果公司