分布式文件存储的系统和方法.pdf

上传人:b*** 文档编号:4270596 上传时间:2018-09-13 格式:PDF 页数:17 大小:2.50MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210172143.1

申请日:

2012.05.29

公开号:

CN102904922A

公开日:

2013.01.30

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/08申请公布日:20130130|||实质审查的生效IPC(主分类):H04L 29/08申请日:20120529|||公开

IPC分类号:

H04L29/08; G06F17/30

主分类号:

H04L29/08

申请人:

宏伍工作室公司

发明人:

马克·克恩; 乔恩·奥利克; 戴夫·尼克德尔

地址:

美国加利福尼亚州

优先权:

2011.07.26 US 13/191,321

专利代理机构:

北京律盟知识产权代理有限责任公司 11287

代理人:

章蕾

PDF下载: PDF下载
内容摘要

本发明中提供用于分布式文件存储的系统和方法。示范性方法可包含:将文件划分成若干部分;将所述部分中的一者或一者以上分布到多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给网络服务器的存储空间;以及在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。

权利要求书

权利要求书一种用于管理跨越多个客户端装置的文件的分布的方法,所述方法包括:
通过网络服务器将文件划分成若干部分;
将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及
在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
根据权利要求1所述的方法,其中在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第三子集,所述第三子集经确定具有分配给所述网络服务器的存储空间。
根据权利要求1所述的方法,其进一步包括监视所述多个客户端装置的所述第一子集中的每一者,以确定一个或一个以上部分已分布到的所述多个客户端装置的所述第一子集中的每一者是否当前使得所述文件的所述一个或一个以上部分可用于所述网络服务器。
根据权利要求1所述的方法,其进一步包括:
搜集已分布到所述多个客户端装置的所述第一子集和所述第二子集中的至少一者的所述文件的部分;
在所述网络服务器处从所述所搜集部分组合所述文件;以及
将所述所组合文件提供到通信地耦合到所述网络服务器的一个或一个以上客户端装置。
根据权利要求1所述的方法,其中分布进一步包含:
借助于小波变换算法对所述文件进行变换编码以产生多个系数;
将所述系数聚集成多个部分;以及
跨越所述多个客户端装置的所述第一子集分布所述多个部分。
根据权利要求5所述的方法,其进一步包括将所述小波变换算法划分成若干分段且将所述分段分布到一个或一个以上客户端装置。
根据权利要求6所述的方法,其进一步包括通过以下操作组合所述经小波变换的文件:
通过获得分布到一个或一个以上客户端装置的所述分段组合所述算法;
获得跨越所述多个客户端装置的所述第一子集分布的所述多个部分;
根据所述小波变换算法从所述所获得部分重新组合所述系数;以及
使所述系数量化且编码所述系数以产生所述经小波变换的文件。
根据权利要求7所述的方法,在组合所述经小波变换的文件之前,确定是否通过所述多个客户端装置的所述第一子集使得阈值量的部分可用于供所述网络服务器使用;在使得所述阈值量的部分可用的情况下,组合所述经小波变换的文件;以及在未使得所述阈值量的部分可用的情况下,将所述部分重新分布到所述多个客户端装置的所述第二子集。
根据权利要求1所述的方法,其中所述第二子集包含所述第一子集的至少一部分。
一种用于管理跨越多个客户端装置的文件的分布的网络服务器,所述网络服务器包括:
存储器,其用于存储用于管理跨越多个客户端装置的文件的分布的可执行指令;
以及
处理器,其经配置以执行存储于所述存储器中的所述指令,所述指令包含:
文件分离器模块,其经配置以将文件划分成若干部分;
文件分配模块,其经配置以将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及
在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,所述文件分配模块进一步经配置以即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
根据权利要求10所述的网络服务器,其中在确定当前可用于所述网络服务器的部分的所述实际量低于阈值量后,所述文件分配模块经配置以即刻将所述文件的所述部分重新分布到所述多个客户端装置的第三子集,所述第三子集经确定具有分配给所述网络服务器的存储空间。
根据权利要求10所述的网络服务器,其中所述网络服务器进一步包含分析模块,所述分析模块经配置以监视与所述多个客户端装置的所述第一子集中的每一者相关联的资源分配应用程序,以确定一个或一个以上部分已分布到的所述多个客户端装置的所述第一子集中的每一者是否当前使得所述文件的所述一个或一个以上部分可用于所述网络服务器。
根据权利要求12所述的网络服务器,其中所述资源分配应用程序经配置以为所述网络服务器提供可用资源分配数据,所述可用资源分配数据包含可用于所述网络服务器的所分配资源的量。
根据权利要求13所述的网络服务器,其中由所述文件分配模块进行的到所述多个客户端装置的所述第一子集中的每一者的部分的所述分布是基于通过所述多个客户端装置的所述第一子集而使得可用于所述网络服务器的所分配资源的所述量。
根据权利要求14所述的网络服务器,其中使得可用于所述网络服务器的所分配资源的量是终端用户界定的。
根据权利要求10所述的网络服务器,其中所述网络服务器进一步包含文件组合模块,所述文件组合模块经配置以:
搜集已分布到所述多个客户端装置的所述第一子集和所述第二子集中的至少一者的所述文件的部分;
在所述网络服务器处从所述所搜集部分组合所述文件;以及
将所述所组合文件提供到通信地耦合到所述网络服务器的一个或一个以上客户端装置。
根据权利要求10所述的网络服务器,其中所述文件分离器模块进一步经配置以:
借助于小波变换算法对所述文件进行变换编码以产生多个系数;以及
将所述系数聚集成多个部分;
跨越所述多个客户端装置的所述第一子集分布所述多个部分。
根据权利要求17所述的网络服务器,其中所述文件分离器模块进一步经配置以将所述小波变换算法划分成若干分段且所述文件分离器模块经配置以跨越所述多个客户端装置的所述第一子集分布所述分段。
根据权利要求18所述的网络服务器,其进一步包括文件组合模块,所述文件组合模块经配置以通过以下操作重新组合所述经小波变换的文件:
通过获得分布到一个或一个以上客户端装置的所述分段组合所述算法;
获得跨越所述多个客户端装置的所述第一子集分布的所述部分;
根据所述小波变换算法从所述所获得部分重新组合所述系数;以及
使所述系数量化且编码所述系数以产生所述经小波变换的文件。
根据权利要求19所述的网络服务器,其进一步包括分析模块,所述分析模块经配置以:
确定所述阈值量的部分是否可用;以及
在所述阈值量的部分不可用的情况下,将所述部分重新分布到所述多个客户端装置的所述第二子集。
根据权利要求20所述的网络服务器,其中所述分析模块进一步经配置以确定是否阈值量的关键部分可用于所述网络服务器,且在确定当前可用于所述网络服务器的关键部分的实际量低于阈值量后,所述文件分配模块即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
根据权利要求21所述的网络服务器,其中所述第二子集包含所述第一子集的至少一部分。
一种上面体现有计算机程序的非暂时性计算机可读存储媒体,所述计算机程序可由计算系统中的处理器执行以执行用于管理跨越多个客户端装置的文件的分布的方法,所述方法包括:
通过网络服务器将文件划分成若干部分;
将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及
在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。

说明书

说明书分布式文件存储的系统和方法
技术领域
本发明技术一般来说涉及分布式计算,且更具体来说,但并非作为限制,涉及管理跨越多个客户端装置的文件的分布的系统和方法。
背景技术
跨越计算机网络的图像文件的存储和公布为普遍存在的功能性。举例来说,基于网络的文件存储系统允许终端用户上载、存储、管理图像文件且甚至在远端编辑图像文件。这些基于网络的存储系统也为终端用户提供公布图像文件以及与其它人共享图像文件的能力。当然,仅围绕为终端用户提供基于网络的图像存储库(在基于网络的图像存储库中,终端用户可与其它人共享图像文件)的概念建立整个基于网络的服务。
虽然图像文件的存储为许多基于网络的文件服务的共同特征,但支持这些功能性所必要的存储资源非常昂贵,这是因为图像文件的大小常常较大。因而,这些基于网络的服务中的一些服务使用各种压缩技术,压缩技术试图使由终端用户上载的图像文件的大小缩小。不幸的是,将图像文件压缩越多以减小图像文件的大小,损失图像质量的趋势越增加。另外,甚至经压缩图像文件也可能相对较大(取决于图像文件的原始大小和所使用的压缩技术)。
发明内容
本发明技术的系统和方法是针对跨越多个客户端装置的分布式存储以及分布式文件的利用。更明确地说,本发明技术的所述系统和方法是针对将文件划分成若干部分且通过网络服务器跨越多个客户端装置分布所述部分。应理解,并非所有所述客户端装置可接收相同部分。另外,可能并不将特定文件的所有所述部分分布到单一客户端装置。另一方面,因为客户端装置可能并非始终通信耦合到所述网络服务器,所以可将所述文件的关键部分分布到所述多个客户端装置中的若干客户端装置以用于实现冗余。因此,所述网络服务器可确保阈值量的关键部分一直可用于使用。另外,因为所述系统和方法可用以分布多个文件的部分,所以每一客户端装置可接收许多不同文件的部分。
本文中所提供的所述系统和方法包含冗余特征。举例来说,如果所述网络服务器确定文件的阈值量的关键部分当前不可用于所述网络服务器,那么所述网络服务器可经配置以将所述文件的所述部分重新分布到当前使得资源可用于所述网络服务器的额外客户端装置。应理解,关于所分布文件存储,使得可用于所述网络服务器的所述资源通常包含所述客户端装置内的本地存储器,但也可分布其它类型的资源,例如,CPU、存储器、网络带宽等等。
在一些实施例中,所述客户端装置中的每一者包含资源分配应用程序,所述资源分配应用程序将所分配资源数据提供到网络服务器。客户端装置的终端用户可利用所述资源分配应用程序指定待分布到所述网络服务器的资源的量。基于从所述应用程序所接收的所述可用的所分配资源数据,所述网络服务器可利用所述所分配资源数据确定待提供到所述客户端装置的所述文件的部分。举例来说,可能并不将大的部分分布到具有不足可用资源的客户端装置。
根据一些实施例,本发明技术可针对管理跨越多个客户端装置的文件的分布的方法,所述方法包含:(a)通过网络服务器将文件划分成若干部分;(b)将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及(c)在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
根据其它实施例,本发明技术可针对管理跨越多个客户端装置的文件的分布的网络服务器,所述网络服务器包含:(a)存储器,其用于存储管理跨越多个客户端装置的文件的分布的可执行指令;以及(b)处理器,其经配置以执行存储于所述存储器中的所述指令,所述指令包含:(i)文件分离器模块,其经配置以将文件划分成若干部分;(ii)文件分配模块,其经配置以将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及(iii)在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,所述文件分配模块进一步经配置以即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
根据额外实施例,本发明技术可针对上面体现有计算机程序的非暂时性计算机可读存储媒体。所述计算机程序可由计算系统中的处理器执行以执行管理跨越多个客户端装置的文件的分布的方法,所述方法包含:(a)通过网络服务器将文件划分成若干部分;(b)将所述部分中的一者或一者以上分布到所述多个客户端装置的第一子集中的每一者,以便跨越所述多个客户端装置的所述第一子集分布所述文件的所有部分,所述多个客户端装置的所述第一子集中的每一者具有分配给所述网络服务器的存储空间;以及(c)在确定当前可用于所述网络服务器的部分的实际量低于阈值量后,即刻将所述文件的所述部分重新分布到所述多个客户端装置的第二子集,所述第二子集经确定具有分配给所述网络服务器的存储空间。
附图说明
图1说明用于实践本发明技术的方面的示范性云系统。
图2说明管理跨越多个客户端装置的文件的分布的示范性方法的流程图。
图3说明管理跨越多个客户端装置的文件的分布的另一示范性方法的流程图。
图4为可用以实践本发明的方面的示范性计算系统的框图。
具体实施方式
虽然本发明技术容许许多不同形式的实施例,但在各图式中展示且将在本文中详细描述若干特定实施例,其中应理解,本发明应被视为本发明技术的原理的例证且不意欲将本发明技术限于所说明的实施例。
一般来说,本发明技术的系统和方法可针对分布式文件存储。更具体来说,本文中所提供的系统和方法可经配置以将文件划分成若干部分且以分布的方式跨越多个客户端装置分配所述部分。在一些实施例中,客户端装置的布置可类似例如云的分布式计算系统。
在云环境中,云的个别组件将其资源分配给云。资源一般由另一(另一些)计算装置使用以促进基于特定网页的应用程序或程序的操作(例如,工作负荷)。因此,实现基于网络的应用程序或程序的云的组合资源大于包括云的个别计算系统的资源。在一些实施例中,基于网络的应用程序或程序可包含多人视频游戏,或本发明所属领域的一般技术人员之前将已知的其它类型的基于网络的应用程序或程序。应理解,基于网络的应用程序或程序也可分布于云内。
图1说明用于实践本发明技术的方面的示范性分布式计算系统100。将系统100展示为包含网络服务器105(展示为多个网络服务器),以及多个客户端装置110,多个客户端装置110通过网络115通信耦合到网络服务器105。多个客户端装置110可通信耦合到网络服务器105,且将计算资源分配给网络服务器105,以使得多个客户端装置110表现为云计算系统。
应理解,网络115可包含任何专用网络或公共网络(例如,因特网)。还应理解,网络服务器105可包含也以云计算配置通信耦合在一起的多个网络服务器。
客户端装置110中的每一者可包含资源分配应用程序120,资源分配应用程序120经配置以允许客户端装置110的终端用户指定待分配给网络服务器105的计算资源的量和类型。应用程序120可经配置以在终端用户不与应用程序120交互时,以对于终端用户来说透明的方式执行(例如,在操作系统的系统托盘中),以便不引起终端用户注意。另外,应用程序120可经配置以产生图形用户接口,图形用户接口允许终端用户与应用程序120交互,例如,以指定待将客户端装置110的哪些计算资源分配给网络服务器105。
终端用户也可选择分配计算资源的时间。举例来说,终端用户可选择仅在用户未利用客户端装置110时分配资源(例如,当终端用户退出客户端装置时,或当客户端装置进入屏幕保护程序模式时)。在其它实施例中,终端用户甚至可在终端用户当前正利用客户端装置110时分配资源。另外,终端用户或者可在终端用户正与基于网络的程序或应用程序交互时分配资源。应理解,在一些实施例中,基于网络的程序可常驻于应用程序服务器(未展示)上或网络服务器105的云内。
应用程序120将所分配资源数据提供到网络服务器105,以向网络服务器105供应关于选定资源可用于供网络服务器105使用的通知。此外,所分配资源数据也可包含对应于已经由网络服务器105分配给客户端装置110的文件的部分的数据。此情形为网络服务器105提供用于跟踪当前可用于网络服务器105的文件的部分的额外机制。下文将更详细论述用于跟踪文件的部分的额外机制。
应用程序120可为终端用户提供资源利用数据,所述资源利用数据对应于当前供网络服务器105利用的客户端装置110的分布式资源的量,或已经由网络服务器105在给定时间周期内利用的资源的合计量。
网络服务器105可包含可执行指令,所述可执行指令用于基于从每一客户端装置110的应用程序120所接收的可用资源分配数据,而管理跨越多个客户端装置110的文件的分布。在一些实施例中,可执行指令可包含文件分离器模块125、文件分配模块130、分析模块135,以及文件组合模块140。值得注意的是,网络服务器105可包含额外模块、引擎或组件,且仍属于本发明技术的范围内。如本文中所使用,术语“模块”也可指代以下各者中的任一者:专用集成电路(ASIC)、电子电路、执行一个或一个以上软件或固件程序的处理器(共享、专用,或群组),组合逻辑电路,和/或提供所描述功能性的其它合适组件。
不是将文件存储于网络服务器105的存储装置上(或除此之外),网络服务器105可经配置以将文件的部分分布到多个客户端装置110。因为存储空间为有限且昂贵的数量,所以网络服务器105可经配置以将文件分成若干部分且跨越多个客户端装置110分布所述部分。此外,仅将文件的部分存储于多个客户端装置110上增强了数据安全性,这是因为整个文件并非存储于单一系统上(在单一系统中,文件可能经受篡改或破坏)。因为仅文件的部分存储于客户端装置110上,所以终端用户不太可能能够确定部分所属的文件。
另外,因为文件的相同部分可能存储于多个客户端装置110上,所以可在利用所述部分重新组合文件之前确定由于破坏、恶意软件、病毒和其类似物而引入到个别部分中的故意的或无意的错误。可排除具有错误的部分以避免由文件组合模块140使用。
文件分离器模块125可经配置以将文件分成部分。应理解,文件分离器模块125将文件分成部分所用的方式可取决于被分离的文件的类型。一般来说,文件分离器模块125可利用文件分离机制或算法,文件分离机制或算法不仅允许将文件划分成若干部分,而且可借助于文件分离机制或算法将文件的部分重新组合成文件。举例来说,可将图像文件分成例如瓦片的部分。文件分离机制将包含相对于图像的每一瓦片的数目和位置。因此,可使用文件分离机制重新组合图像,类似于组合智力玩具。
另外,网络服务器105也可将用以将文件划分成若干部分的文件分离机制或算法分布到客户端装置110中的一者或一者以上。
文件分配模块130可根据从客户端装置110的应用程序120所接收的所分配资源数据,将文件的不同部分分配给多个客户端装置110中的每一者。即,文件分配模块130可评估客户端装置110的所分配资源数据,且基于所分配资源数据将文件的一个或一个以上部分分配给客户端装置。举例来说,如果文件分配模块130确定客户端装置110的所分配资源数据为一兆字节存储,那么文件分配模块130可将高达一兆字节的一个或一个以上文件的部分存储到客户端装置110的分布式存储空间。如上文所陈述,分布式存储空间可包含与客户端装置110相关联的本地或便携式硬盘驱动器的一部分。
额外考虑为客户端装置110的分布式资源的实际可用性。举例来说,虽然客户端装置110将资源分配给网络服务器105,但客户端装置110可能很少通信耦合到网络服务器105。因而,文件分配模块130可经配置以不仅评估从客户端装置110的应用程序120进行的可用资源分配,而且确定在给定时间周期内的客户端装置110的资源的实际可用性。
举例来说,客户端装置110的应用程序120可能指定一兆字节的所分配资源的量,但文件分配模块可能确定客户端装置110的资源很少可用。举例来说,客户端装置110可能离线了相当多的时间量,或可能仅在非峰值周期期间在线(例如,当基于网络的应用程序或程序的工作负荷固有地较低时的时间)。基于通过文件分配模块130获得的实际资源分配数据,文件分配模块130可选择不将部分(例如,关键系数)分配给客户端装置110(归因于资源的可用性的不确定性)。
根据一些实施例,文件分配模块130可经配置以最初将文件的部分分布到多个客户端装置110的第一子集。举例来说,如果存在具有可用的分布式资源的1,000个客户端装置,那么文件分配模块130可将文件的部分分布到客户端装置的第一子集。在此实例中,第一子集可为客户端装置的10%或100个客户端装置,但也可根据本发明技术利用其它百分比。
应理解,文件分配模块130可记录文件的部分中的每一者已分布到的位置(例如,客户端装置),以及所述部分的内容。此资讯允许跟踪每一部分以供文件组合模块140稍后检索。另外,文件分配模块130可将文件的每一部分的位置和内容记录在查找表中,查找表也可以分布式方式存储于一个或一个以上客户端装置110上。
在文件分配模块130将文件的部分分布到客户端装置的第一子集之后,分析模块135可经配置以监视客户端装置110的应用程序120,以确定是否当前使得阈值量的关键部分可用于网络服务器105。
值得注意的是,当前应可用于网络服务器105的阈值量的关键部分可由网络服务器管理员来指定,且可根据文件的相对重要性而变化。即,对于基于网络的应用程序或程序的操作来说极其重要的文件可能需要分布较高阈值量的关键部分。
如果分析模块135确定关键部分的实际量低于阈值量,那么可执行文件分配模块130以将文件的部分重新分布到多个客户端装置110的第二子集。文件分配模块130可将文件的部分重新分布到客户端装置110的额外子集,直到阈值量的关键部分可用于供网络服务器使用为止。
在接收到来自客户端装置110的用以获得文件的请求后,网络服务器105可执行文件组合模块140以从多个客户端装置110搜集文件的部分(例如,文件的部分分布到的客户端装置的子集)。文件组合模块140可利用由文件分配模块130产生的查找表来确定文件的部分的位置。文件组合模块130也可从客户端装置110搜集文件分离机制或算法(整体地,或分段地)。
响应于请求,可执行分析模块135,以确定是否通过多个客户端装置110的第一子集使得阈值量的部分可用于供网络服务器105使用。如果存在可用的阈值量的部分,那么文件组合模块140可根据文件分离机制或算法将文件的部分组合在一起。如果分析模块135确定阈值量的部分不可用,那么可执行文件分配模块130以将所述部分重新分布到多个客户端装置的第二子集。
为实现此实例的目的,假定阈值量的部分可用。因为可将相同的关键部分分布到许多不同客户端装置110,所以分析模块135可经配置以评估从客户端装置110所搜集的类似部分,以确定所述部分中的每一者的数据相对于彼此的完整性。举例来说,文件组合模块140可从五个单独的客户端装置搜集相同的关键部分。分析模块135可将相同的关键部分的数据相对于彼此评估以确定其之间的差异。在此实例中,如果五个部分中的四个部分含有相同数据,且第五部分包含有差异数据,那么可排除具有有差异数据的部分以避免由文件组合模块140使用。
利用文件分离机制或算法,以及文件的部分,文件组合模块140可重新组合文件。一旦重新组合,文件组合模块140便可接着将文件提供到从其接收请求的客户端装置110。
在一些实施例中,文件可包含跨越多个客户端装置110分布的截屏软件。截屏软件可包含增强型截屏软件,如在2011年1月18日申请的题为“用于产生增强型截屏的系统和方法(Systems and Methods for Generating Enhanced Screenshots)”的第13/008,854号美国专利申请案中更详细描述,所述美国专利申请案借此以全文引用的方式并入本文中。可在常驻于网络服务器105上的多人视频游戏(例如,基于网络的程序)的上下文内利用截屏软件。因为客户端装置110中的每一者可能希望多人视频游戏的有效率的操作(例如,减少的等待时间),所以客户端装置110可将其客户端装置110的计算资源分配给多人视频游戏的有效率操作。举例来说,网络服务器105可将增强型截屏软件划分成若干部分且跨越多个客户端装置110分布所述部分。此情形减少写入到网络服务器105的存储媒体的促进视频游戏的数据的量,且可减少等待时间。另外,将截屏软件分布到客户端装置110减少网络服务器105的总的操作成本。
因为存储资源有限且昂贵,所以除划分文件之外,也可压缩文件以进一步减小文件的大小。举例来说,如上文所描述的增强型截屏软件可包含多种标准格式(例如,JPEG、TIFF、PNG等)的图像文件。因为可通过例如变换编码(例如,小波变换)的程序压缩图像文件,所以可将图像文件压缩成系数,将系数划分成若干部分,且将所述部分分布到多个客户端装置110。
文件分离器模块125可经配置以借助于小波变换算法对文件进行变换编码以产生多个系数。接下来,在文件分配模块130跨越多个客户端装置的第一子集分布多个部分之前,文件分离器模块125可将系数聚集成多个部分。
非限制性压缩实例可包含通过将小波变换应用于截屏软件以将截屏软件的个别像素转换成系数来将图像文件压缩成JPEG2000格式。可使这些系数量化并编码这些系数(通过熵编码或可变长度编码)以产生经压缩JPEG2000格式图像文件。所属领域的技术人员将认识到,本发明技术的特定实施例允许使用离散余弦变换将图像文件压缩成JPEG格式。
不是在划分截屏软件之前使截屏软件量化且编码截屏软件,而是文件分离器模块125可对截屏软件进行变换编码以将截屏软件的个别像素转换成系数。可将所述系数中的一者或一者以上聚集在一起成部分,接着跨越多个客户端装置110分布所述部分。应理解,在一些实施例中,可将图像文件的所有系数聚集成部分且跨越多个客户端装置110分布所述部分,以便跨越多个客户端装置110分布图像文件的所有系数。此外,如上文所陈述,可将系数的相同部分分布到不同的客户端装置110以实现冗余。
通过文件分离器模块125分组在一起的系数中的一些系数对于图像文件的重新组合来说可能更关键且因此可被称作“关键系数”。即,在无这些关键系数的情况下,文件组合模块140可能不能够重新组合图像文件。因而,含有“关键系数”的部分可被称作“关键部分”。
根据一些实施例,如果文件为经变换编码成系数的图像文件,那么可理解为图像文件包含系数和/或小波变换算法数据的一个或一个以上分段。为了重新组合图像文件,文件组合模块140组合小波变换算法数据的分段和系数(即,部分内的系数)。文件组合模块140可接着根据小波变换算法使系数量化且编码系数以产生经压缩JPEG格式图像文件。
虽然上文所描述的实例预期使用图像文件,但所属领域的一般技术人员将了解,根据本发明技术同样可利用其它类型的文件,例如视频文件、文档、音频文件等。
图2说明用于管理跨越多个客户端装置的文件的分布的示范性方法200的流程图。方法200可包含利用文件分离机制或算法将文件划分成若干部分的步骤205。应理解,文件分离机制或算法允许稍后从个别部分重新组合文件。
接下来,方法200可包含确定多个客户端装置的第一子集的步骤210,所述第一子集使得所分配资源可用于网络服务器。方法200接着包含将文件的部分分布到多个客户端装置的第一子集以便跨越多个客户端装置的第一子集分布文件的所有部分的步骤215。
在分布部分之后,系统可监视部分的可用性以确保在接收到对图像文件的请求的情况下,图像文件的足够的关键部分可用于组合图像文件。因此,方法200可包含确定阈值量的关键部分是否当前可用于网络服务器的步骤220。
如果当前未使得阈值量的关键部分可用于网络服务器,那么方法可包含将文件的部分重新分布到多个客户端装置的第二子集的步骤225,所述第二子集经确定具有分配给网络服务器的存储空间。如果阈值量的关键部分可用,那么方法200包含等待接收来自客户端装置的关于文件的请求的步骤230。
确定步骤220和重新分布步骤225可在连续循环(本文中展示为循环L)中发生,以使得系统始终具有可用于供网络服务器使用的阈值量的关键部分。
方法200也可包含接收来自客户端装置的用以获得文件的请求的步骤235。基于请求,方法200可接着包含确定是否文件的阈值量的部分可用于网络服务器的步骤240。如果文件的阈值量的部分可用,那么方法包含从多个客户端装置搜集文件的部分的步骤245。如果文件的阈值量的部分不可用,那么方法200返回到将文件的部分重新分布到客户端装置的额外子集的步骤225。
一旦搜集到部分,方法200便可包含将所搜集部分组合在一起以重新产生文件的步骤250。应理解,组合文件的部分的步骤250可利用用以将文件划分成若干部分的文件分离机制或算法。
接下来,方法200可包含将重新产生的文件提供到从其接收请求的客户端装置的步骤255,继的返回到等待来自客户端装置的关于图像文件的请求的步骤335。
应理解,本文中所阐述的示范性方法的步骤未必需要以所描述次序执行,且此等方法的步骤的次序应被理解为仅示范性的。同样,额外步骤可包含于此等方法中,且在与本发明的各种实施例一致的方法中,可省略或组合特定步骤。
图3说明管理跨越多个客户端装置的文件的分布的另一示范性方法300的流程图。示范性方法300是针对管理图像文件的分布。方法300可包含获得图像文件(例如,截屏软件)的步骤305。
接下来,方法可包含对图像文件进行变换编码以减小图像文件的大小的步骤310。变换编码包含将小波变换算法应用于图像文件。当然,所属领域的一般技术人员应了解,可根据本发明技术利用许多类型的小波变换算法,但为了简洁起见,并未提供关于小波变换算法中的每一者的特定实施细节。应理解,取决于算法,所利用的小波变换算法可导致有损压缩和无损压缩两者。
一旦对图像文件进行变换编码,方法便可包含将系数分组在一起以产生部分的步骤315。因为所述部分包含系数,所以所述部分的大小比包含未处理的像素数据的部分的大小小得多。
方法300接着包含将文件的部分分布到多个客户端装置的第一子集以便跨越多个客户端装置的第一子集分布文件的所有部分的步骤320。
在分布部分之后,系统可监视部分的可用性以确保在接收到关于图像文件的请求的情况下,图像文件的足够的关键部分可用于组合图像文件。因此,方法300可包含确定阈值量的关键部分是否当前可用于网络服务器的步骤325。
如果当前未使得阈值量的关键部分可用于网络服务器,那么方法可包含将文件的部分重新分布到多个客户端装置的第二子集的步骤330,所述第二子集经确定具有分配给网络服务器的存储空间。如果阈值量的关键部分可用,那么方法300包含等待来自客户端装置的关于图像文件的请求的步骤335。
确定步骤325和重新分布步骤330可在连续循环(本文中展示为循环L)中发生,以使得系统始终具有可用于供网络服务器使用的阈值量的关键部分。
方法300也可包含接收来自客户端装置的用以获得文件的请求的步骤340。基于请求,方法300可接着包含确定是否文件的阈值量的部分可用于网络服务器的步骤345。尽管方法300包含监视部分的可用性,但客户端装置可变得出乎意料地不可用。另外,因为可能存在客户端装置上的应用程序与网络服务器的分析模块之间的可用的所分配资源数据的传达的延迟,所以当事实上客户端装置不可用时,系统可假定客户端装置可用。
如果文件的阈值量的部分事实上可用,那么方法包含从多个客户端装置搜集文件的部分的步骤350。如果文件的阈值量的部分不可用,那么方法300返回到将文件的部分重新分布到客户端装置的额外子集的步骤330。
一旦搜集到部分,方法300便可包含将所搜集部分组合在一起以重新产生图像文件的步骤355。在重新组合图像文件之后,方法300可包含使重新组合的文件量化且编码重新组合的文件的步骤360。方法300可包含将重新产生的文件提供到从其接收请求的客户端装置的步骤365。
最后,方法300返回到等待来自客户端装置的关于图像文件的请求的步骤335。
图4说明可用以实施本发明技术的实施例的示范性计算系统400。客户端装置110和网络服务器105中的任一者可包含计算系统400的组件中的一者或一者以上。图4的计算系统400包含一个或一个以上处理器410和存储器420。主存储器存储装置420部分地存储用于供处理器410执行的指令和数据。当系统400在操作中时,主存储器存储装置420可存储可执行码。图4的系统400可进一步包含大容量存储装置430、便携式存储媒体驱动器440、输出装置450、用户输入装置460、图形显示器440,以及其它外围装置480。
将图4中所展示的组件描绘为通过单一总线490连接。所述组件可通过一个或一个以上数据输送构件连接。处理器410和主存储器存储装置420可通过本地微处理器总线连接,且大容量存储装置430、外围装置480、便携式存储装置440和显示系统470可通过一个或一个以上输入/输出(I/O)总线连接。
可用磁盘驱动器或光盘驱动器实施的大容量存储装置430是用于存储供处理器单元410使用的数据和指令的非易失性存储装置。大容量存储装置430可存储用于实施本发明的技术的实施例的系统软件,以用于将那个软件加载到主存储器存储装置420中。
便携式存储装置440结合便携式非易失性存储媒体(例如,软盘、压缩盘或数字视频光盘)而操作,以将数据和代码输入到图4的计算系统400和从图4的计算系统400输出数据和代码。用于实施本发明的技术的实施例的系统软件可存储于所述便携式媒体上,且经由便携式存储装置440输入到计算系统400。
输入装置460提供用户接口的一部分。输入装置460可包含字母数字小键盘,例如键盘,以用于输入字母数字和其它信息,或包含指向装置,例如鼠标、跟踪球、尖笔或光标方向键。另外,图4中所示的系统400包含输出装置450。合适的输出装置包含扬声器、打印机、网络接口和监视器。
显示器系统470可包含液晶显示器(LCD)或其它合适的显示器装置。显示器系统470接收文本和图形信息,且处理所述信息以用于输出到显示器装置。
外围装置480可包含任何类型的计算机支持装置以将额外功能性添加到计算系统。外围装置480可包含调制解调器或路由器。
图4的计算系统400中所包含的组件是计算系统中通常找到的组件,其可适合用于与本发明的技术的实施例一起使用,且意欲表示此项技术中众所周知的此类计算机组件的广义类别。因此,图4的计算系统400可为个人计算机、手提式计算系统、电话、移动计算系统、工作站、服务器、微型计算机、大型计算机,或任何其它计算系统。计算机还可包含不同的总线配置、联网平台、多处理器平台等。可使用各种操作系统,包含UNIX、Linux、Windows、Macintosh OS、Palm OS和其它合适的操作系统。
上文所描述的功能中的一些可由存储于存储媒体(例如,计算机可读媒体)上的指令构成。所述指令可由处理器检索和执行。存储媒体的一些实例是存储器装置、磁带、磁盘等。所述指令在由处理器执行时操作以引导处理器根据所述技术进行操作。所属领域的技术人员熟悉指令、处理器和存储媒体。
值得注意的是,适合于执行本文中所描述的处理的任何硬件平台适合于与所述技术一起使用。如本文中所使用的术语“计算机可读存储媒体(computer‑readable storage medium)”和“计算机可读存储媒体(computer‑readable storage media)”指代参与将指令提供给CPU以供执行的任何媒体(medium)或媒体(media)。所述媒体可采取许多形式,包含(但不限于)非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含(例如)光盘或磁盘,例如固定磁盘。易失性媒体包含动态存储器,例如系统RAM。传输媒体包含同轴电缆、铜线和光纤,尤其包含构成总线的一个实施例的电线。传输媒体还可采取声波或光波的形式,例如在射频(RF)和红外(IR)数据通信期间所产生的声波和光波。计算机可读媒体的常见形式包含(例如)软盘、柔性磁盘、硬盘、磁带、任何其它磁性媒体、CD‑ROM盘、数字视频盘(DVD)、任何其它光学媒体,具有标记或孔图案的任何其它物理媒体、RAM、PROM、EPROM、EEPROM、FLASHEPROM、任何其它存储器芯片或数据交换适配器、载波,或计算机可从其读取的任何其它媒体。
在将一个或一个以上指令的一个或一个以上序列载运到CPU以供执行的过程中可涉及各种形式的计算机可读媒体。总线将数据载运到系统RAM,CPU从所述系统RAM检索并执行指令。由系统RAM接收的指令在由CPU执行之前或之后可任选地存储于固定磁盘上。
以上描述是说明性的而非限制性的。所属领域的技术人员在检视本发明之后将即刻明白所述技术的许多变化。因此,不应参考以上描述来确定所述技术的范围,而是应参考所附权利要求书以及其完整范围的等效物来确定。

分布式文件存储的系统和方法.pdf_第1页
第1页 / 共17页
分布式文件存储的系统和方法.pdf_第2页
第2页 / 共17页
分布式文件存储的系统和方法.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《分布式文件存储的系统和方法.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返回到。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1