《分布式文件存储的系统和方法.pdf》由会员分享,可在线阅读,更多相关《分布式文件存储的系统和方法.pdf(17页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102904922 A (43)申请公布日 2013.01.30 C N 1 0 2 9 0 4 9 2 2 A *CN102904922A* (21)申请号 201210172143.1 (22)申请日 2012.05.29 13/191,321 2011.07.26 US H04L 29/08(2006.01) G06F 17/30(2006.01) (71)申请人宏伍工作室公司 地址美国加利福尼亚州 (72)发明人马克克恩 乔恩奥利克 戴夫尼克德尔 (74)专利代理机构北京律盟知识产权代理有限 责任公司 11287 代理人章蕾 (54) 发明名称 分布式文件存储。
2、的系统和方法 (57) 摘要 本发明中提供用于分布式文件存储的系统和 方法。示范性方法可包含:将文件划分成若干部 分;将所述部分中的一者或一者以上分布到多个 客户端装置的第一子集中的每一者,以便跨越所 述多个客户端装置的所述第一子集分布所述文件 的所有部分,所述多个客户端装置的所述第一子 集中的每一者具有分配给网络服务器的存储空 间;以及在确定当前可用于所述网络服务器的部 分的实际量低于阈值量后,即刻将所述文件的所 述部分重新分布到所述多个客户端装置的第二子 集,所述第二子集经确定具有分配给所述网络服 务器的存储空间。 (30)优先权数据 (51)Int.Cl. 权利要求书3页 说明书9页 附。
3、图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 9 页 附图 4 页 1/3页 2 1.一种用于管理跨越多个客户端装置的文件的分布的方法,所述方法包括: 通过网络服务器将文件划分成若干部分; 将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者, 以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端 装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及 在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的 所述部分重新分布到所述多个客户端装置的第二子集,所述第二子。
4、集经确定具有分配给所 述网络服务器的存储空间。 2.根据权利要求1所述的方法,其中在确定当前可用于所述网络服务器的部分的实 际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第三子 集,所述第三子集经确定具有分配给所述网络服务器的存储空间。 3.根据权利要求1所述的方法,其进一步包括监视所述多个客户端装置的所述第一子 集中的每一者,以确定一个或一个以上部分已分布到的所述多个客户端装置的所述第一子 集中的每一者是否当前使得所述文件的所述一个或一个以上部分可用于所述网络服务器。 4.根据权利要求1所述的方法,其进一步包括: 搜集已分布到所述多个客户端装置的所述第一子集和所述第。
5、二子集中的至少一者的 所述文件的部分; 在所述网络服务器处从所述所搜集部分组合所述文件;以及 将所述所组合文件提供到通信地耦合到所述网络服务器的一个或一个以上客户端装 置。 5.根据权利要求1所述的方法,其中分布进一步包含: 借助于小波变换算法对所述文件进行变换编码以产生多个系数; 将所述系数聚集成多个部分;以及 跨越所述多个客户端装置的所述第一子集分布所述多个部分。 6.根据权利要求5所述的方法,其进一步包括将所述小波变换算法划分成若干分段且 将所述分段分布到一个或一个以上客户端装置。 7.根据权利要求6所述的方法,其进一步包括通过以下操作组合所述经小波变换的文 件: 通过获得分布到一个或一。
6、个以上客户端装置的所述分段组合所述算法; 获得跨越所述多个客户端装置的所述第一子集分布的所述多个部分; 根据所述小波变换算法从所述所获得部分重新组合所述系数;以及 使所述系数量化且编码所述系数以产生所述经小波变换的文件。 8.根据权利要求7所述的方法,在组合所述经小波变换的文件之前,确定是否通过所 述多个客户端装置的所述第一子集使得阈值量的部分可用于供所述网络服务器使用;在使 得所述阈值量的部分可用的情况下,组合所述经小波变换的文件;以及在未使得所述阈值 量的部分可用的情况下,将所述部分重新分布到所述多个客户端装置的所述第二子集。 9.根据权利要求1所述的方法,其中所述第二子集包含所述第一子集。
7、的至少一部分。 10.一种用于管理跨越多个客户端装置的文件的分布的网络服务器,所述网络服务器 包括: 权 利 要 求 书CN 102904922 A 2/3页 3 存储器,其用于存储用于管理跨越多个客户端装置的文件的分布的可执行指令; 以及 处理器,其经配置以执行存储于所述存储器中的所述指令,所述指令包含: 文件分离器模块,其经配置以将文件划分成若干部分; 文件分配模块,其经配置以将所述部分中的一者或一者以上分布到所述多个客户端装 置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的 所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的 存储。
8、空间;以及 在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,所述文件分配模块 进一步经配置以即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集, 所述第二子集经确定具有分配给所述网络服务器的存储空间。 11.根据权利要求10所述的网络服务器,其中在确定当前可用于所述网络服务器的部 分的所述实际量低于阈值量后,所述文件分配模块经配置以即刻将所述文件的所述部分重 新分布到所述多个客户端装置的第三子集,所述第三子集经确定具有分配给所述网络服务 器的存储空间。 12.根据权利要求10所述的网络服务器,其中所述网络服务器进一步包含分析模块, 所述分析模块经配置以监视与所述多个客户端。
9、装置的所述第一子集中的每一者相关联的 资源分配应用程序,以确定一个或一个以上部分已分布到的所述多个客户端装置的所述第 一子集中的每一者是否当前使得所述文件的所述一个或一个以上部分可用于所述网络服 务器。 13.根据权利要求12所述的网络服务器,其中所述资源分配应用程序经配置以为所述 网络服务器提供可用资源分配数据,所述可用资源分配数据包含可用于所述网络服务器的 所分配资源的量。 14.根据权利要求13所述的网络服务器,其中由所述文件分配模块进行的到所述多个 客户端装置的所述第一子集中的每一者的部分的所述分布是基于通过所述多个客户端装 置的所述第一子集而使得可用于所述网络服务器的所分配资源的所述。
10、量。 15.根据权利要求14所述的网络服务器,其中使得可用于所述网络服务器的所分配资 源的量是终端用户界定的。 16.根据权利要求10所述的网络服务器,其中所述网络服务器进一步包含文件组合模 块,所述文件组合模块经配置以: 搜集已分布到所述多个客户端装置的所述第一子集和所述第二子集中的至少一者的 所述文件的部分; 在所述网络服务器处从所述所搜集部分组合所述文件;以及 将所述所组合文件提供到通信地耦合到所述网络服务器的一个或一个以上客户端装 置。 17.根据权利要求10所述的网络服务器,其中所述文件分离器模块进一步经配置以: 借助于小波变换算法对所述文件进行变换编码以产生多个系数;以及 将所述系。
11、数聚集成多个部分; 跨越所述多个客户端装置的所述第一子集分布所述多个部分。 权 利 要 求 书CN 102904922 A 3/3页 4 18.根据权利要求17所述的网络服务器,其中所述文件分离器模块进一步经配置以将 所述小波变换算法划分成若干分段且所述文件分离器模块经配置以跨越所述多个客户端 装置的所述第一子集分布所述分段。 19.根据权利要求18所述的网络服务器,其进一步包括文件组合模块,所述文件组合 模块经配置以通过以下操作重新组合所述经小波变换的文件: 通过获得分布到一个或一个以上客户端装置的所述分段组合所述算法; 获得跨越所述多个客户端装置的所述第一子集分布的所述部分; 根据所述小波。
12、变换算法从所述所获得部分重新组合所述系数;以及 使所述系数量化且编码所述系数以产生所述经小波变换的文件。 20.根据权利要求19所述的网络服务器,其进一步包括分析模块,所述分析模块经配 置以: 确定所述阈值量的部分是否可用;以及 在所述阈值量的部分不可用的情况下,将所述部分重新分布到所述多个客户端装置的 所述第二子集。 21.根据权利要求20所述的网络服务器,其中所述分析模块进一步经配置以确定是 否阈值量的关键部分可用于所述网络服务器,且在确定当前可用于所述网络服务器的关键 部分的实际量低于阈值量后,所述文件分配模块即刻将所述文件的所述部分重新分布到所 述多个客户端装置的第二子集,所述第二子集。
13、经确定具有分配给所述网络服务器的存储空 间。 22.根据权利要求21所述的网络服务器,其中所述第二子集包含所述第一子集的至少 一部分。 23.一种上面体现有计算机程序的非暂时性计算机可读存储媒体,所述计算机程序可 由计算系统中的处理器执行以执行用于管理跨越多个客户端装置的文件的分布的方法,所 述方法包括: 通过网络服务器将文件划分成若干部分; 将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者, 以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端 装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及 在确定当前可用于所述网络服务。
14、器的部分的实际量低于阈值量后,即刻将所述文件的 所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所 述网络服务器的存储空间。 权 利 要 求 书CN 102904922 A 1/9页 5 分布式文件存储的系统和方法 技术领域 0001 本发明技术一般来说涉及分布式计算,且更具体来说,但并非作为限制,涉及管理 跨越多个客户端装置的文件的分布的系统和方法。 背景技术 0002 跨越计算机网络的图像文件的存储和公布为普遍存在的功能性。举例来说,基于 网络的文件存储系统允许终端用户上载、存储、管理图像文件且甚至在远端编辑图像文件。 这些基于网络的存储系统也为终端用户提供公布。
15、图像文件以及与其它人共享图像文件的 能力。当然,仅围绕为终端用户提供基于网络的图像存储库(在基于网络的图像存储库中, 终端用户可与其它人共享图像文件)的概念建立整个基于网络的服务。 0003 虽然图像文件的存储为许多基于网络的文件服务的共同特征,但支持这些功能性 所必要的存储资源非常昂贵,这是因为图像文件的大小常常较大。因而,这些基于网络的服 务中的一些服务使用各种压缩技术,压缩技术试图使由终端用户上载的图像文件的大小缩 小。不幸的是,将图像文件压缩越多以减小图像文件的大小,损失图像质量的趋势越增加。 另外,甚至经压缩图像文件也可能相对较大(取决于图像文件的原始大小和所使用的压缩 技术)。 发。
16、明内容 0004 本发明技术的系统和方法是针对跨越多个客户端装置的分布式存储以及分布式 文件的利用。更明确地说,本发明技术的所述系统和方法是针对将文件划分成若干部分且 通过网络服务器跨越多个客户端装置分布所述部分。应理解,并非所有所述客户端装置可 接收相同部分。另外,可能并不将特定文件的所有所述部分分布到单一客户端装置。另一 方面,因为客户端装置可能并非始终通信耦合到所述网络服务器,所以可将所述文件的关 键部分分布到所述多个客户端装置中的若干客户端装置以用于实现冗余。因此,所述网络 服务器可确保阈值量的关键部分一直可用于使用。另外,因为所述系统和方法可用以分布 多个文件的部分,所以每一客户端装。
17、置可接收许多不同文件的部分。 0005 本文中所提供的所述系统和方法包含冗余特征。举例来说,如果所述网络服务器 确定文件的阈值量的关键部分当前不可用于所述网络服务器,那么所述网络服务器可经配 置以将所述文件的所述部分重新分布到当前使得资源可用于所述网络服务器的额外客户 端装置。应理解,关于所分布文件存储,使得可用于所述网络服务器的所述资源通常包含所 述客户端装置内的本地存储器,但也可分布其它类型的资源,例如,CPU、存储器、网络带宽 等等。 0006 在一些实施例中,所述客户端装置中的每一者包含资源分配应用程序,所述资源 分配应用程序将所分配资源数据提供到网络服务器。客户端装置的终端用户可利用。
18、所述资 源分配应用程序指定待分布到所述网络服务器的资源的量。基于从所述应用程序所接收的 所述可用的所分配资源数据,所述网络服务器可利用所述所分配资源数据确定待提供到所 说 明 书CN 102904922 A 2/9页 6 述客户端装置的所述文件的部分。举例来说,可能并不将大的部分分布到具有不足可用资 源的客户端装置。 0007 根据一些实施例,本发明技术可针对管理跨越多个客户端装置的文件的分布的方 法,所述方法包含:(a)通过网络服务器将文件划分成若干部分;(b)将所述部分中的一者 或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端 装置的所述第一子集分布所述文件的。
19、所有部分,所述多个客户端装置的所述第一子集中的 每一者具有分配给所述网络服务器的存储空间;以及(c)在确定当前可用于所述网络服务 器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端 装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。 0008 根据其它实施例,本发明技术可针对管理跨越多个客户端装置的文件的分布的网 络服务器,所述网络服务器包含:(a)存储器,其用于存储管理跨越多个客户端装置的文件 的分布的可执行指令;以及(b)处理器,其经配置以执行存储于所述存储器中的所述指令, 所述指令包含:(i)文件分离器模块,其经配置以将文件划分成若干部分;。
20、(ii)文件分配模 块,其经配置以将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中 的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述 多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及 (iii)在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,所述文件分配模 块进一步经配置以即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子 集,所述第二子集经确定具有分配给所述网络服务器的存储空间。 0009 根据额外实施例,本发明技术可针对上面体现有计算机程序的非暂时性计算机可 读存储媒体。所述计算机程序可由计算系。
21、统中的处理器执行以执行管理跨越多个客户端装 置的文件的分布的方法,所述方法包含:(a)通过网络服务器将文件划分成若干部分;(b) 将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便 跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置 的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及(c)在确定当前 可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分 布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的 存储空间。 附图说明 0010 图1说明用于实践本发明技术的方面的示。
22、范性云系统。 0011 图2说明管理跨越多个客户端装置的文件的分布的示范性方法的流程图。 0012 图3说明管理跨越多个客户端装置的文件的分布的另一示范性方法的流程图。 0013 图4为可用以实践本发明的方面的示范性计算系统的框图。 具体实施方式 0014 虽然本发明技术容许许多不同形式的实施例,但在各图式中展示且将在本文中详 细描述若干特定实施例,其中应理解,本发明应被视为本发明技术的原理的例证且不意欲 将本发明技术限于所说明的实施例。 说 明 书CN 102904922 A 3/9页 7 0015 一般来说,本发明技术的系统和方法可针对分布式文件存储。更具体来说,本文中 所提供的系统和方法。
23、可经配置以将文件划分成若干部分且以分布的方式跨越多个客户端 装置分配所述部分。在一些实施例中,客户端装置的布置可类似例如云的分布式计算系统。 0016 在云环境中,云的个别组件将其资源分配给云。资源一般由另一(另一些)计算 装置使用以促进基于特定网页的应用程序或程序的操作(例如,工作负荷)。因此,实现基 于网络的应用程序或程序的云的组合资源大于包括云的个别计算系统的资源。在一些实施 例中,基于网络的应用程序或程序可包含多人视频游戏,或本发明所属领域的一般技术人 员之前将已知的其它类型的基于网络的应用程序或程序。应理解,基于网络的应用程序或 程序也可分布于云内。 0017 图1说明用于实践本发明。
24、技术的方面的示范性分布式计算系统100。将系统100 展示为包含网络服务器105(展示为多个网络服务器),以及多个客户端装置110,多个客户 端装置110通过网络115通信耦合到网络服务器105。多个客户端装置110可通信耦合到 网络服务器105,且将计算资源分配给网络服务器105,以使得多个客户端装置110表现为 云计算系统。 0018 应理解,网络115可包含任何专用网络或公共网络(例如,因特网)。还应理解,网 络服务器105可包含也以云计算配置通信耦合在一起的多个网络服务器。 0019 客户端装置110中的每一者可包含资源分配应用程序120,资源分配应用程序120 经配置以允许客户端装置。
25、110的终端用户指定待分配给网络服务器105的计算资源的量和 类型。应用程序120可经配置以在终端用户不与应用程序120交互时,以对于终端用户来 说透明的方式执行(例如,在操作系统的系统托盘中),以便不引起终端用户注意。另外,应 用程序120可经配置以产生图形用户接口,图形用户接口允许终端用户与应用程序120交 互,例如,以指定待将客户端装置110的哪些计算资源分配给网络服务器105。 0020 终端用户也可选择分配计算资源的时间。举例来说,终端用户可选择仅在用户未 利用客户端装置110时分配资源(例如,当终端用户退出客户端装置时,或当客户端装置进 入屏幕保护程序模式时)。在其它实施例中,终端。
26、用户甚至可在终端用户当前正利用客户端 装置110时分配资源。另外,终端用户或者可在终端用户正与基于网络的程序或应用程序 交互时分配资源。应理解,在一些实施例中,基于网络的程序可常驻于应用程序服务器(未 展示)上或网络服务器105的云内。 0021 应用程序120将所分配资源数据提供到网络服务器105,以向网络服务器105供应 关于选定资源可用于供网络服务器105使用的通知。此外,所分配资源数据也可包含对应 于已经由网络服务器105分配给客户端装置110的文件的部分的数据。此情形为网络服务 器105提供用于跟踪当前可用于网络服务器105的文件的部分的额外机制。下文将更详细 论述用于跟踪文件的部分。
27、的额外机制。 0022 应用程序120可为终端用户提供资源利用数据,所述资源利用数据对应于当前供 网络服务器105利用的客户端装置110的分布式资源的量,或已经由网络服务器105在给 定时间周期内利用的资源的合计量。 0023 网络服务器105可包含可执行指令,所述可执行指令用于基于从每一客户端装置 110的应用程序120所接收的可用资源分配数据,而管理跨越多个客户端装置110的文件的 分布。在一些实施例中,可执行指令可包含文件分离器模块125、文件分配模块130、分析模 说 明 书CN 102904922 A 4/9页 8 块135,以及文件组合模块140。值得注意的是,网络服务器105可包。
28、含额外模块、引擎或组 件,且仍属于本发明技术的范围内。如本文中所使用,术语“模块”也可指代以下各者中的任 一者:专用集成电路(ASIC)、电子电路、执行一个或一个以上软件或固件程序的处理器(共 享、专用,或群组),组合逻辑电路,和/或提供所描述功能性的其它合适组件。 0024 不是将文件存储于网络服务器105的存储装置上(或除此之外),网络服务器105 可经配置以将文件的部分分布到多个客户端装置110。因为存储空间为有限且昂贵的数量, 所以网络服务器105可经配置以将文件分成若干部分且跨越多个客户端装置110分布所述 部分。此外,仅将文件的部分存储于多个客户端装置110上增强了数据安全性,这是。
29、因为整 个文件并非存储于单一系统上(在单一系统中,文件可能经受篡改或破坏)。因为仅文件的 部分存储于客户端装置110上,所以终端用户不太可能能够确定部分所属的文件。 0025 另外,因为文件的相同部分可能存储于多个客户端装置110上,所以可在利用所 述部分重新组合文件之前确定由于破坏、恶意软件、病毒和其类似物而引入到个别部分中 的故意的或无意的错误。可排除具有错误的部分以避免由文件组合模块140使用。 0026 文件分离器模块125可经配置以将文件分成部分。应理解,文件分离器模块125 将文件分成部分所用的方式可取决于被分离的文件的类型。一般来说,文件分离器模块125 可利用文件分离机制或算法。
30、,文件分离机制或算法不仅允许将文件划分成若干部分,而且 可借助于文件分离机制或算法将文件的部分重新组合成文件。举例来说,可将图像文件分 成例如瓦片的部分。文件分离机制将包含相对于图像的每一瓦片的数目和位置。因此,可 使用文件分离机制重新组合图像,类似于组合智力玩具。 0027 另外,网络服务器105也可将用以将文件划分成若干部分的文件分离机制或算法 分布到客户端装置110中的一者或一者以上。 0028 文件分配模块130可根据从客户端装置110的应用程序120所接收的所分配资源 数据,将文件的不同部分分配给多个客户端装置110中的每一者。即,文件分配模块130可 评估客户端装置110的所分配资。
31、源数据,且基于所分配资源数据将文件的一个或一个以上 部分分配给客户端装置。举例来说,如果文件分配模块130确定客户端装置110的所分配 资源数据为一兆字节存储,那么文件分配模块130可将高达一兆字节的一个或一个以上文 件的部分存储到客户端装置110的分布式存储空间。如上文所陈述,分布式存储空间可包 含与客户端装置110相关联的本地或便携式硬盘驱动器的一部分。 0029 额外考虑为客户端装置110的分布式资源的实际可用性。举例来说,虽然客户端 装置110将资源分配给网络服务器105,但客户端装置110可能很少通信耦合到网络服务器 105。因而,文件分配模块130可经配置以不仅评估从客户端装置11。
32、0的应用程序120进行 的可用资源分配,而且确定在给定时间周期内的客户端装置110的资源的实际可用性。 0030 举例来说,客户端装置110的应用程序120可能指定一兆字节的所分配资源的量, 但文件分配模块可能确定客户端装置110的资源很少可用。举例来说,客户端装置110可 能离线了相当多的时间量,或可能仅在非峰值周期期间在线(例如,当基于网络的应用程 序或程序的工作负荷固有地较低时的时间)。基于通过文件分配模块130获得的实际资源 分配数据,文件分配模块130可选择不将部分(例如,关键系数)分配给客户端装置110(归 因于资源的可用性的不确定性)。 0031 根据一些实施例,文件分配模块13。
33、0可经配置以最初将文件的部分分布到多个客 说 明 书CN 102904922 A 5/9页 9 户端装置110的第一子集。举例来说,如果存在具有可用的分布式资源的1,000个客户端 装置,那么文件分配模块130可将文件的部分分布到客户端装置的第一子集。在此实例中, 第一子集可为客户端装置的10或100个客户端装置,但也可根据本发明技术利用其它百 分比。 0032 应理解,文件分配模块130可记录文件的部分中的每一者已分布到的位置(例如, 客户端装置),以及所述部分的内容。此资讯允许跟踪每一部分以供文件组合模块140稍后 检索。另外,文件分配模块130可将文件的每一部分的位置和内容记录在查找表中。
34、,查找表 也可以分布式方式存储于一个或一个以上客户端装置110上。 0033 在文件分配模块130将文件的部分分布到客户端装置的第一子集之后,分析模块 135可经配置以监视客户端装置110的应用程序120,以确定是否当前使得阈值量的关键部 分可用于网络服务器105。 0034 值得注意的是,当前应可用于网络服务器105的阈值量的关键部分可由网络服务 器管理员来指定,且可根据文件的相对重要性而变化。即,对于基于网络的应用程序或程序 的操作来说极其重要的文件可能需要分布较高阈值量的关键部分。 0035 如果分析模块135确定关键部分的实际量低于阈值量,那么可执行文件分配模块 130以将文件的部分重。
35、新分布到多个客户端装置110的第二子集。文件分配模块130可将 文件的部分重新分布到客户端装置110的额外子集,直到阈值量的关键部分可用于供网络 服务器使用为止。 0036 在接收到来自客户端装置110的用以获得文件的请求后,网络服务器105可执行 文件组合模块140以从多个客户端装置110搜集文件的部分(例如,文件的部分分布到的 客户端装置的子集)。文件组合模块140可利用由文件分配模块130产生的查找表来确定 文件的部分的位置。文件组合模块130也可从客户端装置110搜集文件分离机制或算法 (整体地,或分段地)。 0037 响应于请求,可执行分析模块135,以确定是否通过多个客户端装置11。
36、0的第一子 集使得阈值量的部分可用于供网络服务器105使用。如果存在可用的阈值量的部分,那么 文件组合模块140可根据文件分离机制或算法将文件的部分组合在一起。如果分析模块 135确定阈值量的部分不可用,那么可执行文件分配模块130以将所述部分重新分布到多 个客户端装置的第二子集。 0038 为实现此实例的目的,假定阈值量的部分可用。因为可将相同的关键部分分布到 许多不同客户端装置110,所以分析模块135可经配置以评估从客户端装置110所搜集的类 似部分,以确定所述部分中的每一者的数据相对于彼此的完整性。举例来说,文件组合模块 140可从五个单独的客户端装置搜集相同的关键部分。分析模块135。
37、可将相同的关键部分 的数据相对于彼此评估以确定其之间的差异。在此实例中,如果五个部分中的四个部分含 有相同数据,且第五部分包含有差异数据,那么可排除具有有差异数据的部分以避免由文 件组合模块140使用。 0039 利用文件分离机制或算法,以及文件的部分,文件组合模块140可重新组合文件。 一旦重新组合,文件组合模块140便可接着将文件提供到从其接收请求的客户端装置110。 0040 在一些实施例中,文件可包含跨越多个客户端装置110分布的截屏软件。截屏软 件可包含增强型截屏软件,如在2011年1月18日申请的题为“用于产生增强型截屏的系统 说 明 书CN 102904922 A 6/9页 10。
38、 和方法(Systems and Methods for Generating Enhanced Screenshots)”的第13/008,854 号美国专利申请案中更详细描述,所述美国专利申请案借此以全文引用的方式并入本文 中。可在常驻于网络服务器105上的多人视频游戏(例如,基于网络的程序)的上下文内利 用截屏软件。因为客户端装置110中的每一者可能希望多人视频游戏的有效率的操作(例 如,减少的等待时间),所以客户端装置110可将其客户端装置110的计算资源分配给多人 视频游戏的有效率操作。举例来说,网络服务器105可将增强型截屏软件划分成若干部分 且跨越多个客户端装置110分布所述部分。
39、。此情形减少写入到网络服务器105的存储媒体 的促进视频游戏的数据的量,且可减少等待时间。另外,将截屏软件分布到客户端装置110 减少网络服务器105的总的操作成本。 0041 因为存储资源有限且昂贵,所以除划分文件之外,也可压缩文件以进一步减小文 件的大小。举例来说,如上文所描述的增强型截屏软件可包含多种标准格式(例如,JPEG、 TIFF、PNG等)的图像文件。因为可通过例如变换编码(例如,小波变换)的程序压缩图像 文件,所以可将图像文件压缩成系数,将系数划分成若干部分,且将所述部分分布到多个客 户端装置110。 0042 文件分离器模块125可经配置以借助于小波变换算法对文件进行变换编码。
40、以产 生多个系数。接下来,在文件分配模块130跨越多个客户端装置的第一子集分布多个部分 之前,文件分离器模块125可将系数聚集成多个部分。 0043 非限制性压缩实例可包含通过将小波变换应用于截屏软件以将截屏软件的个别 像素转换成系数来将图像文件压缩成JPEG2000格式。可使这些系数量化并编码这些系数 (通过熵编码或可变长度编码)以产生经压缩JPEG2000格式图像文件。所属领域的技术人 员将认识到,本发明技术的特定实施例允许使用离散余弦变换将图像文件压缩成JPEG格 式。 0044 不是在划分截屏软件之前使截屏软件量化且编码截屏软件,而是文件分离器模块 125可对截屏软件进行变换编码以将截。
41、屏软件的个别像素转换成系数。可将所述系数中的 一者或一者以上聚集在一起成部分,接着跨越多个客户端装置110分布所述部分。应理解, 在一些实施例中,可将图像文件的所有系数聚集成部分且跨越多个客户端装置110分布所 述部分,以便跨越多个客户端装置110分布图像文件的所有系数。此外,如上文所陈述,可 将系数的相同部分分布到不同的客户端装置110以实现冗余。 0045 通过文件分离器模块125分组在一起的系数中的一些系数对于图像文件的重新 组合来说可能更关键且因此可被称作“关键系数”。即,在无这些关键系数的情况下,文件组 合模块140可能不能够重新组合图像文件。因而,含有“关键系数”的部分可被称作“关。
42、键 部分”。 0046 根据一些实施例,如果文件为经变换编码成系数的图像文件,那么可理解为图像 文件包含系数和/或小波变换算法数据的一个或一个以上分段。为了重新组合图像文件, 文件组合模块140组合小波变换算法数据的分段和系数(即,部分内的系数)。文件组合模 块140可接着根据小波变换算法使系数量化且编码系数以产生经压缩JPEG格式图像文件。 0047 虽然上文所描述的实例预期使用图像文件,但所属领域的一般技术人员将了解, 根据本发明技术同样可利用其它类型的文件,例如视频文件、文档、音频文件等。 0048 图2说明用于管理跨越多个客户端装置的文件的分布的示范性方法200的流程 说 明 书CN 。
43、102904922 A 10 7/9页 11 图。方法200可包含利用文件分离机制或算法将文件划分成若干部分的步骤205。应理解, 文件分离机制或算法允许稍后从个别部分重新组合文件。 0049 接下来,方法200可包含确定多个客户端装置的第一子集的步骤210,所述第一子 集使得所分配资源可用于网络服务器。方法200接着包含将文件的部分分布到多个客户端 装置的第一子集以便跨越多个客户端装置的第一子集分布文件的所有部分的步骤215。 0050 在分布部分之后,系统可监视部分的可用性以确保在接收到对图像文件的请求的 情况下,图像文件的足够的关键部分可用于组合图像文件。因此,方法200可包含确定阈值 。
44、量的关键部分是否当前可用于网络服务器的步骤220。 0051 如果当前未使得阈值量的关键部分可用于网络服务器,那么方法可包含将文件的 部分重新分布到多个客户端装置的第二子集的步骤225,所述第二子集经确定具有分配给 网络服务器的存储空间。如果阈值量的关键部分可用,那么方法200包含等待接收来自客 户端装置的关于文件的请求的步骤230。 0052 确定步骤220和重新分布步骤225可在连续循环(本文中展示为循环L)中发生, 以使得系统始终具有可用于供网络服务器使用的阈值量的关键部分。 0053 方法200也可包含接收来自客户端装置的用以获得文件的请求的步骤235。基于 请求,方法200可接着包含。
45、确定是否文件的阈值量的部分可用于网络服务器的步骤240。如 果文件的阈值量的部分可用,那么方法包含从多个客户端装置搜集文件的部分的步骤245。 如果文件的阈值量的部分不可用,那么方法200返回到将文件的部分重新分布到客户端装 置的额外子集的步骤225。 0054 一旦搜集到部分,方法200便可包含将所搜集部分组合在一起以重新产生文件的 步骤250。应理解,组合文件的部分的步骤250可利用用以将文件划分成若干部分的文件分 离机制或算法。 0055 接下来,方法200可包含将重新产生的文件提供到从其接收请求的客户端装置的 步骤255,继的返回到等待来自客户端装置的关于图像文件的请求的步骤335。 。
46、0056 应理解,本文中所阐述的示范性方法的步骤未必需要以所描述次序执行,且此等 方法的步骤的次序应被理解为仅示范性的。同样,额外步骤可包含于此等方法中,且在与本 发明的各种实施例一致的方法中,可省略或组合特定步骤。 0057 图3说明管理跨越多个客户端装置的文件的分布的另一示范性方法300的流程 图。示范性方法300是针对管理图像文件的分布。方法300可包含获得图像文件(例如, 截屏软件)的步骤305。 0058 接下来,方法可包含对图像文件进行变换编码以减小图像文件的大小的步骤310。 变换编码包含将小波变换算法应用于图像文件。当然,所属领域的一般技术人员应了解,可 根据本发明技术利用许多。
47、类型的小波变换算法,但为了简洁起见,并未提供关于小波变换 算法中的每一者的特定实施细节。应理解,取决于算法,所利用的小波变换算法可导致有损 压缩和无损压缩两者。 0059 一旦对图像文件进行变换编码,方法便可包含将系数分组在一起以产生部分的步 骤315。因为所述部分包含系数,所以所述部分的大小比包含未处理的像素数据的部分的大 小小得多。 0060 方法300接着包含将文件的部分分布到多个客户端装置的第一子集以便跨越多 说 明 书CN 102904922 A 11 8/9页 12 个客户端装置的第一子集分布文件的所有部分的步骤320。 0061 在分布部分之后,系统可监视部分的可用性以确保在接收。
48、到关于图像文件的请求 的情况下,图像文件的足够的关键部分可用于组合图像文件。因此,方法300可包含确定阈 值量的关键部分是否当前可用于网络服务器的步骤325。 0062 如果当前未使得阈值量的关键部分可用于网络服务器,那么方法可包含将文件的 部分重新分布到多个客户端装置的第二子集的步骤330,所述第二子集经确定具有分配给 网络服务器的存储空间。如果阈值量的关键部分可用,那么方法300包含等待来自客户端 装置的关于图像文件的请求的步骤335。 0063 确定步骤325和重新分布步骤330可在连续循环(本文中展示为循环L)中发生, 以使得系统始终具有可用于供网络服务器使用的阈值量的关键部分。 00。
49、64 方法300也可包含接收来自客户端装置的用以获得文件的请求的步骤340。基于 请求,方法300可接着包含确定是否文件的阈值量的部分可用于网络服务器的步骤345。尽 管方法300包含监视部分的可用性,但客户端装置可变得出乎意料地不可用。另外,因为可 能存在客户端装置上的应用程序与网络服务器的分析模块之间的可用的所分配资源数据 的传达的延迟,所以当事实上客户端装置不可用时,系统可假定客户端装置可用。 0065 如果文件的阈值量的部分事实上可用,那么方法包含从多个客户端装置搜集文件 的部分的步骤350。如果文件的阈值量的部分不可用,那么方法300返回到将文件的部分重 新分布到客户端装置的额外子集的步骤330。 0066 一旦搜集到部分,方法300便可包含将所搜集部分组合在一起以重新产生图像文 件的步骤355。在重新组合图像文件之后,方法300可包含使重新组合的文件量化且编码重 新组合的文件的步骤360。方法300可包含将重新产生的文件提供到从其接收请求的客户 端装置的步骤365。 0067 最后,方法300返回到。