专利名称:管理多个计算设备上的文件的制作方法
管理多个计算设备上的文件
些旦 冃眾
有众多种类型的计算设备可供使用和拥有。这些计算设备的范围从移动设 备到传统的台式计算设备。通常,个人每日可以使用几台不同类型的计算设备。 例如,个人可以拥有在工作场所的用于创建和存储工作相关信息的台式计算设 备。同一个人还可以拥有用于当该个人离开办公室时查看工作相关信息的膝上 型计算机和/或个人数字助理。
使用多台计算设备的一个问题是管理驻留在每台计算设备上的数据。如果 个人手动地管理这些文件,则每台计算设备可能具有重复的数据文件。这些重 复的数据文件随后可被单独地更新,这导致了版本冲突。个人随后必须手动地 解决这些版本冲突。因此,以这种方式管理用户数据变得乏味和耗时。
用于管理多台计算设备上的用户数据的一种替换方法链接多个计算设备 的每一个上的文件夹集合,并复制每台计算设备上的每个集合内的文件。然而, 因为移动设备一般不如台式计算设备那样强大并且通常具有较少的存储器,所 以这些计算设备可能没有足够的存储空间来复制链接的文件夹集合中的所有 文件。当这一情况发生时,个人会不知道某些文件是无法访问的。此外,这种 方法要求个人仔细地计划如何在链接的文件夹集合中组织文件。
因此,这些用于管理多台计算设备上的数据的现有技术并不理想。适当的 技术至今还未被本领域的技术人员所知。
概述
特别地,此处所描述的是用于管理多台计算设备上的文件的各种技术和方 法的各个实现。在这些实现中,使用组合文件空间来査看来自被指定为伙伴计 算设备的多台计算设备的文件。与每台伙伴计算设备相关联的单独的高算缓存 策略确定为相应的伙伴计算设备过滤该组合文件空间中的文件的方式。不具有 本地存储在该组合文件空间中的内容的文件具有与本地存储在该组合文件空间中的文件相关联的元数据。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征, 也不旨在用于限定所要求保护的主题的范围。
附图简述
参考下面的详细描述,可以更容易领会并更好地理解本发明的技术的许 多附带优点。在此简要描述每幅图的描述。
图1是其中多台伙伴计算设备利用相应的组合文件空间来管理来自伙伴 计算设备的文件的操作环境的概括图示。
图2描绘了图1所示的伙伴计算设备中使用的组合文件空间的组织结构的示例。
图3是示出了可以与图1所示的组合文件空间中的文件和文件夹相关联的
若干状态的示例的表格。
图4是概括地示出可以驻留在图1所示的一台或多台伙伴计算设备上并管 理多台伙伴计算设备之间的共享文件的若干文件管理组件的功能框图。
图5示出帮助确定将哪一状态与组合文件空间中的文件进行关联的高速 缓存策略过滤器的若干示例。
图6是示出为图l所示的伙伴计算设备之一创建如图4所示的伙伴关系数 据的过程的 一个实施例的流程图。
图7是示出应用高速缓存策略过滤器来确定将由一台伙伴计算设备指定 共享的文件添加到另一台伙伴计算设备上的组合文件空间的方式的过程的一
个实施例的操作流程图。
图8是示出用于在图1所示的一个组合文件空间中添加或更新文件的过程 的一个实施例的操作流程图。
图9是示出用于从图1所示的一个组合文件空间中删除文件的过程的一个 实施例的操作流程图。
图10是示出用于在组合文件空间中打开文件的过程的一个实施例的操作 流程图。图11是可以实现图4所示的文件管理组件来管理多台伙伴计算设备上的 文件的伙伴计算设备的功能框图。
参考其中相同的标号指代相同的元素的这些附图,现在将详细描述用于管 理多台伙伴计算设备上的文件的本发明的基础结构和技术的实施例。
详细描述
下面的讨论首先描述了其中利用组合文件空间来管理来自被配置为伙伴 计算设备的多台计算设备的文件的操作环境。接着,该讨论集中于可以驻留在 一台或多台伙伴计算设备上并被配置成管理每台伙伴计算设备的组合文件空 间中的文件的文件管理组件。该讨论随后描述适用于实现文件管理组件的若干 过程的示例。最后,该讨论描述了伙伴计算设备的一个实施例。
然而,在描述以上各项之前,重要的是要注意,以下将参考附图来详尽 地描述各个实施例,附图形成各实施例的一部分并示出用于实践各种实施 例的具体实现。然而,其它实施例可以用许多不同的形式实现并且不应被解 释为限于在此所述的各实施例;相反,提供这些实施例以使得本公开变得透彻 和完整。各实施例可被实践为方法、系统或设备。因此,各实施例可采用硬件 实现形式、完全软件实现形式或者组合软件和硬件方面的实现形式。因此,以 下详细描述并非是局限性的。
在各实施例中,逻辑操作可以被实现为(l)在计算设备上运行的计算机实 现的步骤的序列,和/或(2)计算设备内部的互连的机器模块(即,组件)。实 现是取决于实现实施例的计算设备的性能要求的选择。因此,组成在此描述的 各实施例的逻辑操作另外还可被称为操作、步骤、或模块。
用于多台伙伴计算设备的操作环境
图1是其中多台伙伴计算设备102-110被配置成通过相应的组合文件空间 来管理来自各台伙伴计算设备的文件的操作环境100的图示。在下文中,縮写 的术语"伙伴"可与术语"伙伴计算设备"互换使用。术语"本地"被用于修 饰伙伴计算设备(即,"本地伙伴计算设备")和组合文件空间(即,"本地 组合文件空间")来指示该伙伴计算设备与该特定组合文件空间相关联。每台伙伴计算设备102—110包括相应的组合文件空间。为简明起见,图
1只示出伙伴计算设备102和104的组合文件空间。伙伴计算设备102包括组 合文件空间112,而伙伴计算设备104包括组合文件空间114。
总的来说,为组合文件空间分配的存储空间可以在各伙伴之间不同。例如, 与台式计算设备相关联的组合文件空间可以比个人数字助理上的组合文件空
间更大。然而,每台伙伴计算设备上的组合文件空间标识来自每台伙伴的一组 共享文件。因此,每台伙伴上的组合文件空间提供在任何伙伴计算设备上的任 何组合文件空间中的共享文件的相同视图。为了以有限的空间来提供组合文件 空间中的共享文件的相同视图,组合文件空间可以包括"镜像化文件"(例如,
镜像化文件116)来代替相关联的文件的实际内容(例如,内容118)。正如 以下将结合图2更详细描述的,组合文件空间中的每个文件可以是若干状态中 的一个。这些状态中的一个可以是镜像化状态。组合文件空间中处于"镜像化" 状态的文件被称为"镜像化文件"。镜像化文件不具有本地组合文件空间中存 储的文件的内容,而是具有与本地伙伴计算设备上的本地组合文件空间中存储 的文件相关联的元数据。该元数据允许用户即使在本地伙伴计算设备离线时也 能搜索其内容不存储在本地的文件。然而,镜像化文件的内容在本地伙伴计算 设备在线并且该内容可从其它伙伴计算设备中之一获得之前是不可用的。
伙伴计算设备可以通过网络120通信,网络120例如是局域网、无线网络、 广域网、蜂窝网络、因特网等等。每台伙伴计算设备可以具有将该伙伴计算设 备标识为特定帐户(未示出)的伙伴的标识符。该唯一标识符可以是友好名(例 如,"家庭计算机")、GUID、或任何其它用于唯一地标识伙伴计算设备的 机制。帐户可以与一个计算机用户、 一组相关的计算机用户等等相关联。可以 使用本地或面向因特网的发现和认证机制来认证伙伴计算设备以及发现其它 与帐户相关联的伙伴。
图2描绘了可被用于在图1所示的伙伴计算设备中实现组合文件空间的组 织结构的示例。在此示例实现中,组合文件空间由位于预定位置,例如在用户 的登录根文件夹中的文件夹202表示。该预定位置可以从注册表中获取,或通 过任何其它用于指定预定位置的手段来获取。伙伴子文件夹(例如,子文件夹 204—208)与除本地伙伴外的每台伙伴相关联。伙伴子文件夹表示每台伙伴的文件空间的根。本地子文件夹(例如,本地子文件夹210)与本地伙伴计算设
备上的本地文件空间相关联。挂载(mount)点212生成本地文件夹对组合文 件空间的别名。如本领域的技术人员所知的,挂载点212提供克服仅用驱动器 字母来表示目录的限制并允许文件和文件夹的更逻辑化的组织的机制。挂载点
可以被自动创建来为已知本地文件夹生成别名,或可以由用户创建来为本地文 件夹或网络上的远程文件夹生成别名。在一个实施例中,可以为每台伙伴创建 默认的子文件夹集合220。该默认集合220可以标识用户文件空间中的已知文 件夹并可以是操作系统专用的。
图3是示出了可以与图1所示的组合文件空间中的文件和文件夹相关联的 几个状态的示例的表格。在此示例中,存在三个文件夹状态302:普通文件夹 状态304、别名文件夹状态306、以及代用文件夹状态308。普通文件夹状态 304指的是本地伙伴计算设备上的本地文件夹。别名文件夹状态306指向本地 伙伴计算设备上位于组合文件空间之外的文件夹。组合文件夹空间中的别名文
件夹是本地伙伴计算设备上的实际文件夹的挂载点。代用文件夹状态308指的 是组合文件空间中表示本地伙伴计算设备通过图1中的网络120可以访问的计 算设备上的实际文件夹的文件夹。在下文中,本地伙伴计算设备可访问的计算 设备被称为远程计算设备。代用文件夹状态可以标识位于用户不拥有的公共服 务器上的文件。通过使文件夹变为代用文件夹,文件可以被包括在用户在本地 伙伴计算设备上的组合文件空间中。在一个实施例中,代用文件夹状态可以不 与不具有例如无线网络等恒定连接的远程计算设备上的文件夹相关联。此外,
进一步细化,远程计算设备上的操作系统的文件系统可支持采用标识文件系统 对象何时被添加、删除、或修改的方式的改变通知。这帮助标识组合文件空间 中可能需要被更新的共享文件。
继续参考这些示例文件和文件夹状态,组合文件空间中的文件可以是以下 三种文件状态310之一高速缓存文件状态312、镜像化文件状态314、以及 主文件状态316。主文件状态316指的是驻留在本地伙伴计算设备上的实际文 件。高速缓存文件状态312表示在远程伙伴计算设备上的、其内容被本地高速 缓存在本地伙伴计算设备上的主文件。镜像化文件状态314表示在远程伙伴计 算设备上的、其内容没有被本地高速缓存在本地伙伴计算设备上而是具有与本
10地存储在本地伙伴计算设备上的主文件相关联的元数据的主文件。镜像占位程 序可以包含与主文件相关联的元数据。
普通文件夹304可以拥有具有以下三种文件状态中的任何一种的文件高
速缓存文件状态312、镜像化文件状态314、以及主文件状态316。别名文件夹
306和代用文件夹308可以拥有具有主文件状态316的文件。为方便起见,处
于这三种文件状态之一的文件可以由该状态来指代。例如,具有镜像化文件状
态的文件可以被称为"镜像化"文件。在一个实施例中,组合文件空间中的每 个文件可以具有在伙伴计算设备之一上的一个主副本(例如,本地文件),以
及可能多个跨不同远程伙伴计算设备的高速缓存副本。对与帐户相关联的每台 伙伴计算设备,位于本地文件空间中的文件是主文件,而组合文件空间的其它 文件夹中的文件是高速缓存文件或镜像化文件。
伙伴计算设备之一的组件
图4是概括地示出可以驻留在图1所示的一台或多台伙伴计算设备上并管 理多台伙伴计算设备上的共享文件的若干文件管理组件的功能框图。文件管理 组件400包括组合文件空间重定向器402、文件系统监视器404、同步管理器 406、高速缓存管理器408、以及高速缓存策略过滤器410。本领域的技术人员 可以理解,由组件中的任何一个执行的处理步骤都可以由另一个组件执行。因 此。图4示出用于管理多台伙伴计算设备之间的文件的文件管理组件的一种可 能的安排。
总的来说,组合文件空间重定向器402为来自多台计算设备的文件提供组 合文件空间。文件系统监视器404监视组合文件空间中的文件上的活动,例如 文件创建、文件删除、重命名文件等等。当文件系统监视器检测到活动时,文 件系统监视器将活动事件发送给同步管理器406。同步管理器406为组合文件 空间中的相应文件更新文件状态,并跟踪所有伙伴计算设备上的同一文件的文 件状态。同步管理器还负责与伙伴计算设备通信来向其它伙伴计算设备传播文 件改变。
高速缓存管理器确定哪些文件在本地高速缓存以及哪些文件要"镜像化"。 如上所述,镜像化文件是不将他们的内容存储在本地,而是具有与本地存储在
1组合文件空间中的文件相关联的元数据的文件。元数据可以包括任何数量的项 目,例如文件名、文件大小、作者、标题、创建日期、最后保存等等。元数据 可以被存储在镜像占位程序中,该镜像占位程序随后被存储在组合文件空间 中。元数据支持组合文件空间中的文件的离线搜索。文件可以包括任何类型的 文件,例如以数据文件的形式存储的用户或应用程序状态(例如注册表)、作
为URL文件存储的收藏web连接、应用程序数据文件、程序文件等等。
文件管理组件400还可以包括配置使用组合文件空间的伙伴计算设备的 伙伴关系向导412。由伙伴关系向导组件412创建的配置数据被存储为伙伴关 系数据414。
图5示出帮助确定将哪一状态与组合文件空间中的文件进行关联的高速 缓存策略过滤器的若干示例。高速缓存策略过滤器可以采用各种形式,例如数 据结构、文本等等。可以注意到,不同的伙伴计算设备非常可能会有不同的高 速缓存策略过滤器。部分地,这是由于不同的伙伴计算设备可以拥有不同的存 储能力这个事实。在任何伙伴计算设备上,难以将每个文件本地高速缓存在组 合文件空间中。图4中示出的高速缓存策略过滤器410包括多个高速缓存策略 过滤器和一个高速缓存策略优先级列表。
作为示例高速缓存策略过滤器,每个高速缓存策略过滤器可以包括过滤器 名称510、文件列表512、以及过滤器规则514。过滤器名称510唯一地标识高 速缓存策略过滤器中的一个。文件列表512标识包含向其应用高速缓存策略过 滤器的文件的一个或多个文件夹。过滤器规则514标识用于过滤文件的准则。 过滤器规则可以来自若千类别,例如文件类型、时间规则、文件大小等等。例 如,过滤器规则可以包括"文件修改日期在去年以内"、"文件访问日期在过 去三个月以内"等等。如果期望将每个文件都存储在本地,则浏览器规则514 还可以被指定为"无"。进一步细化,每个策略过滤器可以包括标识要在文件 上执行的特定动作的特殊动作516。例如,特殊动作可以是可用于将大媒体文 件高速缓存到不具有大存储容量的伙伴移动计算设备的"降译码(transcode down)"。上述过滤器规则示出一些示例过滤器规则并且不是穷举。许多其它 过滤器规则被构想为高速缓存策略过滤器。
此外,对于用户定义高速缓存策略过滤器,可以提供一组内置高速缓存策略过滤器。用户定义高速缓存策略过滤器和该组内置高速缓存策略过滤器可以
被区分优先次序为优先级列表。使用图5所示的示例策略过滤器502-506,优
先级列表可以如下l)我最近的工作文件;2)我过去六个月购买的收藏音乐;
以及3)最近的移动形式的家庭视频。如下文所述,对每个高速缓存策略过滤
器,高速缓存管理器将过滤器规则应用于组合工作空间来创建已过滤文件列 表。随后可以基于优先级串接多个文件列表并使用它们将本地组合文件空间填 充到所分配的存储容量中。不适合存储容量的具有较低优先级的文件被镜像 化。
在另一实施例中,高速缓存管理器可以允许第三方为过滤器规则注册插 件,以便可以为特定第三方文件创建规则。例如,第三方可以注册以下两条过
滤器规则1)文件类型是MIDI并且MIDI格式是类型1;以及2)文件类型是 PDF并且作者是Tom Doe。
适用于实现各组件的示例过程
以下流程图提供可被用于实现图4所示的文件管理组件的示例过程。这些 流程图中的操作的次序可以和所描述的不同并且可以包括比所示的更多的处 理。此外,并非所有在流程图中示出的处理需要被执行来实现管理来自多台计 算设备的文件的一个实施例。
图6是示出当将伙伴计算设备添加到帐户时发生的创建伙伴关系数据的 过程600的一个实施例的流程图。过程600开始于判定框602,在那里作出伙 伴计算设备是否已经与帐户相关联的判定。当为一特定伙伴计算设备的特定用 户而对该伙伴计算设备执行过程600时,处理在框604继续。
在框604,创建帐户。帐户标识希望在其它己标识的伙伴计算设备之间共 享文件的每台伙伴计算设备。每个帐户包括每台伙伴计算设备的伙伴关系数 据,其中该伙伴关系数据包括配置数据和高速缓存策略过滤器。处理在框606
处继续。
在框606,为启动过程600的伙伴计算设备创建伙伴关系数据。在一个实 施例中,可以显示一用户界面元素来输入伙伴关系数据。然而,可以使用各种 机制来生成伙伴关系数据。在框608,可以输入标识伙伴计算设备的名称。该名称可以是友好名、GUID等等。在框610,可以标识本地文件夹列表。该列
表标识要包括(例如,"共享")在组合文件空间中的文件及其对应的映射位 置。默认地,该文件夹列表可以自动包括伙伴计算设备上存在的已知文件夹。 例如,"文档"、"音乐"、"图片"、以及"视频"可以自动被映射进组合 文件空间。如本领域的技术人员可以理解的,这些已知文件夹可以依赖于伙伴 计算设备上运行的操作系统,并可以随操作系统而不同。
在框612,可以创建一个或多个高速缓存策略过滤器或可以修改高速缓存 策略过滤器。与本地伙伴计算设备相关联的高速缓存策略过滤器可以包括一组 内置高速缓存策略过滤器。此外,有经验的用户可以创建他们自己的附加高速 缓存策略过滤器。过程600可以提供用于创建高速缓存策略过滤器的用户界面、 可以读取文件来创建高速缓存策略过滤器、或提供任何其它创建高速缓存策略 过滤器的机制。
在框614,可以标识区分了优先次序的高速缓存策略过滤器列表。该优先 级列表是策略过滤器的排序。用户可以添加或移除列表中的策略过滤器以及重 新安排各过滤器的优先级次序。在框616,可以设置用于组合文件空间的最大 存储容量。该最大存储容量可以由本地伙伴计算设备的用户来设定,或可以基 于一条或多条准则来自动设定。例如,最大存储容量可以基于伙伴计算设备上 可用的总空闲存储空间来计算。此外,预想基于其它准则的其它自动化技术来 确定最大存储大小。最大存储容量确定组合文件空间的大小。处理在框618处 继续。
在框618,创建对应于本地伙伴计算设备的子文件夹。在一个实施例中, 该子文件夹可以在用户的登录根文件夹中(例如,c:\Users\somebody\MyStuff 或c:\DocumentsandSettings\somebody\MyStuff)中创建。可以注意到,用户的 登录根文件夹依赖于计算设备的操作系统。在另一个实施例中,可以创建预定 位置来指定子文件夹的位置。该预定位置随后可以被用于确定在何处添加对应 于每台伙伴计算设备的子文件夹。处理在框620处继续。
在框620,保存配置数据和本地高速缓存策略。在一个实施例中,配置数 据和高速缓存策略过滤器在本地且在线地保存。此外,配置数据和高速缓存策 略过滤器可以被复制并保存在与帐户相关联的每台伙伴计算设备上。如果帐户已存在并且用户想要将新的伙伴计算设备添加到该帐户,则处理
从判定框602处继续到框630。在框630,下载与帐户相关联的伙伴的伙伴关 系数据。在框632,为所下载的伙伴关系数据中标识的每台伙伴创建子文件夹。 在框634,可以下载由伙伴计算设备保存的用户定义高速缓存策略过滤器以供 框614用于设定本地高速缓存策略。处理随后如上所述地在框606处继续。可 以注意到,在框612,可以添加所下载的用户定义高速缓存策略过滤器来为本 地伙伴计算设备创建高速缓存策略。
过程600还可以包括伙伴关系维护任务,例如删除伙伴、改变本地机器的 高速缓存策略、添加或删除本地组合文件空间中的映射、或改变用于组合文件 空间的存储容量。尽管这些维护任务未在图6中个别地示出,但本领域的技术 人员可以理解,图6中示出的框可以单独运行。例如,可以单独执行框612来 修改本地高速缓存策略过滤器,并且可以单独执行框616来修改用于本地组合 文件空间的最大存储容量。
图7是示出应用高速缓存策略过滤器来确定将被指定共享的文件添加到 伙伴计算设备上的组合文件空间的方式的过程700的一个实施例的操作流程 图。过程700可以在本地伙伴计算设备作为另一伙伴被添加到帐户时发生。此 外,过程700可以由伙伴计算设备在离线一段时间后重新上线时执行。重新上 线的伙伴计算设备可以为与帐户相关联的每台伙伴计算设备请求文件枚举。过 程700开始于框702,在那里接收为伙伴的本地文件空间枚举文件的请求。处 理在框704处继续。
在框704,对每个已经改变的或新的所枚举的文件,执行框706-718。在 框706,基于上述高速缓存过滤器优先级列表来选择高速缓存策略过滤器,并 将其应用于所枚举的文件。在判定框708,基于高速缓存策略过滤器作出是否 应该添加/更新文件的判定。如果确定应该添加/更新文件,则处理在判定框710 处继续。
在判定框710,作出过滤器优先级列表中是否还有任何高速缓存策略过滤 器的判定。如果存在另一个高速缓存策略过滤器,则处理在框712处继续,在 那里获取下一个高速缓存策略过滤器。处理随后循环回到框706并如上所述地 继续。在判定框710,如果已经应用了所有高速缓存策略过滤器,则处理在框716处继续,在那里将文件作为镜像化文件来添加/更新。将文件作为镜像化文 件来添加/更新涉及获取关于文件的元数据并将该元数据存储在组合文件空间 中(框71S)而非将文件的内容存储在组合文件空间中。
在判定框708,如果确定应该添加/更新文件,则处理在判定框714处继续。 将文件添加/更新到组合文件空间的过程在图8中示出。
图8是示出将文件添加或更新到组合文件空间的过程800的一个实施例的 操作流程图。过程800开始于框802,在那里获取要添加/更新的文件。处理在 判定框804处继续。
在判定框804,作出添加/更新文件是否会超过用于组合文件空间的存储空 间的判定。可以注意到,用户可以设定存储空间的大小,或者可以接受基于本 地计算设备的资源计算出的默认大小。如果添加/更新文件不会超过最大存储空 间,则处理在框810处继续,在那里文件的内容的副本被存储在本地组合文件 空间中。添加/更新文件的处理随后完成。
现在回到框804,如果确定添加/更新文件会超过组合文件空间的存储容 量,则处理在框806处继续,在那里分析组合文件列表来确定具有最低优先级 高速缓存策略的一个或多个文件。随后可以选择这一个或多个文件来镜像化。 在另一个实施例中,可以选择多个文件,当这些文件被组合时,总共是预定的 容量。通过选择多个文件,可以最小化与框806相关联的开销。处理在框808 处继续。
在框808,镜像化所选文件。如上所述,当一文件被镜像化时,将该文件 的元数据存储在组合文件空间中而非将该文件的内容存储在组合文件空间中。 随后,在框810,将要添加或更新的文件内容的副本存储在本地组合文件空间 中。过程800随后完成。
图9是示出删除组合文件空间中的文件的过程900的一个实施例的操作流 程图。过程900开始于框902,在那里检査文件的状态。如先前提到的,存在 文件的三种状态高速缓存、镜像化、以及主。处理在判定框904处继续。
在判定框904处,作出该文件是否为主文件的判定。如果该文件是主文件, 则处理在框906处继续,在那里该文件被丢弃。在一个实施例中,可以通过将 文件移到本地回收站来丢弃文件。接着处理完成。如果该文件不是主文件,则处理在判定框908处继续。
在判定框908处,作出文件是否为高速缓存文件的判定。如果该文件是高 速缓存文件,则处理在框910和912处继续。在框910,镜像化该高速缓存文 件。在框912,丢弃该镜像化文件。对于高速缓存文件的处理随后完成。如果 该文件不是高速缓存文件,则该文件是镜像化文件且处理如上所述地在框912 处继续。
可以注意到,上述过程允许从意外的删除中恢复文件,而仍不会在组合文 件系统中消耗不必要的空间。
图10是示出在组合文件空间中打开文件的过程1000的一个实施例的操作 流程图。过程1000开始于框1002,在那里检査文件的状态。同样,存在文件 的三种状态高速缓存、镜像化、以及主。具有高速缓存和主文件状态的文件 将它们的文件内容存储在本地。处理在判定框1004处继续。
在判定框1004,作出文件的内容是否被存储在本地的判定。如果内容被 存储在本地,则处理在框1006处继续,在那里访问并打该开文件。对于该文 件的过程1000随后完成。如果该文件内容不在本地存在,则处理在框1008处 继续。
在框1008,获取该文件的内容。在一个实施例中,这通过向伙伴计算设 备发送发送文件(SendFile)请求来取得该文件内容来实现。处理在框1010处 继续。
在框1010,存储在组合文件空间中的元数据用内容来替换,并且文件状 态被改为高速缓存。随后可以在框1012处访问该文件。对于该文件的处理随
后完成。
伙伴计算设备的一个实施例
图11是可以实现文件管理组件1122的一个实施例的伙伴计算设备1100 的功能框图。伙伴计算设备IIOO在一个基本配置中包括至少处理单元1102和 存储器1104。取决于计算设备的确切配置和类型,存储器1104可以是易失性 的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。系统 存储器1104通常包括操作系统1120、 一个或多个应用程序1124,并且可以包括程序数据(未示出)。存储器1104还包括文件管理组件1122。该基本配置
在图11中由虚线1106来例示。
另外,计算设备1100还可具有其他特征和功能。例如,计算设备1100
还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。
这样的附加存储在图11中由可移动存储1108和不可移动存储1110示出。计 算机可读存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块 或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可 移动介质。存储器1104、可移动存储1108和不可移动存储1110都是计算机可 读存储介质的示例。计算机可读存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它 光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信 息并且可由计算设备1100访问的任何其它介质。任何这样的计算机存储介质 都可以是计算设备1100的一部分。
计算设备1100包括允许计算设备1100与一个或多个计算机和/或应用程 序1118通信的一个或多个通信连接1116。设备1100还可以具有诸如键盘、鼠 标、笔、语音输入设备、触摸输入设备等输入设备1112。还可以包括诸如监视 器、扬声器、打印机、PDA、移动电话以及其它类型的数字显示设备等输出设 备1U2。这些设备在本领域中公知且无需在此处详细讨论。
上文所述的这些过程可使用计算机可执行指令以软件或固件来实现,但也 可按照其他方式实现,诸如采用可编程逻辑、电子电路等。在某些替换实施例 中,某些操作甚至可采用有限的人工干预来执行。而且,此过程不被解释为排 除实施例,而仅是说明性地提供的。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种具有用于管理多台计算设备上的文件的计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行一种方法,所述方法包括建立标识多台(102-110)伙伴计算设备的帐户(604),所述多台伙伴计算设备包括本地伙伴计算设备(210)和至少一台远程伙伴计算设备(204);在所述本地计算设备上提供标识来自至少一台远程伙伴计算设备的一个或多个文件(116)的组合文件空间(114);如果满足一准则(706),则将位于所述远程计算设备上的文件的内容高速缓存在所述组合文件空间中(714);以及如果不满足所述准则,则将与所述文件相关联的元数据存储在所述组合文件空间中(718)。
2. 如权利要求1所述的计算机可读介质,其特征在于,所述准则包括至少 一个确定是否高速缓存所述文件的内容的高速缓存策略过滤器。
3. 如权利要求1所述的计算机可读介质,其特征在于,所述组合文件空间 被组织为具有与所述多台伙伴计算设备中的每一台相关联的子文件夹的根文 件夹。
4. 如权利要求3所述的计算机可读介质,其特征在于,与所述本地伙伴计 算设备相关联的子文件夹包括来自所述本地伙伴计算设备上的本地文件夹的 别名化的文件。
5. 如权利要求1所述的计算机可读介质,其特征在于,所述准则基于与所 述组合文件空间相关联的可用存储容量。
6. 如权利要求1所述的计算机可读介质,其特征在于,所述建立帐户包括 将用于登录到任何所述伙伴计算设备上的帐户的名称和所述帐户相关联。
7. 如权利要求6所述的计算机可读介质,其特征在于,所述建立账户还包 括标识文件夹列表和所述列表中每个文件夹的相应映射位置。
8. 如权利要求7所述的计算机可读介质,其特征在于,所述建立帐户还包 括创建应用于确定是存储所述文件的元数据还是内容的多个高速缓存策略过 滤器的优先级列表。
9. 如权利要求1所述的计算机可读介质,其特征在于,还包括保存与所述 帐户相关联的伙伴数据以供任何所述伙伴计算设备访问。
10. 如权利要求1所述的计算机可读介质,其特征在于,还包括在所述伙 伴计算设备中的一个上线时同步该伙伴计算设备的用户数据。
11. 一种用于同步多台伙伴计算设备之间的文件的计算机实现的方法,包括将过滤器应用于来自远程计算设备(110)的文件(706),所述远程计算 设备是所述多台伙伴计算设备(102-110)中的一台;如果所述文件通过(708)与所述本地计算设备相关联的高速缓存策略过 滤器(706),则将所述文件高速缓存在所述本地计算设备(102)的组合文件 空间(102)中(810);以及如果所述文件未通过所述高速缓存策略,则将与所述文件相关联的元数据 存储在所述组合文件空间中(718)。
12. 如权利要求11所述的计算机实现的方法,其特征在于,所述元数据包 括一组关于所述文件的信息,并且允许在所述本地计算设备离线时的搜索期间 获取关于所述文件的细节。
13. 如权利要求11所述的计算机实现的方法,其特征在于,还包括在接收到打开文件的请求时用所述文件的内容来替换所述元数据。
14. 如权利要求11所述的计算机实现的方法,其特征在于,所述高速缓存 策略包括高速缓存策略的区分了优先次序的列表,并且如果所述文件通过任何 一个所述高速缓存策略过滤器,则所述文件通过所述高速缓存策略。
15. 如权利要求11所述的计算机实现的方法,其特征在于,还包括如果在 所述组合文件空间中没有可用于高速缓存具有较高高速缓存优先级的另一个 文件的足够空间,则从所述组合文件空间中移除所述文件,并用与所述文件相 关联的元数据替换所述文件。
16. —种被配置成在多台伙伴计算设备之间同步用户数据的计算设备,所述设备包括处理器(1102);以及从中分配组合文件空间(112)并且将多条指令(1122)加载到其中的存 储器(1104),所述多条指令包括-被配置成监视与所述组合文件空间中的多个文件中的每一个相关联的多 个活动的文件系统监视器(404);被配置成确定所述组合文件空间中哪些文件要被高速缓存以及哪些文件 要被镜像化的高速缓存管理器(408);以及被配置成在所述高速缓存管理器确定要所述文件中的一个文件要被高速 缓存时从远程计算设备检索与所述一个文件相关联的内容,以及在所述高速缓 存管理器确定一个文件要被镜像化时从所述远程计算设备检索与所述一个文 件相关联的元数据的同步管理器(406),所述远程计算设备是所述多台伙伴 计算设备中的一台。
17. 如权利要求16所述的计算设备,其特征在于,所述高速缓存管理器利 用高速缓存策略过滤器的区分了优先次序的列表来确定所述一个文件是要被 高速缓存还是要被镜像化。
18. 如权利要求16所述的计算设备,其特征在于,在所述活动指示打开镜像化文件的请求时,所述同步管理器从相关联的远程计算设备检索所述镜像化 文件的内容并用所述内容来替换所述镜像化文件。
19. 如权利要求16所述的计算设备,其特征在于,所述组合文件空间具有 分层组织结构。
20. 如权利要求19所述的计算设备,其特征在于,所述分层组织结构包括 对应于每台所述伙伴计算设备的独立子文件夹。
全文摘要
本发明的技术提供用于来自多台伙伴计算设备的文件的组合文件空间。与每台伙伴计算设备相关联的单独的高算缓存策略确定为相应的伙伴计算设备过滤组合文件空间中的文件的方式。不具有本地存储的内容的文件数据具有与本地存储在组合文件空间中的文件相关联的元数据。
文档编号G06Q50/00GK101622639SQ200880005973
公开日2010年1月6日 申请日期2008年1月28日 优先权日2007年2月26日
发明者M·H·特桑 申请人:微软公司