CN101622639B - 管理多个计算设备上的文件 - Google Patents
管理多个计算设备上的文件 Download PDFInfo
- Publication number
- CN101622639B CN101622639B CN2008800059737A CN200880005973A CN101622639B CN 101622639 B CN101622639 B CN 101622639B CN 2008800059737 A CN2008800059737 A CN 2008800059737A CN 200880005973 A CN200880005973 A CN 200880005973A CN 101622639 B CN101622639 B CN 101622639B
- Authority
- CN
- China
- Prior art keywords
- file
- partner
- computing equipment
- cache
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的技术提供用于来自多台伙伴计算设备的文件的组合文件空间。与每台伙伴计算设备相关联的单独的高算缓存策略确定为相应的伙伴计算设备过滤组合文件空间中的文件的方式。不具有本地存储的内容的文件数据具有与本地存储在组合文件空间中的文件相关联的元数据。
Description
背景
有众多种类型的计算设备可供使用和拥有。这些计算设备的范围从移动设备到传统的台式计算设备。通常,个人每日可以使用几台不同类型的计算设备。例如,个人可以拥有在工作场所的用于创建和存储工作相关信息的台式计算设备。同一个人还可以拥有用于当该个人离开办公室时查看工作相关信息的膝上型计算机和/或个人数字助理。
使用多台计算设备的一个问题是管理驻留在每台计算设备上的数据。如果个人手动地管理这些文件,则每台计算设备可能具有重复的数据文件。这些重复的数据文件随后可被单独地更新,这导致了版本冲突。个人随后必须手动地解决这些版本冲突。因此,以这种方式管理用户数据变得乏味和耗时。
用于管理多台计算设备上的用户数据的一种替换方法链接多个计算设备的每一个上的文件夹集合,并复制每台计算设备上的每个集合内的文件。然而,因为移动设备一般不如台式计算设备那样强大并且通常具有较少的存储器,所以这些计算设备可能没有足够的存储空间来复制链接的文件夹集合中的所有文件。当这一情况发生时,个人会不知道某些文件是无法访问的。此外,这种方法要求个人仔细地计划如何在链接的文件夹集合中组织文件。
因此,这些用于管理多台计算设备上的数据的现有技术并不理想。适当的技术至今还未被本领域的技术人员所知。
概述
特别地,此处所描述的是用于管理多台计算设备上的文件的各种技术和方法的各个实现。在这些实现中,使用组合文件空间来查看来自被指定为伙伴计算设备的多台计算设备的文件。与每台伙伴计算设备相关联的单独的高算缓存策略确定为相应的伙伴计算设备过滤该组合文件空间中的文件的方式。不具有本地存储在该组合文件空间中的内容的文件具有与本地存储在该组合文件空间中的文件相关联的元数据。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图简述
参考下面的详细描述,可以更容易领会并更好地理解本发明的技术的许多附带优点。在此简要描述每幅图的描述。
图1是其中多台伙伴计算设备利用相应的组合文件空间来管理来自伙伴计算设备的文件的操作环境的概括图示。
图2描绘了图1所示的伙伴计算设备中使用的组合文件空间的组织结构的示例。
图3是示出了可以与图1所示的组合文件空间中的文件和文件夹相关联的若干状态的示例的表格。
图4是概括地示出可以驻留在图1所示的一台或多台伙伴计算设备上并管理多台伙伴计算设备之间的共享文件的若干文件管理组件的功能框图。
图5示出帮助确定将哪一状态与组合文件空间中的文件进行关联的高速缓存策略过滤器的若干示例。
图6是示出为图1所示的伙伴计算设备之一创建如图4所示的伙伴关系数据的过程的一个实施例的流程图。
图7是示出应用高速缓存策略过滤器来确定将由一台伙伴计算设备指定共享的文件添加到另一台伙伴计算设备上的组合文件空间的方式的过程的一个实施例的操作流程图。
图8是示出用于在图1所示的一个组合文件空间中添加或更新文件的过程的一个实施例的操作流程图。
图9是示出用于从图1所示的一个组合文件空间中删除文件的过程的一个实施例的操作流程图。
图10是示出用于在组合文件空间中打开文件的过程的一个实施例的操作流程图。
图11是可以实现图4所示的文件管理组件来管理多台伙伴计算设备上的文件的伙伴计算设备的功能框图。
参考其中相同的标号指代相同的元素的这些附图,现在将详细描述用于管理多台伙伴计算设备上的文件的本发明的基础结构和技术的实施例。
详细描述
下面的讨论首先描述了其中利用组合文件空间来管理来自被配置为伙伴计算设备的多台计算设备的文件的操作环境。接着,该讨论集中于可以驻留在一台或多台伙伴计算设备上并被配置成管理每台伙伴计算设备的组合文件空间中的文件的文件管理组件。该讨论随后描述适用于实现文件管理组件的若干过程的示例。最后,该讨论描述了伙伴计算设备的一个实施例。
然而,在描述以上各项之前,重要的是要注意,以下将参考附图来详尽地描述各个实施例,附图形成各实施例的一部分并示出用于实践各种实施例的具体实现。然而,其它实施例可以用许多不同的形式实现并且不应被解释为限于在此所述的各实施例;相反,提供这些实施例以使得本公开变得透彻和完整。各实施例可被实践为方法、系统或设备。因此,各实施例可采用硬件实现形式、完全软件实现形式或者组合软件和硬件方面的实现形式。因此,以下详细描述并非是局限性的。
在各实施例中,逻辑操作可以被实现为(1)在计算设备上运行的计算机实现的步骤的序列,和/或(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表示在远程伙伴计算设备上的、其内容没有被本地高速缓存在本地伙伴计算设备上而是具有与本地存储在本地伙伴计算设备上的主文件相关联的元数据的主文件。镜像占位程序可以包含与主文件相关联的元数据。
普通文件夹304可以拥有具有以下三种文件状态中的任何一种的文件:高速缓存文件状态312、镜像化文件状态314、以及主文件状态316。别名文件夹306和代用文件夹308可以拥有具有主文件状态316的文件。为方便起见,处于这三种文件状态之一的文件可以由该状态来指代。例如,具有镜像化文件状态的文件可以被称为“镜像化”文件。在一个实施例中,组合文件空间中的每个文件可以具有在伙伴计算设备之一上的一个主副本(例如,本地文件),以及可能多个跨不同远程伙伴计算设备的高速缓存副本。对与帐户相关联的每台伙伴计算设备,位于本地文件空间中的文件是主文件,而组合文件空间的其它文件夹中的文件是高速缓存文件或镜像化文件。
伙伴计算设备之一的组件
图4是概括地示出可以驻留在图1所示的一台或多台伙伴计算设备上并管理多台伙伴计算设备上的共享文件的若干文件管理组件的功能框图。文件管理组件400包括组合文件空间重定向器402、文件系统监视器404、同步管理器406、高速缓存管理器408、以及高速缓存策略过滤器410。本领域的技术人员可以理解,由组件中的任何一个执行的处理步骤都可以由另一个组件执行。因此。图4示出用于管理多台伙伴计算设备之间的文件的文件管理组件的一种可能的安排。
总的来说,组合文件空间重定向器402为来自多台计算设备的文件提供组合文件空间。文件系统监视器404监视组合文件空间中的文件上的活动,例如文件创建、文件删除、重命名文件等等。当文件系统监视器检测到活动时,文件系统监视器将活动事件发送给同步管理器406。同步管理器406为组合文件空间中的相应文件更新文件状态,并跟踪所有伙伴计算设备上的同一文件的文件状态。同步管理器还负责与伙伴计算设备通信来向其它伙伴计算设备传播文件改变。
高速缓存管理器确定哪些文件在本地高速缓存以及哪些文件要“镜像化”。如上所述,镜像化文件是不将他们的内容存储在本地,而是具有与本地存储在组合文件空间中的文件相关联的元数据的文件。元数据可以包括任何数量的项目,例如文件名、文件大小、作者、标题、创建日期、最后保存等等。元数据可以被存储在镜像占位程序中,该镜像占位程序随后被存储在组合文件空间中。元数据支持组合文件空间中的文件的离线搜索。文件可以包括任何类型的文件,例如以数据文件的形式存储的用户或应用程序状态(例如注册表)、作为URL文件存储的收藏web连接、应用程序数据文件、程序文件等等。
文件管理组件400还可以包括配置使用组合文件空间的伙伴计算设备的伙伴关系向导412。由伙伴关系向导组件412创建的配置数据被存储为伙伴关系数据414。
图5示出帮助确定将哪一状态与组合文件空间中的文件进行关联的高速缓存策略过滤器的若干示例。高速缓存策略过滤器可以采用各种形式,例如数据结构、文本等等。可以注意到,不同的伙伴计算设备非常可能会有不同的高速缓存策略过滤器。部分地,这是由于不同的伙伴计算设备可以拥有不同的存储能力这个事实。在任何伙伴计算设备上,难以将每个文件本地高速缓存在组合文件空间中。图4中示出的高速缓存策略过滤器410包括多个高速缓存策略过滤器和一个高速缓存策略优先级列表。
作为示例高速缓存策略过滤器,每个高速缓存策略过滤器可以包括过滤器名称510、文件列表512、以及过滤器规则514。过滤器名称510唯一地标识高速缓存策略过滤器中的一个。文件列表512标识包含向其应用高速缓存策略过滤器的文件的一个或多个文件夹。过滤器规则514标识用于过滤文件的准则。过滤器规则可以来自若干类别,例如文件类型、时间规则、文件大小等等。例如,过滤器规则可以包括“文件修改日期在去年以内”、“文件访问日期在过去三个月以内”等等。如果期望将每个文件都存储在本地,则浏览器规则514还可以被指定为“无”。进一步细化,每个策略过滤器可以包括标识要在文件上执行的特定动作的特殊动作516。例如,特殊动作可以是可用于将大媒体文件高速缓存到不具有大存储容量的伙伴移动计算设备的“降译码(transcodedown)”。上述过滤器规则示出一些示例过滤器规则并且不是穷举。许多其它过滤器规则被构想为高速缓存策略过滤器。
此外,对于用户定义高速缓存策略过滤器,可以提供一组内置高速缓存策略过滤器。用户定义高速缓存策略过滤器和该组内置高速缓存策略过滤器可以被区分优先次序为优先级列表。使用图5所示的示例策略过滤器502-506,优先级列表可以如下:1)我最近的工作文件;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:\Documents and Settings\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处继续,在那里将文件作为镜像化文件来添加/更新。将文件作为镜像化文件来添加/更新涉及获取关于文件的元数据并将该元数据存储在组合文件空间中(框718)而非将文件的内容存储在组合文件空间中。
在判定框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的功能框图。伙伴计算设备1100在一个基本配置中包括至少处理单元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、移动电话以及其它类型的数字显示设备等输出设备1112。这些设备在本领域中公知且无需在此处详细讨论。
上文所述的这些过程可使用计算机可执行指令以软件或固件来实现,但也可按照其他方式实现,诸如采用可编程逻辑、电子电路等。在某些替换实施例中,某些操作甚至可采用有限的人工干预来执行。而且,此过程不被解释为排除实施例,而仅是说明性地提供的。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
Claims (19)
1.一种用于管理多台计算设备上的文件的计算机实现的方法,包括:
建立标识多台(102-110)伙伴计算设备的帐户(604),所述多台伙伴计算设备包括本地伙伴计算设备(210)和至少一台远程伙伴计算设备(204),所述多台伙伴计算设备中的每一个具有至少一个高速缓存策略过滤器,每个高速缓存策略过滤器包括至少一个过滤器规则;
在所述本地伙伴计算设备上提供标识来自至少一台远程伙伴计算设备的一个或多个文件(116)的组合文件空间(114);
如果满足一过滤器规则(706),则将位于所述远程伙伴计算设备上的文件的内容高速缓存在所述组合文件空间中(714);以及
如果不满足所述过滤器规则,则将与所述文件相关联的元数据存储在所述组合文件空间中(718)。
2.如权利要求1所述的方法,其特征在于,所述组合文件空间被组织为具有与所述多台伙伴计算设备中的每一台相关联的子文件夹的根文件夹。
3.如权利要求2所述的方法,其特征在于,与所述本地伙伴计算设备相关联的子文件夹包括来自所述本地伙伴计算设备上的本地文件夹的别名化的文件。
4.如权利要求1所述的方法,其特征在于,将位于所述远程伙伴计算设备上的文件的内容高速缓存在所述组合文件空间中还是将与所述文件相关联的元数据存储在所述组合文件空间中还基于与所述组合文件空间相关联的可用存储容量。
5.如权利要求1所述的方法,其特征在于,所述建立帐户包括将用于登录到任何所述伙伴计算设备上的帐户的名称和所述帐户相关联。
6.如权利要求5所述的方法,其特征在于,所述建立账户还包括标识文件夹列表和所述列表中每个文件夹的相应映射位置。
7.如权利要求6所述的方法,其特征在于,所述建立帐户还包括创建应用于确定是存储所述文件的元数据还是内容的多个高速缓存策略过滤器的优先级列表。
8.如权利要求1所述的方法,其特征在于,还包括保存与所述帐户相关联的伙伴数据以供任何所述伙伴计算设备访问。
9.如权利要求1所述的方法,其特征在于,还包括在所述伙伴计算设备中的一个上线时同步该伙伴计算设备的用户数据。
10.一种用于同步多台伙伴计算设备之间的文件的计算机实现的方法,包括:
将过滤器应用于来自远程计算设备(110)的文件(706),所述远程计算设备是所述多台伙伴计算设备(102-110)中的一台,所述多台伙伴计算设备中的每一个具有至少一个高速缓存策略过滤器,每个高速缓存策略过滤器包括至少一个过滤器规则;
如果所述文件通过(708)与本地计算设备相关联的高速缓存策略,则将所述文件高速缓存在所述本地计算设备(102)的组合文件空间(102)中(810);以及
如果所述文件未通过所述高速缓存策略,则将与所述文件相关联的元数据存储在所述组合文件空间中(718)。
11.如权利要求10所述的计算机实现的方法,其特征在于,所述元数据包括一组关于所述文件的信息,并且允许在所述本地计算设备离线时的搜索期间获取关于所述文件的细节。
12.如权利要求10所述的计算机实现的方法,其特征在于,还包括在接收到打开文件的请求时用所述文件的内容来替换所述元数据。
13.如权利要求10所述的计算机实现的方法,其特征在于,所述高速缓存策略包括高速缓存策略的区分了优先次序的列表,并且如果所述文件通过任何一个所述高速缓存策略过滤器,则所述文件通过所述高速缓存策略。
14.如权利要求10所述的计算机实现的方法,其特征在于,还包括如果在所述组合文件空间中没有可用于高速缓存具有较高高速缓存优先级的另一个文件的足够空间,则从所述组合文件空间中移除所述文件,并用与所述文件相关联的元数据替换所述文件。
15.一种被配置成在多台伙伴计算设备之间同步用户数据的文件管理设备,所述多台伙伴计算设备中的每一个具有至少一个高速缓存策略过滤器,每个高速缓存策略过滤器包括至少一个过滤器规则,所述文件管理设备包括:
被配置成监视与组合文件空间中的多个文件中的每一个相关联的多个活动的文件系统监视器(404);
被配置成基于所述伙伴计算设备的至少一个高速缓存策略过滤器来确定所述组合文件空间中哪些文件要被高速缓存以及哪些文件要被镜像化的高速缓存管理器(408);以及
被配置成在所述高速缓存管理器确定要所述文件中的一个文件要被高速缓存时从远程计算设备检索与所述一个文件相关联的内容,以及在所述高速缓存管理器确定一个文件要被镜像化时从所述远程计算设备检索与所述一个文件相关联的元数据的同步管理器(406),所述远程计算设备是所述多台伙伴计算设备中的一台。
16.如权利要求15所述的计算设备,其特征在于,所述高速缓存管理器利用高速缓存策略过滤器的区分了优先次序的列表来确定所述一个文件是要被高速缓存还是要被镜像化。
17.如权利要求15所述的计算设备,其特征在于,在所述活动指示打开镜像化文件的请求时,所述同步管理器从相关联的远程计算设备检索所述镜像化文件的内容并用所述内容来替换所述镜像化文件。
18.如权利要求15所述的计算设备,其特征在于,所述组合文件空间具有分层组织结构。
19.如权利要求18所述的计算设备,其特征在于,所述分层组织结构包括对应于每台所述伙伴计算设备的独立子文件夹。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/710,800 US7930270B2 (en) | 2007-02-26 | 2007-02-26 | Managing files on multiple computing devices |
US11/710,800 | 2007-02-26 | ||
PCT/US2008/052234 WO2008106260A1 (en) | 2007-02-26 | 2008-01-28 | Managing files on multiple computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101622639A CN101622639A (zh) | 2010-01-06 |
CN101622639B true CN101622639B (zh) | 2013-12-25 |
Family
ID=39717100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800059737A Active CN101622639B (zh) | 2007-02-26 | 2008-01-28 | 管理多个计算设备上的文件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7930270B2 (zh) |
EP (1) | EP2115687A4 (zh) |
JP (1) | JP2010519637A (zh) |
CN (1) | CN101622639B (zh) |
WO (1) | WO2008106260A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239686B2 (en) * | 2003-07-22 | 2016-01-19 | Sheng Tai (Ted) Tsao | Method and apparatus for wireless devices access to external storage |
WO2006053019A2 (en) | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
US8959248B2 (en) * | 2008-02-22 | 2015-02-17 | Microsoft Corporation | Personal computing environment with virtual computing device |
US9032295B1 (en) * | 2008-03-19 | 2015-05-12 | Dropbox, Inc. | Method for displaying files from a plurality of devices in a multi-view interface and for enabling operations to be performed on such files through such interface |
US9141483B1 (en) | 2008-03-27 | 2015-09-22 | Dropbox, Inc. | System and method for multi-tier synchronization |
US8650498B1 (en) | 2009-05-04 | 2014-02-11 | SugarSync, Inc. | User interface for managing and viewing synchronization settings in a synchronization system |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
KR101755421B1 (ko) * | 2011-01-10 | 2017-07-10 | 삼성전자주식회사 | 클라이언트 장치를 이용한 호스트 장치의 파일 정보 시스템 편집 방법 및 시스템 |
US9633125B1 (en) * | 2012-08-10 | 2017-04-25 | Dropbox, Inc. | System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server |
US10057318B1 (en) | 2012-08-10 | 2018-08-21 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US20140189063A1 (en) * | 2012-12-27 | 2014-07-03 | Dropbox, Inc. | Content delivery via an online synchronized content management system |
FR3015071B1 (fr) * | 2013-12-12 | 2015-12-11 | Wooxo | Procede de synchronisation de donnees entre un ensemble de terminaux |
US10146437B2 (en) | 2014-03-17 | 2018-12-04 | Primaryio, Inc. | Tier aware caching solution to increase application performance |
US10133488B2 (en) * | 2014-03-17 | 2018-11-20 | Primaryio, Inc. | Apparatus and method for cache provisioning, configuration for optimal application performance |
CN104537518A (zh) * | 2014-12-18 | 2015-04-22 | 四川联友电讯技术有限公司 | 基于群组的企业移动办公系统 |
US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US10963430B2 (en) * | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US10001913B2 (en) * | 2015-04-01 | 2018-06-19 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US9479567B1 (en) | 2015-10-29 | 2016-10-25 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US9537952B1 (en) | 2016-01-29 | 2017-01-03 | Dropbox, Inc. | Apparent cloud access for hosted content items |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
US11921680B2 (en) * | 2020-07-13 | 2024-03-05 | Red Hat, Inc. | Speedup containers in production by ignoring sync to file system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938042B2 (en) * | 2002-04-03 | 2005-08-30 | Laplink Software Inc. | Peer-to-peer file sharing |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
US6023706A (en) * | 1997-07-11 | 2000-02-08 | International Business Machines Corporation | Parallel file system and method for multiple node file access |
US6571245B2 (en) * | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US7165096B2 (en) * | 2000-12-22 | 2007-01-16 | Data Plow, Inc. | Storage area network file system |
US6947940B2 (en) * | 2002-07-30 | 2005-09-20 | International Business Machines Corporation | Uniform name space referrals with location independence |
US7743022B2 (en) * | 2003-02-28 | 2010-06-22 | Microsoft Corporation | Method and system for synchronizing data shared among peer computing devices |
US7496607B2 (en) * | 2003-08-29 | 2009-02-24 | Yahoo! Inc. | Method and system for maintaining synchronization between a local data cache and a data store |
US7567987B2 (en) * | 2003-10-24 | 2009-07-28 | Microsoft Corporation | File sharing in P2P group shared spaces |
US20050091595A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Group shared spaces |
US7395446B2 (en) * | 2004-05-03 | 2008-07-01 | Microsoft Corporation | Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system |
US20050273486A1 (en) * | 2004-06-03 | 2005-12-08 | Keith Robert O Jr | Virtual distributed file system |
US7685128B2 (en) * | 2004-06-10 | 2010-03-23 | International Business Machines Corporation | Remote access agent for caching in a SAN file system |
US20060041527A1 (en) * | 2004-08-03 | 2006-02-23 | Aaron Fessler | Virtual file system |
US7660809B2 (en) * | 2005-01-31 | 2010-02-09 | Microsoft Corporation | Using a file server as a central shared database |
US7392263B2 (en) * | 2005-02-28 | 2008-06-24 | Microsoft Corporation | File system represented inside a database |
US20060242206A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | System and method for peer to peer synchronization of files |
US20060248040A1 (en) * | 2005-05-02 | 2006-11-02 | Nokia Corporation | System and method for adaptive remote file caching |
-
2007
- 2007-02-26 US US11/710,800 patent/US7930270B2/en active Active
-
2008
- 2008-01-28 CN CN2008800059737A patent/CN101622639B/zh active Active
- 2008-01-28 WO PCT/US2008/052234 patent/WO2008106260A1/en active Application Filing
- 2008-01-28 EP EP08714052A patent/EP2115687A4/en not_active Withdrawn
- 2008-01-28 JP JP2009550613A patent/JP2010519637A/ja not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938042B2 (en) * | 2002-04-03 | 2005-08-30 | Laplink Software Inc. | Peer-to-peer file sharing |
Also Published As
Publication number | Publication date |
---|---|
CN101622639A (zh) | 2010-01-06 |
US7930270B2 (en) | 2011-04-19 |
WO2008106260A1 (en) | 2008-09-04 |
US20080208870A1 (en) | 2008-08-28 |
EP2115687A1 (en) | 2009-11-11 |
JP2010519637A (ja) | 2010-06-03 |
EP2115687A4 (en) | 2012-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101622639B (zh) | 管理多个计算设备上的文件 | |
US11438286B2 (en) | Systems and methods for email attachments management including changing attributes | |
US7730148B1 (en) | Backfilling a local email archive store | |
JP6797290B2 (ja) | メッセージングサービス向けのコンテンツ管理機能 | |
CN102770854B (zh) | 自动同步冲突解决 | |
JP7150830B2 (ja) | クライアントデバイスによって実施されるコンテンツ管理システムのワークフロー機能 | |
US7730146B1 (en) | Local email archive store size management | |
JP6817402B2 (ja) | インスタントメッセンジャーアプリケーションの動作方法及び装置 | |
US9762664B2 (en) | Optimistic concurrency utilizing distributed constraint enforcement | |
US20100057785A1 (en) | Minimal extensions required for multi-master offline and collaboration for devices and web services | |
US8930379B2 (en) | Merging distributed mail into a unified folder view | |
KR20120004463A (ko) | 복제 데이터의 동적 배치 | |
JP7374232B2 (ja) | コンテキスト付きのコンテンツ・アイテム共有 | |
JP2006516345A (ja) | 電子メールシステムおよび多数の装置からアクセス可能な電子メールシステム | |
US11711375B2 (en) | Team member transfer tool | |
US20180203869A1 (en) | Application Programming Interface | |
US7730147B1 (en) | Prioritizing archived email requests | |
US10542088B2 (en) | Modifying data resources within party-partitioned storage areas | |
CN107408239B (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
US8856241B1 (en) | Management of email archive server requests | |
CN110199277B (zh) | 在数据资源中包括元数据 | |
US8156188B1 (en) | Email archive server priming for a content request | |
US11070500B2 (en) | Third-party integration in activity feeds | |
JP2021521502A (ja) | コンテンツアイテム内のコンテキストで表示されるコメントプレビュー | |
US8032599B1 (en) | Display of archived email content in a preview pane |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150507 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150507 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |