预测存储服务的制作方法

文档序号:32222146发布日期:2022-11-16 10:37阅读:44来源:国知局
预测存储服务的制作方法
预测存储服务
1.本技术是申请日为2014年02月25日、申请号为201480013012.6、题为“预测存储服务”的分案申请。
2.相关申请案的交叉参考
3.本技术案主张2013年2月25日申请的标题为“预测存储服务(predictive storage service)”的第13/776,498号美国专利申请案的优先权权益(代理人案号90204-855763(061300us))。


背景技术:

4.文档已经成为工作流程的一个重要部分,它们起到各种功能,例如,跟踪、通知、教示以及支付功能。例如,学生和老师用于讲义和报告。在另一实例中,机修工跟踪维修期间的零部件、劳动力以及完成情况。使用这些文档可以允许工作流程继续进行,因为工作流程的状态可以反映在文档中。
5.文档和内容被构建出来之后,人们逐渐在各种装置上复查和编辑内容。例如,一个主管用电子邮件将包含关键业绩指标的最新电子数据表发给她自己,这样一来,她就可以在自己的智能电话上复查该电子数据表。在另一实例中,法律秘书将文件放到usb驱动器中给到代理人,以便出行时可以在笔记本电脑上复查。在又一实例中,艺术家将资产和半成品保存在预定的文件夹中,这个文件夹可以将更改同步到远程服务器。
6.附图简述
7.根据本发明的各项实施方案将参考附图进行描述,其中:
8.图1示出根据至少一项实施方案的预测存储服务的说明性实例;
9.图2示出根据至少一项实施方案的使用文件结构的预测存储服务的说明性实例;
10.图3示出根据至少一项实施方案的可用来将文件与预测存储服务同步的过程的说明性实例;
11.图4示出根据至少一项实施方案的可用来确定选择预测存储服务中的哪些文件的过程的说明性实例;
12.图5示出根据至少一项实施方案的可用来确定选择预测存储服务中的哪些文件的过程的说明性实例;
13.图6示出根据至少一项实施方案的可用来使预测存储服务中的文件同步的过程的说明性实例;
14.图7示出根据至少一项实施方案的可用来将文件存储在预测存储服务中的过程的说明性实例;
15.图8示出根据至少一项实施方案的数据中心组织的说明性实例;以及
16.图9示出可以实施各项实施方案的环境。
具体实施方式
17.以下描述内容将描述各种实施方案。出于解释说明的目的,列出了具体配置和细
节,以便全面理解实施方案。然而,所属领域的技术人员将显而易见的认识到,这些实施方案可在没有这些具体细节的情况下进行实践。此外,众所周知的特征可被忽略或简化,以便不掩盖描述的实施方案。
18.本文中描述和建议的技术包括选择性地确定要从文件结构发送到存储服务的文件,从而使得文件可在另一位置使用。例如,用户可将计算系统(例如,台式计算机和移动装置)注册到账户。用户可在台式计算机和/或移动装置上安装预测存储应用,该应用会监控这些注册的计算系统上的活动。
19.在一个说明性实例中,预测存储应用可确定用户在便携式计算机上下载并打开pdf文件。当pdf文件在便携式计算机上打开时,预测存储应用可接收通知:用户还打开了文字处理文档。随后,预测存储应用可接收到事件,其中在便携式计算机上,窗口焦点在pdf与文字处理文档之间切换数次。在文字处理文档发生保存事件之后,至少部分基于用户与文件互动并且致使pdf和文字处理文档被发送到预测存储服务的事实,预测存储应用可确定pdf和文字处理文档足够重要。处于预测存储服务中之后,pdf和文字处理文档可被存留或发送到注册的移动电话。便携式计算机上的pdf或文字处理文档发生的任何进一步变化也可同步到预测存储服务和/或移动电话。当用户关闭便携式计算机时,用户可继续在移动电话上复查pdf和编辑文字处理文档。
20.预测存储应用可监控计算系统的文件结构。在一项实施方案中,作为服务提供的虚拟桌面包括监控文件系统的预测存储应用。文件系统可基于容量、对象存储或其他数据容器。监控信息可通过事件、通知、轮询或其他推送或拉取信息或者它们的组合进行确定。监控信息可接收自应用、操作系统、管理程序、插件和/或其组合的监控信息的其他来源。例如,应用可注册操作系统,以在源于一组文件类型的文件被打开、关闭、创建、更改和/或破坏时接收到通知。在另一实例中,应用可在文字处理器中加入插件,所述插件在文件打开、关闭、保存、自动保存和/或拒绝保存时通知应用。在又一实例中,应用可定期扫描一定容量中的文件结构,以发现更改、打开、创建或者存储在文件结构中的其他日期和信息的最近变化。在扫描过程中,可收集其他文件元数据,例如,作者、标题、主题、标签、分类、上次保存用户名、修订号、版本号、应用名称、创建日期、上次保存日期、上次打印日期、上次访问日期、拍摄日期、需求日期、版权、尺寸、宽度、高度、分辨率、压缩、相机、iso速度、序列号、文件结构路径、页码、文字、字符、分行、段落和/或大小。
21.至少部分基于量化数据推理算法,预测存储应用可确定上传哪些文件。所述算法可使用重要性指示符,例如,试探法,以确定上传文件的重要性。通过确定哪些文件是重要的需要上传,可更有效地使用上传带宽和存储资源。例如,替代于上传整个文件结构(或其部分),仅仅上传指定的文件。这种选择性的上传允许预测存储应用集中于同步具有相当重要性的文件,而不是迫使用户将所有东西都存储在文件夹中。这种选择性的上传也避免了上传无用文档,例如,临时文件或管理文件。使用有关文件结构和/或文件结构内的文件的收集信息,基于重要性指示符,预测存储应用可确定将哪些文件上传到存储服务。例如,重要性指示符可以是随着时间推移的用户与文件交互的次数。根据重要性指示符,一种算法可用来评定文件。应用可被配置成将文件的前百分之x上传到服务(其中x为可配置变量)。在另一配置中,算法可对文件进行评级,并且权衡每个文件的等级,以调整整体等级。例如,监控程序可使用文档类型、文件最近打开情况、文件打开的时间长度、从文件被打开到文件
被关闭时的文件整体大小变化、关键字以及作者信息来确定重要性指示符,从而计算文件的重要性等级。最近被匹配机器登录的作者打开的文件可接收较高的重要性等级,所述文件具有文字处理类型。上传调度也可因确定的重要性而具有优先级。在另一实例中,确定的重要性可至少部分基于计算系统上安装的应用。在一项实施方案中,如果图标与文件的文件类型相关联,则可确定文件与安装的应用有关系。例如,由于文字处理程序为所有的“txt”扩展文件提供一个图标,因此,“txt”文件扩展名可与图标相关联。如果计算系统安装了文字处理器,但没有电子数据表,那么与文字处理相关的文件的重要性等级可能增加,而与电子数据表相关的文件的重要性等级可能降低。
22.在一项实施方案中,预测存储服务可存储文件。预测存储服务可从注册的计算系统接收文件,例如,通过与注册的计算系统上的预测存储应用进行通信。注册的计算系统可以是与客户账户相关联的计算系统。在一项实施方案中,客户可以注册预测存储服务,以接收与客户账户相关的文件。例如,客户可以在计算系统上安装软件客户端。作为安装的一部分,软件客户端可请求账户信息,例如,用户名和密码或密钥,并且注册预测存储服务。预测存储服务随后可将标识符或密钥提供给软件客户端,所述标识符或密钥可用来识别未来连接上的软件客户端。在另一实施方案中,预测存储服务可与虚拟桌面服务协作。虚拟桌面服务的客户可通过服务的供应商来创建账户。包括带有软件客户端的操作系统的虚拟机可由虚拟桌面服务供应,并且操作系统生成的图形用户界面可流向客户端装置。在此配置中,软件客户端可被预先提供账户信息,以使得其能够与预测存储服务通信。
23.预测存储服务随后可存储文件。在一项实施方案中,预测存储服务可提供与文件相关的其他服务。例如,存储服务可检索文件,从而可执行搜索,以找到文件和/或文件中的信息。搜索可返回文件中的片段,带有搜索信息之前和之后的内容。在另一实施方案中,预测存储服务接收并存储加密文件。由于文件被发送装置加密,因此,预测存储服务可存储文件,并将文件转送到可对文件解密的其他注册计算系统。由于存储服务无法访问数据,而是只能存储加密负载,因此,可以减少破坏风险。在另一实施方案中,加密负载被存储时会采用混合方法,但预测存储服务也具有加密密钥。在另一混合方法中,加密负载被存储,其中带有该加密负载的索引。
24.在一些实施方案中,存储的文件可被逐出预测文件服务。所述逐出可基于当前确定的重要性、使用、空间和/或时间。例如,文件可依据时间过期模型被逐出。如果在一定的时间跨度内,存储的文件在注册的计算系统上没有被访问,那么所述文件可被逐出预测存储服务。在另一实例中,文件可依据最近最少使用(lru)模型被逐出。如果预测存储服务确定文件必须被逐出存储,那么预测存储服务可选择将自被访问之后具有最大时间跨度的文件逐出。在其他实施方案中,针对存储在预测存储服务中的文件,预测存储服务可从注册装置接收或请求重要性等级和/或重要性指示符。这些等级可用来确定(如果有的话)哪些文件被逐出存储服务,例如,重要性等级没有通过阈值的文件,或者根据重要性等级的分布的统计分析,成为低异常值的文件。
25.在一些实施方案中,预测存储服务将文件转送到注册装置。预测存储服务可充当中介,以分发文件。在一项实施方案中,预测存储服务可临时存储文件,同时注册装置接收文件。在一项实施方案中,预测存储服务有助于对等连接,从而使得装置在彼此之间发送文件,而预测存储服务不会存储文件。
26.现在转到图1,示出根据至少一项实施方案的预测存储服务100的说明性实例。在所示实施方案中,在第一计算系统上访问的文件102受到预测存储服务100的促进而被传输到第二计算系统,以便用户进一步访问。预测存储服务100可使用重要性指示符来确定传输哪些文件。例如,用户访问文件102,例如,文字处理文件,所述文件在台式计算机104上被访问。位于台式计算机104上的预测存储应用确定被访问的文件102对用户来说比较重要,因为文件的最近访问可以是重要性指示符。在一些实施方案中,重要性是根据使用若干测量的算法或试探法计算的一组重要性指示符进行计算的。所述测量可包括监控信息和/或文件元数据,如上所述。由于文件102具有足够高的确定重要性,因此,可联系预测存储服务110。在一些实施方案中,文件可通过互联网108发送到预测存储服务110。使用一个或多个服务器112,预测存储服务110可存储文件102。在一些实施方案中,预测存储服务110随后可尝试与移动装置106联系,并且将文件102发送到移动装置,例如,通过推送通知或其他推送方法。在其他实施方案中,移动装置106可联系预测存储服务110,并请求预测存储服务110的更新,以接收文件102。移动装置106发出此更新请求可能是因为:移动装置106上的预测存储应用的启动、移动装置106发出的定期轮询请求、移动装置106上的事件或者其他拉取方法。
27.在其他实施方案中,预测存储服务110可安排将文件102直接发送到移动装置106。在一项实施方案中,注册装置可与预测存储服务110保持联系。例如,当确定与其他计算系统共享重要文件时,桌面系统104可联系预测存储服务110,并且检索其他计算系统(例如,移动装置106)的联系信息。根据配置,桌面系统104可直接连接到移动装置106,移动装置106可直接连接到桌面系统104,预测存储服务110可充当代理服务,或者可以建立桌面系统104与移动装置106之间的其他连接。使用所述连接,桌面系统104可将文件102发送到移动装置106。
28.台式和/或移动装置106可注册预测存储服务110。在一项实施方案中,客户创建预测存储服务110的账户。随后,该客户可在每个计算系统(例如,台式计算机104和移动装置106)上安装应用。所述应用可致使计算系统注册预测存储服务110并且将计算系统与客户账户相关联。
29.在另一实施方案中,预测存储服务110也可与虚拟桌面服务114结合协作。例如,操作虚拟桌面服务114的服务供应商可启动包括用于用户的操作系统的虚拟机。操作系统的用户界面118可流向用户操作的计算系统。虚拟桌面服务114可包括提供一个或多个虚拟机的一个或多个物理机116,所述虚拟机执行虚拟机中的程序,并将操作系统的用户界面118流向客户端。来自用户界面118的输入可流向虚拟桌面服务114。例如,虚拟机可将操作系统的图形用户界面输出到远程笔记本电脑,并从远程笔记本电脑接收键盘和鼠标的输入。图8中可以看到数据中心中的虚拟机组织的实例。虚拟桌面服务114可通过网络或互联网与预测存储服务110通信,以使得用户界面118可访问文件102。在一项实施方案中,虚拟桌面环境可执行虚拟机中的访问和/或更改文件102的程序。虚拟桌面服务114的显示可被输出以显示在客户端计算资源上,而文件102的处理和桌面环境程序的执行可在虚拟桌面服务114内发生。输入(例如,鼠标、触摸和/或键盘)可从用户界面118传送到虚拟桌面服务114。
30.在一些实施方案中,预测存储服务110也通过网络界面提供对文件102的访问。在一项实施方案中,网络界面包括下载功能,以下载重要文件。在另一实施方案中,网络界面
包括编辑功能,以通过网络界面来编辑文件。例如,通过网络界面可编辑文字处理文档,这是因为通过网络界面可使用访问文字处理网络应用。也可使用其他文件类型和应用,例如,用于电子数据表文件类型的电子数据表网络应用,或者用于音频文件类型的音频播放器。在一些实施方案中,也可使用转换器来将文件类型从一种转换到另一种,以便于使用。例如,音频文件可从支持程度较低的文件类型转换成更常见的文件类型或者客户端浏览器支持的文件类型。
31.现在转到图2,示出根据至少一项实施方案的使用文件结构206的预测存储服务的说明性实例。文件结构206可被监控,以获得重要文件212,所述重要文件可通过监控信息和文件元数据而被识别出来。其他文件210可被视作不太重要。例如,计算系统202上的预测存储应用可监控连接到计算系统202的存储设备204。在所示的实施方案中,存储设备204包括带有层级性的文件结构206。文件夹208可含有其他文件夹208和/或文件210和/或212。预测存储应用可注册,以被通知文件事件和/或不时地扫描文件结构206。
32.例如,预测存储应用可安装在计算系统202上,以作为后台服务运行。针对如上所述的监控信息和文件元数据,预测存储应用可监控存储设备204,例如,硬盘容量。基于根据扫描和/或文件事件准备的重要性指示符,预测存储应用可确定指定文件的重要性等级。使用重要性等级,可确定重要文件212的文件集214并将其发送到预测存储服务。在一个实例中,给出递减的重要性指示符评分,其中以5分开始,过24小时减1分。可编辑的文件可给出两分,而含有文本的文档给出一分。具有六分或更高重要性评分的文件可被确定为重要,而评分为五或更少的则可能不会发送到预测存储服务。
33.在一些实施方案中,文件被加密。在一项实施方案中,文件通过tls/ssl发送。在其他实施方案中,文件在离开计算系统202之前被加密,以存储为加密文件。通过对文件加密,预测存储应用可降低拦截和/或破坏机密信息的风险。
34.预测存储应用可被用户和/或管理员配置,以包括和/或排除文件、文件类型、文件夹、监控信息以及文件元数据。在一项实施方案中,管理员可针对企业计算系统的集合来配置预测存储应用。重要的文件可被发送到团队成员的计算系统,从而使得团队成员可查看最新的信息,所述信息被确定为与至少另一团队成员相关。
35.现在转到图3,示出根据至少一项实施方案的可用来将文件与预测存储服务同步的过程300的说明性实例。过程300可通过使用图1中的一个或多个计算资源来完成,例如,台式计算机系统104、移动装置106、文件102、预测存储服务110、互联网108和服务器112。预测存储应用可被安装302在计算系统上。计算系统可注册304预测存储服务。例如,作为安装的一部分,软件客户端可联系预测存储服务并提供证书,例如,用户名和密码或数位密钥,所述证书可用来识别与客户账户相关联的客户端。预测存储服务可将一组证书(例如,密钥)给予软件客户端,以用来识别客户端。在其他实施方案中,mac地址、一个或多个识别信息的散列或者有关系统的其他识别信息可用来注册预测存储服务并且识别客户端。通过安装适用于操作系统的应用以及将装置注册预测存储服务,也可添加其他系统。预测存储应用可针对测量和/或事件来监控308文件,所述测量和/或事件被确定为指示文件的潜在重要性。在一些实施方案中,事件可用来测量用户与文件的交互。如果没有发现310重要文件并且没有新的系统需要306注册,那么文件可继续被监控308。如果发现310潜在的重要文件,那么可以计算312文件的重要性。例如,如果预测存储应用接收到保存文字处理文件的
事件,那么预测存储应用可做出反应并且确定文件的重要性等级。如果314所述等级表示文件足够重要,那么文件可被发送316到预测存储服务并且被发送到其他注册装置。随后,所述过程可在框306处重复开始。然而,如果文件不够314重要,那么所述过程可在框306处重复开始。也应注意,其他装置可在不同时间添加,包括在随后的时间。
36.过程300中的一些或全部(或本文所述的任何其他过程,或者变化和/或其组合)可在被配置成具有可执行指令一个或多个计算机系统的控制下执行,并且可实施为代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),所述代码在一个或多个处理器上统一执行、由硬件统一执行或者其组合。所述代码可存储在计算机可读存储媒体上,例如,采用包括多个可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读存储媒体可以是非瞬时的。
37.应注意,尽管示出过程的具体实例,但部分过程操作可并行执行,而非连续执行。例如,将文件发送316到服务和发送318到注册装置可以并行执行。在另一实例中,安装302应用和注册304计算系统可在单独的计算系统上并行执行。
38.在另一实例中,第一装置可确定第一文件重要,而第二装置可确定第二文件重要。第一装置可致使第一文件与预测存储服务和/或第二装置同步。第二装置可致使第二文件与预测存储服务和/或第一装置同步。因此,第一文件和第二文件可由预测存储服务和/或第一和第二装置存储。
39.计算系统上的预测存储应用的责任可能是确定哪些文件可用于计算系统之外,例如,用在预测存储服务中或用在其他装置上。图4示出根据至少一项实施方案的可用来确定选择预测存储服务中的哪些文件的过程400的说明性实例。过程400可通过使用图1中的一个或多个计算资源来完成,例如,台式计算机系统104、移动装置106、文件102、预测存储服务110、互联网108和服务器112。预测存储应用存在于计算系统上。预测存储应用监控402文件结构,以获得文件应在计算系统之外被共享的指示。使用算法和/或试探法,基于监控和/或其他信息,例如,文件元数据,预测存储应用可选择性地确定404将哪些文件发送到预测存储服务。例如,重要性等级可因属性而增加,例如,文件最近被打开、最近被保存以及具有文字处理扩展。如果重要性等级足够高,那么文件可被选择发送到预测存储服务。一旦被选择,文件便可上传406到预测存储服务。例如,预测存储应用可使用安全通信通道(例如,tls/ssl)对预测存储服务进行应用编程界面呼叫。在一些实施方案中,文件在发送到预测存储服务之前,可在计算系统上被预测存储应用加密。
40.在图5所示的一项实施方案中,监控可包括基于事件的监控。过程500可通过使用图1中的一个或多个计算资源来完成,例如,台式计算机系统104、移动装置106、文件102、预测存储服务110、互联网108和服务器112。预测存储应用可接收502文件操作的事件通知,从而触发确定与文件操作相关的文件的重要性。在做出决定之前,有关文件的信息可被收集。在所示实施方案中,可确定504文件在其他装置上的使用,例如,文件的打开、保存或删除。文件类型可被确定506。在一些实施方案中,可以常用的文件(例如,文字处理文档、电子数据表、图片和/或文档),比通常不用的文件(例如,配置文件、备份文件和/或可执行文件)可被给予更高的重要性。与文件相关的事件的历史可被确定508。例如,如果文件在最后一天被保存数次,多个打开事件和/或活动窗口的持续时间超出阈值,那么文件的重要性等级可增加。文件与其他应用相结合的使用可被确定510。例如,当文件与另一具有重要性的文件
相结合打开时,文件的重要性等级可增加。在另一实例中,改变已具有确定重要性的文件与检查中的文件之间的焦点可提高检查中的文件的重要性等级。也可使用其他考虑因素,因为从操作504到510收集的此信息是潜在信息收集的实例。使用收集的信息,文件的重要性等级可被确定512。如果被确定514足够重要,那么文件可被发送到516服务,随后过程在操作502处重复。如果文件不够514重要,那么预测存储应用可返回,在操作502处等待新事件。
41.一些实施方案中,重要性等级可根据客户端的需要进行调整。在一项实施方案中,预测存储系统可用于用户。用户可将文档配置成包括(或排除)文件夹,以包括或排除文件夹(例如,系统文件夹),并且确定是否包括临时容量,例如,usb驱动器。重要性等级计算也可进行配置。例如,比起文档,摄影师可能会对图像更感兴趣,而比起图像,专利代理人则可能对文档和技术制图更感兴趣。预测存储应用可包括默认配置。
42.在另一实施方案中,预测存储系统可用在具有管理员的公司或团队环境中。上传到预测存储服务的文件可遵守给予文件用户的文件权限。例如,团队只读但被确定为重要的文件可以保持只读状态。如果需要,文件可在接收文档的装置上被转换成遵守只读条件的格式,例如,将文字处理文档转换成图像集。在另一实例中,预测存储服务可遵守一定的权限,从而将视作重要的文件只分发给有权限查看和/或编辑文档的团队成员。
43.在一些实施方案中,预测存储服务可促进装置之间的文件传送,而非充当文件存储库。在图6中,示出根据至少一项实施方案的可用来使预测存储服务中的文件同步的过程600的说明性实例。过程600可通过使用图1中的一个或多个计算资源来完成,例如,台式计算机系统104、移动装置106、文件102、预测存储服务110、互联网108和服务器112。预测存储服务可为客户注册602账户。客户端可参考所述账户并且注册604计算系统。如果有更多的计算系统可用,那么它们也可进行注册,因为注册过程可用多个装置执行多次。预测存储系统可接收606文件,以与其他注册系统同步。在一些实施方案中,文件可从注册系统上运行的预测存储应用接收。在一项实施方案中,接收的文件被加密。在另一实施方案中,加密密钥为注册系统已知,但预测存储服务不知。
44.在接收606文件之后,一个或多个注册装置或系统可将文件同步608。在一些实施方案中,预测存储服务可尝试同步文件,直到成功为止。其他注册系统也可被同步。一旦所有系统都已同步,那么文件可从服务中移除610。在一项实施方案中,预测存储服务实际上可能并不存储文件,但致使装置之间发生同步。例如,第一计算系统可接收第二计算系统的地址,其中所述第一计算系统与所述第二计算系统同步文件。通过这种方式,预测存储系统充当用于同步的地址簿。在一些实施方案中,由于注册的计算系统更改网络或者位于防火墙的后面,因此,计算系统上的预测存储应用可定期更新其联系地址。
45.在一些实施方案中,预测存储服务可充当文件存储库,所述存储库可被注册的计算系统检索。在图7中,示出根据至少一项实施方案的可用来将文件存储在预测存储服务中的过程700的说明性实例。过程700可通过使用图1中的一个或多个计算资源来完成,例如,台式计算机系统104、移动装置106、文件102、预测存储服务110、互联网108和服务器112。预测存储服务可为客户注册702账户。客户端可参考所述账户并且注册704计算系统。如果有更多的计算系统可用,那么它们也可进行注册。预测存储系统可从注册的计算系统接收706文件,以便存储。预测存储服务可选择一个或多个注册的计算系统,与之同步708文件,并且如果需要,尝试同步文件,直到成功为止。在一些实施方案中,多个装置的同步可并行完成。
文件可存储718在预测存储服务中,直到确定文件不再重要为止。
46.根据实施方案的配置,文件可从预测存储服务中删去。在一些实施方案中,基于存储配额(例如,大小、文件数量或其他存储测量),lru算法删去最老的访问文件。在其他实施方案中,针对存储文件的重要性等级,可查询注册装置。低于重要性阈值的文件可从预测存储服务中删去。在一项实施方案中,重要性等级可由预测存储服务持有的访问和时间确定。
47.在一些实施方案中,文件可从始发装置之外的同步装置中移除。例如,同步文件可存储在临时文件夹中。原始文件可存在于计算系统的文件结构上。根据装置需要,临时文件夹可与预测存储服务在不同的时间以不同的方式删去文件。在一些实施方案中,从临时文件夹中删去文件可基于装置上运行的预测存储应用的重要性等级和/或配置。在其他实施方案中,从临时文件夹中删去文件可由预测存储服务控制。
48.在其他实施方案中,预测存储服务也提供其他服务。例如,预测存储服务可提供检索接收文件的搜索服务。根据请求,可查询检索,以搜索存储文件。在另一实例中,预测存储服务可提供对文件的访问,例如,通过下载或网络应用。例如,文字处理网络应用可提供对文件的编辑访问。
49.在一项实施方案中,预测存储服务可包括重要文件的各版本。例如,用户可于深夜在移动装置上编辑文件。第二天早晨,用户可能会后悔昨夜的更改。在下拉框中,用户可选择先前版本,以同步到计算系统并接收先前版本。如果文件被删除,那么先前版本可用来恢复文件。在另一实施方案中,可通过应用的自动保存特征来获取各版本。例如,用户可忙于文件若干小时。自动保存文件(例如,勘误文件)可上传到预测存储服务,以用于其他计算系统上。如果用户致使计算系统睡眠,随后移动到第二计算系统,那么用户仍可用上次自动保存的文件继续编辑,即使文件没有被先前计算系统上的应用进行技术保存也是如此。在一项实施方案中,先前的自动保存也可被选择作为先前版本。根据计算系统和自动保存,预测存储服务可使用原始文件和自动保存文件来准确重现选择的版本。
50.在一些实施方案中,预测存储服务可确定更新预测存储服务存储的现有文件,而不是创建现有文件的新副本。预测存储服务可使用文件的内部分析,或者可依赖客户端代理来分析文件。在一项内部分析的实施方案中,本地计算装置上的预测存储应用先前已确定文件具有足够的重要性等级,并且将文件上传到预测存储服务。预测存储应用随后可确定:相对于预测存储服务存储的文件版本而言,文件应被分析。使用对文件格式的理解,预测存储应用可分析并解译文件内的数据,以确定文件是当前更改的还是老版本。如果是更改的,那么预测存储应用可准备更新预测存储服务中的文件。通过发送更新,便无需发送整个文件,从而节省带宽。
51.在一项客户端代理的实施方案中,本地计算装置上的预测存储应用先前已确定文件具有足够的重要性等级,并且连同来自客户端代理的唯一标识符一起,将文件上传到预测存储服务。预测存储应用随后可确定:相对于预测存储服务存储的文件版本而言,文件应被分析。这一确定可基于定期扫描或事件,例如,文件在预测存储服务处的本地保存事件或上传事件。预测存储应用可从对文件进行分析的客户端代理接收唯一标识符。所述唯一标识符可被传输到预测存储服务,以准许预测存储服务确定所述文件是文件的新版本、当前版本还是老版本。如果是新版本,那么预测存储应用可将文件上传到预测存储服务。如果是老版本,那么预测存储服务可请求文件的当前版本。
52.文件的更新版本可由预测文件服务存储。在一些实施方案中,文件的更新版本存储在具有其他版本和/或版本分支的树状结构中。在其他实施方案中,新版本会覆盖老版本。文件的版本还可包括唯一标识符元数据。唯一标识符元数据可提供有关以下内容的信息:与预测文件服务存储的版本相比,文件的版本是老的、新的还是当前的。例如,唯一标识符可包括自动增加的值、时间戳以及作者变更标识符。在此实例中,最新的版本可由自动增加的值确定。如果唯一标识符相同,那么文件可被视作当前的。然而,如果自动增加的值相同,但其他字段不匹配,那么可能存在冲突的编辑。
53.图8示出数据中心环境800的各方面,所述数据中心环境可用来支持预测存储服务和/或流桌面服务。数据中心800可包括共享的计算资源和/或共享的基础结构的集合。例如,如图5所示,数据中心800可包括虚拟机槽804、物理主机802、电源806、路由器808、隔离区域810,以及地理位置812。物理主机802可由多个虚拟机槽804共享,每个槽804均能够用来托管包括客户操作系统的虚拟机。多个物理主机804可共享电源806,例如,设在服务器机柜上的电源806。路由器808可通过若干电源806来为多个物理主机804服务,以便路由网络流量。隔离区域810可服务许多路由器808,隔离区域810是由多余装置(例如,备用发电机)服务的一组计算资源。多个隔离区域810可位于地理位置812,例如,数据中心800。一个或多个配置服务器814可包括存储器和处理器,所述存储器和处理器被配置成具有指令,以使用计算中的确定角色和/或共享资源/基础结构来分析用户数据和等级可用的实施资源。配置服务器814还可管理工作流,以用于供应和移除计算资源,以及检测计算资源的健康和/或故障情况。
54.在一项实施方案中,流桌面可体现为可用槽804中的虚拟机。作为供应过程的一部分,槽804也可链接到预测存储服务和/或预测存储服务的账户。使用预测存储服务存储的文件可用于流桌面服务,以补充或代替其他存储服务(例如,块存储、对象存储和/或其他高或低延迟数据存储)操作系统的显示输出可通过物理主机804和路由器808而被路由到外部计算系统。输入可路由到主机802,进入虚拟机,然后提供到操作系统。
55.本发明的实施方案可根据以下条款进行描述:
56.1.一种用于提供数据的计算机实施的方法,其包括:
57.在被配置成具有可执行指令的一个或多个计算机系统的控制下,
58.通过服务供应商,针对所述服务供应商的客户而在多租户环境中运行包括操作系统的虚拟机;
59.针对所述操作系统的文件结构中的数据文件的访问,监控所述操作系统;
60.针对所述文件结构中的所述数据文件的至少一部分,确定重要性指示符,每个重要性指示符至少部分基于对所述文件结构中的相应数据文件的最近访问;以及
61.至少部分基于重要性指示符,选择性地将所述数据文件的至少一部分从所述文件结构上传到存储服务,从而使得上传的数据文件缓存在服务器上,以用于分发给其他计算装置。
62.2.根据条款1所述的计算机实施的方法,其中所述重要性指示符至少部分基于布隆过滤器。
63.3.根据条款1所述的计算机实施的方法,其进一步包括使得所述上传的数据文件的多个版本可在第二计算系统上使用。
64.4.根据条款1所述的计算机实施的方法,其进一步包括至少部分基于对所述上传的数据文件中的一个或多个的重要性指示符的二次确定,致使所述服务器上的所述上传的数据文件中的所述一个或多个被移除。
65.5.根据条款1所述的计算机实施的方法,其进一步包括致使支持上传的数据文件的补充数据文件与所述上传的数据文件一起缓存在所述服务器处。
66.6.根据条款1所述的计算机实施的方法,其进一步包括:
67.针对所述上传的数据文件的更改,监控所述虚拟机;
68.将一个或多个更改从所述第一计算系统上传到所述数据文件,以形成所述数据文件的新版本。
69.7.一种用于数据存储的计算机实施的方法,其包括:
70.在被配置成具有可执行指令的一个或多个计算机系统的控制下,监控第一计算系统的数据文件;
71.至少部分基于量化数据推理算法,确定一个或多个数据文件的重要性;
72.至少部分基于所述数据文件集的确定重要性,选择性地确定从所述一个或多个数据文件发送到存储服务的所述数据文件集;以及
73.致使所述数据文件集被上传,从而所述数据文件集可用于其他计算装置上。
74.8.根据条款7所述的计算机实施的方法,其中确定一个或多个数据文件的重要性进一步包括至少部分基于描述所述数据文件的元数据来计算重要性等级。
75.9.根据条款8所述的计算机实施的方法,其中所述元数据包括文档类型、文档访问历史、文档编辑历史、关键字,或者作者信息。
76.10.根据条款7所述的计算机实施的方法,其中确定一个或多个数据文件的重要性进一步包括:至少部分基于与安装在所述第一计算系统上的一个或多个应用的关系来计算重要性等级。
77.11.根据条款7所述的计算机实施的方法,其中所述量化数据推理算法至少部分基于与所述一个或多个数据文件中的数据文件的用户交互。
78.12.根据条款7所述的计算机实施的方法,其进一步包括接收注册到所述存储服务的账户的第二计算装置的地址,以使得能够将所述数据文件集传输到所述第二计算装置。
79.13.根据条款7所述的计算机实施的方法,其进一步包括致使所述数据文件集被所述存储服务存储。
80.14.根据条款13所述的计算机实施的方法,其进一步包括检索所述数据文件集,以使得能搜索所述数据文件集。
81.15.根据条款13所述的计算机实施的方法,其中致使所述数据文件集被上传进一步包括对所述数据文件集加密,从而使得所述数据文件集以加密的形式存储在所述存储服务处。
82.16.根据条款7所述的计算机实施的方法,其进一步包括至少部分基于文件事件或文件属性,确定所述数据文件集中的至少一个文件的重要性等级。
83.17.一种用于数据存储的计算机系统,其包括:
84.一个或多个计算资源,其具有包括可执行指令的一个或多个处理器和存储器,所述可执行指令在被所述一个或多个处理器执行时致使所述一个或多个处理器至少实施:
85.第一计算系统应用,其被配置成基于所述数据文件的确定重要性来选择性地确定数据结构中的数据文件集,以便发送到存储服务;
86.第二计算系统应用,其被配置成从所述存储服务接收所述数据文件;以及
87.所述存储服务,其被配置成管理所述第一计算系统与所述第二计算系统之间的所述数据文件的同步。
88.18.根据条款17所述的计算机系统,其中所述第二计算系统是移动电话。
89.19.根据条款17所述的计算机系统,其中所述第一计算系统进一步包括含有文件结构的一定容量,以及其中所述数据结构是文件结构。
90.20.根据条款17所述的计算机系统,其中所述存储服务进一步包括存储设备,以存储所述数据文件集。
91.21.根据条款20所述的计算机系统,其中所述存储服务进一步包括网络应用,所述网络应用为所述存储设备存储的所述数据文件集中的至少一个数据文件提供编辑器。
92.22.根据条款20所述的计算机系统,其进一步包括搜索服务,所述搜索服务检索所述存储设备存储的所述文件集,并且提供搜索界面。
93.23.一个或多个计算机可读存储媒体,其上统一存有可执行指令,所述可执行指令在被计算机系统的一个或多个处理器执行时致使所述计算机系统至少进行:
94.确定所述第一计算系统的数据文件的重要性;
95.至少部分基于所述数据文件集的确定重要性,选择性地确定从所述第一计算系统发送到存储服务的所述数据文件集;以及
96.将所述数据文件集上传到系统,所述系统与所述第一计算系统和第二计算系统相关联,并且被配置成将上传的文件传输到所述第二计算系统。
97.24.根据条款23所述的计算机可读存储媒体,其中所述指令进一步包括在执行时致使所述计算机系统至少临时存储所述文件集的指令;以及
98.其中上传所述数据文件集进一步包括将所述数据文件集分发给所述第二计算系统。
99.25.根据条款23所述的计算机可读存储媒体,其中所述指令进一步包括以下指令:所述指令在执行时致使所述计算机系统至少部分基于授予所述第二计算系统的用户的权限,将所述文件集至少限制在所述文件集的子集。
100.26.根据条款23所述的计算机可读存储媒体,其中所述确定的重要性至少部分基于所述数据文件集中的每个数据文件的最近访问情况。
101.27.根据条款23所述的计算机可读存储媒体,其中所述确定的重要性至少部分基于安装在所述第一计算系统上的一组应用。
102.28.根据条款23所述的计算机可读存储媒体,
103.其中所述数据文件集是确定要发送到第二计算系统的一系列数据文件;以及
104.其中上传所述数据文件集进一步包括接收所述第二计算系统的地址,以便于通过所述第一计算系统将所述文件集直接传送到所述第二计算系统。
105.29.根据条款23所述的计算机可读存储媒体,其中所述数据文件集含有文件夹中的数据文件集的子集,其中来自所述数据文件集的至少一个文件位于所述子集之外的文件夹中。
106.图9示出根据各项实施方案的用于实施各方面的示例性环境900的各方面。应了解,尽管网络环境用于解释的目的,但可酌情使用不同的环境来实施不同实施方案。所述环境包括电子客户端装置902,其可包括可操作以通过合适的网络904发送和接收请求、消息或信息并将信息传送回到装置用户的任何合适的装置。此类客户端装置的实例包括个人计算机、移动电话、手持式消息传递装置、笔记本电脑、机顶盒、个人数据助理、电子书阅读器等等。网络可包括任何合适的网络,包括内联网、互联网、蜂窝网络、局域网或任何其他此类网络或者其组合。用于此类系统的部件可至少部分取决于选择的网络和/或环境类型。众所周知用于通过此类网络进行通信的协议和部件,本文中将不再详细论述。通过有线或无线连接及其组合均可实现网络通信。在此实例中,网络包括互联网,因为环境包括用于接收请求及为其响应内容服务的网络服务器906,但对于其他网络,可使用服务于类似目的的替代装置,如所属领域的一般技术人员将明白。
107.所述环境包括至少一个应用服务器908和数据存储设备910。应理解,可存在若干个应用服务器、层或其他元件、过程或部件,其可形成链路或以其他方式配置,从而可交互以执行诸如从合适的数据存储设备获取数据等任务。本文中使用的术语“数据存储设备”是指能够存储、访问和检索数据的任何装置或装置的组合,其可包括任何标准、分布式或集群环境中的数据服务器、数据库、数据存储装置和数据存储媒体的任何组合和数目。应用服务器可包括任何合适的硬件和软件,用于根据需要与数据存储设备集成以便为客户端装置执行一个或多个应用的方面,处理应用的大部分数据访问和业务逻辑。应用服务器与数据存储设备协作提供访问控制服务,并且能够生成将被传输给用户的诸如文本、图形、音频和/或视频等内容,在此实例中,这些内容可采用超文本标记语言(“html”)、可扩展标记语言(“xml”)或其他合适的结构化语言的形式通过网络服务器供应给用户。处理所有请求和响应以及在客户端装置902与应用服务器908之间传送内容,均可由网络服务器处理。应理解,网络和应用服务器并非必需的,而仅仅是示例性部件,因为本文中论述的结构化代码可在本文中其他地方论述的任何合适的装置或主机上执行。
108.数据存储设备910可包括若干个单独的数据表、数据库或其他数据存储机制,以及用于存储特定方面的数据的媒体。例如,所述数据存储设备包括用于存储生产数据912和用户信息916的机制,其可用来为生产侧的内容服务。所示数据存储设备还包括用于存储日志数据914的机制,其可用于报告、分析或其他此类目的。应理解,可能有许多其他方面需要存储在数据存储设备中,例如,页面图像信息和访问权限信息,其可适当存储在上述机制中的任一个中或者可存储在数据存储设备910中的额外机制中。数据存储设备910可通过与之相关联的逻辑进行操作以从应用服务器908接收指令,并且响应于此而获取、更新或以其他方式处理数据。在一个实例中,用户可提交某一类型项目的搜索请求。在这种情况下,数据存储设备可访问用户信息以验证用户身份,并且可访问目录详细信息以获取有关那种类型项目的信息。随后,信息可被返回给用户,例如,列在用户通过用户装置902上的浏览器能够查看的网页上的结果中。在浏览器的专用页面或窗口可查看相关特定项目的信息。
109.每个服务器通常将包括为服务器的一般管理和操作提供可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储媒体(例如,硬盘、随机存取存储器、只读存储器等),所述指令在被服务器的处理器执行时允许服务器执行预期功能。操作系统的适当实施和服务器的一般功能已为人所知或可商用,并且易于被所属领域的一般技术人员实
施,尤其是根据本发明。
110.一项实施方案中的环境是利用若干个计算机系统和部件的分布式计算环境,所述系统和部件使用一个或多个计算机网络或直接连接,借助通信链路互连。然而,所属领域的一般技术人员将了解,此类系统在部件数量比图9中所示的多或少的系统中可发挥同样的作用。因此,图9中系统900的描述应被当作说明性的,且并不限制本发明的范围。
111.各项实施方案可进一步在各种操作环境中实施,在一些情况下,所述环境可包括可用来操作若干应用中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括若干通用个人计算机中的任一个,例如,运行标准操作系统的台式或笔记本计算机,以及运行手机软件且能够支持多个网络和消息传递协议的手持装置。此类系统还可包括若干个工作站,其运行各种商用操作系统和其他已知应用中的任一个,以用于开发和数据库管理等目的。这些装置还可包括其他电子装置,例如,虚拟终端、瘦客户端、游戏系统以及能够通过网络进行通信的其他装置。
112.多数实施方案利用所属领域的技术人员将熟悉的至少一个网络系统,以使用多种商用协议中的任一个来支持通信,例如,传输控制协议/互联网协议(“tcp/ip”)、开放系统互联(“osi”)、文件传输协议(“ftp”)、通用即插即用(“upnp”)、网络文件系统(“nfs”)、公共互联网文件系统(“cifs”)以及appletalk。例如,所述网络可以是局域网、广域网、虚拟专用网、互联网、内联网、外联网、公用交换电话网、红外网、无线网及其任意组合。
113.在利用网络服务器的实施方案中,网络服务器可运行各种服务器或中间层应用中的任一个,包括超文本传输协议(“http”)服务器、ftp服务器、通用网关接口(“cgi”)服务器、数据服务器、java服务器以及业务应用服务器。服务器还能够响应用户装置的请求来执行程序或脚本,例如,通过执行一个或多个网络应用,所述网络应用可实施为用任何编程语言(例如,c、c#或c++)或脚本语言(例如,perl、python或tcl)及其组合编写的一个或多个脚本或程序。服务器还可包括数据库服务器,包括但不限于可从或多个脚本或程序。服务器还可包括数据库服务器,包括但不限于可从和商购到的那些。
114.所述环境可包括多种数据存储设备和其他存储器及存储媒体,如上文所述。这些可存在于多种位置,例如,在一个或多个计算机本地(和/或驻留)的存储媒体上,或者在网络中任何或所有计算机远程的存储媒体上。在一组特定的实施方案中,信息可存在于所属领域的技术人员熟悉的存储区域网(“san”)中。类似地,归因于计算机、服务器或其他网络装置,用于执行功能所需的文件可根据需要本地存储和/或远程存储。在系统包括计算机装置的情况下,每个此类装置均可包括可经由总线进行电耦合的硬件元件,例如,所述元件包括至少一个中央处理单元(“cpu”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘),以及至少一个输出装置(例如,显示装置、打印机或扬声器)。此类系统还可包括诸如磁盘驱动器、光学存储装置等一个或多个存储装置,和诸如随机存取存储器(“ram”)或只读存储器(“rom”)等固态存储装置,以及可移动媒体装置、存储卡、闪存卡等。
115.此类装置还可包括计算机可读存储媒体阅读器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等),以及上述工作存储器。计算机可读存储媒体阅读器可与下述存储媒体连接或被配置成接收所述存储媒体:代表远程、本地、固定和/或可移动存储装置的计算机可读存储媒体,以及用于临时和/或更持久地容纳、存储、传输及检索计算
机可读信息的存储媒体。所述系统和各种装置通常还包括大量的软件应用、模块、服务或位于至少一个工作存储装置中的其他元件,包括操作系统和应用程序,例如,客户端应用或网络浏览器。应了解,不同于上述内容,替代实施方案可发生很多变化。例如,还可使用自定义硬件,和/或特定元件可实施在硬件、软件(包括小应用程序等可移植软件)或这两个中。此外,可连接到其他计算装置,例如,网络输入/输出装置。
116.用于容纳代码或部分代码的存储媒体和计算机可读媒体可包括所属领域已知或使用的任何合适的媒体,包括存储媒体和通信媒体,例如但不限于,用于存储和/或传输诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术中实施的易失性和非易失性媒体、可移动和不可移动媒体,包括ram、rom、电可擦除可编程只读存储器(“eeprom”)、闪存或其他存储技术、只读光盘(“cd-rom”)、数字多功能盘(dvd)或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储装置,或者可用来存储所需信息且可被系统装置访问的任何其他媒体。基于本发明和本文中提供的教示,所属领域的一般技术人员将了解实施各项实施方案的其他方式和/或方法。
117.因此,说明书和附图应视为说明性而非限制性的。但显而易见的是,在不偏离权利要求书所阐释的本发明的普遍精神和范围的前提下,可对本发明作各种修改和变化。
118.其他变化也在本发明的精神内。因此,尽管所揭示的技术可能有多种修改和替代结构,但附图中示出并且上文详细描述了本发明的某些说明性实施方案。然而应理解,本文绝非意图将本发明限于所揭示的一种或多种特定形式,相反,本发明意图涵盖所附权利要求书所界定的本发明的精神和范围内的所有修改、替代结构以及等效物。
119.在说明本发明的过程中使用了术语“一”和“所述”以及类似的词语(尤其是在下文的权利要求书中),除非本文中另有指明或上下文有明确的相反提示,否者这些术语应被解释为既涵盖单数又涵盖复数。除非另有说明,否则术语“包括”、“具有”、“包含”以及“含有”应被解释为开放性术语(即,表示“包括,但不限于”)。术语“所连接的”应被解释为部分或完全容纳于其中、附接到或接合在一起,即使是存在中介元件时也是如此。除非本文中另有说明,否则本文中所叙述的数值范围仅仅意图用作一种速记和方法,用于按个别方式提及属于相关范围的每个独立的值;并且每个独立的值都并入本说明书中,正如这些值按个别方式陈述于本文中一样。除非本文中另有指明或上下文有明确的相反提示,否则本文中所述的所有方法都可以按任何适当次序加以执行。除非另外主张,否则使用本文中所提供的任何以及所有实例或示范性语言(例如,“例如”)都仅仅为了更好地说明本发明的实施方案,而并非对本发明的范围加以限制。本说明书中任何措辞都不应被解释为将任一非主张的元件指示为实践本发明所必须的。.
120.本文中描述了本发明的优选实施方案,包括发明人已知的用于实施本发明的最佳模式。阅读上述描述后,所属领域的技术人员可易于明白这些优选实施方案的变化。发明人预期技术人员酌情使用此类变化,并且发明人希望采用本文具体描述之外的其他方式实践本发明。因此,在适用法律允许的情况下,本发明包括所附权利要求书中陈述的主题的所有修改和等效物。此外,除非本文中另有指明或上下文有明确的相反提示,否则本发明涵盖所有可能变化中的上述元件的任何组合。
121.本文所述的所有参考文献,包括公开案、专利申请案以及专利都以引用的方式并入本文中,正如将每份参考文献个别及具体地指明是通过引用的方式完整地并入本文并于
本文获得陈述的那样。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1