基于网络的数字数据仓库的管理的制作方法
【专利摘要】本申请公开了改进的用于数字资产的存储、递送和获取的技术和系统。这些技术和系统对于存储、递送和访问从在线商店获取的数字资产(例如媒体资产)是适合且有用的。这些技术和系统对于存储、递送和访问从在线商店以外的地方获取的数字资产也是适合且有用的。无论如何,数字资产可经由电子设备(例如用户设备)从基于网络的数字数据仓库(例如云数据存储)访问,并可被电子设备使用。数字资产可包括媒体资产和/或非媒体资产。
【专利说明】基于网络的数字数据仓库的管理
【背景技术】
[0001 ] 在线商店和在线购物近年来已变得越来越流行。桌面型和膝上型计算机已被用于从在线商店购买各种商品和服务。在线商店可允许顾客经由因特网的网络连接从在线商店浏览、搜索和购买各种不同的物品。购买的物品可通过邮件来递送或者通过在商店或另外的地点自取来获得。
[0002]近来,数字资产(例如,音乐歌曲、电影、计算机应用程序)已能够从在线商店购买。另外,数字资产已能够直接递送到用于购买它们的设备。这样,现今,可以从住宅经由电子设备(例如桌面型计算机)从在线商店购买数字资产,并且可立即将数字资产递送到用于获取数字资产的电子设备。换言之,经由电子设备从在线商店购买数字资产之后,数字资产可被电子设备“下载”以供随后在其上使用。
[0003]然而,最近,具有访问在线商店的能力的电子设备的数目和种类已急剧增加。现今,一个人可拥有和/或操作若干个具有访问在线商店的能力的电子设备,包括桌面型计算机、膝上型计算机、平板电脑或平板计算机(例如iPadTm)、智能电话、媒体播放器、游戏设备、电视机等。此外,在线商店中各种电子设备可获得的数字资产的数目和类型正在不断增力口,包括媒体、书籍、应用程序等等。结果,对数字资产到电子设备的递送的管理可对用户造成困难,尤其是那些在若干个不同的电子设备上保持各种数字资产的集合的用户。
【发明内容】
[0004]本申请公开了改进的用于数字资产的存储、递送和获取的技术和系统。这些技术和系统对于存储、递送和访问从在线商店获取的数字资产(例如媒体资产)是适合且有用的。这些技术和系统对于存储、递送和访问从在线商店以外的地方获取的数字资产也是适合且有用的。无论如何,数字资产可经由电子设备(例如用户设备)从基于网络的数字数据仓库(例如云数据存储)访问,从而可被电子设备使用。数字资产可包括媒体资产和/或非媒体资产。
[0005]本发明可以以许多方式来实现,包括实现为方法、系统、设备或装置(包括计算机可读介质)。下面论述本发明的若干个实施例。
[0006]一种用于将客户端设备关联到远程数据仓库的方法,一个实施例例如可至少包括:接收来自客户端设备的试图与远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备;判定存储在客户端设备上的任何本地设备数据是否已经存在于远程数据仓库中;请求上传客户端设备上的本地设备数据的那些未被判定为已经存在于远程数据仓库中的数据项;从客户端设备接收与客户端设备上的本地设备数据的未被判定为已经存在于远程数据仓库中的数据项相对应的上传数据;以及将所述上传数据添加到远程数据仓库的远程数据存储。
[0007]—种至少包括存储在其中的用于将客户端设备关联到远程数据仓库的计算机程序代码的非暂态计算机可读介质,一个实施例例如可至少包括:用于接收来自客户端设备的试图与远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供远程数据存储设备;用于判定存储在客户端设备上的任何本地设备数据是否已经存在于远程数据仓库中的计算机程序代码;用于请求上传客户端设备上的本地设备数据的那些未被判定为已经存在于远程数据仓库中的数据项的计算机程序代码;用于从客户端设备接收与客户端设备的本地设备数据的未被判定为已经存在于远程数据仓库中的数据项相对应的上传数据的计算机程序代码;以及用于将上传数据添加到远程数据仓库的远程数据存储的计算机程序代码。
[0008]一种用于提供客户端设备经由网络可访问的基于网络的仓库的系统,一个实施例例如可至少包括:云存储,被配置为为多个账户持有者存储数字数据,其中授权客户端设备经由网络可访问云存储;以及操作性地连接到云存储的至少一个云服务器。所述至少一个云服务器可被配置为:接收来自客户端设备的试图与基于网络的仓库关联的激活请求;判定存储在客户端设备上的任何本地设备数据是否已经存在于基于网络的仓库的云存储中;请求上传客户端设备的本地设备数据的那些未被判定为已经存在于基于网络的仓库的云存储中的数据项;从客户端设备接收与客户端设备的本地设备数据的未被判定为已经存在于基于网络的仓库的云存储中的数据项相对应的上传数据;以及将上传数据添加到基于网络的仓库的云存储。
[0009]一种用于判定数字数据项是否匹配驻留在远程数据仓库的另一数字数据项的方法,一个实施例例如可至少包括:进行第一尝试,尝试将本地数字数据项的标识符与已经存储在远程数据仓库处的远程数字数据项的标识符相匹配;当本地数字数据项的标识符匹配了远程数字数据项之一的标识符时,将所述本地数字数据项视为与所述远程数字数据项相同;倘若本地数字数据项没有通过经由标识符匹配的第一尝试而匹配,则进行第二尝试,尝试将本地数字数据项的散列值与已经存储在远程数据仓库处的远程数字数据项的散列值相匹配;当本地数字数据项的标识符匹配了远程数字数据项之一的散列值时,将所述本地数字数据项视为与所述远程数字数据项相同;倘若本地数据项没有通过经由标识符匹配的第一尝试或者通过经由散列值匹配的第二尝试被而匹配,则进行第三尝试,尝试将本地数字数据项的数字指纹与已经存储在远程数据仓库处的远程数字数据项的数字指纹相匹配;以及当本地数字数据项的标识符匹配了远程数字数据项之一的数字指纹时,将所述本地数字数据项视为与所述远程数字数据项相同。
[0010]一种至少包括存储在其中的用于判定数字数据项是否匹配驻留在远程数据仓库处的另一数字数据项的计算机程序代码的非暂态计算机可读介质,一个实施例例如可至少包括:用于进行第一尝试以尝试将本地数字数据项的标识符与已经存储在远程数据仓库处的远程数字数据项的标识符相匹配的计算机程序代码;用于当本地数字数据项的标识符匹配远程数字数据项之一的标识符时,将所述本地数字数据项视为与所述远程数字数据项相同的计算机程序代码;用于倘若本地数字数据项通过经由标识符匹配的第一尝试而没有匹配,则进行第二尝试以尝试将本地数字数据项的散列值与已经存储在远程数据仓库处的远程数字数据项的散列值相匹配的计算机程序代码;用于当本地数字数据项的标识符匹配远程数字数据项之一的散列值时,将所述本地数字数据项视为与所述远程数字数据项相同的计算机程序代码;用于倘若本地数据项通过经由标识符匹配的第一尝试或者通过经由散列值匹配的第二尝试而没有被匹配,则进行第三尝试以尝试将本地数字数据项的数字指纹与已经存储在远程数据仓库处的远程数字数据项的数字指纹相匹配的计算机程序代码;以及用于当本地数字数据项的标识符匹配远程数字数据项之一的数字指纹时,将所述本地数字数据项视为与所述远程数字数据项相同的计算机程序代码。
[0011]一种用于将客户端设备关联到远程数据仓库的方法,一个实施例例如可至少包括:接收来自客户端设备的试图与远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备;请求客户端设备上的艺术作品项的散列值;判定任何所请求的散列值是否匹配已经被保持在远程数据仓库中的现有艺术作品项的散列值;以及避免上传客户端设备上的艺术作品项之中的那些被判定为已经被保持在远程数据仓库中的艺术作品项。
[0012]一种用于将客户端设备关联到远程数据仓库的方法,另一实施例例如可至少包括:接收来自客户端设备的试图与远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备;请求客户端设备上的艺术作品项的散列值;判定任何所请求的散列值是否匹配已经被保持在远程数据仓库中的现有艺术作品项的散列值;以及避免上传客户端设备上的艺术作品项之中的那些被判定为已经被保持在远程数据仓库中的艺术作品项。
[0013]一种用于将客户端设备关联到远程数据仓库的方法,另一个实施例例如可至少包括:接收来自客户端设备的试图与远程数据仓库关联的激活请求,远程数据仓库提供对于多个数字媒体资产的远程数据存储;判定存储在客户端设备上的任何本地数字媒体资产是否已经存在于远程数据仓库中,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述判定分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于远程数据仓库处;以及请求从客户端设备上传数据,所请求的要上传数据包括:
(i)客户端设备上的未被判定为已经存在于远程数据仓库中的一个或多个内容项,以及
(ii)客户端设备上的未被判定为已经存在于远程数据仓库中的一个或多个艺术作品项。
[0014]一种至少包括存储在其上的用于将客户端设备关联到远程数据仓库的计算机程序代码的非暂态计算机可读介质,一个实施例例如可至少包括:用于接收来自客户端设备的试图与远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供远程数据存储设备;用于请求客户端设备上的艺术作品项的散列值的计算机程序代码;用于判定任何所请求的散列值是否匹配已经被保持在远程数据仓库中的现有艺术作品项的散列值的计算机程序代码;以及用于避免上传客户端设备上的艺术作品项之中的那些被判定为已经被保持在远程数据仓库中的艺术作品项的计算机程序代码。
[0015]一种至少包括存储在其上的用于将客户端设备关联到远程数据仓库的计算机程序代码的非暂态计算机可读介质,另一实施例例如可至少包括:用于接收来自客户端设备的试图与远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供对于多个数字媒体资产的远程数据存储;用于判定存储在客户端设备上的任何本地数字媒体资产是否已经存在于远程数据仓库中的计算机程序代码,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述用于判定的计算机程序代码分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于远程数据仓库处;以及用于请求从客户端设备上传数据的计算机程序代码,所请求的要上传数据包括:(i)客户端设备上的未被判定为已经存在于远程数据仓库中的一个或多个内容项,以及(ii)客户端设备上的未被判定为已经存在于远程数据仓库中的一个或多个艺术作品项。
[0016]一种用于提供客户端设备经由网络可访问的基于网络的仓库的系统,一个实施例例如可至少包括:被配置为为多个账户持有者存储数字数据的云存储,以及操作性地连接到云存储的至少一个云服务器。授权客户端设备经由网络可访问云存储。所述至少一个云服务器例如可被配置为:(a)接收来自客户端设备的试图与基于网络的仓库关联的激活请求,基于网络的仓库提供对于多个数字媒体资产的远程数据存储;(b)判定存储在客户端设备上的任何本地数字媒体资产是否已经存在于基于网络的数据仓库中,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述判定分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于基于网络的仓库处;以及(C)请求从客户端设备上传数据,所请求的要上传数据包括:(i)客户端设备上的未被判定为已经存在于基于网络的仓库中的一个或多个内容项,以及(i i )客户端设备上的未被判定为已经存在于基于网络的仓库中的一个或多个艺术作品项。
[0017]通过以下结合附图的详细描述,本发明的各种方面和优点将变得清楚,附图以示例方式图示了本发明的原理。
【专利附图】
【附图说明】
[0018]通过以下结合附图的详细描述将容易理解本发明,附图中相似的标号指称相似的结构要素,其中:
[0019]图1是根据一个实施例的基于网络的数据管理系统的框图。
[0020]图2A - 2B是根据一个实施例的云激活过程的流程图。
[0021]图3是根据一个实施例的数据匹配过程的流程图。
[0022]图4A - 4B是根据一个实施例的数据匹配过程的流程图。
[0023]图5示出了根据一个实施例的艺术作品上传过程的流程图。
[0024]图6A是根据一个实施例的更新通知过程的流程图。
[0025]图6B是根据一个实施例的设备更新过程的流程图。
[0026]图7示出了根据一个实施例的云访问管理系统。
[0027]图8A和8B是根据一个实施例的云访问过程的流程图。
【具体实施方式】
[0028]本申请公开了经改进的用于数字资产的存储、递送和获取的技术和系统。这些技术和系统对于存储、递送和访问从在线商店获取的数字资产(例如媒体资产)是适合且有用的。这些技术和系统对于存储、递送和访问从在线商店以外的地方获取的数字资产也是适合且有用的。无论如何,数字资产变得可经由电子设备(例如用户设备)从基于网络的数字数据仓库(例如云数据存储)访问,并从而可被电子设备使用。数字资产可包括媒体资产和/或非媒体资产。
[0029]某些实施例的一个方面涉及向参与的客户端设备提供云数据存储。云数据存储可由能够为各种用户存储数字数据的基于网络的仓库提供。就这里使用的而言,基于网络的仓库可被称为远程数据仓库或云数据仓库。可经由网络一例如因特网(或万维网)一使存储在云数据存储中的数字数据对各个用户可用。用户可在云数据存储中存储各种数字数据,包括在线购买的数字资产、从其他非在线手段获取的数字资产、和/或用户的任何其他数字文件。经由云数据存储对数字数据的访问可限于经认证的用户,并且对于每个用户限于有限数目的授权设备(客户端设备)。因此,给定用户可从他/她的授权客户端设备中的任何一个访问云数据存储。
[0030]下面参考图1 - SB论述本发明的示范性实施例。然而,本领域技术人员将容易明白,这里针对这些附图给出的详细描述是用于说明的,因为本发明延伸到超出这些有限的实施例。
[0031]图1是根据一个实施例的基于网络的数据管理系统100的框图。基于网络的数据管理系统100为多个不同的用户提供数据管理。各种用户可操作一个或多个客户端设备来访问由基于网络的数据管理系统100远程存储的数据。基于网络的数据管理系统100还可管理与特定用户相关联的多个客户端设备之间的数据的同步。
[0032]基于网络的数据管理系统100包括云服务器102。云服务器102耦合到云存储104。云存储104提供大量的耦合到网络106的数字数据存储。云存储106可以为大量的不同用户存储数字数据。虽然云存储104是在大量不同用户之间共享,但为给定用户存储的数字数据可仅能由该给定用户访问。云服务器102可用来管理云存储104对去往和来自数据存储的数据的存储、访问和分发。云存储104还可为利用云存储104的用户促进数据同步。与用户相关联的客户端设备可经由云服务器102访问云存储104。例如,如图1所示,客户端设备108和客户端设备110可耦合到网络106以获得对存储在云存储104中的数据的访问。客户端设备108和110可表电子设备,例如计算设备。例如,客户端设备108可表示计算机,客户端设备110可表示移动电话。通常,客户端设备108和110包括实现经由网络106对云服务器102的访问的应用程序(或者实用工具或操作系统程序)。网络106可由一个或多个有线或无线网络组成。客户端设备108例如可通过有线连接来连接到网络106,客户端设备110例如可通过无线连接来连接到网络106。
[0033]此外,客户端设备108可包括实现对本地存储在客户端设备108处或远程存储在云存储104处的数据的访问、呈现和利用的应用程序,例如媒体管理应用112。类似地,客户端设备110可包括实现对本地存储在客户端设备110处或远程存储在云存储104处的数据的访问、呈现和利用的应用程序,例如媒体管理应用114。
[0034]此外,基于网络的数据管理系统100可包括数字内容商店116。数字内容商店116可实现购买、租借或以其他方式获取数字内容的电子商务。例如,数字内容商店116可与数字媒体商店有关,该数字媒体商店提供数字内容——例如电影、歌曲、音频书、应用和/或游戏——来供购买、租借或利用。此外,如果客户端设备108或110的用户要从数字内容商店116购买数字媒体项,该数字媒体项可被下载到相应的客户端设备108或110,而且还被提供到云存储104。因此,云存储104可存储购买的数字媒体项(或至少存储去到所存储的内容的链接),以使得用户的任何被授权使用的客户端设备可访问与该用户相关联的云存储104以获得对购买的数字媒体项的访问。这样,购买的数字媒体项被直接添加到云存储104,从而不需要从进行购买的客户端设备上传。另外,用户的任何其他被授权的客户端设备也可从云存储104访问(包括下载)购买的数字媒体项。
[0035]图2A - 2B是根据一个实施例的云激活过程200的流程图。云激活过程200可由计算设备一例如图1所示的云服务器102——执行。
[0036]云激活过程200开始于判断202,其中判定是否从客户端设备接收到云激活请求。当判断202判定尚未接收到云激活请求时,云激活过程200可等待这样的请求。一旦判断202判定已从特定的客户端设备接收到云激活请求,判断204就可判定该特定的客户端设备是否具有激活的资格。一个实施例中,云激活可仅对与给定用户相关联的有限数目的客户端设备可用。一般地,资格可由预定规则或策略来确立,其中涉及激活资格的数目、类型和/或时机。
[0037]当判断204判定该特定客户端设备没有激活资格时,可以通知206用户云激活对于该特定客户端设备不可用。通知206之后,云激活过程200可返回重复判断202和随后的块,从而可以持续监视云激活(如果希望)。
[0038]另一方面,当判断204判定该特定的客户端设备有激活资格时,可执行额外处理以将任何本地数据从该特定客户端设备上传到云存储(例如云存储104)、到云数据仓库(远程数据仓库)。然而,为了高效使用网络带宽和存储并且为了能量节约,可以执行处理以仅上传本地数据的、不在云存储中可用的那部分。具体地,当判断204判定该特定客户端设备有激活资格时,云激活过程200可判定208不在云存储中可用的本地设备数据。
[0039]接下来,可请求210上传所确定的不在云数据仓库中可用的本地设备数据。判断212可判定是否接收到了所请求的本地设备数据。这里,云激活过程200可判定是否接收到了请求从该特定客户端设备上传数据。当判断212判定尚未接收到这样的数据时,云激活过程200可等待这样的数据。一旦判断212判定已接收到所请求的要上传数据,上传数据就可被添加214到云数据仓库。在上传数据已被添加214到云数据仓库之后,云激活过程200结束。在云激活过程200结束之后,该特定客户端设备实际上已被激活来使用云存储,由此该客户端设备的本地设备数据可从云数据仓库获得,从而可被同一用户的其他客户端设备所访问。
[0040]图3是根据一个实施例的数据匹配过程300的流程图。数据匹配过程300例如可表示图2A所示的块208执行的处理。
[0041]数据匹配过程300可从存储在被激活的特定客户端设备上的本地设备数据中选择302本地数据项。判断304随后可判定是否可通过使用一个或多个标识符来匹配所选择的本地数据项。取决于所选择的本地数据项是从何处获取的,所选择的本地数据项可包括一个或多个标识符。通过使用这一个或多个标识符,云服务器102可评估云数据仓库(例如云存储104)是否已存储完全相同的数据项(或者可能相同、但具有更高质量的数据项)。例如,如果本地数据项是从在线商店(例如数字内容商店116)购买并下载,则本地数据项可包括或关联到云服务器102可能已知的一个或多个标识符,尤其如果云服务器102与在线商店有关连、或者如果使用全局或标准标识符的话则更是如此。标识符通常是由计算设备——例如云服务器102——集中分配的数字或字母数字值。一个实施例中,这些标识符与用户云存储空间相关联。另一实施例中,这些标识符是跨多个或所有用户全局分配的。
[0042]如果所选择的本地数据项不能够经由一个或多个标识符来匹配,判断306可判定是否可由散列值来匹配所选择的本地数据项。这里,所选择的本地数据项可被表示为散列值,该散列值可被云服务器102与已经存储在云数据仓库处的数据项的散列值相比较。
[0043]如果所选择的本地数据项不能够经由其散列值来匹配,判断308可判定是否可由指纹来匹配所选择的本地数据项。指纹可由预定算法创建并且可表示数据项的推定唯一的电子指纹。在此情况下,可在客户端设备处理所选择的本地数据项以提供指纹。指纹随后可被提供给云服务器102,云服务器102可评估客户端设备提供的指纹是否匹配已经存储在云数据仓库处的数据项的任何指纹。[0044]如果所选择的本地数据项能够经由一个或多个标识符、散列值或指纹中的任何一者来匹配,所选择的本地数据项可在没有任何上传数据(即,没有任何内容上传)的情况下被添加310到云数据仓库。在此情况下,由于所选择的本地数据项能够与已经驻留在云数据仓库中的现有数据项相匹配,所以这种数据项的上传不是必要的,因为本地数据项可与已经存在于云数据仓库中的数据项相关联。因此,可以节约网络资源和能量(否则将被消耗来传送和存储数据项)。
[0045]当判断308判定所选择的本地数据项不能够通过指纹来匹配时,以及当匹配已发生时在块310之后,判断312可判定是否有更多本地数据项要处理。当判断312判定有更多本地数据项要处理时,数据匹配过程300可返回重复块302,以使另一本地数据项可被选择并被类似地处理。当判断312判定没有更多本地数据项要处理时,数据匹配过程300可结束。
[0046]图4A - 4B是根据一个实施例的数据匹配过程400的流程图。数据匹配过程400例如可表示比图3所示的数据匹配过程300更详细的过程。
[0047]数据匹配过程400可接收402本地设备数据的描述性信息。描述性信息用于描述本地设备数据的特性或属性。作为示例,描述性信息可包括本地设备数据内的各种设备数据项的元数据以及一个或多个标识符。元数据可描述相应的数据项。例如,对于数字媒体资产,元数据可指定诸如标题、艺术家、流派、用户评价等等之类的属性。元数据还可指定诸如比特率、编码、持续时间等等之类的特性。一个或多个标识符通常被分配为使得它们对于给定的数据项是唯一的。例如,在线商店(例如数字内容商店116)可向被提供给用户获取的每个数字在线商店项目分配唯一标识符。
[0048]接下来,判断404可判定任何本地数据项是否匹配在线商店项目。这里,描述性信息中提供的一个或多个标识符可被利用来和与在在线商店处可用的在线商店项目相关联的标识符相比较。当判断404判定存在匹配时,该匹配表明本地数据项是从在线商店获取的、并具有匹配的标识符。在此情况下,一个或多个匹配的项目可通过关联到一个或多个相应的在线商店项目而添加406到云数据仓库。
[0049]或者,当判断404判定没有本地数据项匹配在线商店项目时,或者在存在一个或多个匹配是在块406之后,可请求408剩余本地数据项的散列值。这里,执行数据匹配过程400的计算设备(例如云服务器102)可从被激活的特定客户端设备请求散列值。判断410随后可判定是否接收到了所请求的散列值。当判断410判定尚未接收到所请求的散列值时,数据匹配过程400可等待所请求的散列值。
[0050]一旦判断410判定已接收到所请求的散列值,判断412就可判定这些散列值中的任何一个是否匹配远程云数据项的任何散列值。这里,散列值与从包含给定的本地数据项或与给定的本地数据项相关联的电子文件计算得出的数字标识符有关。散列值从而可用于标识相同的电子文件。作为示例,利用的散列值可产生于MD5散列算法。当判断412判定本地数据项的一个或多个散列值匹配远程云数据项的一个或多个散列值时,一个或多个相应的本地数据项可被识别为各自匹配云存储中已经提供的远程云数据项。因此,在此情况下,所述一个或多个匹配的项目可通过关联到一个或多个相应的远程云数据项而被添加414到云数据仓库。
[0051]另外,判断412没有与远程云数据项的散列值相匹配的散列值时,或者存在匹配项是在块414之后,数据匹配过程400可请求任何剩余本地数据项的指纹数据。判断418随后可判定是否接收到了所请求的指纹数据。当判断418判定没有接收到所请求的指纹数据时,数据匹配过程400可等待这样的数据。
[0052]一旦判断418判定已接收到所请求的指纹数据,判断420就可判定剩余本地数据项的任何指纹数据是否匹配已经驻留在云数据仓库中的远程云数据项的指纹数据。当判断420判定剩余本地数据项中的一个或多个的指纹数据确实匹配一个或多个相应的远程云数据项的指纹数据时,一个或多个匹配的项目可通过关联到相应的远程云数据项而被添加442到云数据仓库。当判断420判定没有指纹匹配,或者存在指纹匹配是在块442之后,数据匹配过程400可结束。
[0053]在图4A和4B所示的数据匹配过程400的实施例中,有三条不同的途径来提供已经在云数据仓库中可用的数据的匹配。第一匹配测试使用标识符(例如分配的标识符),第二匹配测试使用散列值,第三匹配测试利用指纹。如果利用这一系列匹配测试中的任何一个识别了匹配,则来自本地设备数据的相应数据项不需要被拷贝到云数据仓库,因为该数据已经驻留在云数据仓库。如果本地设备数据内的本地数据项中的一个或多个不能以任何方式匹配,这些本地数据项可被上传到云数据仓库(例如,图2B,块214)。
[0054]还应当注意,数据匹配过程400假定所有三个匹配阶段一般都利用。然而,应当认识到,如果所有本地数据项都已经被匹配,则不需要额外的匹配处理。换言之,如果所有本地数据项都已通过与在线商店项目的匹配或云数据项的散列值来匹配,那么就不需要请求并评估指纹数据来识别匹配。
[0055]图4A和4B所示的数据匹配过程400例如很适合用于匹配本地设备数据,比如媒体内容。媒体内容的示例包括:歌曲、视频、音频书、音乐视频、播客。然而,在一个实施例中,媒体内容包括关联的艺术作品的情况下,艺术作品的匹配和上传处理可单独执行。由于媒体内容(例如歌曲)的用户可被许可定制关联的艺术作品,因此给定媒体内容的艺术作品可能是依从于用户的。这样,单独处理媒体内容的艺术作品可维持支持用户对媒体内容的艺术作品的定制能力。
[0056]图5示出了根据一个实施例的艺术作品上传过程500的流程图。艺术作品上传过程500可操作来单独上传在被激活的特定客户端设备上提供的媒体内容所利用的艺术作品。艺术作品上传过程500首先检查艺术作品是否已经存在于云数据仓库,从而减少需要被上传到云数据仓库的数据量。
[0057]艺术作品上传过程500可请求502客户端设备上的艺术作品项的散列值。通常,客户端设备可存储多个媒体内容文件及其关联的艺术作品项。艺术作品项的散列值可在客户端设备被计算,然后被提供给执行艺术作品上传过程500的远程服务器计算机,例如云服务器102。在请求502 了散列值之后,判断504可判定是否接收到了所请求的散列值。当判断504判定没有接收到散列值时,艺术作品上传过程500可等待接收所请求的散列值。
[0058]—旦判断504判定已接收到了艺术作品项的散列值,判断506就可判定客户端设备的艺术作品项的任何散列值是否匹配在云数据仓库中已经提供的现有艺术作品的任何散列值。当判断506判定存在一个或多个匹配的散列值时,匹配的艺术作品项(与匹配的散列值相关联)可通过关联到相应的现有艺术作品来被添加508到云数据仓库。
[0059]另一方面,当判断506判定没有匹配的散列值时,艺术作品项被上传510到云数据仓库。另外,在块508之后,任何剩余的艺术作品项可被上传510到云数据仓库。剩余的艺术作品项是客户端设备的没有被发现匹配云数据仓库中的现有艺术作品的那些艺术作品项。应当注意,当客户端设备上的艺术作品项的所有散列值都匹配云数据仓库中的现有艺术作品时,不需要将任何艺术作品项从客户端设备上传510到云数据仓库。从客户端设备不上传、上传一些、或上传全部艺术作品项到云数据仓库之后,已上传510的艺术作品项可被关联512到云数据仓库中的相应内容。在艺术作品项被关联512到云数据仓库中的相应内容之后,艺术作品上传过程500可结束。
[0060]某些实施例的另一方面是将本地数据项与云数据项相匹配还可促进将用户数据升级到更高质量的数据项。作为示例,如果本地数据项被判定为匹配现有的云数据项,则不需要将本地数据项(或至少其内容)上传到云数据仓库。另外,在一些情况下,被认为匹配本地数据项的现有云数据项具有更高质量(例如,更高编码、高清晰度、更高分辨率等)。在这种情况下,云数据仓库中关于该用户的云数据可引用并利用具有更高质量的现有云项目。实际上,当参与云存储时,用户数据可被升级到更高质量。
[0061]某些实施例的另一方面是可直接与驻留在压缩盘(compact disc,⑶)上的数据项执行匹配。用户可获得包括一个或多个数字媒体资产——例如与歌曲有关的音频轨道——的CD。传统上,用户将把CD插入到操作媒体管理应用的计算机,然后发起导入操作来将所有音频轨道从CD导入到客户端设备(例如计算机)的电子存储中以便由媒体管理应用管理。这个导入也称为翻录,其是相当耗时的。另外,将这些音频轨道从⑶添加到客户端设备的本地数据项也还不会将它们提供到云数据仓库。因此,如果客户端设备参与云存储,则本地数据存储内的音频轨道必须被进一步处理以执行与已经在云存储处的现有资源的匹配或者到云存储的上传。因此,媒体管理应用可避免导入或翻录⑶以从⑶获取音频轨道。取而代之,客户端设备(例如媒体管理应用)可从CD获取标识信息,然后将该信息发送到云服务器。云服务器随后可操作以执行匹配过程来判定云存储是否已经有来自CD的音频轨道。如果是,云服务器只要通过与预先存在的音频轨道相关联就可以使音频轨道成为用户的云存储的一部分。有利地,这样的处理可避免对客户端设备的任何导入或翻录,同时还避免了执行散列和/或指纹操作等来执行其他类型的匹配检查。换言之,与图3所示的判断304类似,对CD的数据匹配过程可利用与CD相关联的标识符。该标识符可以是CD的唯一数字标识符或者该标识符可包括⑶内的数据项的特性。一旦云服务器匹配了⑶,⑶上的音频轨道就可被添加到用户的云存储(而不必上传内容数据),以后也可被用户的任何客户端设备所访问。
[0062]某些实施例的另一方面可提供用户的多个客户端设备之间的同步以及用户的驻留在云数据仓库处的内容的同步。同步操作在不同客户端设备和云数据仓库之间同步数据。根据一个实施例,实现方式可利用通知——例如推送通知或拉入通知——来把对其数据发生的改变或更新告知给其他设备。例如,如果新数据被添加到了客户端设备,则更新通知过程可操作以把在客户端设备发生的特定更新通知给适当的云服务器(例如云服务器102)。云服务器随后可使得云数据仓库被类似地更新。云服务器还可操作以把该更新通知给与同一注册用户相关联的其他客户端设备。
[0063]图6A是根据一个实施例的更新通知过程600的流程图。更新通知过程600例如是由服务器计算机——比如云服务器(例如云服务器102)——执行的处理。[0064]更新通知过程600可开始于判断602,判定是否接收到了更新通知。这里,更新通知可由客户端设备发送并被云服务器接收。当判断602判定没有接收到更新通知时,更新通知过程600可等待这样的通知。一旦判断602判定已接收到更新通知,更新通知所标识的更新就可用于更新与用户相关联的云数据仓库。具体地,可根据该更新通知更新604用户的云数据。另外,新的版本值可以分配606给更新用户的云数据。例如,用户的云数据可被称为库,并且每次该库被(例如通过通知或以其他方式)更新时,其就可以被分配以新的版本值。
[0065]接下来,判断608可判定是否通知其他用户设备。这里,假定客户端设备(例如发起了通知的客户端设备)的用户有其他用户设备,判断608可判定是否应当将该更新通知给其他用户设备(例如客户端设备)。当判断608判定要通知一个或多个其他用户设备时,向其他一个或多个用户设备中的每一个发送610更新通知。或者,当判断608判定没有其他用户设备要通知时,可绕过块610。块610之后,或者在其被绕过之后,更新通知过程600结束。
[0066]图6B是根据一个实施例的设备更新过程620的流程图。设备更新过程620例如由客户端设备执行。
[0067]设备更新过程620开始于判断622,判定是否检查更新。作为示例,执行设备更新过程620的客户端设备可周期性地、在登录到云服务器时、根据用户发起的请求、或者出于任何其他配置的原因,检查更新。当判断622判定当前不需要检查更新时,判断622使得设备更新过程622等待对检查更新的需要。另一方面,当判断622判定应当执行更新检查时,向云服务器发送624更新请求。接下来,判断622可判定是否从云服务器接收到了更新响应。这里,更新请求可询问云服务器:给定本地设备数据的当前状态,是否有对于客户端设备的任何更新。作为示例,更新请求可向云服务器提供驻留在客户端设备上的库(本地设备数据)的特定版本。云服务器随后可识别使驻留在客户端设备上的库的特定版本进入当前状态所需的特定更新。因此,更新响应可包括必要的信息,以使客户端设备能够使其自己变得最新。就此,判断626判定尚未接收到更新响应时,设备更新过程620可等待这样的响应。然而,一旦判断626判定已接收到更新响应,在更新响应中提供的或从更新响应得出的更新数据就可被与客户端设备处的现有本地数据(本地设备数据)相合并628。在更新数据已与现有本地数据相合并628以使得本地数据被更新之后,设备更新过程620结束。
[0068]某些实施例的另一方面是可在客户端设备呈现的图形用户界面。图形用户界面可允许客户端设备的用户经由云服务器与云存储(例如,云数据仓库或远程数据仓库)交互。在一个实施例中,图形用户界面可呈现用户的云存储内的数字资产的视图。例如,当在客户端设备的显示器上呈现时,视图可以是集成视图,在集成视图中,在客户端设备的本地存储中本地可用的那些数字资产在视觉上与从用户的云存储可用、但其内容未存储在本地的那些其他数字资产相区分。此外,对于从用户的云存储可用的那些其他数字资产,图形用户界面可提供用户可选择的控件,以发起从用户的云存储下载一个或多个数字资产到客户端设备的本地存储的请求。图形用户界面还可使得用户能够删除在客户端设备本地存储的数字资产(并且也从用户的云存储中删除,或者不从用户的云存储中删除)。
[0069]某些实施例的一个方面涉及管理对云数据存储的访问。云数据存储可由为各种用户存储数字数据的云数据仓库提供。可经由网络一例如因特网(或万维网)一使存储在云数据存储中的数字数据对各个用户可用。用户可存储在线购买的数字资产、从其他非在线手段获取的数字资产、或者用户的任何其他数字文件。经由云数据存储对数字数据的访问可限于认证用户、并且对每个用户限于有限数目的授权设备。
[0070]图7示出根据一个实施例的云访问管理系统700。云访问管理系统700判定特定用户是否能够使用特定客户端设备访问云数据仓库。这样做时,云访问管理系统700可利用各种不同状态来管理用户是否被许可访问云数据仓库。
[0071]云访问管理系统700首先可接收用户的要访问云数据仓库的请求702。由于云数据仓库支持许多不同用户的云数据存储,给定用户在云数据仓库中被分配其自己的数据存储。另外,要访问云数据仓库的请求702是用户经由特定客户端设备发起的。为了促进对云数据仓库的访问和与云数据仓库的交互,数据管理应用可在用户的特定客户端设备上操作。用户通常是该数据管理应用的注册用户,从而可“登录”以使得数据管理应用认出该用户。例如,用户可提供用户名和口令以“登录”到该数据管理应用。在一个实施例中,该数据管理应用是媒体管理应用。
[0072]在状态704,云访问管理系统700可评估用户是否登录到了数据管理应用中。如果用户已登录,云访问管理系统700可前进到状态706,该状态中可判定用户利用的特定客户端设备是否已被分配给该用户。在此实施例中,给定用户仅被许可从至多预定有限数目的客户端设备(例如电子设备)利用云数据仓库。因此,在状态706,判定用户所利用的特定客户端设备是否已被云访问管理系统700分配给该用户。
[0073]当在状态706判定该特定设备已被分配给该用户时,云访问管理系统700可进到状态708,在该状态中用户通过使用该特定客户端设备能够进行云访问。另一方面,在状态706,当判定用户所利用的特定客户端设备没有被分配给该用户时,云访问管理系统700可进到状态710,在该状态中用户能够确立该特定客户端设备到该用户的分配。
[0074]在状态710,如果用户此时不想要将该特定客户端设备分配给该用户,则云访问管理系统700进到状态712,断定用户经由该特定客户端设备不能进行云访问。换言之,用户不被许可使用该特定客户端设备访问云数据仓库。此外,如果用户没有登录到数据管理应用中,云访问管理系统700也可从状态704直接进到状态712,在此情形中对云数据仓库的访问也被拒绝。
[0075]另一方面,在状态710,如果用户想要将该特定设备分配给该用户以经由该特定客户端设备许可对云数据仓库的访问,云访问管理系统700可进到步骤714。在步骤714,可判定该特定客户端设备当前是否被阻止分配。这里,在一个实施例中,如果客户端设备先前在预定的一段时间内已被分配,可限制或阻止其被分配。例如,对于所有客户端设备可确立90天阻止时段,以使得它们在90天时段内只能被分配一次。任何情况下,如果该特定客户端设备被阻止,云访问管理系统700可进到状态712,在该状态中用户经由该特定设备不能进行对云数据仓库的云访问。
[0076]或者,如果在步骤714判定该特定设备未被阻止,云访问管理系统700可进到状态716,在该状态中可判定该特定客户端设备是否有空隙可用。这里,应当理解,给定用户具有可被分配给客户端设备的预定有限数目的可用空隙。在状态716,可判定是否有可用空隙能够被分配给现在正被用户利用的特定客户端设备。如果在状态716判定没有可用空隙,云访问管理系统700可进到状态712,并且对云数据仓库的云访问不可用。另一方面,如果在状态716判定有可用空隙,云访问管理系统700可进到状态718,在该状态中该特定客户端设备被分配到该可用空隙。在该特定客户端设备已被分配到可用空隙之后,云访问管理系统700可进到状态708,许可使用该特定客户端设备的用户对云数据仓库的云访问。
[0077]图8A和8B是根据一个实施例的云访问过程800的流程图。云访问过程800可由管理对云数据仓库的访问或利用的客户端设备——例如服务器计算机——执行。
[0078]云访问过程800可开始于判断802,判定特定客户端设备的用户是否已“登录”到云数据仓库管理器中。“登录”例如是用户利用用户名和/或口令登录到先前确立的用户账户。当判断802判定用户还没有登录时,用户不能获得对云数据仓库的访问。因此,用户的云资源不可用804。在块804之后,云访问过程800可返回重复判断802和随后的块,出于访问云数据仓库的目的,对用户状态和设备状态的连续监视持续进行。
[0079]另一方面,当判断802判定用户已“登录”时,判断806判定特定的客户端设备是否已被分配给用户。当判断806判定该特定客户端设备已经被分配给用户时,使用户的云资源经由该特定客户端设备对用户可用808。在块808之后,云访问过程800可返回重复判断802和随后的块,出于访问云数据仓库的目的,对用户状态和设备状态的连续监视持续进行。
[0080]或者,当判断806判定该特定客户端设备没有被分配给用户时,使得810用户的云资源不可用。然而,由于用户登录了,所以云访问过程800可许可用户利用其他非云服务。例如,如图8A所示,可以使得812重下载对该用户可用(甚至下载到该特定客户端设备)。这里,虽然用户不被许可访问云数据仓库,但用户有资格接收该用户先前获取的数字数据的重下载。重下载的可用性可限于先前从在线数字资产商店(例如,与云数据仓库有关连的在线数字资产商店)购买的那些数字资产。
[0081]接下来,判断814可判定该特定客户端设备是否被分配给用户。当判断814判定此时不分配该特定客户端设备时,云访问过程800可返回重复判断802。或者,当判断814判定此时要分配该特定客户端设备时,可执行额外处理来判定此时将该特定客户端设备分配给用户是否适当。
[0082]根据一个实施例的额外处理在图8B示出。具体地,判断816可判定该特定客户端设备是否被阻止。如果特定客户端设备最近被分配给另一用户,则该特定客户端设备可被阻止。例如,在预定一段时间(例如90天)中可阻止客户端设备被分配(S卩,重分配)。当判断816判定该特定客户端设备被阻止分配时,云访问过程800进行操作以告知818用户:该特定客户端设备暂时被阻止分配。或者,当判断816判定该特定客户端设备未被阻止分配时,判断820可判定是否存在要分配的可用空隙。当判断820判定没有可用空隙时,用户可被告知822没有空隙可用,从而特定客户端设备此时不能被分配。在一种实现方式中,可向用户提供如下机会:解除分配(当前被分配的)另一设备,以空出可用于该特定客户端设备的空隙。另一方面,当判断820判定有空隙可用时,该特定客户端设备可被分配812到可用空隙。在块818、822和824之后,云访问过程800可进而返回到判断802,使得云访问过程800可重复,并再次评估是许可、还是拒绝用户经由特定客户端设备对云数据仓库的访问。
[0083]考虑到前述内容,将容易知道,根据一个或多个实施例提供的电子设备例如可以是计算设备(例如个人计算机)、移动电话(例如蜂窝电话、智能电话)、个人数字助理(PDA)、媒体播放器(例如音乐、视频、游戏、图像)、媒体存储设备、相机等。电子设备还可以是将这些设备功能中的两个或更多个结合到单个设备中的多功能设备。便携式电子设备可支持各种类型的网络通信。
[0084]便携式电子设备可以以手持式电子设备的形式提供。术语“手持” 一般可以指具有小到足以用一只手舒适握持的外形参数的电子设备。手持式电子设备可针对单手操作或双手操作。单手操作中,单只手既支撑设备又在使用期间与用户界面执行操作。在双手操作中,一只手支撑设备,另一只手在使用期间与用户界面执行操作,或者两支手都支撑设备并在使用期间执行操作。在一些情况下,手持式电子设备的大小被设定为适于放入用户口袋。具有适于口袋的大小,用户不必直接携带设备,因此设备可被带到用户前往的几乎任何地方(例如,用户不会因携带大的、笨重的且经常沉重的设备而受到限制)。
[0085]数字媒体资产(例如数字媒体项)例如可与视频项(例如视频文件或电影)、音频项(例如音频文件或音频轨道,比如歌曲、音乐专辑、播客或音频书)或者图像项(例如照片)有关。数字媒体资产还可包括文本或多媒体文件或者被文本或多媒体文件所补充。
[0086]关于数字资产递送的额外信息在以下申请中提供:(i)通过引用并入在此的2011年 3 月 9 日递交的题为 “INTELLIGENT DELIVERY AND ACQUISITION OF DIGITAL ASSETS”的61/451,057号美国临时专利申请;以及(ii)特此通过引用并入在此的2007年9月4日递交的题为 “Digital Asset Delivery to Different Devices” 的 11/849,711 号美国专利申请,并且其相应的美国专利公布2009/0063301A1也特此通过引用被并入在此。
[0087]以上描述的本发明的各种方面、特征、实施例或实现方式可被单独使用或按各种组合使用。
[0088]本发明优选由软件、硬件或者硬件和软件的组合来实现。本发明也可实现为计算机可读介质上的计算机可读代码。计算机可读介质是任何能够存储以后可被计算机系统读取的数据的存储设备。计算机可读介质的示例一般包括只读存储器和随机访问存储器。计算机可读介质的更具体示例是有形的(并且非暂态的)并且包括闪存、EEPROM存储器、存储卡、⑶-ROM、DVD、硬盘驱动器、磁带和光数据存储设备。计算机可读介质还可分布在由网络耦合的计算机系统上,使得计算机可读代码被以分布方式存储和执行。
[0089]本发明的各种实施例的优点是很多的。不同的方面、实施例或实现方式可以一但不是必须要一产生以下优点中的一个或多个。至少一些实施例的一个优点是在不同用户之间可共享共同的数字资产,从而可以避免相同数字资产的多次上传和存储。至少一些实施例的另一优点是可通过使用可分配的空隙来限制(或管制)对能够访问用户的云资源的用户设备的限制。至少一些实施例的另一优点是用户的多个客户端设备的同步可针对云存储来同步,从而可在用户的多个客户端设备之间同步。
[0090]本发明的许多特征和优点从说明书中清楚显现。另外,由于本领域技术人员容易想到许多修改和改变,所以本发明不应限于所图示和描述的确切构造和操作。因此,可以诉诸落在本发明范围内的所有适当的修改和等同。
【权利要求】
1.一种将客户端设备关联到远程数据仓库的方法,该方法包括: 接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备; 判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述远程数据仓库中; 请求上传所述客户端设备上的本地设备数据的那些未被判定为已经存在于所述远程数据仓库中的数据项; 从所述客户端设备接收与所述客户端设备上的本地设备数据的未被判定为已经存在于所述远程数据仓库中的数据项相对应的上传数据;以及 将所述上传数据添加到所述远程数据仓库的所述远程数据存储设备。
2.权利要求1所述的方法,其中所述本地设备数据包括多个本地数据项,以及 其中所述判定包括: 尝试将所述本地数据项之中的至少一个的标识符与已经存在于所述远程数据仓库处的至少一个远程数据项的标识符相匹配。
3.权利要求2所述的方法,其中所述标识符是字母数字值。
4.权利要求2所述的方法,其中所述标识符是由管理所述远程数据仓库的远程服务器计算机分配的。
5.权利要求1所述的方法,其中所述本地设备数据包括多个本地数据项,以及 其中所述判定包括: 尝试将所述本地数据项之中的至少一个的散列值与已经存在于所述远程数据仓库处的至少一个远程数据项的散列值相匹配。
6.权利要求1所述的方法,其中所述本地设备数据包括多个本地数据项,以及 其中所述判定包括: 尝试将所述本地数据项之中的至少一个的数字指纹与已经存在于所述远程数据仓库处的至少一个远程数据项的数字指纹相匹配。
7.权利要求1所述的方法,其中所述判定包括: 进行第一尝试,尝试将本地数据项的标识符与已经存在于所述远程数据仓库处的远程数据项的标识符相匹配; 倘若所述本地数据项通过标识符没有被匹配,则进行第二尝试,尝试将所述本地数据项的散列值与已经存在于所述远程数据仓库处的远程数据项的散列值相匹配;以及 倘若所述本地数据项通过标识符或散列值没有被匹配,则进行第三尝试,尝试将所述本地数据项的数字指纹与已经存在于所述远程数据仓库处的远程数据项的数字指纹相匹配。
8.一种非暂态计算机可读介质,至少包括存储在其中的用于将客户端设备关联到远程数据仓库的计算机程序代码,包括: 用于接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供远程数据存储设备; 用于判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述远程数据仓库中的计算机程序代码;用于请求上传所述客户端设备上的本地设备数据的那些未被判定为已经存在于所述远程数据仓库中的数据项的计算机程序代码; 用于从所述客户端设备接收与所述客户端设备的本地设备数据的未被判定为已经存在于所述远程数据仓库中的数据项相对应的上传数据的计算机程序代码;以及 用于将所述上传数据添加到所述远程数据仓库的所述远程数据存储设备的计算机程序代码。
9.权利要求8所述的非暂态计算机可读介质,其中所述本地设备数据包括多个本地数据项,以及 其中所述用于判定的计算机程序代码包括: 用于尝试将所述本地数据项之中的至少一个的标识符与已经存在于所述远程数据仓库处的至少一个远程数据项的标识符相匹配的计算机程序代码。
10.权利要求8所述的非暂态计算机可读介质,其中所述本地设备数据包括多个本地数据项,以及 其中所述用于判定的计算机程序代码包括: 用于尝试将所述本地数据项之中的至少一个的散列值与已经存在于所述远程数据仓库处的至少一个远程数据项的散列值相匹配的计算机程序代码。
11.权利要求8所述的非暂态计算机可读介质,其中所述本地设备数据包括多个本地数据项,以及 其中所述用于判定的计算机程序代码包括: 用于尝试将所述本地数据项之中的至少一个的数字指纹与已经存在于所述远程数据仓库处的至少一个远程数据项的数字指纹相匹配的计算机程序代码。
12.权利要求8所述的非暂态计算机可读介质,其中所述用于判定的计算机程序代码包括: 用于进行第一尝试以尝试将本地数据项的标识符与已经存在于所述远程数据仓库处的远程数据项的标识符相匹配的计算机程序代码; 用于倘若所述本地数据项通过标识符没有被匹配则进行第二尝试以尝试将所述本地数据项的散列值与已经存在于所述远程数据仓库处的远程数据项的散列值相匹配的计算机程序代码;以及 用于倘若所述本地数据项通过标识符或散列值没有被匹配则进行第三尝试以尝试将所述本地数据项的数字指纹与已经存在于所述远程数据仓库处的远程数据项的数字指纹相匹配的计算机程序代码。
13.一种提供客户端设备经由网络可访问的基于网络的仓库的系统,该系统包括: 云存储设备,被配置为为多个账户持有者存储数字数据,授权的客户端设备经由所述网络可访问所述云存储设备;以及 操作性地连接到所述云存储设备的至少一个云服务器,所述至少一个云服务器被配置为: 接收来自客户端设备的试图与所述基于网络的仓库关联的激活请求; 判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述基于网络的仓库的云存储设备中;请求上传所述客户端设备的本地设备数据的那些未被判定为已经存在于所述基于网络的仓库的云存储设备中的数据项; 从所述客户端设备接收与所述客户端设备的本地设备数据的未被判定为已经存在于所述基于网络的仓库的云存储设备中的数据项相对应的上传数据;以及将所述上传数据添加到所述基于网络的仓库的云存储设备。
14.权利要求13所述的系统,其中所述本地设备数据包括多个本地数据项,以及 其中为了判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述远程数据仓库的云存储设备中,所述至少一个云服务器还被配置为尝试将所述本地数据项之中的至少一个的标识符与已经存在于所述基于网络的仓库处的至少一个远程数据项的标识符相匹配。
15.权利要求14所述的系统,其中所述标识符是字母数字值。
16.权利要求15所述的系统,其中所述标识符是由所述至少一个云服务器分配的。
17.权利要求13所述的系统,其中所述本地设备数据包括多个本地数据项,以及 其中为了判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述基于网络的仓库的云存储设备中,所述至少一个云服务器还被配置为尝试将所述本地数据项之中的至少一个的散列值与已经存在于所述基于网络的仓库处的至少一个远程数据项的散列值相匹配。
18.权利要求13所述的系统,其中所述本地设备数据包括多个本地数据项,以及 其中为了判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述基于网络的仓库的云存储设备中,所述至少一个云服务器还被配置为尝试将所述本地数据项之中的至少一个的数字指纹与已经存在于所述基于网络的仓库处的至少一个远程数据项的数字指纹相匹配。
19.权利要求13所述的系统,其中为了判定存储在所述客户端设备上的任何本地设备数据是否已经存在于所述基于网络的仓库的云存储设备中,所述至少一个云服务器还被配置为: 进行第一尝试,尝试将本地数据项的标识符与已经存在于所述基于网络的仓库处的远程数据项的标识符相匹配; 倘若所述本地数据项通过标识符没有被匹配,则进行第二尝试,尝试将所述本地数据项的散列值与已经存在于所述基于网络的仓库处的远程数据项的散列值相匹配;以及倘若所述本地数据项通过标识符或散列值没有被匹配,则进行第三尝试,尝试将所述本地数据项的数字指纹与已经存在于所述远程数据仓库处的远程数据项的数字指纹相匹配。
20.一种判定数字数据项是否匹配驻留在远程数据仓库处的另一数字数据项的方法,该方法包括: 进行第一尝试,尝试将本地数字数据项的标识符与已经存储在所述远程数据仓库处的远程数字数据项的标识符相匹配; 当本地数字数据项的标识符匹配远程数字数据项之一的标识符时,将所述本地数字数据项视为与所述远程数字数据项相同; 倘若本地数字数据项通 过经由标识符匹配的第一尝试没有匹配,则进行第二尝试,尝试将本地数字数据项的散列值与已经存储在所述远程数据仓库处的远程数字数据项的散列值相匹配; 当本地数字数据项的标识符匹配远程数字数据项之一的散列值时,将所述本地数字数据项视为与所述远程数字数据项相同; 倘若本地数据项通过经由标识符匹配的第一尝试、或者通过经由散列值匹配的第二尝试都没有被匹配,则进行第三尝试,尝试将本地数字数据项的数字指纹与已经存储在所述远程数据仓库处的远程数字数据项的数字指纹相匹配;以及 当本地数字数据项的标识符匹配远程数字数据项之一的数字指纹时,将所述本地数字数据项视为与所述远程数字数据项相同。
21.一种将客户端设备关联到远程数据仓库的方法,该方法包括: 接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备; 请求所述客户端设备上的艺术作品项的散列值; 判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值;以及 避免上传所述客户端设备上的艺术作品项之中的那些被判定为已经被保持在所述远程数据仓库中的艺术作品项。
22.权利要求21所述的方法,其中所述客户端设备与用户账户相关联,并且所述方法包括: 将所述客户端设备上的艺术作品项之中的那些被判定为已经被保持在所述远程数据仓库中的艺术作品项关联到所述用户账户。
23.权利要求22所述的方法,其中所述方法包括: 将所述客户端设备上的艺术作品项之中的被判定为未被保持在所述远程数据仓库中的那些艺术作品项上传到所述远程数据仓库。
24.权利要求23所述的方法,其中所述方法包括: 将已被上传到所述远程数据仓库中的那些艺术作品项关联到所述用户账户。
25.权利要求21所述的方法,其中所述方法包括: 将所述客户端设备上的艺术作品项之中的被判定为未被保持在所述远程数据仓库中的那些艺术作品项上传到所述远程数据仓库。
26.权利要求25所述的方法,其中所述客户端设备与用户账户相关联,并且所述方法包括: 将已被上传到所述远程数据仓库中的那些艺术作品项关联到所述用户账户。
27.权利要求21所述的方法,其中所述方法包括: 判定存储在所述客户端设备上的多个内容项之中的任何一个是否已经存在于所述远程数据仓库中; 请求上传存储在所述客户端设备上的内容项之中的那些未被判定为已经存在于所述远程数据仓库中的内容项; 从所述客户端设备接收与存储在所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的内容项相对应的上传数据;以及将所述上传数据添加到所述远程数据仓库的所述远程数据存储设备。
28.权利要求27所述的方法,其中存储在所述客户端设备上的内容项包括多个本地内容项,以及 其中所述判定包括: 尝试将所述本地内容项之中的至少一个的标识符与已经存在于所述远程数据仓库处的至少一个远程内容项的标识符相匹配。
29.权利要求28所述的方法,其中所述判定包括: 尝试将所述本地内容项之中的至少一个的散列值与已经存在于所述远程数据仓库处的至少一个远程内容项的散列值相匹配。
30.权利要求29所述的方法,其中所述判定包括: 尝试将所述本地内容项之中的至少一个的数字指纹与已经存在于所述远程数据仓库处的至少一个远程内容项的数字指纹相匹配。
31.一种将客户端设备关联到远程数据仓库的方法,该方法包括: 接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求,所述远程数据仓库提供远程数据存储设备; 请求所述客户端设备上的艺术作品项的散列值; 判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值;以及 避免上传所述客户端设备上的艺术作品项之中的那些被判定为已经被保持在所述远程数据仓库中的艺术作品项。
32.—种将客户端设备关联到远程数据仓库的方法,该方法包括: 接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求,所述远程数据仓库提供对于多个数字媒体资产的远程数据存储; 判定存储在所述客户端设备上的任何本地数字媒体资产是否已经存在于所述远程数据仓库中,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述判定分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于所述远程数据仓库处;以及 请求从所述客户端设备上传数据,所请求的要上传数据包括:(i)所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个内容项,以及(ii)所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个艺术作品项。
33.权利要求32所述的方法,其中所述方法包括: 从所述客户端设备接收与所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的本地数字媒体资产相对应的所请求数据的上传;以及 将上传数据添加到所述远程数据仓库的所述远程数据存储。
34.权利要求32所述的方法,其中所述判定包括: 请求每个本地数字媒体资产在所述客户端设备上的艺术作品项的散列值; 判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值;以及 如果判定所请求的散列值匹配已经被保持在所述远程数据仓库中的现有艺术作品项的相应散列值,则断定各个本地数字媒体资产在所述客户端设备上的艺术作品项中的某些艺术作品项已经被保持在所述远程数据仓库中。
35.权利要求32所述的方法, 其中每个本地数字媒体资产的存储数据还包括元数据项,以及其中所述判定分别判定每个本地数字媒体资产的内容项、元数据项和艺术作品项是否已经存在于所述远程数据仓库,以及其中所述请求上传包括: 请求从所述客户端设备上传所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个元数据项的数据。
36.权利要求35所述的方法,其中所述判定包括: 请求每个本地数字媒体资产在所述客户端设备上的艺术作品项的散列值; 判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值;以及 如果判定所请求的散列值匹配已经被保持在所述远程数据仓库中的现有艺术作品项的相应散列值,则断定各个本地数字媒体资产在所述客户端设备上的艺术作品项中的某些艺术作品项已经被保持在所述远程数据仓库中。
37.一种非暂态计算机可读介质,至少包括存储在其上的将客户端设备关联到远程数据仓库的计算机程序代 码,所述非暂态计算机可读介质包括: 用于接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供远程数据存储设备; 用于请求所述客户端设备上的艺术作品项的散列值的计算机程序代码; 用于判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值的计算机程序代码;以及 用于避免上传所述客户端设备上的艺术作品项之中的那些被判定为已经被保持在所述远程数据仓库中的艺术作品项的计算机程序代码。
38.一种非暂态计算机可读介质,至少包括存储在其上的将客户端设备关联到远程数据仓库的计算机程序代码,所述非暂态计算机可读介质包括: 用于接收来自所述客户端设备的试图与所述远程数据仓库关联的激活请求的计算机程序代码,所述远程数据仓库提供对于多个数字媒体资产的远程数据存储; 用于判定存储在所述客户端设备上的任何本地数字媒体资产是否已经存在于所述远程数据仓库中的计算机程序代码,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述用于判定的计算机程序代码分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于所述远程数据仓库处;以及 用于请求从所述客户端设备上传数据的计算机程序代码,所请求的上传数据包括:(i)所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个内容项,以及(ii )所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个艺术作品项。
39.权利要求38所述的非暂态计算机可读介质,其中所述非暂态计算机可读介质包括:用于从所述客户端设备接收与所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的本地数字媒体资产相对应的所请求数据的上传的计算机程序代码;以及用于将上传数据添加到所述远程数据仓库的所述远程数据存储的计算机程序代码。
40.权利要求38所述的非暂态计算机可读介质,其中所述判定包括: 用于请求每个本地数字媒体资产在所述客户端设备上的艺术作品项的散列值的计算机程序代码; 用于判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值的计算机程序代码;以及 用于如果判定所请求的散列值匹配已经被保持在所述远程数据仓库中的现有艺术作品项的相应散列值,则断定各个本地数字媒体资产在所述客户端设备上的艺术作品项中的某些艺术作品项已经被保持在所述远程数据仓库中的计算机程序代码。
41.权利要求38所述的非暂态计算机可读介质, 其中每个本地数字媒体资产的存储数据还包括元数据项,以及其中所述用于判定的计算机程序代码分别判定每个本地数字媒体资产的内容项、元数据项和艺术作品项是否已经存在于所述远程数据仓库处,以及其中所述用于请求上传的计算机程序代码包括: 用于请求从所述客户端设备上传所述客户端设备上的未被判定为已经存在于所述远程数据仓库中的一个或多个元数据项的数据的计算机程序代码。
42.权利要求41所述的非暂态计算机可读介质,其中所述用于判定的计算机程序代码包括: 用于请求每个本地数字媒体资产在所述客户端设备上的艺术作品项的散列值的计算机程序代码; 用于判定任何所请求的散列值是否匹配已经被保持在所述远程数据仓库中的现有艺术作品项的散列值的计算机程序代码;以及 用于如果判定所请求的散列值匹配已经被保持在所述远程数据仓库中的现有艺术作品项的相应散列值,则断定各个本地数字媒体资产在所述客户端设备上的艺术作品项中的某些艺术作品项已经被保持在所述远程数据仓库中的计算机程序代码。
43.一种提供客户端设备经由网络可访问的基于网络的仓库的系统,该系统包括: 云存储设备,被配置为为多个账户持有者存储数字数据,授权的客户端设备经由所述网络可访问所述云存储设备;以及 操作性地连接到所述云存储设备的至少一个云服务器,所述至少一个云服务器被配置为: 接收来自客户端设备的试图与所述基于网络的仓库关联的激活请求,所述基于网络的仓库提供对于多个数字媒体资产的远程数据存储; 判定存储在所述客户端设备上的任何本地数字媒体资产是否已经存在于所述基于网络的数据仓库中,其中每个本地数字媒体资产的存储数据至少包括内容项和艺术作品项,并且所述判定分别判定每个本地数字媒体资产的内容项和艺术作品项是否已经存在于所述基于网络的仓库处;以及 请求从所述客户端设备上传数据,所请求的上传数据包括:(i)所述客户端设备上的未被判定为已经存在于所述基于网络的仓库中的一个或多个内容项,以及(ii)所述客户端设备上的未被判定为已 经存在于所述基于网络的仓库中的一个或多个艺术作品项。
【文档编号】G06F17/30GK103582885SQ201280027140
【公开日】2014年2月12日 申请日期:2012年6月4日 优先权日:2011年6月3日
【发明者】J·L·罗宾, A·瓦蒂基, P·高迪尔, T·阿尔西娜, L·C·纽曼, S·B·凯利, A·贾瓦, P·米拉施迪, M·姆勒, E·M·维罗萨伯, A·谢诺伊, O·曼尼可卡姆, S·S·格蒂基安, M·K·楚 申请人:苹果公司